Keep user and organization data separated

Connect resource authorization with the boundaries controlling reuse of generated responses.

When to use this guide

Use this when APIs and shared caches handle user- or organization-specific data.

Review whether identity separation is preserved both when retrieving data and when reusing responses.

Where to start

  1. 1 / 3

    Map callers, resources, and actions

    Read who may act on which resources through detail, list, and export routes.

    Evidence to retain

    Authorization conditions mapped to existing tests.

  2. 2 / 3

    Read response sharing rules

    Compare Cache-Control, CDN settings, and key variation on identity-dependent routes.

    Evidence to retain

    The rationale for shared responses and identity-separated responses.

  3. 3 / 3

    Record the tested boundaries

    Review existing allow, deny, and cross-user isolation tests, identifying untested routes and conditions.

    Evidence to retain

    Test scope by identity, organization, route, and cache state.

Apply the rules to your environment

Read the source incidents

Selected examples. Each record retains its evidence status, unknowns, and sources.

Connect terms to review questions

Authorization
The decision about whether a caller may perform a particular action on a particular resource, separate from establishing their identity.
Does the decision still hold when the resource belongs to another user or organization?
Open the related inspection rule →
Tenant boundary
The separation between organizations sharing an application. Review whether data and permissions can cross that separation.
Is the organization boundary checked for lists, detail views, and exports?
Open the related inspection rule →
Cache
Storage and reuse of responses. Define who may share them and the conditions under which they can be reused.
Can a response tied to one user be reused for someone else?
Open the related inspection rule →

Keep conclusions within the evidence

  • Login requirements and hard-to-guess identifiers do not replace resource authorization.
  • Private and no-store have different meanings; a setting name cannot establish coverage of every route.

Correct retrieval authorization still needs a separate review of response reuse.

References and review dates

Learning review 2026-11-12 · Catalog review 2026-11-09

Give this scope to your AI

Share these two rules and examples without expanding the scope. Checks without evidence remain unverified.

Open this inspection pack →

Explore another scenario