diff --git a/content/docs/platform/concepts/environments.mdx b/content/docs/platform/concepts/environments.mdx deleted file mode 100644 index f90e94821..000000000 --- a/content/docs/platform/concepts/environments.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: 'Environments' -description: 'Understanding and managing environments in Novu' -icon: 'GitFork' ---- - -Novu uses environments to separate your development and production workflows. When you create an account, you'll get two default environments: **Development** and **Production**. - -## Development environment - -Use the development environment to build and test new workflows, layouts, translations, and experiment with different configurations before publishing to other environments. - -## Production environment - -The Production environment is your live environment, sending notifications to real users. To ensure stability and prevent unintended changes, this environment is view-only for workflows, layouts, and translations. - -Changes are not made here directly but are pushed from the non production environment via the publishing process. - -## Custom Environments - -Custom environments are available in Team and Enterprise plans. - -Create custom environments to match your development workflow: - -1. Go to the [Environments page](https://dashboard.novu.co/environments) in Novu dashboard -2. Click on the **Create environment** button on the top right. -3. A menu will appear. Enter your preferred environment name. -4. Assign unique colors to easily distinguish between environments. - ![Publish changes](/images/developer-tools/create-environment.png) -5. Click on **Create environment** button on the bottom right. -6. New environment will be created and will be available in the environments list. - -## What's unique to each environment? - -Each environment has a mix of isolated resources and assets that can be published from Development. - -### Environment specific resources - -These resources are completely separate and unique to each environment. Data in one environment has no connection to data in another. They are: - -- Subscribers -- Topics -- Integrations (Provider credentials) -- API keys (application identifier and secret key) -- Activity feed -- Webhooks - -### Publishable assets - -These assets are managed centrally in the Development environment and then published to other environments. -- Workflows -- Layouts -- Translations - -### Environment Credentials - -Each environment has two unique identifiers: - -1. **Application Identifier** - - - Public ID for client-side apps - - Used with {``} - - Unique per environment - - Safe to expose in frontend code - -2. **API Secret Key** - - Used for backend API authentication - - Keep this secure and never expose publicly - - Different for each environment - -**Best Practice**: Configure these credentials in your application based on the active environment, similar to how you manage other service credentials. - -## Publishing changes to other environments - -Novu provides a publish mechanism that allows you to promote changes from your dvelopment environment to production or other custom environments. This process ensures that all changes are deliberate, reviewed, and deployed in a controlled manner. - -The publishing process bundles all modifications made to workflows, layouts, and translations since the last publish event. - -### How to publish changes - -After making modifications in your Development environment in the [Novu dashboard](https://dashboard.novu.co), you can promote them to another environment by following these steps: - -1. Ensure you are in the Development environment. All changes must originate from here. -2. Click the **Publish changes** button in the top right of the screen. - ![Publish changes](/images/developer-tools/publish-changes.png) -3. A list of available environments will appear. Select the environment you want to publish to. - ![Publish changes](/images/developer-tools/list-of-environment.png) -4. A menu will open showing all the availabl workflows. Select the checkboxes next to the workflows you want to publish. - ![Publish changes](/images/developer-tools/publish-changes-modal.png) -5. Click the publish button to publish the selected workflows to the selected environment. \ No newline at end of file diff --git a/content/docs/platform/developer/environments.mdx b/content/docs/platform/developer/environments.mdx new file mode 100644 index 000000000..6c1d9e711 --- /dev/null +++ b/content/docs/platform/developer/environments.mdx @@ -0,0 +1,88 @@ +--- +title: 'Environments' +description: 'Understanding and managing environments in Novu' +icon: 'GitFork' +--- + +Novu uses environments to separate your workflows and it's data. This lets you safely test changes, like a new workflow, in one environment before moving it to a live production environment. + +## Types of environments + +When you create a Novu account, you are provided with a development and production environment by default. You can also create custom environments (on certain plans) to match your team’s workflow. + +- **Development environment**: Use the development environment to build and test new workflows, layouts, translations, and experiment with different configurations before publishing to other environments. + +- **Production environment**: The production environment is used to send notifications to your subscribers. To ensure stability and prevent unintended changes, this environment is view-only for workflows, layouts, and translations. Changes are not made here directly, they are made from the development environment and then published to production. + +- **Custom environment**: Custom environments are only available on Team and Enterprise plans. You can use them to reflect your release process, for example, staging or QA. + +## Create a custom environment + +To create a custom environment: + +1. Log in to the Novu dashboard. +2. Go to the [Environments page](https://dashboard.novu.co/environments) in the Novu dashboard. +3. Click **Create environment**. A menu appears. +4. Enter your preferred environment name in the **Name** field. +5. Assign unique colors to easily distinguish between environments. + ![Publish changes](/images/developer-tools/create-environment.png) +6. Click **Create environment**. + The new environment is created and is available in the environments list. + +## What's unique to each environment? + +Each environment in Novu has it's own isolated resources, while the development environment has assets that can be published to other environments. + +Each environment maintains some isolated set of resources, while you can share or promote other assets through publishing. + +### Environment-specific resources + +These resources are completely separate and unique to each environment. Data in one environment has no connection to data in another. They are: + +- Activity feed +- API keys (application identifier and secret key) +- Integrations (Provider credentials) +- Subscribers +- Topics +- Webhooks + +### Publishable assets + +These assets are managed centrally in the development environment and then published to other environments. +- Layouts +- Translations +- Workflows + +### Environment credentials + +Each environment has two unique identifiers: + +- **Application Identifier** + - Public ID for client-side apps + - Used with {``} + - Different for each environment + - Safe to expose in frontend code + +- **API Secret Key** + - Used for backend API authentication + - Keep this secure and never expose publicly + - Different for each environment + +Configure these credentials in your application based on the active environment, similar to how you manage other service credentials. + +## Publishing changes to other environments + +Novu provides a publish mechanism that allows you to promote changes from your development environment to production or other custom environments. This process ensures that all changes are deliberate, reviewed, and deployed in a controlled manner. + +The publishing process bundles all modifications made to workflows, layouts, and translations since the last publish event. + +You can promote changes to other environments by following these steps: + +1. Ensure you are in the **Development** environment. All changes must originate from here. +2. Click **Publish changes**. A list of available environments appears. + ![Publish changes](/images/developer-tools/publish-changes.png) +3. Select the environment that you want to publish to. + ![Publish changes](/images/developer-tools/list-of-environment.png) +4. Select the checkboxes next to the workflows that you want to publish. A menu appears, showing all the available workflows. + ![Publish changes](/images/developer-tools/publish-changes-modal.png) +5. Click the publish button to publish the selected workflows to the selected environment. \ No newline at end of file diff --git a/content/docs/platform/developer/meta.json b/content/docs/platform/developer/meta.json index ae5bff8da..75e88820f 100644 --- a/content/docs/platform/developer/meta.json +++ b/content/docs/platform/developer/meta.json @@ -1,3 +1,3 @@ { - "pages": ["webhooks"] + "pages": ["environments", "webhooks"] } diff --git a/content/docs/platform/meta.json b/content/docs/platform/meta.json index 812d4a00a..9029a070e 100644 --- a/content/docs/platform/meta.json +++ b/content/docs/platform/meta.json @@ -25,18 +25,20 @@ "workflow/contexts", "---Channels---", "...integrations", - "---Account---", - "account/authentication", - "account/roles-and-permissions", - "account/manage-members", - "account/billing", - "account/sso", "---SDKs---", "sdks/overview", "sdks/react", "sdks/javascript/index", "sdks/react-native", "sdks/server", + "---Developer---", + "developer/environments", + "---Account---", + "account/authentication", + "account/roles-and-permissions", + "account/manage-members", + "account/billing", + "account/sso", "---Additional Resources---", "additional-resources/glossary", "additional-resources/mcp",