oatpp-authkit/test
Uwe Schuster b5e1ea1894 #12: per-decorator migration kit (Prereq.hpp)
Each decorator now bundles its schema prereqs alongside its code via
DecoratorPrereq (additive CREATE-IF-NOT-EXISTS) and ReshapeStep
(non-idempotent reshape gated on a detectSql probe).

applyDecoratorMigrations<Decorators...>(table, probe, exec, recorder)
walks the listed decorators at startup, runs every PREREQ, runs every
reshape step whose probe returns false. Database-agnostic — consumer
wires probe/exec to their DbClient. SCHEMA_MIGRATIONS_TABLE_SQL is
provided for observability; the detect-probe is the source of truth.

TemporalRepository ships add_valid_from / add_valid_until /
drop_unique_entity_id / composite_unique (UNIQUE(entity_id, valid_until)
so close-then-insert can run in a deferred-FK transaction).
AuditLogRepository ships the audit_log CREATE TABLE.
ScopeGuardRepository ships nothing — exposes empty PREREQ + zero-length
RESHAPE_STEPS so it can be listed in applyDecoratorMigrations alongside
the schema-touching decorators without SFINAE.

Closes #12

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 21:47:03 +02:00
..
CMakeLists.txt #12: per-decorator migration kit (Prereq.hpp) 2026-04-29 21:47:03 +02:00
test_audit_log_repository.cpp #11: AuditLogRepository<T> + IAuditSink — cross-cutting audit decorator 2026-04-29 15:54:11 +02:00
test_body_size_limit.cpp #4: BodySizeLimitInterceptor — fail-closed on missing/malformed Content-Length 2026-04-25 21:36:50 +02:00
test_decorator_migrations.cpp #12: per-decorator migration kit (Prereq.hpp) 2026-04-29 21:47:03 +02:00
test_json_serialization.cpp #6: route ad-hoc JSON through ObjectMapper (Option A — DI everywhere, all-in-one) 2026-04-25 21:56:05 +02:00
test_negotiation.cpp #2: Browser-friendly 401/403 — content-negotiate JSON vs HTML/redirect 2026-04-25 13:23:08 +02:00
test_queryable.cpp #9: Optional IQueryable<T> capability + in-house query AST 2026-04-29 12:55:29 +02:00
test_repository_decorators.cpp #10: TemporalFieldTraits<T> — decouple decorator from canonical column names 2026-04-29 14:23:40 +02:00
test_repository_interface.cpp #10: TemporalFieldTraits<T> — decouple decorator from canonical column names 2026-04-29 14:23:40 +02:00
test_security_headers.cpp #3: SecurityHeadersInterceptor — strict baseline + CspOverride ctor (Option B) 2026-04-25 21:54:58 +02:00
test_temporal_field_traits.cpp #10: TemporalFieldTraits<T> — decouple decorator from canonical column names 2026-04-29 14:23:40 +02:00