{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T21:47:11.450Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9031",
  "document": {
    "abstract": "This document describes the minimal framework required for a new device, called a \"pledge\", to securely join a 6TiSCH (IPv6 over the Time-Slotted Channel Hopping mode of IEEE 802.15.4) network. The framework requires that the pledge and the JRC (Join Registrar/Coordinator, a central entity), share a symmetric key. How this key is provisioned is out of scope of this document. Through a single CoAP (Constrained Application Protocol) request-response exchange secured by OSCORE (Object Security for Constrained RESTful Environments), the pledge requests admission into the network, and the JRC configures it with link-layer keying material and other parameters. The JRC may at any time update the parameters through another request-response exchange secured by OSCORE. This specification defines the Constrained Join Protocol and its CBOR (Concise Binary Object Representation) data structures, and it describes how to configure the rest of the 6TiSCH communication stack for this join process to occur in a secure manner. Additional security mechanisms may be added on top of this minimal framework.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "authors": [
      {
        "name": "Mališa Vučinić"
      },
      {
        "name": "Jonathan Simon"
      },
      {
        "name": "Kris Pister"
      },
      {
        "name": "Michael Richardson"
      }
    ],
    "authors$meta": {
      "confidence": "high",
      "note": "Parsed from Datatracker doc page article:author (profile full names)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "docId": "RFC9031",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "docLabel": "IETF RFC 9031",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "docNumber": "9031",
    "docNumber$meta": {
      "confidence": "high",
      "note": "From the RFC index entry (rfc-index.xml <doc-id>)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "docTitle": "Constrained Join Protocol (CoJP) for 6TiSCH",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "docType": "Standard",
    "docType$meta": {
      "confidence": "high",
      "note": "Mapped from Datatracker std_level or RFC status text",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "doi": "10.17487/RFC9031",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "href": "https://doi.org/10.17487/RFC9031",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "keywords": [
      "Bootstrapping",
      "Onboarding",
      "OSCORE"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "pages": "41",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "publicationDate": "2021-05-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
      "updated": "2026-10-20T21:47:11.450Z",
      "version": "extractDocs.js@commit:92f3ced618ff"
    },
    "references": {
      "bibliographic": [
        "NIST.SP.800-90Ar1",
        "RFC4231",
        "RFC4944",
        "RFC6550",
        "RFC6762",
        "RFC7721",
        "RFC8415",
        "RFC8480",
        "RFC8610",
        "RFC8615",
        "RFC8742",
        "RFC8990"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      },
      "normative": [
        "10.1109-IEEESTD.2016.7460875",
        "RFC2119",
        "RFC2597",
        "RFC3172",
        "RFC5869",
        "RFC6761",
        "RFC7252",
        "RFC7554",
        "RFC8085",
        "RFC8126",
        "RFC8152",
        "RFC8174",
        "RFC8180",
        "RFC8505",
        "RFC8613",
        "RFC8820",
        "RFC8949",
        "RFC8974",
        "RFC9030"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      }
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      },
      "errataExist": false,
      "errataExist$meta": {
        "confidence": "high",
        "note": "Derived from presence of errata links on RFC/Datatracker pages",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      },
      "statusNote": "Proposed Standard",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9031/",
        "updated": "2026-10-20T21:47:11.450Z",
        "version": "extractDocs.js@commit:92f3ced618ff"
      }
    }
  }
}