<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-abaris-json-dcm-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="JSON Dynamic Configuration Management">JSON-Based Dynamic Configuration Management</title>
    <seriesInfo name="Internet-Draft" value="draft-abaris-json-dcm-00"/>
    <author fullname="Dogu Abaris">
      <organization>Individual Contributor</organization>
      <address>
        <email>abaris@null.net</email>
      </address>
    </author>
    <date year="2025" month="April" day="25"/>
    <area>Applications</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>JSON</keyword>
    <keyword>dynamic configuration</keyword>
    <keyword>configuration management</keyword>
    <keyword>versioning</keyword>
    <keyword>distributed systems</keyword>
    <keyword>infrastructure as code</keyword>
    <abstract>
      <?line 79?>

<t>JavaScript Object Notation (JSON) is a widely used data interchange format, suitable for storing configuration data due to its simple syntax, machine-readable structure, and ease of parsing and generation.</t>
      <t>This document describes informational practices associated with JSON-Based Dynamic Configuration Management. It outlines a recommended naming convention for configuration files in the form of a structured filename pattern, such as "<tt>&lt;project&gt;@&lt;version&gt;.json</tt>", and specifies a configuration schema to support validation, traceability, and non-disruptive updates. The document also describes the rationale for standardization and presents real-world scenarios where these practices apply.</t>
    </abstract>
  </front>
  <middle>
    <?line 85?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In this document, JSON-based information practices are described for managing dynamic configuration data in environments where versioning, portability, and machine validation are beneficial (e.g., distributed systems, Infrastructure as Code (IaC), DevOps). It is intended as a recommended approach for implementers seeking to adopt structured configuration formats suitable for dynamic or heterogeneous system contexts.</t>
      <t>The document describes a JSON structure featuring top-level <tt>name</tt>, <tt>version</tt>, and <tt>config</tt> fields. It also provides a JSON Schema that implementers <bcp14>MAY</bcp14> adapt for domain-specific validation needs.</t>
      <t>While a consistent identification pattern for configuration resources, such as <tt>&lt;project&gt;@&lt;version&gt;.json</tt> for files, is discussed as an aid to traceability and version management, its use is entirely <bcp14>OPTIONAL</bcp14>. The specific method for naming or identifying configuration resources <bcp14>MUST</bcp14> be determined based on operational constraints, deployment tooling capabilities, operating system limitations, and storage system characteristics.</t>
      <t>The practices described in this document do not constitute an IETF standard. They may, however, serve as a useful reference or starting point for implementers developing configuration management solutions in research computing, DevOps, microservices or other automation-driven domains where dynamic updates and validation are primary concerns.</t>
    </section>
    <section anchor="scope-limitation">
      <name>Scope Limitation</name>
      <t>This document defines practices and a naming convention for JSON-based configuration files. It does not address how configuration files are distributed, secured, or integrated into specific technical domains.</t>
      <t>Operational concerns such as secret management, transport mechanisms, or runtime application of configuration are out of scope.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="recommended-practices">
      <name>Recommended Practices</name>
      <t>This section describes practices that implementers may find useful when managing dynamic configurations according to the approach presented in this document.</t>
      <section anchor="file-naming-convention">
        <name>File Naming Convention</name>
        <t>This section describes an optional filename format for versioned configuration files.</t>
        <t>Implementers <bcp14>MAY</bcp14> use the following filename pattern:</t>
        <t><tt>&lt;project&gt;@&lt;version&gt;.json</tt></t>
        <t>For example, a configuration file for "webapp" at version 1.2.0 would be:</t>
        <t><tt>webapp@1.2.0.json</tt></t>
        <t>This pattern supports traceability, version comparison, and rollback tooling. Alternative formats <bcp14>MAY</bcp14> be chosen based on system requirements or environmental constraints, for instance, a more explicit variant like <tt>&lt;project&gt;@&lt;version&gt;.config.json</tt> <bcp14>MAY</bcp14> be used where clarity is paramount.</t>
        <t>Implementers <bcp14>SHOULD</bcp14> validate chosen filenames against portable filename constraints (e.g., character repertoire, length limits) as defined in POSIX <xref target="POSIX"/> and consider file URI syntax rules in RFC 8089 <xref target="RFC8089"/>.</t>
        <t>In particular, filenames <bcp14>MUST NOT</bcp14> include control characters, <bcp14>MUST NOT</bcp14> include OS-reserved code points and sequences (for example <tt>&lt; &gt; : " / \ | ? *</tt>), <bcp14>MUST NOT</bcp14> use reserved device names (e.g., <tt>CON</tt>, <tt>PRN</tt>, <tt>AUX</tt>), and <bcp14>SHOULD</bcp14> respect platform path-length limitations.</t>
        <t>Some filesystems or constrained environments (e.g., embedded FAT <xref target="MS-FAT"/> implementations or legacy systems enforcing 8.3 filename formats <xref target="MS-FSCC"/>) may not allow special characters like <tt>@</tt> in filenames. In such cases, implementers <bcp14>SHOULD</bcp14> consider using <tt>-</tt>, <tt>_</tt>, or alphanumeric-only alternatives.</t>
      </section>
      <section anchor="key-value-pair-descriptions">
        <name>Key-Value Pair Descriptions</name>
        <t>This section describes each top-level key defined in the JSON-based project information, explaining its purpose, expected data type, and usage context. For each key, a concise description is provided along with an example value to illustrate the intended format.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">name</td>
              <td align="left">string</td>
              <td align="left">Identifier for the target system</td>
              <td align="left">"my-web-app"</td>
            </tr>
            <tr>
              <td align="left">version</td>
              <td align="left">string</td>
              <td align="left">Version of the configuration object</td>
              <td align="left">"1.0.0"</td>
            </tr>
            <tr>
              <td align="left">config</td>
              <td align="left">object</td>
              <td align="left">Domain-specific settings object</td>
              <td align="left">{"logLevel":"INFO",...}</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="json-schema">
        <name>JSON Schema</name>
        <t>This section describes a <tt>JSON Schema</tt> that implementers <bcp14>MAY</bcp14> use to validate configuration documents that conform to structure described in this document. The schema conforms to the JSON Schema 2020-12 specification <xref target="JSON-SCHEMA-2020-12"/> and structured mechanism for representing versioned configuration metadata across a variety of environments.</t>
        <sourcecode type="json"><![CDATA[
{
  "$id": "https://example.com/schemas/config-practice-v1.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Dynamic Configuration Structure Schema",
  "description": "Structure for versioned JSON config.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Project or app name. Unique within context.",
      "examples": [
        "my-web-app",
        "data-processing-pipeline",
        "network-device-base"
      ]
    },
    "version": {
      "type": "string",
      "description": "Version ID for the config content.",
      "examples": [
        "1.0.0",
        "2.1.0-beta.1",
        "v3.1.4"
      ]
    },
    "config": {
      "type": "object",
      "description": "Implementation-specific configuration.",
      "additionalProperties": true,
       "examples": [
        {
          "logLevel": "INFO",
          "port": 8080,
          "featureFlags": {
            "newDashboard": true,
            "enableApiRateLimit": false
           },
          "allowedOrigins": ["https://app.example.com"]
        }
      ]
    }
  },
 "required": ["name", "version", "config"],
 "additionalProperties": false
}
]]></sourcecode>
        <t>The schema defines the following required fields:</t>
        <ul spacing="normal">
          <li>
            <t><tt>name</tt> - identifies the system, component or application the configuration is intended for.</t>
          </li>
          <li>
            <t><tt>version</tt> - specifies the version identifier using a string value, typically following Semantic Versioning <xref target="SEMVER"/>.</t>
          </li>
          <li>
            <t><tt>config</tt> - represents the domain-specific configuration object. Its internal structure is implementation-defined and <bcp14>MAY</bcp14> be constrained using additional schemas.</t>
          </li>
        </ul>
        <t>This <tt>JSON Schema</tt> <bcp14>MAY</bcp14> be dereferenced and reused across configuration tooling, systems or services. It is <bcp14>RECOMMENDED</bcp14> that implementers assign a canonical, dereferenceable <tt>$id</tt> to the schema.</t>
        <t>This schema is interoperable with existing JSON Schema tooling and validation engines. When implementing similar schema-backed validation in credential-based or identity systems, implementers <bcp14>MAY</bcp14> refer to practices outlined in the <xref target="VC-JSON-SCHEMA"/>.</t>
      </section>
      <section anchor="example-configuration">
        <name>Example Configuration</name>
        <t>The following configuration example demonstrates the usage of this specification in a scientific context. It draws inspiration from the configuration patterns used to control High-Level Trigger (HLT) settings in the ATLAS experiment at CERN.</t>
        <t>The file is named using the prescribed convention: <tt>atlas@3.1.0.json</tt> - where <tt>atlas</tt> is the project identifier and <tt>3.1.0</tt> denotes the configuration version.</t>
        <sourcecode type="json"><![CDATA[
{
  "name": "atlas-hlt-config",
  "version": "3.1.0",
  "config": {
    "project": "ATLAS",
    "runType": "collisions",
    "hltMenu": "Physics_pp_run3_v1",
    "chains": [
      "HLT_e26_lhtight_ivarloose",
      "HLT_mu20_iloose_L1MU15"
    ],
    "logging": "INFO"
  }
}
]]></sourcecode>
        <t>This configuration specifies the data-taking mode, selected trigger menu, and active HLT chains for a proton-proton collision run. It illustrates a concise, versioned configuration adhering to the schema described in this document.</t>
      </section>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>The implementation of this specification is informed by key principles recognized in modern configuration management practices. The naming convention - "<tt>&lt;project&gt;@&lt;version&gt;.json</tt>" - promotes version traceability and supports non-disruptive configuration updates. This aligns with Infrastructure as Code (IaC) practices, where configuration artifacts are declaratively defined, versioned, and integrated into automated provisioning workflows. This approach is in line with versioned configuration practices as described in the live configuration management systems deployed at Facebook, as detailed in <xref target="FACEBOOK-CM"/>.</t>
      <t>Various approaches to dynamic configuration management are employed in practice. The OpenCAPIF represents one such approach, where configuration data is maintained in a single top-level container (e.g., "capif_configuration") hosted within a MongoDB collection <xref target="CAPIF-DYNAMIC-CONFIG"/>.</t>
      <t>This document defines only a file naming convention, and a minimal JSON structure. It does not specify how configuration files are loaded, validated, or applied within systems.</t>
      <t>Implementers are expected to name their configuration files according to the defined pattern and structure their contents using the prescribed schema.</t>
      <t>Schema evolution <bcp14>SHOULD</bcp14> be handled in a backward-compatible manner whenever possible. Additive changes such as introducing new optional keys are preferred over breaking changes like renaming or removing fields, or altering value types.</t>
      <t>When updating configuration schemas, the type of change should influence how you version it <xref target="SEMVER"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Change Type</th>
            <th align="left">Description</th>
            <th align="left">Version Impact</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Add optional fields</td>
            <td align="left">Doesn't break existing usage</td>
            <td align="left">Minor (e.g. 1.0.0 to 1.1.0)</td>
          </tr>
          <tr>
            <td align="left">Remove or rename fields<br/>Change data types</td>
            <td align="left">Breaks compatibility with older configs</td>
            <td align="left">Major (e.g. 1.0.0 to 2.0.0)</td>
          </tr>
        </tbody>
      </table>
      <t>When non-compatible updates are introduced, a new version identifier <bcp14>MUST</bcp14> be assigned and reflected in both the <tt>version</tt> field and the file name.</t>
      <t>Due to the line-oriented structure of JSON, implementers using version control systems (e.g., Git) <bcp14>MAY</bcp14> experience merge conflicts, especially when deeply nested structures or unordered keys are involved. To mitigate this, implementers <bcp14>MAY</bcp14> adopt canonical formatting, deterministic key ordering, or leverage structured merge strategies such as JSON Merge Patch <xref target="RFC7396"/> where applicable.</t>
    </section>
    <section anchor="use-case-examples">
      <name>Use-Case Examples</name>
      <t>The practices described in this document are most applicable to systems where configuration needs to be dynamically loaded, versioned, potentially exchanged between systems, and programmatically validated. The explicit versioning and schema support address challenges common in complex, automated, or distributed environments.</t>
      <t>The following examples illustrate environments that benefit from such capabilities, categorized by the domain and corresponding technology stack.</t>
      <section anchor="use-case-of-scientific-computing">
        <name>Use Case of Scientific Computing</name>
        <t>As detailed in the ATLAS example, large-scale experiments require reproducible, traceable, and dynamically adjustable configurations. Complex systems like the High-Level Trigger (HLT) rely on structured, versioned configurations (often using JSON) to manage components like trigger menus (<tt>L1Menu</tt>) or beam conditions (<tt>BunchGroupSet</tt>) <xref target="ATLAS-TRIGGER-2024"/>. The ability to validate these configurations against a schema before deployment and associate specific versions with data-taking periods is crucial for operational stability and analysis reproducibility. This specification provides a consistent structure for such versioned components.</t>
        <t>During nightly integration tests, ATLAS produces full configuration sets in JSON format that are used to initialize and operate the trigger system <xref target="ATLAS-TRIGGER-2024"/>. These files are fixed for a given run, versioned, and stored in a way that enables test reproducibility, consistency across clusters, and auditability. They are used directly by HLT software during initialization. Some configurations may evolve during a run and are linked to specific run conditions in the ATLAS database.</t>
        <t>A portion of this bunch group definition is shown below. Each group entry contains an identifier, a descriptive name, and a list of BCIDs (Bunch Crossing Identifiers) representing beam structure segments:</t>
        <sourcecode type="json"><![CDATA[
"bunchGroups": {
  "BGRP0": {
    "name": "BCRVeto",
    "id": 0,
    "info": "3543 bunches, 2 groups",
    "bcids": [
      { "first": 0, "length": 3540 },
      { "first": 3561, "length": 3 }
    ]
  },
  "BGRP1": {
    "name": "Paired",
    "id": 1,
    "info": "3452 bunches, 3 groups",
    "bcids": [
      { "first": 0, "length": 3445 },
      { "first": 3536, "length": 4 },
      { "first": 3561, "length": 3 }
    ]
  }
}
]]></sourcecode>
        <t>The operational practice in ATLAS often involves managing configuration components (like <tt>BunchGroupSet</tt>, <tt>L1Menu</tt>) as independently versioned JSON documents, linked via external systems (like databases) to specific run conditions or time intervals. This modular approach aligns well with the structured, schema-validatable format proposed here, allowing individual components to be managed consistently while supporting dynamic assembly based on runtime needs.</t>
        <t>For example, during a multi-hour data-taking run, different configurations may be assigned based on real-time accelerator conditions. A run might begin with a "standby" BunchGroupSet and switch to a "physics" set as the beam fills, before reverting back. This approach enables dynamic reconfiguration and fine-grained traceability. Similar principles apply to prescale and monitoring files.</t>
        <t>While bundling all related configuration fragments into a single large JSON object per run is theoretically possible, operational practice in ATLAS favors keeping these files decoupled to support reusability, clarity and independent versioning. This design aligns well with the layered, schema-validatable configuration model proposed in this specification.</t>
      </section>
      <section anchor="use-case-of-network-protocol-configuration">
        <name>Use Case of Network Protocol Configuration</name>
        <t>Secure group communication protocols, such as the IETF's Messaging Layer Security (MLS) <xref target="RFC9420"/>, require careful configuration of cryptographic parameters and operational policies to ensure security and interoperability. These parameters include selections of cipher suites, credential validation rules, group size limits, and integration details with underlying delivery services.</t>
        <t>Managing these configurations across potentially large, dynamic, or federated deployments benefits significantly from a versioned, structured, and schema-validatable format like the one described in this document. For instance, different client implementations or service providers might need to load specific, validated policy versions to ensure compatible behavior or adhere to security updates.</t>
        <t>The following example illustrates how a configuration file adhering to the recommended structure described in this document could be used to manage settings for an MLS client or component. If using an illustrative naming pattern like <tt>mls-client-policy@1.0.0.json</tt>, the content might be:</t>
        <sourcecode type="json"><![CDATA[
{
  "name": "mls-client-policy",
  "version": "1.0.0",
  "config": {
    "protocolSuite": "MLS",
    "allowedCipherSuites": [
      "MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519",
      "MLS_128_DHKEMP256_AES128GCM_SHA256_P256"
    ],
    "credentialOptions": {
      "requireCertificate": true,
      "trustedRoots": [
        "cert-root-a.pem",
        "cert-root-b.pem"
      ]
    },
    "groupLimits": {
      "maxMembers": 1024,
      "maxLifetimeHours": 720
    },
    "deliveryServiceUrl": "https://mls.provider.com/v1/messages"
  }
}
]]></sourcecode>
        <t>In this example, the <tt>config</tt> object contains specific settings relevant to MLS operation: selecting allowed cryptographic suites, defining credential requirements, setting group size and lifetime policies, and specifying the endpoint for the message delivery service. This demonstrates how the flexible <tt>config</tt> object can encapsulate protocol-specific parameters within the versioned structure.</t>
      </section>
      <section anchor="use-case-of-infrastructure-provisioning">
        <name>Use Case of Infrastructure Provisioning</name>
        <t>Infrastructure as Code (IaC) practices, using tools like Terraform, Pulumi, or Ansible, rely on structured, declarative configuration files to describe and manage infrastructure components. Versioned and schema-validatable JSON configurations reduce the likelihood of misconfiguration, enable reproducibility, and support integration with automated provisioning workflows.</t>
        <t>The following example illustrates how a configuration file adhering to the recommended structure described in this document could be used to configure network infrastructure components in a declarative and automation-friendly manner. In environments where routers, firewalls, or service edge devices expose RESTCONF APIs based on YANG models, vendors like Cisco support JSON-encoded configurations that can be applied using standardized interfaces aligned with <xref target="RFC8040"/> and practical guidelines such as those provided by <xref target="CISCO-RESTCONF-API"/>. If using an illustrative naming pattern like <tt>dhcp-subnet@1.0.0.json</tt>, the content might be:</t>
        <sourcecode type="json"><![CDATA[
{
  "name": "dhcp-subnet",
  "version": "1.0.0",
  "config": {
    "dhcp:subnet": {
      "net": "10.254.239.0/27",
      "range": {
        "dynamic-bootp": {},
        "low": "10.254.239.10",
        "high": "10.254.239.20"
      },
      "dhcp-options": {
        "router": [
          "rtr-239-0-1.example.org",
          "rtr-239-0-2.example.org"
        ]
      },
      "max-lease-time": 1200
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="use-case-of-cloud-infrastructure">
        <name>Use Case of Cloud Infrastructure</name>
        <t>Microservice environments demand frequent, isolated service updates. A dynamic and portable configuration system allows each service to load the appropriate configuration version at runtime, enhancing flexibility and reducing downtime.</t>
        <t>In Kubernetes deployments, services often require runtime configuration that adapts based on environment, load or feature flags. Using versioned JSON files served via config maps or mounted volumes, these services can boot with valid, schema-verified data and switch configuration at runtime with zero downtime.</t>
      </section>
      <section anchor="use-case-of-cicd-and-devops">
        <name>Use Case of CI/CD and DevOps</name>
        <t>Declarative, machine-validated configuration enables safe and auditable deployments across environments. Systems like GitHub Actions, Jenkins, or ArgoCD benefit from a consistent config format for managing build, test and deployment workflows.</t>
        <t>A JSON schema defines permissible stages, secrets and artifacts within a pipeline. Users can validate workflow definitions before committing them to version control. Runtime systems load validated configurations to deploy applications across dev, staging and prod environments safely.</t>
      </section>
      <section anchor="use-case-of-data-orchestration">
        <name>Use Case of Data Orchestration</name>
        <t>Workflow engines like Nextflow and Apache Airflow use configuration files to define pipeline behavior. A typed, versioned JSON configuration ensures pipeline reproducibility and allows validation before runtime execution, reducing execution failures.</t>
        <t>Scientists author pipelines once and store configurations separately. The same pipeline can be executed across cloud environments or local clusters by switching configuration inputs. This abstraction improves portability and simplifies reproducibility of data analyses.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document defines a specification naming convention and format for configuration files; there are no related security considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ATLAS-TRIGGER-2024" target="https://iopscience.iop.org/article/10.1088/1748-0221/19/06/P06029">
          <front>
            <title>The ATLAS Trigger System for LHC Run 3 and Trigger Performance in 2022</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VC-JSON-SCHEMA" target="https://www.w3.org/TR/vc-json-schema/">
          <front>
            <title>Verifiable Credentials JSON Schema Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="JSON-SCHEMA-2020-12" target="https://json-schema.org/draft/2020-12/schema">
          <front>
            <title>JSON Schema: A Media Type for Describing JSON Documents</title>
            <author>
              <organization>JSON Schema Community Group</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="FACEBOOK-CM" target="https://research.facebook.com/publications/holistic-configuration-management-at-facebook/">
          <front>
            <title>Holistic Configuration Management at Facebook</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC8089">
          <front>
            <title>The "file" URI Scheme</title>
            <author fullname="M. Kerwin" initials="M." surname="Kerwin"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>This document provides a more complete specification of the "file" Uniform Resource Identifier (URI) scheme and replaces the very brief definition in Section 3.10 of RFC 1738.</t>
              <t>It defines a common syntax that is intended to interoperate across the broad spectrum of existing usages. At the same time, it notes some other current practices around the use of file URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8089"/>
          <seriesInfo name="DOI" value="10.17487/RFC8089"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC7396">
          <front>
            <title>JSON Merge Patch</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This specification defines the JSON merge patch format and processing rules. The merge patch format is primarily intended for use with the HTTP PATCH method as a means of describing a set of modifications to a target resource's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7396"/>
          <seriesInfo name="DOI" value="10.17487/RFC7396"/>
        </reference>
        <reference anchor="CISCO-RESTCONF-API" target="https://developer.cisco.com/docs/nso-guides-6.3/the-restconf-api/#getting-started">
          <front>
            <title>The RESTCONF API - Network Services Orchestrator (NSO) v6.3 - Cisco DevNet</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="CAPIF-DYNAMIC-CONFIG" target="https://ocf.etsi.org/documentation/develop/configuration/configuration/">
          <front>
            <title>Dynamic Configuration - ETSI SDG OCF Documentation</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="POSIX" target="https://pubs.opengroup.org/onlinepubs/9699919799/">
          <front>
            <title>Information Technology--Portable Operating System Interface (POSIX) Base Specifications, Issue 7</title>
            <author>
              <organization>The Open Group</organization>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="MS-FAT" target="https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file">
          <front>
            <title>Naming Files, Paths, and Namespaces</title>
            <author>
              <organization>Microsoft</organization>
            </author>
            <date year="2024" month="August" day="28"/>
          </front>
        </reference>
        <reference anchor="MS-FSCC" target="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/18e63b13-ba43-4f5f-a5b7-11e871b71f14">
          <front>
            <title>File System Control Codes (FSCC)</title>
            <author>
              <organization>Microsoft</organization>
            </author>
            <date year="2025" month="April" day="07"/>
          </front>
        </reference>
        <reference anchor="SEMVER" target="https://semver.org/">
          <front>
            <title>Semantic Versioning 2.0.0</title>
            <author initials="T." surname="Preston-Werner" fullname="Tom Preston-Werner">
              <organization/>
            </author>
            <date year="2013"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 406?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks Tim Martin and Zach Marshall from CERN for their detailed explanations and guidance on the ATLAS High-Level Trigger system's configuration architecture, which informed the structure and practical alignment of this specification.</t>
      <t>The author also thanks Ege Korkan from Siemens AG, and Daron Yondem from Microsoft for detailed review comments and critical feedback on early staging of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
vHceR1sAAA==

-->

</rfc>
