Authorization beyond sign-in.
A valid account attempts to access another organization’s record.
DESIGN RESPONSEKeep organization context in API and data queries; validate ownership of linked records.
Tenant isolation & authorization02 / KAP · SECURITY ENGINEERING
The questions behind the interface: who can act, which data they can access, and what happens when inputs or expectations break.
A valid account attempts to access another organization’s record.
DESIGN RESPONSEKeep organization context in API and data queries; validate ownership of linked records.
Tenant isolation & authorizationA repeated payment or untrusted invoice total changes the financial record.
DESIGN RESPONSEDefine idempotency, validate fields, calculate authoritative totals, and review concurrent writes.
Financial integrity & household accessA record is visible, but some of its fields should remain private.
DESIGN RESPONSEEnforce audience rules and field visibility on the server; review sensitive record handling.
Audience rules & field privacyTRACEABILITY / SOURCE REVIEW
Selected test definitions, reviewed November 6, 2026. These are source references, not live test results.
apps/api/test/tenant-isolation.test.ts66c5f1ab575402tests/finance.test.tsa67c022b5d4803src/lib/invoice-model.test.ts9b83e5f1433904src/features/privacy/visibility.test.ts177ebe623a45Application test suites were not rerun. These examples do not represent a complete security audit or production certification.
AN ILLUSTRATIVE EXAMPLE
Use the model to explore how identity, role, and resource ownership work together. The case studies describe the actual project evidence.
Explore how role and ownership change an access decision.
The role permits editing, and the resource belongs to the user’s organization.
An editing role does not grant access to another organization’s records.
Membership allows the record to be read; the viewer role does not permit changes.
Illustrative logic. No live requests or tests run.
Read the KapCore case studyREVIEW METHOD
Identify the actors, resources, sensitive fields, and decisions that cross a trust boundary.
Try the wrong owner, a repeated action, an expired permission, or an invalid relationship.
Read the implementation and tests, then define the additional checks needed for production.