Bootstrapping
When Bloomreach Content starts, it evaluates whether repository data needs to be bootstrapped. This process is managed by the configuration management system and is primarily controlled by the repo.bootstrap system property.
repo.bootstrap
On the first startup, if no repository data exists, Bloomreach Content always bootstraps configuration and content. The value of repo.bootstrap does not affect this initial process.
For subsequent startups, if repository data is already present, the repo.bootstrap system property determines how bootstrapping is handled. Supported values are:
-
false
Bootstrapping is disabled. The system does not process incoming repository data changes, and the repository remains unchanged. -
true
The system processes incoming repository data changes to update the repository.- Configuration: If there are differences between the new bootstrap data and the previous baseline, only those changes are applied. Unchanged nodes and properties are not modified. Manual changes made through the Console or CMS settings management plugin are preserved if they are not part of the new bootstrap data. If any bootstrap change fails, none of the changes are persisted. After a successful update, the configuration baseline is updated.
- Content: After successfully bootstrapping configuration, new content definitions and actions are processed.
- System: The system section of the repository is not modified.
For local development, the default project archetype sets
repo.bootstraptotrue. You can override this by starting the CMS with-Drepo.bootstrap=[false|full]. -
full
The configuration section of the repository is reset to match the bootstrapped configuration. This mode overwrites manual configuration changes that are not included in the project's bootstrap data. After a successful full bootstrap, the configuration matches the baseline. The content and system sections are handled the same way as withrepo.bootstrap=true.
Configuration Baseline
After bootstrapping, the applied configuration model is stored in the repository as a configuration baseline. This baseline is used in future bootstrapping to detect changes between the current repository state and new configuration models.
- The baseline is stored at
/hcm:hcm/hcm:baseline. - It contains copies of all configuration source YAML files and the
hcm-module.yamlfile, organized by group, project, and module as defined in the configuration model. - All data under
/hcm:hcmis read-only. Modifying this data outside of the bootstrap process can cause issues.
Upgrading to brXM 12 or Later
Repositories created with versions earlier than brXM 12 do not contain a configuration baseline. On the first startup after upgrading, the system performs a full bootstrap, regardless of the repo.bootstrap setting. This ensures the repository is aligned with the new baseline configuration.