Portal Community

The Package as a Contract

The InstallHub package format is a stable, versioned contract. Every package produced by the export system and consumed by the import system follows this format exactly. Tools that build packages programmatically must adhere to it to be accepted by the import pipeline.

Package Structure at a Glance

{packageName}-{version}.zip
├── manifest.json              ← REQUIRED: package metadata, artifact index, checksum
├── README.md                  ← REQUIRED: human-readable description
└── artifacts/
    ├── workflows/
    │   ├── {processId}.json   ← ProcessDefinition or ThreadDefinition
    │   └── ...
    ├── forms/
    │   └── {formId}.json      ← AtlasForm
    ├── rules/
    │   └── {ruleId}.json      ← RuleSet
    ├── entities/
    │   └── {entityId}.json    ← EntitySchema
    └── apps/
        └── {appId}.json       ← AppDefinition

Three Invariants

Every valid InstallHub package satisfies these invariants:

1

Manifest at Root

The file manifest.json must exist at the ZIP root. The import engine reads this first and rejects any ZIP that does not contain it.

2

Every Artifact Declared

Every file under artifacts/ must be declared in the manifest's artifacts array. Files present in the ZIP but missing from the manifest are rejected as untrusted content.

3

Checksum Matches

The checksum field in the manifest must equal the SHA-256 of all artifact file bytes computed by the import engine. Any mismatch → immediate rejection.

Format Version

The manifest includes a manifestVersion field. The current format version is "1.0". Future versions that make breaking changes to the schema will increment this. The import engine checks manifestVersion and rejects packages with an unsupported version.

manifestVersionSupport StatusNotes
1.0CurrentThe format defined in this guide

Why ZIP?

ZIP was chosen for the following reasons:

Guide Contents

PageTopic
ZIP StructureExact directory layout and file naming conventions
Manifest SchemaComplete JSON schema for manifest.json with all field constraints
Artifact SerializationHow each artifact type is encoded in JSON
VersioningSemVer for packages and per-artifact version fields
Dependency DeclarationsPackage-to-package dependencies and version constraints
ChecksumSHA-256 algorithm, input, and verification process
README.md in PackageRequired and optional sections of the package README