Skip to content

Term

ResourceBinding

A WorkSession-specific resolution and grant for a Resource. The binding records how this session names, locates, and is allowed to use the Resource without becoming a second owner of it.

Parent: WorkSession 1 via resource_bindings

Identity
resource_binding_id
Kind
name
Authority role
work-session-coordinator
Mutability
mutable
Status
accepted

Purpose

Attach a Resource to one WorkSession with a narrowed grant, leaving the Resource's native authority intact.

Relationships

NameTargetKindCardinalityInverse
work_sessionWorkSessionbinds1resource_bindings 0..*
resourceResourcereferences1bindings 0..*

Lifecycle

Initial proposed. Terminal: revoked.

proposedboundrevoked
  • proposed โ†’ bound
  • bound โ†’ revoked
  • proposed โ†’ revoked

Invariants

  • MUST session-specific: A ResourceBinding MUST belong to exactly one WorkSession.
  • MUST policy-narrows: A binding grant MUST NOT exceed the WorkSession or Project policy.
  • MUST NOT not-resource-authority: A ResourceBinding MUST NOT claim mutable authority over the Resource.
  • MUST NOT no-credentials: A portable binding MUST NOT serialize credentials.

Aliases

  • session-resource-grant

Deprecated aliases

None.

Not synonyms

  • Resource: The resource exists independently of any one session binding.
  • Workspace: A Workspace may be the bound resource; the binding is the grant, not the environment.

Examples

  • Granting a WorkSession read-only access to a named repository at a pinned locator.

Anti-examples

  • Copying the repository's mutable metadata into the session as a second source of truth.

Fields

The identity field is the index of the handle. fields is the exchange shape.

NameKindTypePortableNotes
resource_binding_ididentitynameTrue
work_session_idreferencenameTrue
resource_idreferencenameTrue
grantpolicyGrantTrueMust be a narrowing of session and project policy.
resolved_locatorreferencestringTrueHow this session locates the resource. Not a credential.

Native mapping hooks

SystemNative termFidelityNotes
project-interop_none_tbd