widget-exactly-one-source-invariant-enforced-at-three-layers
R-Dash Widget model enforces the exactly-one-source invariant (either Cube semantic query OR raw SQL, never both/neither) at three independent layers: Pydantic validator (request-time), Postgres CHECK constraint (DB-time), and service-layer domain error (application-time). This triple enforcement ensures correctness even when layers are bypassed independently.
Related
- widget-exactly-one-source-invariant-enforced-three-layers
- widget-data-source-invariant-enforced-at-three-layers
- widget-exactly-one-source-triple-invariant
- salesforce
- r-dash-wave-2-pass-1-m4-semantic-m5-governance-models-rls-en
- widget-exactly-one-source-triple-enforcement-pattern
- exactly-one-source-invariant-on-widget-requires-three-layer