Portal Community

Complete ZIP Layout

{packageName}-{version}.zip          ← File name convention
├── manifest.json                      ← REQUIRED — always at ZIP root
├── README.md                          ← REQUIRED — human-readable description
└── artifacts/                         ← REQUIRED — artifact container directory
    ├── workflows/                     ← Present if package contains workflows
    │   ├── {processId}.json           ← One file per ProcessDefinition
    │   └── {threadId}.json            ← One file per ThreadDefinition
    ├── forms/                         ← Present if package contains forms
    │   └── {formId}.json              ← One file per AtlasForm
    ├── rules/                         ← Present if package contains rule sets
    │   └── {ruleId}.json              ← One file per RuleSet
    ├── entities/                      ← Present if package contains entity schemas
    │   └── {entityId}.json            ← One file per EntitySchema
    └── apps/                          ← Present if package contains apps
        └── {appId}.json               ← One file per AppDefinition

File Naming Rules

LocationNaming ConventionExample
ZIP file name{name}-{version}.zip (lowercase, hyphens)employee-onboarding-2.1.0.zip
ProcessDefinitionartifacts/workflows/{id}.jsonartifacts/workflows/proc-1001.json
ThreadDefinitionartifacts/workflows/{id}.jsonartifacts/workflows/thread-2002.json
AtlasFormartifacts/forms/{id}.jsonartifacts/forms/form-2005.json
RuleSetartifacts/rules/{id}.jsonartifacts/rules/rule-305.json
EntitySchemaartifacts/entities/{id}.jsonartifacts/entities/ent-44.json
AppDefinitionartifacts/apps/{id}.jsonartifacts/apps/app-88.json

Required Files

The import engine validates the presence of these files before processing any content. Missing any of them results in immediate rejection:

Forbidden Content

The import engine rejects packages containing these patterns:

Path Traversal Prevention The import engine uses a safe ZIP extractor that rejects any entry whose resolved path falls outside the extraction directory. Path traversal via ../ or absolute paths causes immediate rejection and security scan failure.

File Encoding

ZIP Compression

FileCompressionReason
manifest.jsonNone (stored)Fast access without decompressing the whole archive
Artifact JSON filesDeflate (Optimal)JSON is highly compressible — typically 75% size reduction
README.mdDeflate (Optimal)Text compresses well

Structure Validation Sequence

1

ZIP Integrity

Verify the ZIP is not corrupted (valid ZIP central directory).

2

manifest.json Presence

Confirm manifest.json exists at the root. Fail immediately if absent.

3

README.md Presence

Confirm README.md exists at the root.

4

Forbidden Content Scan

Scan all entry paths for forbidden patterns (executable extensions, path traversal, nested archives).

5

Artifact Manifest Cross-Reference

Verify every file in artifacts/ is declared in the manifest, and every manifest entry has a corresponding file in the ZIP.