Package Capability Declaration v1¶
Source schema: doc/schemas/package-capability-declaration.v1.schema.json
One behaviour a signed package provides under a package capability identifier (P093 §5). It names behaviour, never host authority: requires/capabilities must be a subset of the base capabilities the activation was granted. The provider is one host-managed component, identified by provider.component/id and the provides[] entry of its component contract; for an in-process JSON-e Flow the provider also pins the Flow id and the digest of its delivered source, which stay distinct from the capability id. Activation compares the identifier's anchor with the key that verified the package and the package name with package/ref; the declared value is never trusted as a label.
Governing Basis¶
Project Lineage¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema |
yes |
const: package-capability-declaration.v1 |
|
schema/v |
yes |
const: 1 |
|
capability/id |
yes |
string | name@scope-ns:did:key:z…/package, read by the one capability identifier grammar. |
capability/scope |
yes |
enum: package, node, peer |
Must equal the scope of the identifier's namespace; a scope can only refuse. |
provider |
yes |
ref: #/$defs/provider |
|
contract |
yes |
ref: package-capability-contract.v1.schema.json#/$defs/member |
The package-capability-contract.v1 member; its digest is the contract/digest grants and requirement edges bind. |
component-contract |
yes |
ref: package-capability-contract.v1.schema.json#/$defs/member |
The provider's middleware-component-contract.v1 member, whose provides[] carries exactly this identifier and contract digest and whose effects declare every referenced effect. |
effect/refs |
yes |
array | Effect ids of the component contract an invocation may produce. Their most restrictive class is the invocation's recovery class; an empty list declares a read-only operation. |
budget |
yes |
object | |
replay/window-ms |
yes |
integer | Replay window, at most the node's ceiling; protected-until is fixed from it at admission. |
requires/capabilities |
yes |
array | Registered base capabilities the implementation reaches the host through. |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
ref |
string | |
provider |
object | |
| ## Field Semantics |
schema¶
- Required:
yes - Shape: const:
package-capability-declaration.v1
schema/v¶
- Required:
yes - Shape: const:
1
capability/id¶
- Required:
yes - Shape: string
name@scope-ns:did:key:z…/package, read by the one capability identifier grammar.
capability/scope¶
- Required:
yes - Shape: enum:
package,node,peer
Must equal the scope of the identifier's namespace; a scope can only refuse.
provider¶
- Required:
yes - Shape: ref:
#/$defs/provider
contract¶
- Required:
yes - Shape: ref:
package-capability-contract.v1.schema.json#/$defs/member
The package-capability-contract.v1 member; its digest is the contract/digest grants and requirement edges bind.
component-contract¶
- Required:
yes - Shape: ref:
package-capability-contract.v1.schema.json#/$defs/member
The provider's middleware-component-contract.v1 member, whose provides[] carries exactly this identifier and contract digest and whose effects declare every referenced effect.
effect/refs¶
- Required:
yes - Shape: array
Effect ids of the component contract an invocation may produce. Their most restrictive class is the invocation's recovery class; an empty list declares a read-only operation.
budget¶
- Required:
yes - Shape: object
replay/window-ms¶
- Required:
yes - Shape: integer
Replay window, at most the node's ceiling; protected-until is fixed from it at admission.
requires/capabilities¶
- Required:
yes - Shape: array
Registered base capabilities the implementation reaches the host through.
Definition Semantics¶
$defs.ref¶
- Shape: string
$defs.provider¶
- Shape: object