ObjectStackObjectStack

Package

Package protocol schemas

Package Identity Protocol

A package (also called a Solution in Power Platform, an Unlocked Package

in Salesforce, or an Application in ServiceNow) is the first-class unit of

distribution in ObjectStack. It groups related metadata — objects, views,

flows, translations, agents — into a named, versioned artifact.

Architecture:

  • sys_package — identity (one row per logical package)

  • sys_package_version — immutable release snapshots (see package-version.zod.ts)

  • sys_package_installation — env ↔ version pairing (see environment-package.zod.ts)

See docs/adr/0003-package-as-first-class-citizen.md for the full rationale.

Source: packages/spec/src/cloud/package.zod.ts

TypeScript Usage

import { CreatePackageRequest, Package, PackageCategory, PackageVisibility, UpdatePackageRequest } from '@objectstack/spec/cloud';
import type { CreatePackageRequest, Package, PackageCategory, PackageVisibility, UpdatePackageRequest } from '@objectstack/spec/cloud';

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

CreatePackageRequest

Register a new package in the Control Plane

Properties

PropertyTypeRequiredDescription
manifestIdstringGlobally unique reverse-domain package identifier (e.g. com.acme.crm)
ownerOrgIdstringOwner organization ID
displayNamestringDisplay name shown in Studio and Marketplace
descriptionstringoptionalShort package description
visibilityEnum<'private' | 'org' | 'marketplace'>optionalPackage visibility: private = owner org only; org = all envs in owner org; marketplace = public registry
categorystringoptionalPackage category for marketplace discovery (e.g. "crm", "hr", "finance", "devtools")
tagsstring[]optional
iconUrlstringoptional
homepageUrlstringoptional
licensestringoptional
createdBystringUser ID creating the package

Package

Properties

PropertyTypeRequiredDescription
idstringUUID of the package (stable, never reused)
manifestIdstringGlobally unique reverse-domain package identifier (e.g. com.acme.crm)
ownerOrgIdstringOrganization ID of the package owner/publisher
displayNamestringDisplay name shown in Studio and Marketplace
descriptionstringoptionalShort package description
readmestringoptionalLong-form package documentation (markdown)
visibilityEnum<'private' | 'org' | 'marketplace'>Package visibility: private = owner org only; org = all envs in owner org; marketplace = public registry
categorystringoptionalPackage category for marketplace discovery (e.g. "crm", "hr", "finance", "devtools")
tagsstring[]optionalSearch and filter tags
iconUrlstringoptionalPackage icon URL
homepageUrlstringoptionalPackage homepage URL
licensestringoptionalSPDX license identifier (e.g. MIT, Apache-2.0)
createdAtstringCreation timestamp (ISO-8601)
updatedAtstringLast update timestamp (ISO-8601)
createdBystringUser ID that created the package


PackageVisibility

Package visibility: private = owner org only; org = all envs in owner org; marketplace = public registry

Allowed Values

  • private
  • org
  • marketplace

UpdatePackageRequest

Update mutable package metadata

Properties

PropertyTypeRequiredDescription
displayNamestringoptionalDisplay name shown in Studio and Marketplace
descriptionstringoptionalShort package description
readmestringoptionalLong-form package documentation (markdown)
visibilityEnum<'private' | 'org' | 'marketplace'>optionalPackage visibility: private = owner org only; org = all envs in owner org; marketplace = public registry
categorystringoptionalPackage category for marketplace discovery (e.g. "crm", "hr", "finance", "devtools")
tagsstring[]optional
iconUrlstringoptional
homepageUrlstringoptional
licensestringoptional

On this page