diff --git a/docs/dictionary/en-custom.txt b/docs/dictionary/en-custom.txt index 1d994b7f..da15a0f3 100644 --- a/docs/dictionary/en-custom.txt +++ b/docs/dictionary/en-custom.txt @@ -82,7 +82,6 @@ drawio heirarchy autoplay youtube -DALLE OpenTelemetry RDBMS NATS @@ -91,5 +90,6 @@ autoincrement Baselining configmap kubeconfig +DALLE frontends -Zustand +Zustand \ No newline at end of file diff --git a/docs/getting-started/community-plugins.md b/docs/getting-started/community-plugins.md new file mode 100644 index 00000000..cf566c78 --- /dev/null +++ b/docs/getting-started/community-plugins.md @@ -0,0 +1,122 @@ +--- +title: Community Plugins +sidebar_label: Community Plugins List +slug: /plugins-list +pagination_next: plugins/overview +pagination_prev: getting-started/plugins +--- + +# Amplication Community Plugins + +The following plugins are currently available. +Additional plugins will be added in future releases of Amplication. + +:::note +For the most updated list of plugins, it's recommended to check the _All Plugins_ page on your Amplication dashboard. +::: + +### Mongo DB + +Use a Mongo database in your service generated by Amplication. + +[MongoDB](https://github.com/amplication/plugins/tree/master/plugins/db-mongo) is a free and open-source cross-platform document-oriented database program. It is classified as a NoSQL database program, meaning that it does not use the traditional SQL relational database management system. Instead, it uses JSON-like documents with optional schemas to store data. + +### PostgreSQL DB + +Use a PostgreSQL database in your service generated by Amplication. + +[PostgreSQL](https://github.com/amplication/plugins/tree/master/plugins/db-postgres) is a free and open-source relational database management system that is designed to be highly scalable, reliable, and powerful. It is known for its ability to handle large amounts of data and a high volume of queries. + +### MySQL DB + +Use a MySQL database in your service generated by Amplication. + +[MySQL](https://github.com/amplication/plugins/tree/master/plugins/db-mysql) is an open-source relational database management system that is widely used in web applications and other software platforms. It is known for its reliability, simplicity, and performance. It is a powerful tool for storing and managing data in a structured and organized way. + +### Apache Kafka + +Use an Apache Kafka message broker to communicate between your services. + +[Apache Kafka](https://github.com/amplication/plugins/tree/master/plugins/broker-kafka) is a distributed streaming platform, used for building real-time data pipelines and streaming applications. It is a publish-subscribe messaging system that allows for the creation of high-throughput and low-latency systems. + +In the Apache Kafka messaging system, processes known as producers write data to Kafka topics, and processes known as consumers read data from Kafka topics. + +### NestJS NATS + +Use a NestJS NATS message broker to communicate between your services. + +[NATS](https://docs.nestjs.com/microservices/nats) is a high performance, low latency messaging system that is lightweight. +It follows a publish-subscribe model like Kafka but is less complex and easier to set up. +NATS is ideal for applications that require real-time messaging but don't need the level of durability and fault-tolerance that Kafka provides. + +:::info +A _User_ entity must exist in order to enable this plugin in your project. +Learn [how to add the user entity](/how-to/add-delete-user-entity) into your service. +::: + +### JWT Auth Provider + +Add JSON Web Token (JWT) authentication and authorization to your service. + +[NestJS's Passport based JWT authentication](https://docs.nestjs.com/security/authentication) involves the client sending a request to the server with a user's credentials in the form of a username and password. The server then authenticates the user and issues a JWT if the credentials are valid. This allows the client to authenticate subsequent requests to the server using the JWT. + +:::note +The _NestJS Auth Provider_ plugin must also be installed to use the JWT Auth Provider plugin. +::: + +### Passport Basic Authentication + +[Basic authentication](https://github.com/amplication/plugins/tree/master/plugins/auth-basic) is a simple authentication scheme built into the HTTP protocol that involves sending a request to a server with a user's credentials in the form of a username and password. The credentials are encoded in base64 and included in the Authorization header of the request. + +:::note +The _NestJS Auth Provider_ plugin must also be installed to use the Passport Basic Authentication plugin. +::: + +### Prettier + +[Prettier](https://github.com/amplication/plugins/tree/master/plugins/formatter-prettier) is an opinionated code formatter that automatically formats your code to ensure adherence to a consistent style. Code is automatically formatted every time it is committed. + +### ESLint + +[ESLint](https://github.com/amplication/plugins/tree/master/plugins/linter-eslint) is a library that helps find issues and enforce code style in your JavaScript code. +ESLint has a wide array of rules that can be configured to enforce code quality and consistency. + +### Redis + +[Redis](https://github.com/amplication/plugins/tree/master/plugins/cache-redis) is an open-source, in-memory data store that can be used as a database, cache, streaming engine, and message broker. +Redis provides high availability via replication and high performance via caching. +It is commonly used to quickly access frequently used application data. + +### Redis Message Broker + +[Redis Message Broker](https://github.com/amplication/plugins/tree/master/plugins/broker-redis) is an extension of the traditional Redis in-memory data store, allowing it to function as a message broker. +Install this plugin to leverage Redis's in-memory capabilities and enables asynchronous message communication between different parts of an application or between different applications. + +### OpenAI + +The [OpenAI](https://github.com/amplication/plugins/tree/master/plugins/integration-openai) plugin allows you to integrate OpenAI's various AI models into your Amplication app. +This gives you access to models like GPT-3, DALLE-E 2, and Codex right from your Amplication app. + +### GitHub Actions + +Simplify CI/CD for your service with the [GitHub Actions](https://github.com/amplication/plugins/tree/master/plugins/ci-github-actions) plugin. +You can create workflows to build and test your service. +It also supports containerization of your service. + +### Helm Chart + +Package and deploy your app on Kubernetes using Amplication's [Helm Chart](https://github.com/amplication/plugins/tree/master/plugins/deployment-helm-chart) plugin. +This plugin generates a customizable Helm chart for installing and managing your app on Kubernetes clusters. + +### OpenTelemetry + +[OpenTelemetry](https://github.com/amplication/plugins/tree/master/plugins/observability-opentelemetry) is an observability framework that lets you monitor the health and performance of your application. +This plugin lets you integrate with OpenTelemetry allowing you to gain deeper insights into your application's operations and to troubleshoot potential issues more efficiently. + +### Swagger ApiBody + +Add NestJS Api Swagger decorator to your service. + +The OpenAPI specification is a language-agnostic definition format used to describe RESTful APIs. [Nest provides a dedicated module](https://docs.nestjs.com/openapi/introduction) which allows generating such a specification by leveraging decorators. + +This plugin will specifically allow you to specify the structure of the request payload for create (POST) and update (PUT/PATCH) actions. \ No newline at end of file diff --git a/docs/getting-started/plugins.md b/docs/getting-started/plugins.md index 78cf03ff..2eb8c856 100644 --- a/docs/getting-started/plugins.md +++ b/docs/getting-started/plugins.md @@ -1,8 +1,10 @@ --- id: plugins -title: Using Plugins -sidebar_label: Use Plugins +title: How To Use Plugins +sidebar_label: How To Use Plugins slug: /getting-started/plugins +pagination_next: plugins/overview +pagination_prev: getting-started/community-plugins --- Amplication uses _Plugins_ to extend the functionality of your generated code. @@ -18,117 +20,10 @@ The source code of all community Amplication plugins are [available on GitHub](h Besides the community plugins created by the Amplication team, you can [develop your own custom plugins](/plugins/overview/). -## Available Official Plugins +## Community Plugins List -The plugins below are the currently available community plugins. -To see a list of all plugins on your Amplication dashboard, [visit your service's _All Plugins_ page](#how-to-install-a-plugin). -Additional plugins will be added in future releases of Amplication. - -### Mongo DB - -Use a Mongo database in your service generated by Amplication. - -[MongoDB](https://github.com/amplication/plugins/tree/master/plugins/db-mongo) is a free and open-source cross-platform document-oriented database program. It is classified as a NoSQL database program, meaning that it does not use the traditional SQL relational database management system. Instead, it uses JSON-like documents with optional schemas to store data. - -### PostgreSQL DB - -Use a PostgreSQL database in your service generated by Amplication. - -[PostgreSQL](https://github.com/amplication/plugins/tree/master/plugins/db-postgres) is a free and open-source relational database management system that is designed to be highly scalable, reliable, and powerful. It is known for its ability to handle large amounts of data and a high volume of queries. - -### MySQL DB - -Use a MySQL database in your service generated by Amplication. - -[MySQL](https://github.com/amplication/plugins/tree/master/plugins/db-mysql) is an open-source relational database management system that is widely used in web applications and other software platforms. It is known for its reliability, simplicity, and performance. It is a powerful tool for storing and managing data in a structured and organized way. - -### Apache Kafka - -Use an Apache Kafka message broker to communicate between your services. - -[Apache Kafka](https://github.com/amplication/plugins/tree/master/plugins/broker-kafka) is a distributed streaming platform, used for building real-time data pipelines and streaming applications. It is a publish-subscribe messaging system that allows for the creation of high-throughput and low-latency systems. - -In the Apache Kafka messaging system, processes known as producers write data to Kafka topics, and processes known as consumers read data from Kafka topics. - -### NestJS NATS - -Use a NestJS NATS message broker to communicate between your services. - -[NATS](https://docs.nestjs.com/microservices/nats) is a high performance, low latency messaging system that is lightweight. -It follows a publish-subscribe model like Kafka but is less complex and easier to set up. -NATS is ideal for applications that require real-time messaging but don't need the level of durability and fault-tolerance that Kafka provides. - -:::info -A _User_ entity must exist in order to enable this plugin in your project. -Learn [how to add the user entity](/how-to/add-delete-user-entity) into your service. -::: - -### JWT Auth Provider - -Add JSON Web Token (JWT) authentication and authorization to your service. - -[NestJS's Passport based JWT authentication](https://docs.nestjs.com/security/authentication) involves the client sending a request to the server with a user's credentials in the form of a username and password. The server then authenticates the user and issues a JWT if the credentials are valid. This allows the client to authenticate subsequent requests to the server using the JWT. - -:::note -The _NestJS Auth Provider_ plugin must also be installed to use the JWT Auth Provider plugin. -::: - -### Passport Basic Authentication - -[Basic authentication](https://github.com/amplication/plugins/tree/master/plugins/auth-basic) is a simple authentication scheme built into the HTTP protocol that involves sending a request to a server with a user's credentials in the form of a username and password. The credentials are encoded in base64 and included in the Authorization header of the request. - -:::note -The _NestJS Auth Provider_ plugin must also be installed to use the Passport Basic Authentication plugin. -::: - -### Prettier - -[Prettier](https://github.com/amplication/plugins/tree/master/plugins/formatter-prettier) is an opinionated code formatter that automatically formats your code to ensure adherence to a consistent style. Code is automatically formatted every time it is committed. - -### ESLint - -[ESLint](https://github.com/amplication/plugins/tree/master/plugins/linter-eslint) is a library that helps find issues and enforce code style in your JavaScript code. -ESLint has a wide array of rules that can be configured to enforce code quality and consistency. - -### Redis - -[Redis](https://github.com/amplication/plugins/tree/master/plugins/cache-redis) is an open-source, in-memory data store that can be used as a database, cache, streaming engine, and message broker. -Redis provides high availability via replication and high performance via caching. -It is commonly used to quickly access frequently used application data. - -### Redis Message Broker - -[Redis Message Broker](https://github.com/amplication/plugins/tree/master/plugins/broker-redis) is an extension of the traditional Redis in-memory data store, allowing it to function as a message broker. -Install this plugin to leverage Redis's in-memory capabilities and enables asynchronous message communication between different parts of an application or between different applications. - -### OpenAI - -The [OpenAI](https://github.com/amplication/plugins/tree/master/plugins/integration-openai) plugin allows you to integrate OpenAI's various AI models into your Amplication app. -This gives you access to models like GPT-3, DALLE-E 2, and Codex right from your Amplication app. - -### GitHub Actions - -Simplify CI/CD for your service with the [GitHub Actions](https://github.com/amplication/plugins/tree/master/plugins/ci-github-actions) plugin. -You can create workflows to build and test your service. -It also supports containerization of your service. - -### Helm Chart - -Package and deploy your app on Kubernetes using Amplication's [Helm Chart](https://github.com/amplication/plugins/tree/master/plugins/deployment-helm-chart) plugin. -This plugin generates a customizable Helm chart for installing and managing your app on Kubernetes clusters. - -### OpenTelemetry - -[OpenTelemetry](https://github.com/amplication/plugins/tree/master/plugins/observability-opentelemetry) is an observability framework that lets you monitor the health and performance of your application. -This plugin lets you integrate with OpenTelemetry allowing you to gain deeper insights into your application's operations and to troubleshoot potential issues more efficiently. - -### Swagger ApiBody - -Add NestJS Api Swagger decorator to your service. - -The OpenAPI specification is a language-agnostic definition format used to describe RESTful APIs. [Nest provides a dedicated module](https://docs.nestjs.com/openapi/introduction) which allows generating such a specification by leveraging decorators. - -This plugin will specifically allow you to specify the structure of the request payload for create (POST) and update (PUT/PATCH) actions. +You can view all community plugins on the _All Plugins_ page. +They're also available on the [Community Plugins](/plugins-list) page here on the Amplication documentation. ## Viewing Open-Source Plugin Code @@ -155,7 +50,7 @@ To uninstall, or deactivate, a plugin, click the toggle switch into its _off_ st ## How To Modify Plugin Execution Order -The plugins are executed when Amplication generates code, according to their order on the *Installed Plugins* page. +The plugins are executed when Amplication generates code, according to their order on the *Installed Plugins* page. :::tip If a plugin execution is a prerequisite for another plugin, it must be located earlier in the list. @@ -190,4 +85,4 @@ Each version of the Plugin has its own settings, so when you replace the version To add more functionality, you can develop your own plugins, or can use plugins developed by the community, as they become available. -See [Plugin Development Overview](/plugins/overview/) for more information. +See [Plugin Development Overview](/plugins/overview/) for more information. diff --git a/docs/plugins/developing-a-plugin.md b/docs/plugins/developing-a-plugin.md index f58a7571..6d490ba8 100644 --- a/docs/plugins/developing-a-plugin.md +++ b/docs/plugins/developing-a-plugin.md @@ -1,7 +1,7 @@ --- id: how-to-create-plugin -title: How to Create a Plugin -sidebar_label: How to Create a Plugin +title: How to Create a Custom Plugin +sidebar_label: How to Create a Custom Plugin slug: /plugins/how-to-create-plugin --- diff --git a/docs/plugins/plugindev-overview.md b/docs/plugins/plugindev-overview.md index 6f6d041a..007d8c9e 100644 --- a/docs/plugins/plugindev-overview.md +++ b/docs/plugins/plugindev-overview.md @@ -3,6 +3,8 @@ id: overview title: Plugin Development Overview sidebar_label: Overview slug: /plugins/overview +pagination_next: plugins/plugin-architecture +pagination_prev: plugins/event-hierarchy --- # Plugin Development Overview diff --git a/docs/plugins/publish-your-plugin.md b/docs/plugins/publish-your-plugin.md index bf36f3a5..1835c3b1 100644 --- a/docs/plugins/publish-your-plugin.md +++ b/docs/plugins/publish-your-plugin.md @@ -1,7 +1,7 @@ --- id: publish-plugin -title: Publishing Your Plugin -sidebar_label: Publishing Your Plugin +title: How To Publish a Custom Plugin +sidebar_label: How To Publish a Custom Plugin slug: /plugins/publish-plugin --- diff --git a/docs/plugins/testing-a-plugin.md b/docs/plugins/testing-a-plugin.md index cbf5ae9f..cf86a28a 100644 --- a/docs/plugins/testing-a-plugin.md +++ b/docs/plugins/testing-a-plugin.md @@ -1,7 +1,7 @@ --- id: how-to-test-plugin -title: How to Test a Plugin -sidebar_label: How to Test a Plugin +title: How to Test a Custom Plugin +sidebar_label: How to Test a Custom Plugin slug: /plugins/how-to-test-plugin --- diff --git a/sidebars.js b/sidebars.js index 06b26548..db6abd10 100644 --- a/sidebars.js +++ b/sidebars.js @@ -150,16 +150,20 @@ const sidebars = { }, { type: "category", - label: "Plugin Development", + label: "Plugins", link: { - type: "doc", - id: "plugins/overview", + type:"doc", + id: "getting-started/plugins" }, items: [ - "plugins/overview", + "getting-started/plugins", + "getting-started/community-plugins", + "plugins/how-to-create-plugin", + "plugins/how-to-test-plugin", + "plugins/publish-plugin", { type: "category", - label: "Architecture", + label: "Custom Plugin Architecture", items: [ "plugins/plugin-architecture", "plugins/plugin-events-before-after", @@ -205,8 +209,8 @@ const sidebars = { "plugins/plugin-events/create-message-broker-topics-enum", "plugins/plugin-events/create-prisma-schema", ], - }, - ], + } + ] }, { type: "category",