S1 – Package Manifest Schema

S1 – Package Manifest Schema

Version: 0.9.0
Status: Release Candidate
Type: Normative Schema Specification

Copyright © 2026 inside workspace GmbH
This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License.1. 

1. Introduction

1.1 Purpose

This specification defines the data model, semantics, validation requirements and normative JSON Schema for the Package Manifest of the KAPRI Specification Suite.

The Package Manifest is the authoritative entry document of every Knowledge Asset Package. It identifies the published Knowledge Asset version, describes the publication context, references all Package components and provides the information required to verify the integrity and authenticity of the Package.

1.2 Scope

This specification defines:

  • the Package Manifest data model,
  • the semantics of all Manifest properties,
  • Package Manifest-specific validation requirements,
  • the normative JSON representation,
  • the normative JSON Schema,
  • the conformance requirements for Producers and Consumers.

This specification does not define:

  • the Packing List structure (see S2),
  • the Composition structure (see S3),
  • the Key Delivery Message (see S4),
  • certificate management,
  • trust management,
  • key management,
  • long-term signature validation.

General serialization rules are defined by SC0 – Common Serialization Rules.

Common reusable data types are defined by SC1 – Common Data Types.

1.3 Relationship to Other Specifications

This specification forms part of the KAPRI Specification Suite.

It builds upon:

  • S0 – Knowledge Asset Package Architecture Specification
  • SC0 – Common Serialization Rules
  • SC1 – Common Data Types

The Package Manifest references additional Package components specified by:

  • S2 – Packing List Schema
  • S3 – Composition Schema

The Key Delivery Message specified by S4 – KAP Key Delivery Message Schema is not part of the Knowledge Asset Package and is therefore not referenced by the Package Manifest.

2. Package Manifest Overview

2.1 Purpose

The Package Manifest is the authoritative description of a published Knowledge Asset Package.

Every Knowledge Asset Package SHALL contain exactly one Package Manifest.

The Package Manifest provides the information required to:

  • identify the Package,
  • identify the published Knowledge Asset version,
  • identify the organizations responsible for publication,
  • identify the producing software through the associated certificate chain,
  • define the publication scope,
  • define the validity period, if applicable,
  • reference all Package components,
  • protect the integrity and authenticity of the complete Knowledge Asset Package through a digital signature.

2.2 Manifest Lifecycle

The Package Manifest is created as part of Package generation.

Before publication, all mandatory Manifest properties SHALL be completed and the Manifest SHALL be digitally signed by the Producer.

After publication, the Package Manifest SHALL remain immutable.

Any modification of the Manifest results in a different Package and therefore requires a new Package identifier and a new digital signature.

2.3 Manifest Responsibilities

The digital signature protects the canonical representation of the Package Manifest.

Since the Manifest references the Packing List and all Compositions through cryptographic hashes, the digital signature indirectly protects the integrity and authenticity of every referenced Package component.

Consumers SHALL validate the Manifest before processing any referenced Package component.

3. Manifest Data Model

3.1 Package Manifest Structure

The Package Manifest SHALL contain the following properties.

PropertyTypeCardinalitydocument_type | String | 1
schema_version | Schema Version | 1
package_id | URI | 1
knowledge_asset_id | URI | 1
knowledge_asset_version_id | Version Identifier | 1
knowledge_asset_version_label | String | 1
title | String | 1
publication_scope | Publication Scope | 1
responsible_organization | Organization | 1
published_at | Timestamp | 1
validity | Validity Period | 0..1
packing_list | Document Reference | 1
compositions | Document Reference[] | 1..n
signature | Signature | 1

3.2 Property Semantics

The following clauses define the normative semantics of each Package Manifest property.

3.2.1 document_type

Identifies the document as a Package Manifest.

The value SHALL be

kap_manifest

3.2.2 schema_version

Identifies the version of this specification used to serialize the Manifest.

Consumers SHALL validate the Manifest according to the specified schema version.

3.2.3 package_id

Uniquely identifies the Knowledge Asset Package.

The Package Identifier SHALL remain immutable after publication.

3.2.4 knowledge_asset_id

Identifies the Knowledge Asset represented by the Package.

Multiple published versions of the same Knowledge Asset SHALL use the same knowledge_asset_id.

3.2.5 knowledge_asset_version_id

Uniquely identifies the published version of the Knowledge Asset.

Every published version SHALL have a different Version Identifier.

3.2.6 knowledge_asset_version_label

Provides a human-readable version label.

The label is intended for display purposes and SHALL NOT be used for version comparison.

3.2.7 title

Provides a human-readable title of the published Knowledge Asset version.

3.2.8 publication_scope

Defines whether the Package represents the complete Knowledge Asset or only a published subset.

3.2.9 responsible_organization

Identifies the organization that publishes the Package and assumes responsibility for the published Knowledge Asset version.

3.2.10 published_at

Specifies the publication timestamp of the Package.

3.2.11 validity

Optionally defines the validity period of the published Knowledge Asset version.

3.2.12 packing_list

References the Package Packing List using a Document Reference.

The referenced hash SHALL be used during integrity validation.

3.2.13 compositions

References one or more Composition documents using Document References.

Every referenced Composition SHALL be included in the Package.

3.2.14 signature

Contains the digital signature protecting the integrity and authenticity of the Package Manifest.

Before signature generation and signature validation, the Package Manifest SHALL be transformed into its canonical JSON representation according to RFC 8785 – JSON Canonicalization Scheme (JCS). The signature property SHALL be excluded from the canonical representation.

The signature property SHALL conform to the Signature data type defined by SC1 – Common Data Types.

4. JSON Representation

4.1 General

The Package Manifest SHALL be represented as a single JSON document.

The serialization of the Package Manifest SHALL conform to SC0 – Common Serialization Rules.

The document SHALL contain the properties defined in this specification.

4.2 Example

The following example illustrates a valid Package Manifest.

{
  "document_type": "kap_manifest",
  "schema_version": "0.9.0",
  "package_id": "urn:uuid:3573f619-952d-40d6-bc38-d7f7072ff519",
  "knowledge_asset_id": "urn:uuid:b5919822-7095-44bb-85d1-3a9513b894ad",
  "knowledge_asset_version_id": "urn:uuid:d67c5911-727d-4fa7-94cb-95083d874b16",
  "knowledge_asset_version_label": "1.0",
  "title": "KAPRI Reference Package",
  "publication_scope": "complete",
  "responsible_organization": {
    "organization_id": "urn:kap:organization:kapri-reference",
    "name": "KAPRI Reference Organization"
  },
  "published_at": "2026-08-08T08:56:16Z",
  "packing_list": {
    "document_id": "urn:uuid:40b2ca71-39d1-4fae-a365-251a569d699b",
    "hash_algorithm": "SHA-256",
    "hash": "k4tx0lwKkz4PFpWudkXGEzllN2wLZXMrf07cyKyVAio"
  },
  "compositions": [
    {
      "document_id": "urn:uuid:dce8e84e-8f7d-4671-b26c-875e3dd4c084",
      "hash_algorithm": "SHA-256",
      "hash": "qVZ8NMwbHjWXNke3qac-nZhGGiiGRPWzCyNw0kcfP4I"
    }
  ],
  "signature": {
    "algorithm": "ECDSA-P256-SHA256",
    "certificate_chain": [
      {
        "certificate_id": "urn:kap:certificate:sha256:TxD6Y7_L54jxMAO95r7G45xjDQg9jmVgtDI0_j2ayrw",
        "issuer": "dnQualifier=AS8vbsT\\+7JWZ5vULt9mjXSmGEKw=,CN=KAPRI Reference Intermediate CA,O=inside workspace GmbH,OU=KAPRI Reference Implementation,C=DE",
        "serial_number": "3",
        "certificate": "MIICrTCCAlOgAwIBAgIBAzAKBggqhkjOPQQDAjCBpzELMAkGA1UEBhMCREUxJzAlBgNVBAsMHktBUFJJIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbjEeMBwGA1UECgwVaW5zaWRlIHdvcmtzcGFjZSBHbWJIMSgwJgYDVQQDDB9LQVBSSSBSZWZlcmVuY2UgSW50ZXJtZWRpYXRlIENBMSUwIwYDVQQuExxBUzh2YnNUKzdKV1o1dlVMdDltalhTbUdFS3c9MB4XDTI2MDEwMTAwMDAwMFoXDTMwMTIzMTAwMDAwMFowgaAxCzAJBgNVBAYTAkRFMScwJQYDVQQLDB5LQVBSSSBSZWZlcmVuY2UgSW1wbGVtZW50YXRpb24xHjAcBgNVBAoMFWluc2lkZSB3b3Jrc3BhY2UgR21iSDEhMB8GA1UEAwwYS0FQUkkgUmVmZXJlbmNlIFByb2R1Y2VyMSUwIwYDVQQuExxVUi9YTGc4QUNnaGNKd0YwTDVUMXcrTVFvcmc9MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgb5pPdPJ35RHU+FzbbIZXahrmn+1/31pXL0yLsKPwSft+rq+JxpdRL4oEWfP53Oy31X/zFIkMxyt0V3WVmKROaN1MHMwHQYDVR0OBBYEFFEf1y4PAAoIXCcBdC+U9cPjEKK4MB8GA1UdIwQYMBaAFAEvL27E/uyVmeb1C7fZo10phhCsMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMAoGCCqGSM49BAMCA0gAMEUCIQDLv7W3ILoIzmEEBh1gcbzNKIaWTqkI5Vp9afRj8muU8AIgYuWw9zDSLQtB+O7Vi51/nkySAI8RVBmJq2P+lc7BnFA="
      },
      {
        "certificate_id": "urn:kap:certificate:sha256:_yUS4m5LAfsMARXmI_3Faw8acFWJNRCdSQS1EexGBT4",
        "issuer": "dnQualifier=k/zVfoPrmhnL41\\+TSVwS1y87XLg=,CN=KAPRI Reference Root CA,O=inside workspace GmbH,OU=KAPRI Reference Implementation,C=DE",
        "serial_number": "2",
        "certificate": "MIICnjCCAkOgAwIBAgIBAjAKBggqhkjOPQQDAjCBnzELMAkGA1UEBhMCREUxJzAlBgNVBAsMHktBUFJJIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbjEeMBwGA1UECgwVaW5zaWRlIHdvcmtzcGFjZSBHbWJIMSAwHgYDVQQDDBdLQVBSSSBSZWZlcmVuY2UgUm9vdCBDQTElMCMGA1UELhMcay96VmZvUHJtaG5MNDErVFNWd1MxeTg3WExnPTAeFw0yNjAxMDEwMDAwMDBaFw0zMDEyMzEwMDAwMDBaMIGnMQswCQYDVQQGEwJERTEnMCUGA1UECwweS0FQUkkgUmVmZXJlbmNlIEltcGxlbWVudGF0aW9uMR4wHAYDVQQKDBVpbnNpZGUgd29ya3NwYWNlIEdtYkgxKDAmBgNVBAMMH0tBUFJJIFJlZmVyZW5jZSBJbnRlcm1lZGlhdGUgQ0ExJTAjBgNVBC4THEFTOHZic1QrN0pXWjV2VUx0OW1qWFNtR0VLdz0wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS3BGN2QXfknNgFRqIp1ZurKZV4sq3s6QBZqJqlug5ND4Yvayju1+D9tXWpZs6Prcn9mEmpihPb4PM6l5XCjCILo2YwZDAdBgNVHQ4EFgQUAS8vbsT+7JWZ5vULt9mjXSmGEKwwHwYDVR0jBBgwFoAUk/zVfoPrmhnL41+TSVwS1y87XLgwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwIDSQAwRgIhAKYnL7h8ccYUBr2sTzommBx5YCaCwC0SwAPUrq3q2dx5AiEAgPd2d15r4joXtZHeQpb6TM7EuNrvOq2CswiMP1KH7j8="
      },
      {
        "certificate_id": "urn:kap:certificate:sha256:CGmzikmPtIyQ2CNSRze9rioLnBuInB3Z7ifToIEzmE0",
        "issuer": "dnQualifier=k/zVfoPrmhnL41\\+TSVwS1y87XLg=,CN=KAPRI Reference Root CA,O=inside workspace GmbH,OU=KAPRI Reference Implementation,C=DE",
        "serial_number": "1",
        "certificate": "MIICdDCCAhqgAwIBAgIBATAKBggqhkjOPQQDAjCBnzELMAkGA1UEBhMCREUxJzAlBgNVBAsMHktBUFJJIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbjEeMBwGA1UECgwVaW5zaWRlIHdvcmtzcGFjZSBHbWJIMSAwHgYDVQQDDBdLQVBSSSBSZWZlcmVuY2UgUm9vdCBDQTElMCMGA1UELhMcay96VmZvUHJtaG5MNDErVFNWd1MxeTg3WExnPTAeFw0yNjAxMDEwMDAwMDBaFw0zMDEyMzEwMDAwMDBaMIGfMQswCQYDVQQGEwJERTEnMCUGA1UECwweS0FQUkkgUmVmZXJlbmNlIEltcGxlbWVudGF0aW9uMR4wHAYDVQQKDBVpbnNpZGUgd29ya3NwYWNlIEdtYkgxIDAeBgNVBAMMF0tBUFJJIFJlZmVyZW5jZSBSb290IENBMSUwIwYDVQQuExxrL3pWZm9Qcm1obkw0MStUU1Z3UzF5ODdYTGc9MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExki58Y6Hv9thf5rBoAIQjM2hK+h6qM8ko63H2wnE6Ka1dSE5VHO29EEaFgeunXw9lLQJOhG35Qf0bSUOEzxBh6NFMEMwHQYDVR0OBBYEFJP81X6D65oZy+Nfk0lcEtcvO1y4MBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0gAMEUCIF8MPd9iuxaiEfm28NinVb/5HASWzq8ADwri6kWmnaxhAiEA8XAgRjWL0enrzpbtc/sg0NHhSQfsUjhpJXiiyl7Zt28="
      }
    ],
    "signature_value": "MEYCIQDNJzN8ab4s_Bg3R8qv5WyOwqL7eAg6XXvUC6Fj9RRNhAIhAKAkIfEe5JLML-9n46u7eMghl_1Sri05FOi1Dw8DuHh7"
  }
}

5. JSON Schema

The normative JSON Schema for the Package Manifest is provided by the accompanying file:

https://inside-workspace.de/kapri/schema/0.9.0/kap_manifest.schema.json

The JSON Schema validates the document structure and primitive data types. Semantic interpretation is defined exclusively by this specification and SC1 – Common Data Types.

Package Manifest documents SHALL conform to this schema.

In case of discrepancies between this specification and the accompanying JSON Schema, this specification takes precedence.

6. Validation Rules

This chapter defines validation requirements specific to the Package Manifest.

General validation requirements are defined by S0 – Knowledge Asset Package Architecture Specification.

Serialization validation rules are defined by SC0 – Common Serialization Rules.

Validation rules for common data types are defined by SC1 – Common Data Types.

The following additional validation rules apply:

  • Exactly one Package Manifest SHALL be present in every Knowledge Asset Package.
  • Exactly one signature property SHALL be present in the Package Manifest.
  • The referenced Packing List SHALL exist within the Package.
  • At least one referenced Composition SHALL exist within the Package.
  • Every referenced document SHALL successfully pass integrity verification.
  • The signature property SHALL conform to the Signature data type defined by SC1 – Common Data Types.
  • The digital signature SHALL successfully validate the canonical representation of the Package Manifest.

7. Conformance

7.1 General

An implementation claiming conformance with this specification SHALL conform to:

  • S0 – Knowledge Asset Package Architecture Specification
  • SC0 – Common Serialization Rules
  • SC1 – Common Data Types
  • this specification.

7.2 Schema Conformance

Package Manifest documents SHALL conform to the normative JSON Schema defined by this specification.

7.3 Interoperability

Conforming implementations SHALL preserve the semantic meaning of all Package Manifest properties.

Conforming implementations SHALL interpret Package Manifest documents consistently and independently of implementation technology.


Diese Website verwendet Cookies, um Ihnen die bestmögliche Nutzererfahrung zu bieten. Mehr erfahren

Kontakt

Wir freuen uns auf Ihre Nachricht.

Mit dem Absenden akzeptieren Sie unsere Datenschutzerklärung

Login