ObjectStackObjectStack

Metadata & Package API

REST endpoints for object schemas, metadata types, UI views, and package management.

Metadata & Package API

Manage object schemas, metadata types, UI views, and installed packages over REST. All paths are relative to the base URL (defaults to /api/v1) — see the API Overview for discovery and service availability.

Metadata

Retrieve and manage object schemas, metadata types, and UI views. Always available — provided by the kernel.

GET /meta

List all registered metadata types.

Response: { types: ["object", "view", "plugin", ...] }

GET /meta/:type

List all items of a metadata type.

ParameterLocationDescription
typepathMetadata type name (e.g. object, view)

Response: { type: "object", items: [{ name: "account", ... }, ...] }

GET /meta/:type/:name

Get a specific metadata item with optional ETag caching.

ParameterLocationDescription
typepathMetadata type name
namepathItem name (snake_case)
If-None-MatchheaderETag for conditional request

Response: { type: "object", name: "account", item: { ... } }
304 if ETag matches (not modified).

PUT /meta/:type/:name

Create or update a metadata item.

Body: { type: "object", name: "account", item: { ... } }
Response: { success: true }

GET /ui/view/:object/:type

Get an auto-generated UI view for an object.

ParameterLocationDescription
objectpathObject name (snake_case)
typepathlist or form

Response: Full ViewSchema definition with columns/fields derived from the object schema.


Package Management

Manage installed plugins/packages.

GET /packages

List installed packages.

POST /packages

Publish a package (manifest + metadata) to the package registry.

Body: { manifest: { id: "plugin-auth", name: "Plugin Auth", version: "1.0.0", ... }, metadata: { objects: [...], views: [...], ... } }
Response: { success: true, message: "...", package: { id: "plugin-auth", version: "1.0.0" } }

GET /packages/:id

Get package details.

DELETE /packages/:id

Uninstall a package.

PATCH /packages/:id/enable

Enable a disabled package.

PATCH /packages/:id/disable

Disable a package without uninstalling.


See also

  • API Overview — discovery, error handling, and protocol types
  • Data API — CRUD, batch operations, and analytics

On this page