Internal Developer Platform · View 12 of 21 · Data
Decisions
- team → component is the load-bearing relationship: cost, on-call, entitlement and exception approval all resolve through it, which is why a component cannot exist without one (ADR-10).
- template_version is an entity rather than a string on the component, so drift, supported floors and retirement are queryable facts (ADR-03).
- evaluation records the point at which it was produced — pull request, pipeline or admission — so an advisory-pass, admission-fail pair is detectable as the defect it is (ADR-06).
Reads as
- exception carries a mandatory expiry and an approver who is not the requester; both are schema constraints rather than process (ADR-08).
- dependency is populated from both declaration and observation, and carries which one it came from.
Omitted
- Two foreign keys are deliberately not drawn — exception.component_id and evaluation.subject_ref — because they cross the whole model and the picture is clearer without them.
- The audit event store, which is append-only, separate by design, and not joined to any of this (ADR-16).