--- title: "Deployment Patterns" slug: "deployment-patterns" updated: 2025-09-15T09:26:56Z published: 2025-09-15T09:26:56Z canonical: "knowledge-base.rossum.ai/deployment-patterns" --- > ## Documentation Index > Fetch the complete documentation index at: https://knowledge-base.rossum.ai/llms.txt > Use this file to discover all available pages before exploring further. # Deployment Patterns Each company has its own deployment pattern. The most common ones (supported by Rossum Sandboxing tool) are: ## Single environment for sandbox and production This is the simplest pattern for companies who do not have the need for separate sandbox environment. ![](https://cdn.document360.io/1bb6f6bc-c04c-4ace-a1e8-8c4cfd3fbc98/Images/Documentation/Deployment%20patterns%2001.png) v2 (latest)v1 (deprecated) To start using this patten, simply initialize a new project in some empty directory using the following command: ```plaintext prd2 init ``` This command will create a directory structure according to your choices when executing the `init` command. For example: ```bash ? ORG-LEVEL directory name: production-org ? ORG ID: 123123 ? Base API URL: (e.g., https://my-org.rossum.app/api/v1) https://example.rossum.app/api/v1 ? API token: b1946ac92492d2347c6235b4d2611184 ? SUBDIR name: default ? subdir regex (OPTIONAL): ? Would you like to specify another **SUBDIR** inside production-org? No ? Would you like to specify another **ORG-LEVEL** directory? No ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Initialized a new PRD directory in "."                                                           │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ``` Will create the following tree structure: ```plaintext . ├── prd_config.yaml └── production-org    ├── credentials.yaml    └── default ``` The project should be ready to go! Try it by pulling all the changes from your remote organization: ```plaintext prd2 pull production-org ``` Once you commit this initial version to Git, you can update any configuration and deploy it to the same organization using the following command: ```plaintext prd2 push ``` To start using this patten, simply initialize a new project in some empty directory using the following command: ```plaintext prd init ``` This command will create a new `credentials.json` file. Fill in your username and password for `source` (you can leave `target` section as is for this simple setup): ```json credentials.json {  "source": {    "username": "CHANGE ME",    "password": "CHANGE ME"  },  "target": {    "username": "...",    "password": "..."  } } ``` Also configure the `source_api_base` in `prd_config.yaml` file. By default, it would be: ```yaml prd_config.yaml source_api_base: 'https://api.elis.rossum.ai/v1' use_same_org_as_target: true ``` Now you can pull (and eventually commit into Git) your whole organization configuration: ```plaintext prd pull ``` Once you commit this initial version to Git, you can update any configuration and deploy it to the same organization using the following command: ```plaintext prd push ``` ## Two environments for sandbox and production A bit more advanced setup with two environments: sandbox and production. Typically, the solution is first deployed to the sandbox organization (`source`) and once tested, released to production (`target`). ![](https://cdn.document360.io/1bb6f6bc-c04c-4ace-a1e8-8c4cfd3fbc98/Images/Documentation/Deployment%20patterns%2002.png) v2 (latest)v1 (deprecated) > [!WARNING] > 🚧 WORK IN PROGRESS 🚧 > > We're still working on this part and would love to hear your thoughts! Feel free to [share your feedback](https://github.com/rossumai/university/discussions) or [submit a pull request](https://github.com/rossumai/university/pulls). Thank you! 🙏 To use this pattern, follow the same steps as outlined in the [Simple environment example](/help/docs/deployment-patterns#single-environment-for-sandbox-and-production) and first init your local repository: ```plaintext prd init ``` However, now setup both `source` and `target` organizations: ```json credentials.json {  "source": {    "username": "CHANGE ME",    "password": "CHANGE ME"  },  "target": {    "username": "CHANGE ME",    "password": "CHANGE ME"  } } ``` Notice that `use_same_org_as_target` is now set to false: ```yaml prd_config.yaml source_api_base: 'https://api.elis.rossum.ai/v1' target_api_base: 'https://api.elis.rossum.ai/v1' use_same_org_as_target: false ``` To push local changes to the sandbox, run `push` command: ```plaintext prd push ``` And to release changes to production, run `release` command: ```bash # Preview the changes first: prd release --plan-only # Run the actual release: prd release ``` The local repository should always contain both `source` and `target` organization configurations. They can both be updated by calling `prd pull` command. You can also run `prd pull source` or `prd pull target` to update only one. ## Three environments for sandbox, UAT, and production Finally, the most complex pattern with three environments: sandbox, UAT, and production. In this scenario, several environments are chained one after the other. ![](https://cdn.document360.io/1bb6f6bc-c04c-4ace-a1e8-8c4cfd3fbc98/Images/Documentation/Deployment%20patterns%2003.png) v2 (latest)v1 (deprecated) > [!WARNING] > 🚧 WORK IN PROGRESS 🚧 > > We're still working on this part and would love to hear your thoughts! Feel free to [share your feedback](https://github.com/rossumai/university/discussions) or [submit a pull request](https://github.com/rossumai/university/pulls). Thank you! 🙏 For sandbox and UAT environment configurations, see the [Two environments example](/help/docs/deployment-patterns#two-environments-for-sandbox-and-production). To configure the remaining production environment, it is necessary create a new Git branch and maintain there the configuration (from UAT to Production). Alternatively, for better transparency, create a new folder to store this configuration. This is necessary because `prd` currently doesn't support multi-target configurations out of the box. > [!WARNING] > 💬 YOUR FEEDBACK MATTERS! > > Help us keep this page accurate and useful. Select **Yes** or **No** below, then use the feedback form to propose a correction, ask for clarification, or request a new article.