Portal Community

What the Manifest Contains

The manifest is generated after dependency resolution and checksum computation are complete. It is the last file written before the ZIP is finalized.

Complete manifest.json Example

{
  "manifestVersion": "1.0",
  "packageId":       "pkg-a3f9c821-4b2e-49d1-bc44-f7e2a1c09d33",
  "name":            "Employee Onboarding Suite",
  "packageType":     "workflow-package",
  "version":         "2.1.0",
  "description":     "Complete employee onboarding with multi-step approval, forms, and notifications",
  "author":          "HR Automation Team",
  "authorEmail":     "hr-automation@company.com",
  "organization":    "Acme Corp",
  "exportedAt":      "2026-05-25T09:00:00Z",
  "exportedBy":      "engineer@company.com",
  "tenantId":        "tenant-7f3a9b12-...",
  "platformVersion": "4.2.0",
  "checksum":        "sha256:3a9f1c4e8d2b7f6a1e5c9d3b0a4f8e2c7d1a6b9e3f5c8d2a0b7e4f1c9d3a6b0",
  "tags":            ["hr", "onboarding", "approval"],
  "artifacts": [
    {
      "type":    "ProcessDefinition",
      "id":      "proc-1001",
      "name":    "EmployeeOnboarding",
      "version": "2.1.0",
      "file":    "artifacts/workflows/proc-1001.json",
      "hash":    "sha256:abc123..."
    },
    {
      "type":    "ThreadDefinition",
      "id":      "thread-2002",
      "name":    "ApprovalSubflow",
      "version": "1.0.0",
      "file":    "artifacts/workflows/thread-2002.json",
      "hash":    "sha256:def456..."
    },
    {
      "type":    "AtlasForm",
      "id":      "form-2005",
      "name":    "EmployeeForm",
      "version": "1.3.0",
      "file":    "artifacts/forms/form-2005.json",
      "hash":    "sha256:ghi789..."
    },
    {
      "type":    "RuleSet",
      "id":      "rule-305",
      "name":    "ApprovalRules",
      "version": "1.0.0",
      "file":    "artifacts/rules/rule-305.json",
      "hash":    "sha256:jkl012..."
    },
    {
      "type":    "EntitySchema",
      "id":      "ent-44",
      "name":    "EmployeeSchema",
      "version": "1.0.0",
      "file":    "artifacts/entities/ent-44.json",
      "hash":    "sha256:mno345..."
    }
  ],
  "dependencies": [
    { "type": "ProcessDefinition", "id": "proc-1001",   "name": "EmployeeOnboarding", "version": "2.1.0", "hash": "sha256:abc123..." },
    { "type": "ThreadDefinition",  "id": "thread-2002", "name": "ApprovalSubflow",    "version": "1.0.0", "hash": "sha256:def456..." },
    { "type": "AtlasForm",         "id": "form-2005",   "name": "EmployeeForm",       "version": "1.3.0", "hash": "sha256:ghi789..." },
    { "type": "RuleSet",           "id": "rule-305",    "name": "ApprovalRules",      "version": "1.0.0", "hash": "sha256:jkl012..." },
    { "type": "EntitySchema",      "id": "ent-44",      "name": "EmployeeSchema",     "version": "1.0.0", "hash": "sha256:mno345..." }
  ],
  "packageDependencies": [],
  "installOrder": ["ent-44", "rule-305", "form-2005", "thread-2002", "proc-1001"]
}

Manifest Fields Reference

FieldTypeRequiredDescription
manifestVersionstringYesSchema version — currently "1.0". Incremented on breaking manifest changes.
packageIdGUID stringYesUnique identifier generated at export time. Stable across re-downloads of the same export.
namestringYesHuman-readable package name (1–100 chars).
packageTypeenum stringYesOne of: workflow-package, form-package, app-package, agent-package, config-package.
versionSemVer stringYesPackage version — major.minor.patch.
exportedAtISO 8601 UTCYesTimestamp when the export was created.
exportedBystringYesIdentity of the user who triggered the export.
tenantIdstringYesSource tenant. Informational — IDs are remapped on import.
platformVersionSemVer stringYesBizFirstGO platform version at export time. Import warns if target platform is older.
checksumsha256:{hex}YesSHA-256 of all artifact file contents. Recomputed and verified on import.
artifactsarrayYesOne entry per artifact in the bundle, with file path and per-artifact hash.
dependenciesarrayYesFull dependency closure with version and hash — mirrors artifacts but used by the import engine for validation.
packageDependenciesarrayNoOther InstallHub packages that must be installed before this one.
installOrderstring[]YesTopologically sorted artifact IDs — the import engine installs in this order.

Per-Artifact Hash

Each artifact entry in the manifest carries its own hash — a SHA-256 of that artifact file's bytes only. This allows the import engine to verify each artifact individually in addition to the whole-bundle checksum, and to identify exactly which file was corrupted if verification fails.

Platform Version Compatibility

The manifest records the platform version at export time. On import, the engine compares this to the target platform version:

C# Entity

public class PackageManifest
{
    public string   ManifestVersion       { get; init; } = "1.0";
    public string   PackageId             { get; init; }
    public string   Name                  { get; init; }
    public string   PackageType           { get; init; }
    public string   Version               { get; init; }
    public string?  Description           { get; init; }
    public string?  Author                { get; init; }
    public string   ExportedBy            { get; init; }
    public string   TenantId              { get; init; }
    public string   PlatformVersion       { get; init; }
    public string   Checksum              { get; init; }
    public string[] Tags                  { get; init; } = [];
    public ArtifactEntry[]       Artifacts            { get; init; }
    public DependencyEntry[]     Dependencies         { get; init; }
    public PackageDependency[]   PackageDependencies  { get; init; } = [];
    public string[]              InstallOrder         { get; init; }
    public DateTimeOffset        ExportedAt           { get; init; }
}