feat: archive zoo_backup for home sync
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# Paisy — Technology Stack
|
||||
|
||||
## Languages & Runtimes
|
||||
|
||||
| Technology | Version | Usage |
|
||||
|-----------|---------|-------|
|
||||
| Java | 17 (compiler release) | All backend modules |
|
||||
| JavaScript/Node.js | Node 24 (Chainguard) | Answering-machine React frontend |
|
||||
| Groovy | (Jenkins) | Jenkinsfile pipeline scripting |
|
||||
| JavaScript | ES6+ | `gen_trigger.js` — Quidam ISAM trigger generation |
|
||||
| SQL | H2 + Oracle dialects | Database migrations and queries |
|
||||
|
||||
## Build System
|
||||
|
||||
| Tool | Details |
|
||||
|------|---------|
|
||||
| Maven | Multi-module POM, `${revision}` for version injection |
|
||||
| Maven Wrapper | Not used — relies on CI image Maven |
|
||||
| npm | Frontend build for `am-frontend/` |
|
||||
|
||||
### Key Maven Commands
|
||||
|
||||
```bash
|
||||
# Full build
|
||||
mvn clean install -f java/pom.xml --batch-mode -U -Drevision=<version>
|
||||
|
||||
# Single module with dependencies
|
||||
mvn clean install -pl modules/cs-modules/<module> -am -DskipTests
|
||||
|
||||
# Deploy to Artifactory
|
||||
mvn deploy -f java/pom.xml -DskipTests --batch-mode -U -Drevision=<version>
|
||||
```
|
||||
|
||||
## Frameworks & Libraries
|
||||
|
||||
### Core
|
||||
|
||||
| Library | Version | Purpose |
|
||||
|---------|---------|---------|
|
||||
| Spring Boot | 3.5.11 | Application framework |
|
||||
| Spring Shell | 3.3.3 | CLI command dispatch |
|
||||
| Lombok | (managed) | Boilerplate reduction (`@Data`, `@Builder`, `@Slf4j`) |
|
||||
| H2 Database | 2.4.240 | Dev/on-prem embedded database |
|
||||
| Flyway | (Spring Boot managed) | Database migrations |
|
||||
| JPA/Hibernate | (Spring Boot managed) | ORM layer |
|
||||
|
||||
### Data Processing
|
||||
|
||||
| Library | Purpose |
|
||||
|---------|---------|
|
||||
| JAXB | XML marshalling/unmarshalling for GKV data exchange |
|
||||
| Apache Commons CSV | Semicolon-delimited CSV (ISO-8859-1) |
|
||||
| Custom `flatfile-parser` | German flat-file format with `@Datenbaustein`/`@DBField` annotations |
|
||||
|
||||
### Infrastructure
|
||||
|
||||
| Technology | Purpose |
|
||||
|-----------|---------|
|
||||
| NATS JetStream | Message broker (subject: `{bbnr}.{ak}.{app}.{stage}[.{type}]`) |
|
||||
| Docker | Container builds for AM, Meldezentrale, NATS |
|
||||
| Kubernetes (EKS) | Cloud deployment target |
|
||||
| Helm | Kubernetes deployment charts (`ferris-wheel/web-service`) |
|
||||
|
||||
## CI/CD
|
||||
|
||||
| Component | Details |
|
||||
|-----------|---------|
|
||||
| Jenkins | Pipeline-as-code via `Jenkinsfile` |
|
||||
| Jenkins Library | `@Library('adp-jenkins')` — shared pipeline library |
|
||||
| Docker Images | `maven:3.9-jdk-17` (main), `maven:3.8.3-jdk-11` (kernpruefung-rest) |
|
||||
| Artifactory | `repository.esi.adp.com/RD-GERMANY/` — Maven + Docker registry |
|
||||
| SonarQube | Code quality scanning (non-release branches) |
|
||||
| Secrets Scan | `secretsScan()` in pipeline |
|
||||
|
||||
### Pipeline Stages
|
||||
|
||||
1. **Wartungswechsel** — version rotation across past/current/future branches
|
||||
2. **Build** — Maven compile + test for `java/pom.xml`
|
||||
3. **Sonar + Secrets** — quality gate + secrets detection
|
||||
4. **Docker Build** — AM, Meldezentrale, NATS (parallel)
|
||||
5. **Cherry-pick** — auto-propagate merges upward (past→current→future)
|
||||
6. **Deploy** — Artifactory publish + Kubernetes deploy
|
||||
7. **Tag Release** — Git tag on release branches
|
||||
8. **Version Update** — auto-bump patch version
|
||||
9. **EusanGen** — standalone sanctions list update (manual or `eusan/*` branch trigger)
|
||||
|
||||
## Database
|
||||
|
||||
| Mode | Engine | Usage |
|
||||
|------|--------|-------|
|
||||
| Development | H2 (file-based) | Local dev, testing, legacy on-prem |
|
||||
| Production | Oracle | Multi-tenant, shared schema per BBNR |
|
||||
|
||||
### Migration Naming Convention
|
||||
```
|
||||
V{yyyy_MM_dd_HH_mm_ss}__C_{app_revision}_{entity_name}.sql
|
||||
```
|
||||
Separate directories: `db/migration/ORACLE/` and `db/migration/H2/`
|
||||
|
||||
## Encoding
|
||||
|
||||
- Source files: **UTF-8**
|
||||
- CSV files: **ISO-8859-1** (German government standard)
|
||||
- Flat files: **ISO-8859-1** (DSRV/ITSG format)
|
||||
|
||||
## Docker Registry
|
||||
|
||||
| Image | Registry Path |
|
||||
|-------|--------------|
|
||||
| Answering Machine | `docker.repository.esi.adp.com/paisy/answering-machine` |
|
||||
| Meldezentrale | `docker.repository.esi.adp.com/paisy/meldezentrale` |
|
||||
| NATS | `docker.repository.esi.adp.com/paisy/nats` |
|
||||
| Kernprüfung REST | `docker.repository.esi.adp.com/paisy/kernpruefung-rest-service` |
|
||||
|
||||
## Kubernetes Clusters
|
||||
|
||||
| Cluster | Namespace | Purpose |
|
||||
|---------|-----------|---------|
|
||||
| `eks-awsadpworldiat-pr` | `paisyservices-dit` | DIT environment (AM, MZ, NATS) |
|
||||
| `eks-awsdev6` | `pa-kernpruefung-rest-service-dev` | Dev (Kernprüfung REST) |
|
||||
Reference in New Issue
Block a user