Files
pi_mcps/zoo_backup/work/rules/memory-bank/tech.md
T
2026-06-24 19:27:14 +02:00

4.2 KiB

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

# 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)