Export and configurations

Configurations and settings

During delivery of source code to a Staging or Live environment some of the environment configurations need to be different. For example, API keys for different connectors and SMTP server settings, which is necessary because you do not want to spam the live accounts with test data.

Continuous delivery automates the delivery of configurations from Development to Live environments. This way, you do not need to manually apply transformation to configurations.

  • Environment configurations
    Environment configurations are delivered with the source code and, therefore, must not be saved in the database. This is because, database is never pushed from Development to Test or Live environments. It is pulled from Live, so that new code changes can be tested against actual live application data.

    NOTE: Labels and messages (resource files) are stored as configurations and not in the database. Therefore, changes to them should pass through the continuous delivery process and not be done on your live environment.

  • Application settings
    On the other hand, there are the application configurations that need to be changed during runtime. Application configuration is a setting that is related to the applications actual functionality and is modified on the Live environment runtime. These settings need to be saved in the database, so that they are not overwritten with each subsequent delivery of code.

The following flowchart demonstrates the flow of code and database:

Continuous delivery - Flow

Environment configurations vs. Application settings

Environment configurations

Application configurations

Related to system setup

Related to applications runtime functionality

No need to change runtime

Need to be modified runtime

Must have different values on different environments:
Development, Test, Live

No need to change on different environments

Should not be stored in the database

Should be stored in the database

Managed by developers

Managed by users

# Export and configurations

Export

The purpose of the export of code changes is to export only the changes to configuration, this way, it does not override configurations that are different on all environments.

Export also takes care of the database, by applying the required changes to the database structure, without overwriting changes in the database that have been done on the Live environment during runtime.

This section contains

Export and deploy database changes
After update of data structure on your local development machine, you export the changes and then automatically import them on the next development environment.
Storage modes of configurations
Learn storage modes of configurations, such as FileSystem, Database, and Auto-storage.
Read-only mode of configurations
When the system is in Auto-storage mode, you can further apply restriction to modify configuration files.
Configure Site Sync for Continuous delivery
To use Continuous delivery with Site Sync for synchronizing content between your Staging and Live environments, configure the module to synchronize only data (content).
Manage configurations in Continuous delivery pipeline
Store Sitefinity CMS configurations as web.config App Settings and manage them for multiple environments in a Continuous Delivery pipeline
Migrate configurations
You migrate Sitefinity CMS configurations from the database to the file system, using an ASPX page, which helps to extract the configurations.
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.