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.bootstrap to true. 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 with repo.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.yaml file, organized by group, project, and module as defined in the configuration model.
  • All data under /hcm:hcm is 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.

Share Feedback
Page: /build/configuration-management/bootstrapping
Section: Build
Category *
Bootstrapping | Bloomreach Content Documentation