/
NUTRINTG Database Schema Management (OUTDATED)

NUTRINTG Database Schema Management (OUTDATED)

Short Summary

Repo URL: https://bitbucket.org/rbdigital/cdp-to-sfmc-database-manager.

The purpose of this project is to create/update all the necessary collections for CDP-to-SFMC integration with appropriate indexes and data if necessary. It is powered by Mongock framework version 4 Mongock and based on change logs and change sets. Considering that the project was created long after CDP-to-SFMC integration went live, change sets usually check if collection already exists before creating it instead of dropping and re-creating. This is done in order to avoid the loss of crucial data that we may already collected. However, indexes are ensured anyway.

Implementation and Testing

In order to add new changes to schema, create a new feature branch from development branch. Add a new class with @ChangeLog annotation or add new @ChangeSet annotated method to existing one. For storing its own metadata Mongock framework uses mongockChangeLog and mongockLock collections.

In order to test changes:

  1. Create a PR.

  2. Log in to Jenkins jenkins-feature-front.frankfurt.rbdigitalcloud.com and go to cdp-to-sfmc-database-manager.

  3. Go to PR section and start build from PR on feature environment.

  4. If everything works as expected, merge a PR, release a new version using Bitbucket pipelines and run on Jenkins from master branch.

Build and Run

  1. Go to the following path in Jenkins. This is an example, not necessarily a PR, could be a master branch.

  2. Select a profile.

  3. Click Build button.

  4. After the build is finished, an email will be sent to cdp.middleware@rb.com with build details.

Encryption

Encryption is implemented with Jasypt Spring Boot Starter and uses asymmetric cryptography with the same keys as in cdp-to-sfmc-integration, sfmc-to-cdp-integration and Mule 3 projects.
Sensible data to be encrypted: SFTP connection details in supported regions files, MongoDB credentials in application properties.