Environment Specific Configuration
Overview
Elastic Path Commerce supports defining different application configuration values for each deployed environment. Configuration is either stored in the Commerce database or provided via configuration files.
Configuration values stored in the Commerce database can be defined using Import/Export XML files and include:
Files based configuration includes:
Defining Environment Configurations
Review the environment directories and the configuration files.
Environment Directories
The extensions/database/ext-data/src/main/resources/environments
directory contains application configuration directories for each of your deployed environments, e.g. ci
, qa
, stage-author
, stage-live
, prod-author
and prod-live
. These are called environment directories.
Default Environment Directory
The environments/default
directory contains files that are used in all environments, unless they are overwritten by files with the same name in a specific environment directory.
Data Population Configuration Files
The following files in the root of an environment directory are used to provide environment-specific configuration to the Data Population Tool.
File | Purpose | Owned By |
---|---|---|
data-population-properties | Defines the data to be processed by the Data Population Tool for the current environment. | Dev team |
filtering.properties | Supplies property overrides for non-secret placeholders defined in Liquibase and Import/Export files. | Dev team |
secure-filtering.properties | Supplies property overrides for secret placeholders defined in Liquibase and Import/Export files. | Dev team (non-prod) / Ops team (prod) |
Application Configuration Files
The files/conf/
subdirectory in an environment folder contains application configuration files. The files are accessible at runtime in the /ep/conf/
directory.
Development teams are free to add any required files or directories to files/conf/
.
Managing Secrets
Secrets can be stored in either the secure-filtering.properties
file if they are used by the Data Population Tool, or in the files/conf/secure
directory if they are accessed by application code at runtime.
The recommended best practices are:
- The development team manages non-secret configuration for all environments.
- The development team manages secrets in non-production environments only.
- The operations team manages production secrets in an encrypted Git repository with the following file structure. See Injecting Commerce Configuration at Runtime.
prod-author
files
conf
secure
author-certificate-1.p12
author-certificate-2.p12
secure-filtering-properties
prod-live
files
conf
secure
live-certificate-1.p12
live-certificate-2.p12
secure-filtering-properties