Stage 03: Commons Libraries
Stage 03 builds the shared commons libraries that provide cross-cutting concerns (security, multi-tenancy, observability) to all services.
Source file: scripts/stages/03-build-commons.sh
Libraries Built
| Library | Language | Key Modules |
|---|---|---|
| commons-java | Java/Maven | JWT auth, tenant context, RBAC, metrics |
| commons-python | Python/pip | FastAPI middleware, structured logging, config |
| commons-typescript | TypeScript/npm | API client, shared types, UI components |
Build Order
Commons must be built before services because they are direct dependencies:
# 1. Java commons - install to local Maven repo
cd commons/commons-java
./mvnw clean install -DskipTests -q
# 2. Python commons - editable install
cd commons/commons-python
python3.11 -m pip install -e ".[dev]"
# 3. TypeScript commons - npm install and build
cd commons/commons-typescript
npm install && npm run buildDependency Verification
# Check for commons-java artifact
[[ -f "${MATIH_ROOT}/commons/commons-java/target/commons-java.jar" ]]Dependencies
- Requires:
02-build-base-images - Required by:
04-build-service-images