EXPERIMENTAL vNext Logging Bounded Context Mono Repository
The Logging Bounded Context is used to store technical information to assist debugging, troubleshooting and problem resolution. Logs are consumed from any other Bounded Context [1] and stored for querying and reporting. The log information is stored as “technicalities” and should any loss of data take place, then there should be no other consequence than losing technical ability to understand how the system behaves. All system activities are logged and persisted to allow the Auditing Bounded Context to perform queries against the log data.
See the Reference Architecture documentation logging for context on this vNext implementation guidelines.
The Logging BC consists of the following packages;
client-lib
Client library types.
README
logging-svc
Logging Service.
README
public-types-lib
Public shared types.
README
Please follow the instruction in Onboarding Document to setup and run the service locally.
See the README.md file on each services for more Environment Variable Configuration options.
npm run test:unit
npm run test:integration
Requires integration tests pre-requisites
npm run test
After running the unit and/or integration tests:
npm run posttest
You can then consult the html report in:
coverage/lcov-report/index.html
We use npm audit to check dependencies for node vulnerabilities.
To start a new resolution process, run:
npm run audit:fix
You can check to see if the CI will pass based on the current dependencies with:
npm run audit:check
Execute locally the pre-commit checks - these will be executed with every commit and in the default CI/CD pipeline
Make sure these pass before committing any code
npm run pre_commit_check
As part of our CI/CD process, we use CircleCI. The CircleCI workflow automates the process of publishing changed packages to the npm registry and building Docker images for select packages before publishing them to DockerHub. It also handles versioning, tagging commits, and pushing changes back to the repository.
The process includes five phases.
-
Setup : This phase initializes the environment, loads common functions, and retrieves commits and git change history since the last successful CI build.
-
Detecting Changed Package.
-
Publishing Changed Packages to NPM.
-
Building Docker Images and Publishing to DockerHub.
-
Pushing Commits to Git.
All code is automatically linted, built, and unit tested by CircleCI pipelines, where unit test results are kept for all runs. All libraries are automatically published to npm.js, and all Docker images are published to Docker Hub.
The following documentation provides insight into the logging Bounded Context.