Add Request Context blueprint (Org/User/Nil) and ADR 016

Summary

  • Adds contexts.md: names the three request contexts GitLab has always had — Organization, User, and Nil — as a single model, states which one legacy behavior always fell into, and works out what isolation and Cells mean for each.
  • Adds ADR 015: makes home_organization_id optional and defines the Organization-scoped query filter rule, closing a gap the isolated-Organization work knowingly left open.
  • Reconciles _index.md, users.md, current_organization.md, and faq.md with this model — several pages predated it and stated the opposite (single-Organization-per-user, NOT NULL organization_id, Organization context as the only context).

Depends on !20566 (merged) (ADR 016: non-isolation is a permanent Organization state) for one fact this model assumes: that non-isolated Organizations are permanent, not transitional.

Test plan

  • Confirm contexts.md accurately describes the three-context model, the anchor/context distinction, and the Cells implications.
  • Confirm ADR 015's home_organization_id and query-scoping decisions are correct, including the still-open Organization.count == 1 question and the per-route context decision this does not resolve.
  • Confirm the blueprint updates are consistent with the model and don't overstate anything left unresolved.

Merge request reports

Loading
Loading