| Internet-Draft | Graph based Meta Schema for collaborativ | November 2025 |
| Henderickx | Expires 6 May 2026 | [Page] |
Graph based Meta Schema for collaborative Operation¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 6 May 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Modern automation environments require systems, users, and agents to operate on shared data models in a coordinated manner. These models span heterogeneous technologies and administrative domains. Existing approaches such as YANG, OpenAPI, JSON Schema , ...primarily define the syntax and validation of data, but provide limited mechanisms for collaboration, coordination, and conflict-aware operations across multiple actors.¶
The Graph-based Meta Schema introduces a unified abstraction that models resources and their relationships as a knowledge graph, connecting data, intent, and operational context. This knowledge graph enables multi-actor automation, where humans, controllers, and services operate on a shared schema using common semantics and consistent operations.¶
This document defines three complementary elements:¶
A Graph Schema, which specifies how to connect resources modeled using existing data modeling languages (YANG, OpenAPI, JSON Schema, etc.);¶
A set of API operations that provide server-side support for multi-actor collaboration (e.g., conflict management, coordinated deletion, version control, dry-run, and eventing); and¶
A standardized Meta Header carried by each resource, which captures structural and operational metadata—such as identifiers, relationships, ownership, lifecycle hooks (finalizers), labels, annotations, and versioning—used by those operations.¶
This mechanism does not replace existing modeling languages; rather, it defines a meta-layer that integrates them and standardizes how resources and relations are described, linked, and managed.¶
The goal of the Graph-based Meta Schema is to define a generalized mechanism for describing and managing resources through a graph abstraction, and to standardize the operational semantics required for multi-actor collaboration.¶
Design principles:¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The Meta Schema distinguishes between resources (nodes) and relationships (edges):¶
Resource (Graph Node):
Describes what the entity is. A resource is defined by a schema
(e.g., YANG, OpenAPI, JSON Schema) and identified by its
Group/Version/Kind/Scope tuple.¶
Relationship (Edge):
Describes how resources interact or depend on each other. Edges
connect resources using their identifiers and include metadata and
constraints to provide contextual meaning.¶
This separation of what (resource) and how (relationship) enables the construction of a knowledge graph that links system intent, configuration, and operational context.¶
+------------+
| Resource | (YANG, JSONSchema,…)
+------------+
|
| (Relationship / Edge)
v
+------------+
| Resource | (YANG, JSONSchema,…)
+------------+
¶
The Meta Schema provides a structural and semantic layer that integrates existing modeling frameworks (e.g., YANG, OpenAPI, JSON Schema) under a unified model.¶
The Meta Schema defines:¶
This integration allows a single schema definition to be reused across API servers, UI frameworks, and automation agents/workflows.¶
The graph model treats each resource as a Node and each relationship as an Edge. Relationships MUST specify direction and type, and MAY include additional attributes/constraints (e.g., cardinality, constraints, requiredness).¶
Example relations include:¶
Each node carries structured metadata such as labels, annotations, status, and version, allowing tools to reason about topology, impact, and dependency chains in a consistent way.¶
The Meta Schema defines conventions for API operations acting on resources. These conventions enable consistent behavior across REST, GraphQL, and streaming interfaces.¶
Each operation relies on metadata carried in the Meta Header.
For example, server-side apply uses managedFields to detect and
resolve conflicts; finalizers govern coordinated deletion; version
identifiers (generation, resourceVersion) support optimistic
concurrency; and relationships/ownership guide cascading behavior.¶
The standardized operations include:¶
Each resource includes a Meta Header, a standardized metadata structure that enables coordination between multiple actors and automation systems. The Meta Header provides a consistent mechanism for storing structural, operational, and user metadata alongside the resource specification.¶
The Meta Header MUST include the following conceptual components:¶
TypeMeta:¶
group, version, and kind.¶
ObjectMeta:¶
name, tenant (if applicable), uid (immutable unique identifier), creationTimestamp, and optional deletionTimestamp.¶
labels and annotations for opaque metadata.¶
group, version, kind, name, and optionally tenant). Ownerships are mdoelled as relationships¶
generation and resourceVersion for optimistic concurrency and change tracking.¶
apiVersion: assets.kuid.dev/v1
kind: Device
metadata:
uid: "c9e1f3d1-7f27-4a1b-9f0f-2c9a1b6f7a42"
name: router1
tenant: default
creationTimestamp: "2025-10-31T12:34:56Z"
# deletionTimestamp is absent until deletion is requested
resourceVersion: "7"
generation: 3
labels:
purpose: core
annotations:
c4o.dev/displayName: "Router-1"
relationships:
- name: site
target:
group: location.kuid.dev
version: v1
kind: Site
name: site-paris
tenant: default
finalizers:
- cleanup.c4o.dev
managedFields:
- manager: controller.network
operation: Apply
fields: [ "spec.interfaces", "spec.routing" ]
data: <YANG, ...>
¶
apiVersion: apiextensions.c4o.dev/v1
kind: Schema
metadata:
name: devices.assets.kuid.dev
spec:
groups:
- name: assets.kuid.dev
apis:
- resource: devices
kind: Device
scope: tenant
ui:
categories:
- assets
- devices
displayName: Devices
icon: xxx
order: 100
versions:
- name: v1
storage: true
attributes:
- # YANG, OpenAPI, JSONSchema, ...
relationships:
- name: belongsTo
target:
group: location.kuid.dev
version: v1
kind: Site
cardinality: one
- name: locatedIn
target:
group: assets.kuid.dev
version: v1
kind: Rack
cardinality: one
¶
Device - (belongsTo) - Site Device - (locatedIn) - Rack¶
This document has no IANA actions at this time.¶
Schema definitions can expose sensitive structure and metadata about a system. Implementations MUST ensure that access control and data filtering mechanisms prevent unauthorized disclosure. Field ownership and event streaming MUST be authenticated and authorized according to the system’s security model.¶
The author thanks colleagues and contributors from the network automation and kubenet community for discussions leading to this work.¶