Selecting Artifacts
You specify the root artifacts to package — everything else is resolved automatically. Understanding which artifacts to select and how to discover their IDs is the first step in creating a package.
Root vs. Dependency Artifacts
When creating a package, you only need to specify the root artifacts — the top-level items you want the package consumer to receive. The DependencyResolver automatically discovers and includes all artifacts that those roots depend on.
| Category | Typically a Root | Typically a Dependency |
|---|---|---|
| Process Definition | Yes | Rarely — only if a package contains only a sub-workflow |
| Thread Definition | No | Yes — pulled in from its parent process |
| Atlas Form | Sometimes — for form-only packages | Yes — pulled from workflows |
| Rule Set | Rarely | Yes — pulled from forms and workflows |
| Entity Schema | No | Yes — pulled from entity-type nodes |
| App Definition | Yes — for app packages | Rarely |
Finding Artifact IDs
Via the API
// List all process definitions in a tenant
GET /api/processes?tenantId={tenantId}&pageSize=100
Authorization: Bearer {token}
// List all Atlas Forms
GET /api/forms?tenantId={tenantId}&pageSize=100
Authorization: Bearer {token}
// List all App Studio apps
GET /api/apps?tenantId={tenantId}&pageSize=100
Authorization: Bearer {token}
Via Flow Studio
In Flow Studio, open the workflow you want to export. The artifact ID is shown in the browser URL and in the workflow's Properties panel (bottom right). Copy the processId value.
Via Atlas Forms Studio
In the Atlas Forms Studio, open the form and look at the URL or the form's settings panel for the formId. This is the ID to pass to the export API.
Single-Artifact Export
Export a single workflow — all its dependencies are automatically included:
POST /api/installhub/packages/export
{
"packageName": "Leave Approval",
"packageType": "workflow-package",
"version": "1.0.0",
"artifactIds": ["proc-1002"]
}
// DependencyResolver will include:
// - proc-1002 (root)
// - any ThreadDefinitions referenced by proc-1002
// - any AtlasForms used by form-display nodes in proc-1002
// - any RuleSets evaluated by rule nodes in proc-1002
Multi-Artifact Export
Export multiple root artifacts in a single package — useful for a suite of related workflows:
POST /api/installhub/packages/export
{
"packageName": "HR Automation Suite",
"packageType": "workflow-package",
"version": "3.0.0",
"description": "Complete HR workflow suite — onboarding, leave, and payroll",
"artifactIds": [
"proc-1001",
"proc-1002",
"proc-1003"
]
}
The resolver merges the dependency graphs of all root artifacts, deduplicating shared dependencies (e.g., if two workflows use the same form, that form appears only once in the bundle).
Form-Only Package
Export a collection of Atlas Forms without any workflows:
POST /api/installhub/packages/export
{
"packageName": "Employee Form Library",
"packageType": "form-package",
"version": "2.0.0",
"artifactIds": [
"form-2005",
"form-2006",
"form-2007"
]
}
Previewing What Will Be Exported
Before committing to an export, you can preview the full dependency graph using the dependency preview endpoint:
POST /api/installhub/packages/preview
{
"tenantId": "{tenantId}",
"artifactIds": ["proc-1001"]
}
// Response:
{
"rootArtifacts": [{ "type": "ProcessDefinition", "id": "proc-1001", "name": "EmployeeOnboarding" }],
"resolvedDependencies": [
{ "type": "ThreadDefinition", "id": "thread-2002", "name": "ApprovalSubflow", "resolvedFrom": "proc-1001" },
{ "type": "AtlasForm", "id": "form-2005", "name": "EmployeeForm", "resolvedFrom": "proc-1001" },
{ "type": "RuleSet", "id": "rule-305", "name": "ApprovalRules", "resolvedFrom": "proc-1001" },
{ "type": "EntitySchema", "id": "ent-44", "name": "EmployeeSchema", "resolvedFrom": "proc-1001" }
],
"totalArtifacts": 5
}
Artifact ID Format
InstallHub artifact IDs follow the convention {type-prefix}-{numeric-id}:
| Prefix | Artifact Type | Example |
|---|---|---|
proc- | ProcessDefinition | proc-1001 |
thread- | ThreadDefinition | thread-2002 |
form- | AtlasForm | form-2005 |
rule- | RuleSet | rule-305 |
ent- | EntitySchema | ent-44 |
app- | AppDefinition | app-88 |