Relationship Policy Decision v1¶
Source schema: doc/schemas/relationship-policy-decision.v1.schema.json
Host-bound decision for a concrete relationship-derived policy evaluation. This is the only relationship policy object returned to middleware.
Governing Basis¶
doc/project/40-proposals/065-local-relationship-layer.mddoc/project/60-solutions/032-local-relationship-layer/032-local-relationship-layer.md
Project Lineage¶
Requirements¶
doc/project/50-requirements/requirements-006-node-networking-mvp.mddoc/project/50-requirements/requirements-010-middleware-executor.mddoc/project/50-requirements/requirements-011-dator-arca-contracts.mddoc/project/50-requirements/requirements-014-resource-opinions.md
Stories¶
doc/project/30-stories/story-001-swarm-node-onboarding.mddoc/project/30-stories/story-004-pod-client-onboarding.mddoc/project/30-stories/story-005-whisper-rumor-intake.mddoc/project/30-stories/story-006-buyer-node-components.mddoc/project/30-stories/story-006-voluntary-swarm-exchange.mddoc/project/30-stories/story-007-settlement-capable-node.mddoc/project/30-stories/story-008-cool-site-comment.md
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema |
yes |
const: relationship-policy-decision.v1 |
|
schema/v |
yes |
const: 1 |
|
decision/id |
yes |
string | |
predicate/ref |
yes |
string | |
candidate/ref |
no |
string | null | |
decision |
yes |
enum: allow, deny, quarantine, require-operator |
|
reason/code |
yes |
enum: matched, no-binding, no-membership, status-mismatch, scope-conflict, expired-evidence, caller-not-authorized, operator-approval-required, policy-denied |
|
action/kind |
yes |
ref: relationship-policy-predicate.v1.schema.json#/$defs/action_kind |
|
effect/scope |
yes |
ref: relationship-policy-predicate.v1.schema.json#/$defs/effect_scope |
|
evidence/ref |
yes |
array | |
valid/until |
yes |
string | |
decided/by |
yes |
string | |
decided/at |
yes |
string | |
tx/id |
yes |
string | |
| ## Field Semantics |
schema¶
- Required:
yes - Shape: const:
relationship-policy-decision.v1
schema/v¶
- Required:
yes - Shape: const:
1
decision/id¶
- Required:
yes - Shape: string
predicate/ref¶
- Required:
yes - Shape: string
candidate/ref¶
- Required:
no - Shape: string | null
decision¶
- Required:
yes - Shape: enum:
allow,deny,quarantine,require-operator
reason/code¶
- Required:
yes - Shape: enum:
matched,no-binding,no-membership,status-mismatch,scope-conflict,expired-evidence,caller-not-authorized,operator-approval-required,policy-denied
action/kind¶
- Required:
yes - Shape: ref:
relationship-policy-predicate.v1.schema.json#/$defs/action_kind
effect/scope¶
- Required:
yes - Shape: ref:
relationship-policy-predicate.v1.schema.json#/$defs/effect_scope
evidence/ref¶
- Required:
yes - Shape: array
valid/until¶
- Required:
yes - Shape: string
decided/by¶
- Required:
yes - Shape: string
decided/at¶
- Required:
yes - Shape: string
tx/id¶
- Required:
yes - Shape: string