ObjectStackObjectStack

Metadata Persistence

Metadata Persistence protocol schemas

Metadata Scope Enum

Defines the lifecycle and mutability of a metadata item.

Source: packages/spec/src/system/metadata-persistence.zod.ts

TypeScript Usage

import { MetadataCollectionInfo, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';
import type { MetadataCollectionInfo, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';

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

MetadataCollectionInfo

Properties

PropertyTypeRequiredDescription
typestring
countnumber
namespacesstring[]

MetadataExportOptions

Properties

PropertyTypeRequiredDescription
typesstring[]optional
namespacesstring[]optional
outputstringOutput directory or file
formatEnum<'json' | 'yaml' | 'yml' | 'ts' | 'js' | 'typescript' | 'javascript'>

MetadataFallbackStrategy

Allowed Values

  • filesystem
  • memory
  • none

MetadataFormat

Allowed Values

  • json
  • yaml
  • yml
  • ts
  • js
  • typescript
  • javascript

MetadataImportOptions

Properties

PropertyTypeRequiredDescription
sourcestringInput directory or file
strategyEnum<'merge' | 'replace' | 'skip'>
validateboolean

MetadataLoadOptions

Properties

PropertyTypeRequiredDescription
scopeEnum<'system' | 'platform' | 'user'>optional
namespacestringoptional
rawbooleanoptionalReturn raw file content instead of parsed JSON
cachebooleanoptional
useCachebooleanoptional
validatebooleanoptional
ifNoneMatchstringoptional
recursivebooleanoptional
limitnumberoptional
patternsstring[]optional
loaderstringoptionalSpecific loader to use (e.g. filesystem, database)

MetadataLoadResult

Properties

PropertyTypeRequiredDescription
dataany
statsObjectoptional
formatEnum<'json' | 'yaml' | 'yml' | 'ts' | 'js' | 'typescript' | 'javascript'>optional
sourcestringoptional
fromCachebooleanoptional
etagstringoptional
notModifiedbooleanoptional
loadTimenumberoptional

MetadataLoaderContract

Properties

PropertyTypeRequiredDescription
namestring
protocolEnum<'file:' | 'http:' | 's3:' | 'datasource:' | 'memory:'>Loader protocol identifier
descriptionstringoptional
supportedFormatsstring[]optional
supportsWatchbooleanoptional
supportsWritebooleanoptional
supportsCachebooleanoptional
capabilitiesObject

MetadataManagerConfig

Properties

PropertyTypeRequiredDescription
datasourcestringoptionalDatasource name reference for database persistence
tableNamestringDatabase table name for metadata storage
fallbackEnum<'filesystem' | 'memory' | 'none'>Fallback strategy when datasource is unavailable
rootDirstringoptionalRoot directory for filesystem-based metadata
formatsEnum<'json' | 'yaml' | 'yml' | 'ts' | 'js' | 'typescript' | 'javascript'>[]optionalEnabled metadata formats
watchbooleanoptionalEnable file watching for filesystem loaders
cachebooleanoptionalEnable metadata caching
watchOptionsObjectoptionalFile watcher options

MetadataRecord

Properties

PropertyTypeRequiredDescription
idstring
namestring
typestring
namespacestring
packageIdstringoptionalPackage ID that owns/delivered this metadata
managedByEnum<'package' | 'platform' | 'user'>optionalWho manages this metadata record lifecycle
scopeEnum<'system' | 'platform' | 'user'>
metadataRecord<string, any>
extendsstringoptionalName of the parent metadata to extend/override
strategyEnum<'merge' | 'replace'>
ownerstringoptional
stateEnum<'draft' | 'active' | 'archived' | 'deprecated'>
tenantIdstringoptionalTenant identifier for multi-tenant isolation
versionnumberRecord version for optimistic concurrency control
checksumstringoptionalContent checksum for change detection
sourceEnum<'filesystem' | 'database' | 'api' | 'migration'>optionalOrigin of this metadata record
tagsstring[]optionalClassification tags for filtering and grouping
publishedDefinitionanyoptionalSnapshot of the last published definition
publishedAtstringoptionalWhen this metadata was last published
publishedBystringoptionalWho published this version
createdBystringoptional
createdAtstringoptionalCreation timestamp
updatedBystringoptional
updatedAtstringoptionalLast update timestamp

MetadataSaveOptions

Properties

PropertyTypeRequiredDescription
formatEnum<'json' | 'yaml' | 'yml' | 'ts' | 'js' | 'typescript' | 'javascript'>optional
createboolean
overwriteboolean
pathstringoptional
prettifybooleanoptional
indentnumberoptional
sortKeysbooleanoptional
backupbooleanoptional
atomicbooleanoptional
loaderstringoptionalSpecific loader to use (e.g. filesystem, database)

MetadataSaveResult

Properties

PropertyTypeRequiredDescription
successboolean
pathstringoptional
statsObjectoptional
etagstringoptional
sizenumberoptional
saveTimenumberoptional
backupPathstringoptional

MetadataScope

Allowed Values

  • system
  • platform
  • user

MetadataSource

Allowed Values

  • filesystem
  • database
  • api
  • migration

MetadataState

Allowed Values

  • draft
  • active
  • archived
  • deprecated

MetadataStats

Properties

PropertyTypeRequiredDescription
pathstringoptional
sizenumberoptional
mtimestringoptional
hashstringoptional
etagstringoptional
modifiedAtstringoptional
formatEnum<'json' | 'yaml' | 'yml' | 'ts' | 'js' | 'typescript' | 'javascript'>optional

MetadataWatchEvent

Properties

PropertyTypeRequiredDescription
typeEnum<'add' | 'change' | 'unlink' | 'added' | 'changed' | 'deleted'>
pathstring
namestringoptional
statsObjectoptional
metadataTypestringoptional
dataanyoptional
timestampstringoptional

PackagePublishResult

Properties

PropertyTypeRequiredDescription
successbooleanWhether the publish succeeded
packageIdstringThe package ID that was published
versionintegerNew version number after publish
publishedAtstringPublish timestamp
itemsPublishedintegerTotal metadata items published
validationErrorsObject[]optionalValidation errors if publish failed

On this page