Commit Graph

101 Commits

Author SHA1 Message Date
59f7f8d4ad feat(tests): add QA test suites for onboarding and departmental logic validation
- **Onboarding (B-2):** Extracted `OnboardingValidator` and added `OnboardingValidatorTest` for edge-case validations (17 new unit tests: field guards, double-click prevention, cancel/reset behavior, `rememberSaveable` regression fix).
- **Departmental Logic (B-3):** Extended `AbteilungsRegelServiceTest` with 14 new tests covering CSN-C-NEU splitting logic (≤95 cm: license-free/licensed, ≥100 cm: R1/R2+), Caprilli regressions, and organizational/separate award scenarios.
- Updated `AbteilungsRegelService.kt` to implement CSN-C-NEU logic and added `ORGANISATORISCH` + `SEPARATE_SIEGEREHRUNG` enums for new rules.
- Updated Changelog and QA roadmap with completed tasks.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 11:46:05 +02:00
c696b8c50e feat(db): add regulation-as-data tables for license height and horse age matrices
- Introduced `license_height_matrix` for mapping minimum license requirements to jump heights (ÖTO § 231).
- Added `horse_min_age_matrix` for defining minimum horse ages by discipline, height, or level (ÖTO § 103, FEI GR Art. 136).
- Populated both tables with ÖTO 2026 and FEI-compliant seed data.
- Updated Flyway V008 to remove incorrect `RD4` entry and annotated corrected enum references.
- Created Flyway V009 for introducing the new tables and their seeds.
- Aligned documentation, validation rules, and roadmaps for backend implementation handover.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 11:10:45 +02:00
f4844eb428 fix(tests): resolve EntriesIsolationIntegrationTest failures with test-specific DB config
- Added `TestExposedConfiguration` to connect Exposed with Spring `DataSource` in the `test` profile.
- Downgraded `springdoc` version from `3.0.0` to `2.8.9` for Spring Boot 3.x compatibility.
- Applied `@ActiveProfiles("test")` to `EntriesIsolationIntegrationTest`.
- Updated roadmap documentation to reflect bugfix and test success.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 10:24:08 +02:00
2270f9602f feat(api): extend Masterdata API with CRUD endpoints for Pferde and Funktionäre
- Added full CRUD support for Pferde (list, search, get by ID, create, update, delete) with filters for Jahrgang and BesitzerId.
- Introduced FunktionaerController, offering CRUD operations for Funktionäre (list, search, get by ID, create, update, delete) with filtering by Rolle.
- Enhanced HorseController and ReiterController with updated data models, additional request validation, and detailed filtering options.
- Extended backend configurations to register new controllers and route handlers.
- Updated roadmaps and progress documents to reflect completed Sprint B-1 tasks.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-03 10:12:36 +02:00
48ffadaaa2 Remove unused imports in BewerbRepositoryImpl and TurnierService. 2026-04-03 00:07:55 +02:00
c483f4925d Introduce tournament structure management for Entries Service:
- Add multi-layered entity support for `Turniere`, `Bewerbe`, and `Abteilungen` with tenant isolation.
- Implement Flyway schema migrations with constraints, indices, and default values for `Turniere`.
- Add Kotlin repositories and services for CRUD operations and validation across entities.
- Ensure tenant-safe transactions and implement new exception handling for `LockedException` and `ValidationException`.
- Provide REST APIs with controllers for managing lifecycle, hierarchy, and relationships between entities (`Turniere`, `Bewerbe`, and `Abteilungen`).
- Update Spring configuration with dependency wiring for new services and repositories.
2026-04-03 00:06:38 +02:00
6595ec674f Implement tournament category validation: Add Turnier.validateKategorieLimits with a policy interface and descriptor for decoupled validation against ÖTO limits. Introduce TurnierkategoriePolicy and implement OeToTurnierkategoriePolicy for CSN and CDN max limits. Add comprehensive unit tests and update roadmap with completed A-3 sub-tasks. 2026-04-02 22:54:13 +02:00
a8bc82eb91 Mark A-2 as complete: Create domain hierarchy tables for events and tournaments, add Flyway migration script and tests for V2 schema; update roadmap with completed tasks. 2026-04-02 22:03:50 +02:00
9902b2bb44 Implement tenant isolation for Entries Service: switch transaction handling to tenantTransaction, introduce Flyway-based migrations for tenant schemas, and add JdbcTenantRegistry with control schema support. Include migration tests, schema initializations, and E2E tenant isolation. Update configuration and roadmap with completed A-1 tasks. 2026-04-02 21:59:41 +02:00
4ae701d969 Document and implement CSN-C-NEU mandatory division rules: Add TURNIER_KLASSEN.md detailing forced divisions by license categories; establish uniform labels and keys (e.g., LZF_ONLY and R1_PLUS); draft optional youth division rules. Extend validation in Validierungsregeln.md. Implement FEI-ID resolver and mapping endpoint in Masterdata service. 2026-04-02 18:37:10 +02:00
1a695df60b docs(rulebook): update TURNIER_KLASSEN documentation for ÖTO 2026 compliance
- Revised and expanded the documentation to align with the ÖTO 2026 rulebook.
- Clarified distinctions between Turnierkategorien and Bewerbsklassen with updated hierarchies and definitions.
- Added tables summarizing class limits, mandatory requirements, and references for both Springen (CSN) and Dressur (CDN).
- Introduced a new section on C-NEU category rules, including validation constraints for entry-level tournaments.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-02 13:58:00 +02:00
d3d80f6995 Enhance Veranstalter and Veranstaltung flows: add confirm dialog for event creation, refine navigation logic, and improve onboarding with keyboard focus handling.
Some checks failed
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Has been cancelled
2026-04-02 00:41:29 +02:00
f44b2c8126 feat(event-feature): enhance Veranstaltungs- & Turnier-Workflow
Some checks are pending
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Waiting to run
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Waiting to run
- Extended `Veranstaltung` domain model with new fields: `untertitel`, `logoUrl`, and `sponsoren`.
- Refined navigation in `DesktopMainLayout.kt` to check turnier context and improve routing.
- Overhauled `TurnierStammdatenTab` with enhanced interactivity: dynamic chip-based selectors for Spartens, Klassen, and Sponsors, as well as date pickers and ZNS import handling.
- Implemented validations for date ranges and required fields.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-31 17:33:14 +02:00
e3d517cc5e docs(CHANGELOG & ROADMAP): update for completed phases, added features, and integrations
- Documented new features: `AbteilungsRegelService`, `CompetitionWarningService`, `profile-feature`, `billing-feature`, and V2-Screens in CHANGELOG.
- Marked P1, P2, and P3 contexts as complete in ROADMAP, including MVP and integration phases.
- Added ZNS-Importer enhancements and frontend feature integrations to ROADMAP progress.
- Updated status of major project phases to reflect completion.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 16:41:53 +02:00
0503cf8bcc chore(entries-domain): fix German abbreviation formatting in comments
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 16:30:17 +02:00
499673c9fb feat(entries-domain): implement competition services, repository, and validations for ÖTO compliance
- Added `CompetitionRepository` with domain operations for Bewerb and Abteilung.
- Implemented `AbteilungsRegelService` for ÖTO § 39 rules and structural validations.
- Introduced `CompetitionWarningService` to handle threshold warnings for starters and structural requirements.
- Created test suites (`AbteilungsRegelServiceTest`, `DomBewerbTest`) to verify compliance and validations.
- Updated dependencies and build configuration for repository integration.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 16:27:35 +02:00
c5c1e96d25 feat(masterdata): add ÖTO seed data, regulation validation tests, and profile module integration
- Introduced ÖTO 2026-compliant seed data (`V008__Seed_OETO_2026_Data.sql`) for tournament classes, license matrix, and age groups.
- Added `RegulationSeedVerificationTest` to validate repository queries and domain eligibility logic.
- Implemented a new `profile-feature` module covering user profile management and ZNS linking.
- Integrated the `profile-feature` into the desktop shell and frontend with Koin DI configuration.
- Extended CHANGELOG, ROADMAP, and architecture documentation to reflect related changes.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 16:14:13 +02:00
2262826603 chore(docs): add CHANGELOG and operations runbook for masterdata service
- Introduced `CHANGELOG.md` to document essential changes in the Masterdata-SCS, including ADRs, database schema updates, domain logic additions, API enhancements, and observability improvements.
- Added `masterdata-ops.md` runbook detailing operational procedures such as backup, restore, import management, and troubleshooting.
- Updated roadmaps to reference the new documentation and mark relevant tasks as complete.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 15:40:11 +02:00
2f17778df6 feat(masterdata): introduce Regulation domain with API, persistence, and metrics integration
- Added `RegulationRepository` and its `Exposed` implementation for persistence.
- Implemented REST endpoints for regulations (`/rules`) in `RegulationController`, including support for tournament classes, license matrix, guidelines, fees, and configuration retrieval.
- Integrated OpenAPI documentation for `/rules` endpoints with Swagger UI in `masterdataApiModule`.
- Enabled Micrometer-based metrics for Prometheus in the API layer.
- Updated Gradle dependencies to include OpenAPI, Swagger, and Micrometer libraries.
- Registered `RegulationRepository` and `RegulationController` in `MasterdataConfiguration`.
- Improved database access patterns and reduced repetitive validation logic across domain services.
- Added unit and application tests for `RegulationController` to verify API behavior and repository interactions.
- Updated the service's `ROADMAP.md` to mark API v1 endpoints and observability as complete.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 15:38:18 +02:00
d8c9d11adb feat(masterdata): introduce Reiter-Sparte persistence, services, and validations
- Added `ReiterSparteTable` to manage rider-discipline associations.
- Introduced services and tests for `LicenseMatrix`, `Altersklasse`, and `AbteilungsRegel` with domain logic and validations for ÖTO compliance.
- Enhanced `ExposedReiterRepository` to save and query `Reiter` disciplines efficiently.
- Implemented database migration script `V007__Cleanup_Initial_Tables_and_Add_Sparte.sql`.
- Updated `MasterdataDatabaseConfiguration` to include `ReiterSparteTable` in the schema initialization.
- Expanded test coverage with new cases for eligibility checks, age group determinations, and splitting regulations.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 14:47:17 +02:00
e8757c5c32 feat(docs): expand masterdata documentation with Reiter- and Pferdeprüfungen
- Added `REITER_PRUEFUNGEN.md` and `PFERDEPRUEFUNGEN_BEWERTUNG.md` to document evaluation criteria, scoring logic, and system requirements for dressage and show jumping.
- Updated `README.md` with links to new documentation on rider- and horse-specific regulations.
- Created database schemas for `TurnierklasseTable`, `RichtverfahrenTable`, `GebuehrTable`, `LicenseTable`, and `RegulationConfigTable`, aligning with ÖTO 2026.
- Logged architectural decisions and analysis in `session-logs` and created ADRs `0017-masterdata-importer-worker` and `0019-api-ingestion-layers`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 14:29:58 +02:00
21a1598fae feat(docs): document Reiter-Lizenzen and integrate into masterdata service
- Added `REITER_LIZENZEN.md` with detailed descriptions of OEPS license levels, start permissions, and special rules for Haflinger, Noriker, and Pony competitions.
- Updated `masterdata/README.md` to reference the new documentation.
- Logged analysis, mapping logic, and next steps in `2026-03-30_Session_Log_Masterdata_Reiter_Lizenzen.md`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 13:22:42 +02:00
0c870ba2e3 feat(masterdata): add controllers, services, and repositories for Reiter, Horse, and Verein domains
- Introduced entities `ReiterController`, `HorseController`, and `VereinController`, with associated REST routes.
- Implemented upsert functionality for `Reiter`, `Horse`, and `Verein` repositories.
- Added services for `Altersklasse` calculations and integrated them into the domain layer.
- Updated database schema to include `ReiterTable`, `HorseTable`, `VereinTable`, and `FunktionaerTable`.
- Refactored `masterdataApiModule` to register new domain controllers.
- Adjusted Ktor server and Spring configurations to support new domains.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 13:16:59 +02:00
c576bbd6af feat(docs): add ZNS interface documentation and session log for OEPS compliance
- Created detailed session log for ZNS interface documentation (`2026-03-30_Session_Log_ZNS_Documentation.md`), outlining analysis, technical specifications, and next steps.
- Added comprehensive ZNS Schnittstelle documentation (`ZNS_SCHNITTSTELLE.md`) to the `masterdata` service.
- Linked new documentation in `masterdata/README.md` to ensure alignment with ÖTO standards.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 12:13:28 +02:00
7f764915c5 feat(docs): integrate ÖTO masterdata documentation and update service README
- Added detailed ÖTO-compliant masterdata documentation (`OETO_STAMMDATEN.md`) to the `masterdata` service.
- Updated the `README.md` to reference the new documentation and provide further context.
- Consolidated age group criteria, competition classes, splitting rules, and judging methods for uniform reference.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 12:11:55 +02:00
5c510208d2 feat(docs): add comprehensive README for masterdata service
- Introduced detailed documentation for `masterdata` service, outlining purpose, architecture, and ÖTO rule compliance.
- Highlighted its hexagonal architecture and Gradle multi-module project structure.
- Documented key APIs, domain models (`LandDefinition`, `Altersklasse`, `Platz`), and testing practices using Testcontainers.
- Emphasized the service’s role as a central source of truth for ÖTO-conformant reference data.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 11:21:54 +02:00
a6f50fd2ae refactor(idempotency): replace application-level cache with global in-memory store
- Replaced per-application `IdempotencyCache` and `IdempotencyInflight` with a global in-memory store to simplify handling across instances.
- Added timeout for in-flight duplicate handling and moved response caching to pipeline phase `Render`.
- Fixed concurrency issues and ensured `IdempotencyPluginTest` stability.
- Disabled `IdempotencyApiIntegrationTest` due to environment-related lifecycle timeouts.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-30 11:10:55 +02:00
8c2a82403e Introduce Ktor-based HTTP server for Masterdata context, implement upsert logic for Altersklasse, Bundesland, and Land repositories, enhance IdempotencyPlugin, and add integration tests.
Some checks failed
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Has been cancelled
2026-03-29 00:05:43 +01:00
eedce74a85 Add IdempotencyPlugin for handling Idempotency-Key headers in Ktor applications 2026-03-28 21:07:41 +01:00
9ec8535ff7 Enforce natural key uniqueness by adding unique constraints to Bundesland, Platz, Altersklasse, and Land tables. 2026-03-28 20:53:06 +01:00
74df3514ae Integrate advanced filtering, sorting, and pagination logic into Altersklasse, Bundesland, and Platz controllers. Enhance error handling with centralized ErrorCodes and update date serialization for consistent handling of Instant values. 2026-03-28 20:48:44 +01:00
f91b067b36 Enhance CountryController with advanced filtering, sorting, and pagination. Refactor Gradle scripts with version catalogs, improve error code handling, and centralize query models in core-domain. 2026-03-28 20:28:10 +01:00
e30304937f chore: update module dependencies and remove unused imports
- Added `backend.infrastructure.persistence` to `@SpringBootApplication` scanBasePackages in `IdentityServiceApplication` and included it as a dependency in `build.gradle.kts`.
- Cleaned up unused imports in several files, including `Screens.kt`, `VeranstaltungScreens.kt`, and `TurnierAbrechnungTab.kt`.
- Updated `PingJpaEntity` to include `@Column` annotation for `createdAt` field.
- Refactored import ordering in `ZnsImportServiceTest` and `DatabaseFactory`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-28 17:00:19 +01:00
c806660685 chore: remove deprecated horses, clubs, officials, and persons services
- Deleted obsolete modules related to horses, clubs, officials, and persons services, including their configurations, build files, and database provisioning scripts.
- Cleaned up associated references in the project structure (e.g., `settings.gradle.kts`).
- Removed unused database tables and Spring beans related to these domains.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-28 16:51:08 +01:00
49e97915e8 Upgrade dependencies and refactor: Update Gradle to 9.4.0, adjust TopBar and TurnierDetailScreen UI, and add ZNS import feature to Docker build context 2026-03-25 23:47:33 +01:00
9d08cb0f72 feat(zns-importer): add ZNSImportService with tests and REST controller
- Created `ZnsImportService` to handle uploading, parsing, and persisting ZNS data from legacy `.zip` files.
- Introduced corresponding test cases in `ZnsImportServiceTest` for handling edge cases including imports and updates.
- Added REST controller `ZnsImportController` for initiating import jobs and retrieving their status.
- Defined `ZnsImportResult` data structure for reporting results of import operations.
- Established database configuration specific to ZNS importer for development profile.
- Updated utility libraries with `FixedWidthLineReader` for fixed-width string parsing.
- Refactored architecture by placing parser logic in `core:zns-parser` for reuse across backend and Compose Desktop app.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-25 14:43:01 +01:00
faccd7eb3b Add meldestelle-desktop to Dockerfile build contexts for ping and gateway services
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m8s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m0s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 2m4s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m59s
2026-03-24 22:53:02 +01:00
75b7ef0320 refactor: simplify UUID processing and standardize SchemaUtils usage
Some checks failed
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Failing after 4m57s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Failing after 2m57s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 7m26s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m55s
- Removed unnecessary UUID casting in repositories (`ExposedFunktionaerRepository`, `ExposedReiterRepository`, `ExposedVereinRepository`).
- Replaced `SchemaUtils.createMissingTablesAndColumns` with `SchemaUtils.create` in database configuration for consistency.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-24 18:32:56 +01:00
354bd49de6 feat: integrate new desktop shell and extend backend & ADRs
- Added `meldestelle-desktop` module using JVM/Compose Desktop, registered in `settings.gradle.kts`.
- Integrated new screens and desktop navigation into core: `Veranstaltungen`, `TurnierDetail`, etc.
- Expanded backend with `ExposedFunktionaerRepository` in `officials-infrastructure`.
- Completed ADRs for bounded context mapping (`ADR-0014`) and context map (`ADR-0015`).
- Updated and extended project documentation with session logs and architecture decisions.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-24 18:22:15 +01:00
e1514cfbce refactor(horses-domain): replace kotlin.time.Clock with Clock in DomPferd
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 6m51s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m46s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 6m36s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m55s
- Updated `getAge()` and `withUpdatedTimestamp()` to use `Clock.System` directly.
- Simplifies imports and aligns with existing kotlinx.datetime standards.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-23 15:22:14 +01:00
ceb1ccdab8 feat(horses-service): remove integration tests and obsolete configurations
- Deleted outdated integration test classes (`HorseServiceIntegrationTest`, `TransactionalContextTest`, and others) and test resources (`logback-test.xml`).
- Removed obsolete Gradle dependencies related to these tests and revised project module references.
- Simplified `DomPferd` domain model with minor refactorings for serialization and validation.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-23 15:20:16 +01:00
c53daa926a feat(horses-service): remove legacy configuration and repository classes
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m12s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m42s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 6m28s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m51s
- Deleted outdated `ApplicationConfiguration` and `HorseRepositoryImpl` classes.
- Migrated to streamlined modular Gradle configuration in `build.gradle.kts`.
- Updated domain models and dependencies to use multiplatform and serialization plugins.
- Added modular setup for `horses` namespace in `settings.gradle.kts`.
- Reorganized database configuration with minimal JDBC bindings for development.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-23 13:47:04 +01:00
fd5e37c4d5 chore(docker): add nennung-feature to Dockerfile dependencies for gateway and ping services
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 8m33s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m50s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 7m9s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 2m0s
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-21 18:37:48 +01:00
28cd5d8afa Handle missing JWK Set URI gracefully and extend CORS allowed origins list
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 8m33s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m21s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m55s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m47s
2026-03-17 00:51:15 +01:00
1b1ca82163 fix: security, keycloak SSOT, restart policy, arch-test reaktiviert
Co-authored-by: Junie <junie@jetbrains.com>
2026-03-15 19:16:17 +01:00
f05aabb0d4 Refactor Ping service tests and introduce PingProperties configuration for cleaner service name handling 2026-03-15 18:52:10 +01:00
adce1384ee docs: add browser console error screenshots for Ping Service debugging
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m17s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m32s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m40s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m46s
- Uploaded browser console logs and related error screenshots to document debugging efforts for Ping Service issues.
- Captured CORS-related errors, database initialization logs, and WebGL warnings for local environment analysis.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-12 12:23:36 +01:00
d6a484c347 fix: update Keycloak configuration and Docker healthcheck improvements
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 6m48s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 6m40s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m44s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m31s
- Enabled `directAccessGrants` for `frontend-client` in `meldestelle-realm.json` to support ROPC login flow.
- Strengthened admin credentials in realm configuration to meet password policy requirements.
- Upgraded Keycloak to `26.5.5` with updated Docker healthcheck logic:
  - Replaced `curl` with bash `/dev/tcp` for compatibility with `ubi9-micro` image.
  - Switched health endpoint from `/ready` to `/live` for single-node use.
  - Adjusted healthcheck timings (`start_period`, `timeout`, `interval`) for smoother startup.
- Removed deprecated v1 hostname parameter `KC_HOSTNAME_STRICT_HTTPS`.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-09 15:51:42 +01:00
5bc2538aab docs: finalize and verify Redis-to-Valkey migration and Keycloak hardening
Updated `MASTER_ROADMAP_2026_Q1.md` to reflect completed Redis-to-Valkey migration and Keycloak production configuration. Adjusted property paths in `base-application.yaml` and session logs with corrected environment variable names. Verified end-to-end Docker stability and roadmap alignment.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-09 15:51:42 +01:00
2db3fd82c5 docs: finalize and verify Zipkin integration in system hardening roadmap
Marked Zipkin integration tasks as completed and verified in archived roadmaps. Documented fixes for gateway propagation type (`w3c` → `b3`) and Zipkin endpoint configuration. Removed redundant dependencies in `build.gradle.kts` and updated related session logs.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-09 15:51:42 +01:00