Relationship Policy Predicate v1¶
Source schema: doc/schemas/relationship-policy-predicate.v1.schema.json
Declarative relationship-derived policy requirement. Predicates are conditions the host evaluates; they are not authority grants.
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-predicate.v1 |
|
schema/v |
yes |
const: 1 |
|
predicate/id |
yes |
string | |
predicate/kind |
yes |
enum: operator-relationship-class |
|
local/operator-ref |
no |
string | |
remote/operator-binding-ref |
no |
string | |
required/class-ids |
yes |
array | Match succeeds when the candidate membership is in any of these classes. Order is irrelevant; presence in the list is enough. This is how composable trust gradation predicates are expressed without introducing a linear-ordering operator. |
required/status |
yes |
ref: relationship-membership-fact.v1.schema.json#/$defs/membership_status |
|
action/kind |
yes |
ref: #/$defs/action_kind |
|
effect/scope |
yes |
ref: #/$defs/effect_scope |
|
ttl |
no |
integer | |
failure/mode |
yes |
enum: deny, require-operator, quarantine |
|
declared/by |
yes |
string | |
limits |
no |
ref: #/$defs/limits |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
action_kind |
string | |
effect_scope |
string | |
limits |
object | |
| ## Field Semantics |
schema¶
- Required:
yes - Shape: const:
relationship-policy-predicate.v1
schema/v¶
- Required:
yes - Shape: const:
1
predicate/id¶
- Required:
yes - Shape: string
predicate/kind¶
- Required:
yes - Shape: enum:
operator-relationship-class
local/operator-ref¶
- Required:
no - Shape: string
remote/operator-binding-ref¶
- Required:
no - Shape: string
required/class-ids¶
- Required:
yes - Shape: array
Match succeeds when the candidate membership is in any of these classes. Order is irrelevant; presence in the list is enough. This is how composable trust gradation predicates are expressed without introducing a linear-ordering operator.
required/status¶
- Required:
yes - Shape: ref:
relationship-membership-fact.v1.schema.json#/$defs/membership_status
action/kind¶
- Required:
yes - Shape: ref:
#/$defs/action_kind
effect/scope¶
- Required:
yes - Shape: ref:
#/$defs/effect_scope
ttl¶
- Required:
no - Shape: integer
failure/mode¶
- Required:
yes - Shape: enum:
deny,require-operator,quarantine
declared/by¶
- Required:
yes - Shape: string
limits¶
- Required:
no - Shape: ref:
#/$defs/limits
Definition Semantics¶
$defs.action_kind¶
- Shape: string
$defs.effect_scope¶
- Shape: string
$defs.limits¶
- Shape: object