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.
Purpose
Name the durable thing (repository, dataset, ticket tracker, workspace environment, secret store) that bindings and policies talk about.
Relationships
| Name | Target | Kind | Cardinality | Inverse |
|---|---|---|---|---|
observed_by_projects | Project | observes | 0..* | known_resources 0..* |
bindings | ResourceBinding | observes | 0..* | resource 1 |
workspace_form | Workspace | observes | 0..1 | as_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.
| Name | Kind | Type | Portable | Notes |
|---|---|---|---|---|
resource_id | identity | name | True | |
uri | identity | uri | True | Address, not a capability. |
kind | descriptive | string | True | |
display_name | descriptive | string | True |
Native mapping hooks
| System | Native term | Fidelity | Notes |
|---|---|---|---|
project-interop | _none_ | tbd |