Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 0 additions & 90 deletions content/docs/platform/concepts/environments.mdx

This file was deleted.

88 changes: 88 additions & 0 deletions content/docs/platform/developer/environments.mdx
Original file line number Diff line number Diff line change
@@ -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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix possessive pronoun.

Line 7 should use "its" (possessive) instead of "it's" (contraction of "it is").

-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.
+Novu uses environments to separate your workflows and its data. This lets you safely test changes, like a new workflow, in one environment before moving it to a live production environment.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
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.
Novu uses environments to separate your workflows and its data. This lets you safely test changes, like a new workflow, in one environment before moving it to a live production environment.
🤖 Prompt for AI Agents
In content/docs/platform/developer/environments.mdx around line 7, replace the
contraction "it's" with the possessive "its" so the sentence reads "Novu uses
environments to separate your workflows and its data." Ensure only the single
word is changed and punctuation/spacing remains unchanged.


## 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 <a href="https://novu.co/pricing" target="_blank" rel="noopener noreferrer">Team and Enterprise plans</a>. 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.

Comment on lines +32 to +37
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix possessive pronoun and reduce redundancy in environment overview.

Lines 34 and 36 convey similar concepts with slight rewording. Additionally, line 34 contains the same grammar error (it's → its). Consider consolidating these introductory sentences for clarity.

-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.
+Each environment in Novu has its own isolated resources, while the development environment has assets that can be published to other environments.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 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.
## What's unique to each environment?
Each environment in Novu has its own isolated resources, while the development environment has assets that can be published to other environments.
🤖 Prompt for AI Agents
In content/docs/platform/developer/environments.mdx around lines 32 to 37, the
two introductory sentences are redundant and line 34 uses the incorrect
possessive "it's" instead of "its"; consolidate them into a single clear
sentence that uses "its" and communicates that each environment has isolated
resources while development assets can be published/promoted to other
environments to remove repetition and fix the grammar.

### 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 <Method href="/platform/inbox/overview">{`<Inbox />`}</Method>
- 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

<Callout>Configure these credentials in your application based on the active environment, similar to how you manage other service credentials.</Callout>

## 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.
2 changes: 1 addition & 1 deletion content/docs/platform/developer/meta.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"pages": ["webhooks"]
"pages": ["environments", "webhooks"]
}
14 changes: 8 additions & 6 deletions content/docs/platform/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down