noCV
ATENANT-103 · Inventory tenant relationships

Reject null organization scope in protected repository methods

Practice briefBugFoundational

An optional organization argument defaults to an unscoped query when an internal caller forgets to pass it.

Focused work estimate
1h 15m + prerequisites
Priority in the scenario
High
Engineering practice
Repository design · Fail-closed handling

Estimated field mix

  • Security50%
  • Backend30%
  • Database engineering20%

Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.

Your next step

Review it, then add it to your workspace.

The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.

Project context

A fictional case-management application filters most requests correctly, but imports and background commands can connect a case to another organization's project or assignee.

Setup prerequisites

  • Create two synthetic organizations with overlapping display names.
  • Use repository-level authorization and migration-backed constraints.

Preceding work

Complete these dependencies, or supply their agreed outputs before taking this ticket.

Acceptance criteria

  • Require nonempty scope in protected method signatures and validation.
  • Remove unscoped fallback branches.
  • Keep global reference methods explicitly separate.

Implementation constraints

  • Test direct service calls rather than relying solely on controllers.

Verification to include

  • Read a project using valid tenant scope.
  • Omit scope at the runtime boundary and verify no database query executes.

Deliverables

  • Required-scope repository contract

Rollout and recovery

Deploy boundary validation before new callers; deny ambiguous internal requests.

Value of the work

For the engineer: Practice tenant-aware keys, foreign keys and direct-write denial tests.

For the team: Review defense in depth for data isolation across ordinary and privileged writers.

Evidence boundaries

Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.

Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.