Skip to content

Term

Resource

An independently addressable thing relevant to work. A Resource is not necessarily owned by a Project; projects and sessions observe or bind it.

Identity
resource_id
Kind
name
Authority role
native-resource-provider
Mutability
mutable
Status
accepted

Purpose

Name the durable thing (repository, dataset, ticket tracker, workspace environment, secret store) that bindings and policies talk about.

Relationships

NameTargetKindCardinalityInverse
observed_by_projectsProjectobserves0..*known_resources 0..*
bindingsResourceBindingobserves0..*resource 1
workspace_formWorkspaceobserves0..1as_resource 1

Invariants

  • MUST independently-addressable: A Resource MUST remain independently addressable outside any one Project.
  • MUST NOT not-owned-by-binding: A ResourceBinding MUST NOT become the mutable authority for the Resource.
  • MUST ids-are-names: resource_id and uri are names. They do not grant access.

Aliases

  • work-resource

Deprecated aliases

None.

Not synonyms

  • ResourceBinding: The binding is a session-specific grant and resolution, not the thing itself.
  • Artifact: An Artifact is an output published by work, not an independently existing resource.
  • Workspace: Workspace is a Resource subtype, not a synonym for every Resource.

Examples

  • A git repository URL.
  • A dataset catalog entry.
  • A ticket project that several WorkSessions consult.

Anti-examples

  • An ephemeral in-memory retrieval blob with no address.
  • A capability token (that is a credential, not a Resource identity).

Fields

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

NameKindTypePortableNotes
resource_ididentitynameTrue
uriidentityuriTrueAddress, not a capability.
kinddescriptivestringTrue
display_namedescriptivestringTrue

Native mapping hooks

SystemNative termFidelityNotes
project-interop_none_tbd