ObjectStackObjectStack

Environment Artifact

Environment Artifact protocol schemas

Project Artifact Format Protocol (v0)

Defines the immutable envelope produced by objectstack compile and consumed

by ObjectOS at boot. The artifact carries everything an ObjectOS instance

needs to hydrate a project kernel without reading control-plane DB rows

directly.

Boundary

  • Artifact (this schema): project metadata + inlined function code +

plugin/driver requirements. Immutable, content-addressable via commitId

and checksum.

  • Deployment Config (NOT in this schema): business DB coordinates,

credentials, project identity, secrets. Injected at runtime.

See content/docs/concepts/north-star.mdx §6.3 for the runtime-inputs

boundary, and ROADMAP.md M1 for the milestone definition.

Storage / Distribution

v0 stores the full payload inline. Future revisions may swap metadata /

functions for a payloadRef that points at out-of-band storage (S3,

signed URL). The envelope shape preserves room for that indirection without

a breaking schema bump.

Source: packages/spec/src/system/environment-artifact.zod.ts

TypeScript Usage

import { EnvironmentArtifact, EnvironmentArtifactChecksum, EnvironmentArtifactFunction, EnvironmentArtifactFunctionLanguageEnum, EnvironmentArtifactHashAlgorithmEnum, EnvironmentArtifactManifest, EnvironmentArtifactMetadata, EnvironmentArtifactPayloadRef, EnvironmentArtifactRequirement } from '@objectstack/spec/system';
import type { EnvironmentArtifact, EnvironmentArtifactChecksum, EnvironmentArtifactFunction, EnvironmentArtifactFunctionLanguageEnum, EnvironmentArtifactHashAlgorithmEnum, EnvironmentArtifactManifest, EnvironmentArtifactMetadata, EnvironmentArtifactPayloadRef, EnvironmentArtifactRequirement } from '@objectstack/spec/system';

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

EnvironmentArtifact

ObjectStack Project Artifact envelope (v0)

Properties

PropertyTypeRequiredDescription
schemaVersionstringProject artifact envelope schema version
environmentIdstringProject identifier (control-plane scoped)
commitIdstringContent-addressable revision id
checksumObjectArtifact integrity checksum
builtAtstringoptionalISO-8601 timestamp of when the artifact was built
builtWithstringoptionalBuild tool identifier
metadataRecord<string, any>Compiled project metadata grouped by category
functionsObject[]Inlined function code packaged with the artifact
manifestObjectPlugin/driver requirements baked into the artifact
payloadRefObjectoptionalOut-of-band payload reference (reserved for future use)

EnvironmentArtifactChecksum

Artifact integrity checksum

Properties

PropertyTypeRequiredDescription
algorithmEnum<'sha256' | 'sha384' | 'sha512'>Hash algorithm used for the artifact checksum
valuestringHex-encoded digest of the artifact body

EnvironmentArtifactFunction

A single inlined function

Properties

PropertyTypeRequiredDescription
namestringFunction machine name (snake_case)
languageEnum<'javascript' | 'typescript'>Source language of the function code
codestringInlined function source
sourceObjectoptionalSource-map metadata for the function
hashstringoptionalHex SHA-256 of the inlined code

EnvironmentArtifactFunctionLanguageEnum

Source language of the function code

Allowed Values

  • javascript
  • typescript

EnvironmentArtifactHashAlgorithmEnum

Hash algorithm used for the artifact checksum

Allowed Values

  • sha256
  • sha384
  • sha512

EnvironmentArtifactManifest

Plugin/driver requirements baked into the artifact

Properties

PropertyTypeRequiredDescription
pluginsObject[]optional
driversObject[]optional
engineObjectoptional

EnvironmentArtifactMetadata

Compiled project metadata grouped by category

Properties

PropertyTypeRequiredDescription
objectsany[]optional
fieldsany[]optional
viewsany[]optional
appsany[]optional
pagesany[]optional
dashboardsany[]optional
reportsany[]optional
flowsany[]optional
workflowsany[]optional
triggersany[]optional
agentsany[]optional
toolsany[]optional
skillsany[]optional
permissionsany[]optional
permissionSetsany[]optional
rolesany[]optional
profilesany[]optional
translationsany[]optional
datasourcesany[]optional
datasetsany[]optional
actionsany[]optional
apisany[]optional

EnvironmentArtifactPayloadRef

Out-of-band payload reference (reserved for future use)

Properties

PropertyTypeRequiredDescription
urlstringSigned URL pointing at the artifact payload
expiresAtstringoptionalISO-8601 expiry timestamp
checksumObjectChecksum of the referenced payload

EnvironmentArtifactRequirement

A plugin or driver dependency declaration

Properties

PropertyTypeRequiredDescription
idstringPlugin/driver package id
versionstringoptionalSemVer range required by the project

On this page