Follow-up from #248 (PR #249), design spec §9b.
#248 fixed the TypeScript migrate-ts + codegen-ts fail-open where "is this object a DB thing?" was decided by an object-subtype compare instead of by declared/inherited source.* presence. The Java (codegen-spring), Python, Kotlin, and C# generators emit repositories/controllers/DTOs — audit whether their emission gates are the same subtype-proxy with a sourceless fail-open.
Schema/DDL is TS-owned (ADR-0015), so no other port emits CREATE TABLE — lower stakes than the TS half — but the durable principle is the same: DB participation derives from source.*, never from a subtype name. A sourceless custom object.* subtype (or a plain sourceless entity) should not get a generated repository/controller.
Same family as the #228 out-of-scope cross-port audit list. Ref: §9b.
Follow-up from #248 (PR #249), design spec §9b.
#248 fixed the TypeScript
migrate-ts+codegen-tsfail-open where "is this object a DB thing?" was decided by an object-subtype compare instead of by declared/inheritedsource.*presence. The Java (codegen-spring), Python, Kotlin, and C# generators emit repositories/controllers/DTOs — audit whether their emission gates are the same subtype-proxy with a sourceless fail-open.Schema/DDL is TS-owned (ADR-0015), so no other port emits
CREATE TABLE— lower stakes than the TS half — but the durable principle is the same: DB participation derives fromsource.*, never from a subtype name. A sourceless customobject.*subtype (or a plain sourceless entity) should not get a generated repository/controller.Same family as the #228 out-of-scope cross-port audit list. Ref: §9b.