Resource types are now OCI artifacts
Resource types are versioned, immutable OCI artifacts authored as a massdriver.yaml, replacing the unversioned raw-JSON-schema format.
mass resource-type create <name>— create a resource type repository in your organization's catalog. Supports custom attributes via-a.mass resource-type publish [path]— publish amassdriver.yaml.pathmay be a directory or themassdriver.yamlitself, and defaults to the current directory. Publishing is immutable: republishing an existing version is rejected before any upload work.mass resource-type pull <name>[@<version>]— pull a published resource type to a local directory. Accepts a concrete version, a release channel, orlatest. Prompts before overwriting unless-f.mass resource-type convert <schema-file>— convert a raw JSON/YAML schema into an equivalentmassdriver.yaml, extracting inlined instruction and export content into referenced files.mass resource-type listandget—getgains-o jsonand--schemafor the resolved JSON schema.mass resource-type delete— refuses repositories that already have published versions, matching platform immutability.
Published artifacts contain only massdriver.yaml, readme, changelog, icon files, and the instruction/export templates the massdriver.yaml references. A reference that resolves outside the directory or doesn't exist now fails the publish instead of silently shipping an incomplete artifact.
Deprecated: raw JSON schema resource types
Publishing a raw .json/.yaml schema still works but prints a deprecation warning and points at mass resource-type convert. Raw schemas have no version of their own and are stored as the unversioned 0.0.0 document, so they cannot participate in versioning. This path will be removed in a future release.
Note: resource types published as raw schemas predate OCI and cannot be pulled — mass resource-type pull now says so explicitly instead of surfacing a raw registry error.
Bundles
resourcesanddependenciesreplaceartifactsandconnectionsas the input terms. The legacy blocks still work and now warn instead of failing. The two forms of a slot remain mutually exclusive.- Bundle packaging, publishing, and pulling moved onto the OCI implementation shared with resource types.
.mdignorehandling is unchanged.
Fixes
mass resource-type createfailed outright withunknown artifact type "RESOURCE_TYPE". The artifact-type resolver now accepts the SDK's enum spelling, so underscores match hyphens. This blocked creating — and therefore publishing — any new resource type.- Publishing to a repository that doesn't exist reported a raw GraphQL not-found error. Both
mass resource-type publishandmass bundle publishnow name the command that creates it. mass resource-type publishof a raw schema printed the resource type's human label rather than its identifier, so the success line couldn't be pasted intomass resource-type get.- Integer values in converted schemas were corrupted into scientific notation (
1000000→1e+06). Conversion now preserves integers. - Instruction and export template paths are resolved correctly during publish.
PRs
- Manage resource types via OCI (create/get/list/publish/pull/delete/convert) by @chrisghill in #249
Full Changelog: 2.2.1...2.3.0