- Shipped
- 21 Agosti 2026, 23:59 UTC
- Author
- Kamo
- Commit
- 3ca2a70
Six tables: the versioned ruleset, its rules and their clauses, the reply grants behind "reply only while their window is open", and the trail of what the policy refused. Every statement is written to be complete and idempotent, because this runner is applied by hand as often as it is run. Pushing this repo deploys nothing -- there is no CI and no workload -- while MediaService and SecurityService both run ddl-auto:none, so nothing creates these tables at their startup either. If the DDL has not landed first, those services deploy cleanly and then throw on every policy read. The DDL for this change was applied to Yugabyte ahead of both service pushes, and verified by running the engine's own two snapshot queries against it rather than by checking the catalogue. The accompanying test compares the entities to these statements by reflection. Inside the initializer Hibernate creates the tables from the entities before any runner executes, so a column missing here is invisible on this side and fatal on the other.