Skip to main content
Stackra has no deployed service yet. These laws bind the first service that authenticates a user. Controls that need a service are marked planned.

Laws

Effective permission

When an authorization system exists, every service resolves permissions the same way. Do not invent a variant.
  • Results are cached per (principal, tenant, scope, grantsVersion). Any change to grants or roles bumps grantsVersion.
  • The check is shaped check(subject, relation, object) so the engine behind it can be replaced without touching callers. Free @stackra/iam resolves RBAC with no scope dependency; the scope tree and the relation engine are Pro drivers behind the same check() (0088, owner decision S3).
  • A cross-tenant miss is notFound, never permissionDenied.

Threat model template

Each service that handles user data keeps a docs/threat-model.md in its member folder with three tables. A row with no control is a backlog item, not a gap to forget.

History

  • 2026-10-20, 0125: SEC3 audit runs in the action pipeline with the 0098 actor chain; the scope step of the effective-permission formula applies only with the Pro scope driver.