Przejdź do treści

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