AI Commerce supports a separate development environment for partners
We describe how to set up AI Commerce dev environment and how it works per tenant, as well as the benefits and key differences from a production environment.
Table of Contents
In this article, we will review AI Commerce 's tenant-specific development environment (dev environment) and its benefits. The dev environment allows you to test new features or integrations without compromising the stability of your production environment. It is a separate copy of the main environment, but shares many of the same services to make development as close to real-world conditions as possible.
Key features and deployment
-
Tenant-specific pricing
- A small monthly fee is charged for the development environment, which is determined by the scope, integrations, and requirements of the environment.
- Each customer gets their own dev environment per tenant.
-
Subdomain for dev use
- The development environment uses the format
dev.your-store.fi
, where AI Commerce sets up the environment upon separate request. - The services utilize components familiar from production, but with different identifiers to avoid conflicts.
- The development environment uses the format
-
Differentiation of services
- API Gateway : Uses different “stages” than production (e.g. “dev -stage”) to avoid mixing calls.
- CloudFront distribution : Your own dev version, replicated from the production distribution, but using different origins.
- S3 Bucket : The Dev environment has a dedicated storage container for UI (e.g. Svelte) assets.
- Lambda function : Named as “serverless-store-dev” (vs. -prod ) for the prompt environment.
- Session management and Redis : Separate instances to keep sessions from mixing with production.
-
Database : The Dev environment has the option to use a separate database or dev table (e.g.
store_dev
). Structural updates are pushed to both environments, but data is not automatically synchronized.
-
GitHub branch for development
- The branch corresponding to the development environment is named as
store-dev
. - The same developers who have access to the production branch automatically also have access to the dev branch.
- The development branch is a full copy, but it allows for your own commits and testing without disrupting production.
- The branch corresponding to the development environment is named as
-
IAM permissions management
- The development environment and production environment utilize the same IAM policy so that there is no need to create completely separate accounts for developers.
- Users basically have the same access rights to both environments, unless otherwise specified.
-
Images and other static assets
- The development environment uses the production image repository by default, which reduces duplication.
- If new product information or data is moved from production to development in the database, the image paths will automatically point to the production S3 location.
-
Backup responsibilities
- The development environment is not backed up by AI Commerce . Backups and any transfers are the responsibility of the developer.
- However, production structural updates (schema) are imported into both environments automatically.
Where do you edit from?
- Placing an order : The development environment is set up by AI Commerce upon separate request. You can contact us if you wish to agree on costs and a preliminary schedule.
-
Environment configuration : You can manage service parameters (e.g. dev stack IDs and dev database) in a separate admin panel, if the customer has one, or in
store-dev
branch of GitHub. - Data migration : If you want to copy database rows from production to dev environment (e.g. product data), it must be done manually, as there are no automatic synchronizations.
Summary
AI Commerce 's separate development environment is an efficient way to test new features and ensure production stability. It is as similar as possible to the production environment, but changes and data made in the dev environment do not affect the production side. This allows you to develop, test, and deploy new features in a controlled manner.