Skip to main content
Resource Scope Links allow you to associate a resource with multiple scopes beyond its owner scope. Each link has a type that describes the relationship, enabling different behaviors for sharing, aliasing, and mirroring resources.
Resource scope links replace the simpler “resource scopes” model, adding link types and metadata for richer relationships.

Share

The resource is shared with the scope. Users in the scope can see and access the resource based on their permissions.
Use cases:
  • Cross-team document sharing
  • Shared component libraries
  • Collaborative resources

Alias

The resource appears in the scope under a different context. The resource has one canonical location but can be referenced from multiple places.
Use cases:
  • Templates available in multiple projects
  • Shortcuts to frequently used resources
  • Virtual folder structures

Mirror

The resource is mirrored to the scope, typically for compliance, backup, or multi-region scenarios.
Use cases:
  • Compliance zone classification
  • Multi-region data presence
  • Audit trail requirements

Batch Create

Response:

Using Metadata

Link metadata enables custom attributes for each relationship:

Access Control Considerations

Resource scope links do not automatically grant access. Access is still determined by:
  1. Membership — Subject must be a member of the linked scope
  2. Role — Subject must have a role with appropriate permissions
  3. Permission — The role must include the required permission
  4. Policies — Any resource policies must allow access

Reachability Gate (BEDROCK_RESOURCE_SCOPE_GATE)

An opt-in authorization containment gate. When enabled, a concrete resource must be reachable from the evaluation scope (its owner scope, or an explicit resource-scope link) before RBAC/policy evaluation runs. Configured via the BEDROCK_RESOURCE_SCOPE_GATE environment variable:
  • off (default) — no gate; backward-compatible.
  • links-fallback — the safe on-ramp. Only resources with at least one scope link are gated; a resource with zero links is treated as globally reachable, so enabling this cannot break a deployment that has not created links.
  • strict — every concrete resource is gated: a non-owner, non-linked scope is never reachable.
Strict only changes behavior for deployments that register concrete resources reachable from a non-owner scope. RuleFORGE is unaffected: it uses type-based RBAC and registers no concrete resources, so the gate never fires there.

Patterns

Pattern 1: Shared Resources Library

Pattern 2: Matrix Organization

Resources belong to both functional and project scopes:

Pattern 3: Compliance Classification

Best Practices

Store context about why the link exists, who created it, and any constraints.
For simple classification without scope association, tags may be simpler.

Resource Hierarchies

Parent-child relationships between resources

Resource Collections

Dynamic grouping of resources

Tags

Flexible metadata for classification