Nutze diese Vorlage, um den freigegebenen Technologie-Stack für ein Projekt zu dokumentieren. Speichere sie als
docs/tech-stack.md und verlinke auf umsetzungsrelevante Richtlinien (Styleguides, Build-Pipelines,
Sicherheitsvorgaben).
# Projekt <Name> – Tech-Stack
## Java Backend
- Sprache & Version: Java 17 (LTS)
- Framework: Spring Boot 3.x
- Build-System: Maven 3.9 (Wrapper im Repo)
- Sicherheitsbibliotheken: Spring Security, OWASP Dependency-Check Plugin
- Coding Standards: [Java Secure Coding Guidelines](../../leitfaden/java-secure-coding.md)
- Deployment: Container (Base Image `eclipse-temurin:17-jre`)
- Besonderheiten: TLS erzwingen, REST-Endpoints mit OAuth2 Resource Server absichern
## Node.js Backend
- Laufzeit & Version: Node.js 20 LTS
- Framework: NestJS 10
- Paketmanager: pnpm 8 (via `pnpm-lock.yaml`)
- Sicherheitsbibliotheken: Helmet, Joi Validation, `npm audit` in CI
- Coding Standards: ESLint Config `@company/security-node`
- Deployment: Container (Base Image `node:20-alpine`, Root-less)
- Besonderheiten: Secrets über Process-Env (Vault Injection), Rate Limiting via API Gateway
## PHP Komponenten
- Version: PHP 8.2
- Framework: Laravel 10
- Paketmanager: Composer 2
- Sicherheitsbibliotheken: Laravel Sanctum, PHPStan Level 8, Rector Security Rules
- Coding Standards: PHP-CS-Fixer Config `php_cs.php`
- Deployment: FPM (Container `php:8.2-fpm-alpine`), Nginx as Frontend
- Besonderheiten: Input Validation über Form Requests, Logging über Monolog mit JSON Formatter
## Perl Utilities
- Version: Perl 5.38
- Framework/Modules: Mojolicious für APIs, DBI für Datenbankzugriff
- Paketmanager: cpanminus (Dependency Lock via `cpanfile` + `cpanfile.snapshot`)
- Sicherheitsbibliotheken: Data::Validator, Crypt::JWT, Perl::Critic Policy Suite
- Coding Standards: Perl::Tidy + Perl::Critic (`.perlcriticrc` im Repo)
- Deployment: Docker `perl:5.38-slim`, Skripte laufen als Non-Root User
- Besonderheiten: Logging über Log::Any, Secrets per ENV (Injected by Vault Agent)
## Allgemeine Voraussetzungen
- Container Registry: registry.company.local
- Basis-Image-Scanning: Trivy (CI Pipeline Schritt `scan-images`)
- Secrets Management: HashiCorp Vault, Referenzen in GitLab CI via `vault:k/v2/...`
- Monitoring/Logging: OpenTelemetry Collector, Weiterleitung an ELK Stack
- Review-Gates: Pull Request mit Security-Checklist, Approval durch Security Champion
## Änderungs- und Freigabeprozess
- Änderungen am Stack erfordern Ticket der Kategorie `SEC-STACK` mit Risikoanalyse.
- Freigabe: Security Champion + Produktverantwortliche Person (RACI: R = Engineering, A = Product Owner).
- Nachweis: aktualisierte Tech-Stack-Datei, verlinkt im Architektur-ADR (`adr/0002-tech-stack.md`).