ObjectStackObjectStack

Package Api

Package Api protocol schemas

Package API Protocol

REST API endpoint schemas for package lifecycle management.

Base path: /api/v1/packages

@example Endpoints POST /api/v1/packages/install — Install a package POST /api/v1/packages/upgrade — Upgrade a package POST /api/v1/packages/resolve-dependencies — Resolve dependencies POST /api/v1/packages/upload — Upload an artifact GET /api/v1/packages — List installed packages GET /api/v1/packages/:packageId — Get package details POST /api/v1/packages/:packageId/rollback — Rollback a package DELETE /api/v1/packages/:packageId — Uninstall a package

Source: packages/spec/src/api/package-api.zod.ts

TypeScript Usage

import { GetInstalledPackageRequestSchema, GetInstalledPackageResponseSchema, ListInstalledPackagesRequestSchema, ListInstalledPackagesResponseSchema, PackageApiErrorCode, PackageInstallRequestSchema, PackageInstallResponseSchema, PackagePathParamsSchema, PackageRollbackRequestSchema, PackageRollbackResponseSchema, PackageUpgradeRequestSchema, PackageUpgradeResponseSchema, ResolveDependenciesRequestSchema, ResolveDependenciesResponseSchema, UninstallPackageApiRequestSchema, UninstallPackageApiResponseSchema, UploadArtifactRequestSchema, UploadArtifactResponseSchema } from '@objectstack/spec/api';
import type { GetInstalledPackageRequest, GetInstalledPackageResponse, ListInstalledPackagesRequest, ListInstalledPackagesResponse, PackageApiErrorCode, PackageInstallRequest, PackageInstallResponse, PackagePathParams, PackageRollbackRequest, PackageRollbackResponse, PackageUpgradeRequest, PackageUpgradeResponse, ResolveDependenciesRequest, ResolveDependenciesResponse, UninstallPackageApiRequest, UninstallPackageApiResponse, UploadArtifactRequest, UploadArtifactResponse } from '@objectstack/spec/api';

// Validate data
const result = GetInstalledPackageRequestSchema.parse(data);

GetInstalledPackageRequest

Properties

PropertyTypeRequiredDescription
packageIdstringPackage identifier

GetInstalledPackageResponse

Get installed package response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ manifest: object; status?: Enum<'installed' | 'disabled' | 'installing' | 'upgrading' | 'uninstalling' | 'error'>; enabled?: boolean; installedAt?: string; … }Installed package details

ListInstalledPackagesRequest

List installed packages request

Properties

PropertyTypeRequiredDescription
statusEnum<'installed' | 'disabled' | 'installing' | 'upgrading' | 'uninstalling' | 'error'>optionalFilter by package status
enabledbooleanoptionalFilter by enabled state
limitintegerMaximum number of packages to return
cursorstringoptionalCursor for pagination

ListInstalledPackagesResponse

List installed packages response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ packages: object[]; total?: integer; nextCursor?: string; hasMore: boolean }

PackageApiErrorCode

Allowed Values

  • package_not_found
  • package_already_installed
  • version_not_found
  • dependency_conflict
  • namespace_conflict
  • platform_incompatible
  • artifact_invalid
  • checksum_mismatch
  • signature_invalid
  • upgrade_failed
  • rollback_failed
  • snapshot_not_found
  • upload_failed

PackageInstallRequest

Install package request

Properties

PropertyTypeRequiredDescription
manifest{ id: string; namespace?: string; defaultDatasource?: string; version: string; … }Package manifest to install
settingsRecord<string, any>optionalUser-provided settings at install time
enableOnInstallbooleanoptionalWhether to enable immediately after install
platformVersionstringoptionalCurrent platform version for compatibility verification
artifactRef{ url: string; sha256: string; size: integer; format?: Enum<'tgz' | 'zip'>; … }optionalArtifact reference for marketplace installation

PackageInstallResponse

Install package response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ package: object; dependencyResolution?: object; namespaceConflicts?: object[]; message?: string }

PackagePathParams

Properties

PropertyTypeRequiredDescription
packageIdstringPackage identifier

PackageRollbackRequest

Rollback package request

Properties

PropertyTypeRequiredDescription
packageIdstringPackage identifier
snapshotIdstringSnapshot ID to restore from
rollbackCustomizationsbooleanWhether to restore pre-upgrade customizations

PackageRollbackResponse

Rollback package response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ success: boolean; restoredVersion?: string; message?: string }

PackageUpgradeRequest

Upgrade package request

Properties

PropertyTypeRequiredDescription
packageIdstringPackage ID to upgrade
targetVersionstringoptionalTarget version (defaults to latest)
manifest{ id: string; namespace?: string; defaultDatasource?: string; version: string; … }optionalNew manifest for the target version
createSnapshotbooleanoptionalWhether to create a pre-upgrade backup snapshot
mergeStrategyEnum<'keep-custom' | 'accept-incoming' | 'three-way-merge'>optionalHow to handle customer customizations
dryRunbooleanoptionalPreview upgrade without making changes
skipValidationbooleanoptionalSkip pre-upgrade compatibility checks

PackageUpgradeResponse

Upgrade package response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ success: boolean; phase: string; plan?: object; snapshotId?: string; … }

ResolveDependenciesRequest

Resolve dependencies request

Properties

PropertyTypeRequiredDescription
manifest{ id: string; namespace?: string; defaultDatasource?: string; version: string; … }Package manifest to resolve dependencies for
platformVersionstringoptionalCurrent platform version for compatibility filtering

ResolveDependenciesResponse

Resolve dependencies response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ dependencies: object[]; canProceed: boolean; requiredActions: object[]; installOrder: string[]; … }Dependency resolution result with topological sort

UninstallPackageApiRequest

Properties

PropertyTypeRequiredDescription
packageIdstringPackage identifier

UninstallPackageApiResponse

Uninstall package response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ packageId: string; success: boolean; message?: string }

UploadArtifactRequest

Upload artifact request

Properties

PropertyTypeRequiredDescription
artifact{ formatVersion: string; packageId: string; version: string; format: Enum<'tgz' | 'zip'>; … }Package artifact metadata
sha256stringoptionalSHA256 checksum of the uploaded file
tokenstringoptionalPublisher authentication token
releaseNotesstringoptionalRelease notes for this version

UploadArtifactResponse

Upload artifact response

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
error{ code: Enum<'VALIDATION_ERROR' | 'INVALID_FIELD' | 'MISSING_REQUIRED_FIELD' | … +266 more>; message: string; category?: string; httpStatus?: integer; … }optionalError details if success is false
meta{ timestamp: string; duration?: number; requestId?: string; traceId?: string }optionalResponse metadata
data{ success: boolean; artifactRef?: object; submissionId?: string; message?: string }

On this page