Skip to main content
⚠️ Draft — Non-authoritative content (noindex)
NORMATIVE DRAFTDRAFTprotocol

Role Module

Scope

This page documents the normative schema surface of the Role module as defined in schemas/v2/mplp-role.schema.json.

It covers the role record shape and the fields carried by that record. It does not define a canonical permission model, role hierarchy, or enforcement engine.

Non-Goals

This page does not define:

  • a canonical capability taxonomy
  • wildcard semantics
  • RBAC algorithms
  • default role catalogs
  • SDK role helpers

1. Purpose

The Role module records a named role artifact and its associated descriptive fields.

At minimum, a Role object carries:

  • protocol metadata
  • a unique role_id
  • a human-readable name

2. Canonical Schema

Truth source: schemas/v2/mplp-role.schema.json

Required Fields

FieldTypeNotes
metaobjectUses common/metadata.schema.json
role_ididentifierCanonical role identifier
namestringHuman-readable role name

Optional Fields

FieldType
governanceobject
descriptionstring
capabilitiesarray of strings
created_atdate-time
updated_atdate-time
traceobject
eventsarray

capabilities

The schema models capabilities as an optional array of strings.

This page does not impose a canonical grammar, wildcard format, hierarchy, or permission-evaluation rule beyond that schema shape.

3. Cross-Object Context

Other schema surfaces may carry role-related fields, for example:

  • agent_role
  • requested_by_role
  • participants[*].role_id
  • owner_role

The consuming schema and runtime determine how those fields are used. This page does not define a universal resolution or enforcement model for them.

4. Boundary Notes

  • This page does not define standard roles such as planner, reviewer, or orchestrator as protocol requirements.
  • This page does not define resource.action as a mandatory capability grammar.
  • This page does not define role inheritance, rank, or conflict resolution.
  • This page does not define a runtime authorization engine.

5. References


Final Boundary: this page specifies the Role object shape and field-level surface only. It does not create a larger permission doctrine beyond the frozen schema.