Connect a client

Immaculate tools

What your AI client can do once it is connected to Immaculate, and which role in your account may do it. A tool your role may not use is not offered to you.

Immaculate

csor_get_started Immaculate: start here

Start here. What Immaculate does and this workspace's next setup step (Add an application; Start a build): which are done, the next one, how to do it and the words the user can type. Call it first in a new conversation, and whenever the user greets you, asks what Immaculate is or can do, asks how to begin, or asks something vague like "get me started" or "what now?". Then tell the user their next step.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

csor_list_systems_of_record Systems of record: list

List the records of Systems of record (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Systems of record an application can sit on (identity providers included): databases, CRMs, ERPs, HR, billing and more. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), domain (Domain, enum), model (Model, enum), entities (Owns, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, domain, model, entities",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "domain",
        "-domain",
        "model",
        "-model"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_systems_of_record Systems of record: get one

One record of Systems of record (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Systems of record record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_systems_of_record Systems of record: export as CSV

Export the records of Systems of record (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_systems_of_record does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_systems_of_record: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "domain",
        "-domain",
        "model",
        "-model"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_compute_providers Compute: list

List the records of Compute (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Where applications and their parts run: app environments, sandboxes, inference, datastores, runtimes, warehouses and lakehouses. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), category (Category, enum), targets (Targets, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, category, targets",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_compute_providers Compute: get one

One record of Compute (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Compute record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_compute_providers Compute: export as CSV

Export the records of Compute (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_compute_providers does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_compute_providers: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_storage_blocks Storage: list

List the records of Storage (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Storage an application can attach: block volumes, blob stores and file systems. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), category (Category, enum), targets (Attaches to, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, category, targets",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_storage_blocks Storage: get one

One record of Storage (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Storage record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_storage_blocks Storage: export as CSV

Export the records of Storage (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_storage_blocks does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_storage_blocks: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_network_blocks Network: list

List the records of Network (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Networking around an application: virtual networks, firewalls and security groups. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), category (Category, enum), net_scope (Scope, enum).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, category, net_scope",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category",
        "net_scope",
        "-net_scope"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_network_blocks Network: get one

One record of Network (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Network record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_network_blocks Network: export as CSV

Export the records of Network (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_network_blocks does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_network_blocks: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category",
        "net_scope",
        "-net_scope"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_harnesses Harnesses: list

List the records of Harnesses (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Coding-agent harnesses a build can run: the command, its instructions file and MCP config, and how it runs in a sandbox. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), customization (Customization, enum), instructions_file (Instructions file, text), mcp_config_file (MCP config file, text), invoke (Local command, json), sandbox (Hosted build, json), source (Source repository, url), papers (Research papers, reference list).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, customization, instructions_file, mcp_config_file, invoke, sandbox, source, papers",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "customization",
        "-customization",
        "instructions_file",
        "-instructions_file",
        "mcp_config_file",
        "-mcp_config_file",
        "source",
        "-source"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_harnesses Harnesses: get one

One record of Harnesses (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Harnesses record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_harnesses Harnesses: export as CSV

Export the records of Harnesses (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_harnesses does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_harnesses: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "customization",
        "-customization",
        "instructions_file",
        "-instructions_file",
        "mcp_config_file",
        "-mcp_config_file",
        "source",
        "-source"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_workflow_engines Workflow engines: list

List the records of Workflow engines (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Engines that run an application's workflows: DAGs, step functions, custom engines and MapReduce pipelines. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), category (Category, enum), step_types (Step types, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, category, step_types",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_workflow_engines Workflow engines: get one

One record of Workflow engines (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Workflow engines record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_workflow_engines Workflow engines: export as CSV

Export the records of Workflow engines (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_workflow_engines does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_workflow_engines: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "category",
        "-category"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_rule_engines Rule engines: list

List the records of Rule engines (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Engines that evaluate an application's rules, each with its rule language. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), language (Rule language, enum).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, language",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "language",
        "-language"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_rule_engines Rule engines: get one

One record of Rule engines (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Rule engines record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_rule_engines Rule engines: export as CSV

Export the records of Rule engines (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_rule_engines does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_rule_engines: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "language",
        "-language"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_design_systems Design systems: list

List the records of Design systems (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Design systems an application's screens are built with: framework, packages, setup, the agent's guidance and MCP server. Fields: offering (Offering, enum), hosting (Hosting, enum), summary (What it is, text), docs (Docs, url), adapter (Adapter in Immaculate, text), env (Environment variables, json), capabilities (Capabilities, json), framework (Framework, enum), packages (Packages, json), setup (Setup, json), agent_guidance (Agent guidance, json), mcp_server (MCP server, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, offering, hosting, summary, docs, adapter, env, capabilities, framework, packages, setup, agent_guidance, mcp_server",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "framework",
        "-framework"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_design_systems Design systems: get one

One record of Design systems (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Design systems record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_design_systems Design systems: export as CSV

Export the records of Design systems (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_design_systems does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_design_systems: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "offering",
        "-offering",
        "hosting",
        "-hosting",
        "summary",
        "-summary",
        "docs",
        "-docs",
        "adapter",
        "-adapter",
        "framework",
        "-framework"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_molds Molds: list

List the records of Molds (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Templates applications are stamped from: the stack, the patterns applications compose and what every application gets. Fields: mode (Mode, enum, required), version (Version, text), status (Status, enum), summary (Summary, text), base_repository (Base repository, url), base_ref (Base ref, text), base_license (Base licence, text), framework (Framework, text), design_system (Design system, reference), identity (Identity, reference), compute (Compute, reference), patterns (Patterns, json), includes (Every application gets, json), papers (Research papers, reference list), constraint_schemas (Constraint schemas, reference list).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, mode, version, status, summary, base_repository, base_ref, base_license, framework, design_system, identity, compute, patterns, includes, papers, constraint_schemas",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "mode",
        "-mode",
        "version",
        "-version",
        "status",
        "-status",
        "summary",
        "-summary",
        "base_repository",
        "-base_repository",
        "base_ref",
        "-base_ref",
        "base_license",
        "-base_license",
        "framework",
        "-framework",
        "design_system",
        "-design_system",
        "identity",
        "-identity",
        "compute",
        "-compute"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_molds Molds: get one

One record of Molds (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Molds record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_molds Molds: export as CSV

Export the records of Molds (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_molds does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_molds: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "mode",
        "-mode",
        "version",
        "-version",
        "status",
        "-status",
        "summary",
        "-summary",
        "base_repository",
        "-base_repository",
        "base_ref",
        "-base_ref",
        "base_license",
        "-base_license",
        "framework",
        "-framework",
        "design_system",
        "-design_system",
        "identity",
        "-identity",
        "compute",
        "-compute"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_research_papers Research papers: list

List the records of Research papers (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Research the building blocks rest on: each paper's authors, year, link and PDF, its summary and tags, and the harnesses and molds that cite it. Fields: authors (Authors, json), year (Year, text), link (Link, url), pdf (PDF, file), summary (Summary, text), tags (Tags, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, authors, year, link, pdf, summary, tags",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "year",
        "-year",
        "link",
        "-link",
        "summary",
        "-summary"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_research_papers Research papers: get one

One record of Research papers (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Research papers record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_research_papers Research papers: export as CSV

Export the records of Research papers (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_research_papers does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_research_papers: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "year",
        "-year",
        "link",
        "-link",
        "summary",
        "-summary"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_constraint_schemas Constraint schemas: list

List the records of Constraint schemas (shared by every workspace, read only), a page at a time: filter, sort, then pass next as after for the following page. Rules an application's data must satisfy, as JSON Schema: versioned, with the molds and applications that use each. Fields: description (Description, text), schema (Schema, json), schema_version (Version, text), status (Status, enum).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, description, schema, schema_version, status",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "description",
        "-description",
        "schema_version",
        "-schema_version",
        "status",
        "-status"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_constraint_schemas Constraint schemas: get one

One record of Constraint schemas (shared by every workspace, read only) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Constraint schemas record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_constraint_schemas Constraint schemas: export as CSV

Export the records of Constraint schemas (shared by every workspace, read only) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_constraint_schemas does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_constraint_schemas: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "description",
        "-description",
        "schema_version",
        "-schema_version",
        "status",
        "-status"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_list_applications Applications: list

List the records of Applications (this workspace's own), a page at a time: filter, sort, then pass next as after for the following page. An application the build agent makes: its building blocks, data model, workflows, rules and screens, and its one-page brief. Fields: summary (Summary, text), mode (Mode, enum, required), platforms (Platform, enum list), tenancy (Tenancy, enum), mold (Mold, reference), system_of_record (System of record, reference, required), identity (Identity, reference), compute (Compute, reference, required), compute_target (Compute target, enum), harness (Harness, reference, required), workflow_engine (Workflow engine, reference, required), rule_engine (Rule engine, reference, required), design_system (Design system, reference, required), brief (Brief, text, required), entities (Entities, json), workflows (Workflows, json), rules (Rules, json), screens (Screens, json), live_url (Live app, url), constraint_schema (Constraint schema, reference).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, summary, mode, platforms, tenancy, mold, system_of_record, identity, compute, compute_target, harness, workflow_engine, rule_engine, design_system, brief, entities, workflows, rules, screens, live_url, constraint_schema",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "summary",
        "-summary",
        "mode",
        "-mode",
        "tenancy",
        "-tenancy",
        "mold",
        "-mold",
        "system_of_record",
        "-system_of_record",
        "identity",
        "-identity",
        "compute",
        "-compute",
        "compute_target",
        "-compute_target",
        "harness",
        "-harness",
        "workflow_engine",
        "-workflow_engine",
        "rule_engine",
        "-rule_engine",
        "design_system",
        "-design_system",
        "brief",
        "-brief",
        "live_url",
        "-live_url",
        "constraint_schema",
        "-constraint_schema"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_applications Applications: get one

One record of Applications (this workspace's own) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Applications record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_applications Applications: export as CSV

Export the records of Applications (this workspace's own) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_applications does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_applications: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "summary",
        "-summary",
        "mode",
        "-mode",
        "tenancy",
        "-tenancy",
        "mold",
        "-mold",
        "system_of_record",
        "-system_of_record",
        "identity",
        "-identity",
        "compute",
        "-compute",
        "compute_target",
        "-compute_target",
        "harness",
        "-harness",
        "workflow_engine",
        "-workflow_engine",
        "rule_engine",
        "-rule_engine",
        "design_system",
        "-design_system",
        "brief",
        "-brief",
        "live_url",
        "-live_url",
        "constraint_schema",
        "-constraint_schema"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_create_applications Applications: add one

Add a record to Applications, this workspace's own, under a new key (refused when the key exists).

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The new record's key (1-200 letters, digits, . _ : ( ) or -, starting with a letter or digit)"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "summary": {
          "type": "string",
          "maxLength": 400,
          "description": "Summary: text, up to 400 characters. One or two sentences under its name: who it is for and what it does."
        },
        "mode": {
          "type": "string",
          "enum": [
            "custom",
            "native"
          ],
          "description": "Mode: one of custom (Custom), native (Native). Custom: the agent builds screens. Native: no UI, people keep using the system of record."
        },
        "platforms": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "web",
              "mobile",
              "desktop",
              "api",
              "cli",
              "embedded"
            ]
          },
          "description": "Platform: a list of one of web (Web), mobile (Mobile), desktop (Desktop), api (API), cli (CLI), embedded (Embedded)."
        },
        "tenancy": {
          "type": "string",
          "enum": [
            "shared",
            "isolated"
          ],
          "description": "Tenancy: one of shared (Shared), isolated (Isolated). Shared: one deployment per environment serves every tenant. Isolated: each tenant gets its own."
        },
        "mold": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Mold: the key of a Molds record (molds)."
        },
        "system_of_record": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "System of record: the key of a Systems of record record (systems_of_record)."
        },
        "identity": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Identity: the key of a Systems of record record (systems_of_record). A system of record whose domain is identity; empty when people sign in to the system of record itself."
        },
        "compute": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Compute: the key of a Compute record (compute_providers)."
        },
        "compute_target": {
          "type": "string",
          "enum": [
            "web-app",
            "serverless-function",
            "container",
            "sandbox",
            "local-process"
          ],
          "description": "Compute target: one of web-app (Web app), serverless-function (Serverless function), container (Container), sandbox (Sandbox), local-process (Local process)."
        },
        "harness": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Harness: the key of a Harnesses record (harnesses)."
        },
        "workflow_engine": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Workflow engine: the key of a Workflow engines record (workflow_engines)."
        },
        "rule_engine": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Rule engine: the key of a Rule engines record (rule_engines)."
        },
        "design_system": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Design system: the key of a Design systems record (design_systems)."
        },
        "brief": {
          "type": "string",
          "maxLength": 20000,
          "description": "Brief: text, up to 20000 characters. One page in plain language: who it is for, the problem, what it must do, what is out of scope."
        },
        "entities": {
          "description": "Entities: any JSON value. [{name, label, fields: [{name, type, required, values, references}]}]"
        },
        "workflows": {
          "description": "Workflows: any JSON value. [{id, trigger, steps: [{id, type, rule, role, when, description}]}]"
        },
        "rules": {
          "description": "Rules: any JSON value. [{id, description, logic}]"
        },
        "screens": {
          "description": "Screens: any JSON value. Custom mode: [{id, entity, purpose}]"
        },
        "live_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Live app: an http or https address, up to 2048 characters."
        },
        "constraint_schema": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Constraint schema: the key of a Constraint schemas record (constraint_schemas). The rules this application's data satisfies."
        }
      },
      "required": [
        "mode",
        "system_of_record",
        "compute",
        "harness",
        "workflow_engine",
        "rule_engine",
        "design_system",
        "brief"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: mode, system_of_record, compute, harness, workflow_engine, rule_engine, design_system, brief)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_update_applications Applications: change one

Replace the title and fields of a record of Applications: every field left out is cleared. Read it with csor_get_applications first.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Applications record's key"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "summary": {
          "type": "string",
          "maxLength": 400,
          "description": "Summary: text, up to 400 characters. One or two sentences under its name: who it is for and what it does."
        },
        "mode": {
          "type": "string",
          "enum": [
            "custom",
            "native"
          ],
          "description": "Mode: one of custom (Custom), native (Native). Custom: the agent builds screens. Native: no UI, people keep using the system of record."
        },
        "platforms": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "web",
              "mobile",
              "desktop",
              "api",
              "cli",
              "embedded"
            ]
          },
          "description": "Platform: a list of one of web (Web), mobile (Mobile), desktop (Desktop), api (API), cli (CLI), embedded (Embedded)."
        },
        "tenancy": {
          "type": "string",
          "enum": [
            "shared",
            "isolated"
          ],
          "description": "Tenancy: one of shared (Shared), isolated (Isolated). Shared: one deployment per environment serves every tenant. Isolated: each tenant gets its own."
        },
        "mold": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Mold: the key of a Molds record (molds)."
        },
        "system_of_record": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "System of record: the key of a Systems of record record (systems_of_record)."
        },
        "identity": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Identity: the key of a Systems of record record (systems_of_record). A system of record whose domain is identity; empty when people sign in to the system of record itself."
        },
        "compute": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Compute: the key of a Compute record (compute_providers)."
        },
        "compute_target": {
          "type": "string",
          "enum": [
            "web-app",
            "serverless-function",
            "container",
            "sandbox",
            "local-process"
          ],
          "description": "Compute target: one of web-app (Web app), serverless-function (Serverless function), container (Container), sandbox (Sandbox), local-process (Local process)."
        },
        "harness": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Harness: the key of a Harnesses record (harnesses)."
        },
        "workflow_engine": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Workflow engine: the key of a Workflow engines record (workflow_engines)."
        },
        "rule_engine": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Rule engine: the key of a Rule engines record (rule_engines)."
        },
        "design_system": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Design system: the key of a Design systems record (design_systems)."
        },
        "brief": {
          "type": "string",
          "maxLength": 20000,
          "description": "Brief: text, up to 20000 characters. One page in plain language: who it is for, the problem, what it must do, what is out of scope."
        },
        "entities": {
          "description": "Entities: any JSON value. [{name, label, fields: [{name, type, required, values, references}]}]"
        },
        "workflows": {
          "description": "Workflows: any JSON value. [{id, trigger, steps: [{id, type, rule, role, when, description}]}]"
        },
        "rules": {
          "description": "Rules: any JSON value. [{id, description, logic}]"
        },
        "screens": {
          "description": "Screens: any JSON value. Custom mode: [{id, entity, purpose}]"
        },
        "live_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Live app: an http or https address, up to 2048 characters."
        },
        "constraint_schema": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Constraint schema: the key of a Constraint schemas record (constraint_schemas). The rules this application's data satisfies."
        }
      },
      "required": [
        "mode",
        "system_of_record",
        "compute",
        "harness",
        "workflow_engine",
        "rule_engine",
        "design_system",
        "brief"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: mode, system_of_record, compute, harness, workflow_engine, rule_engine, design_system, brief)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_list_environments Environments: list

List the records of Environments (this workspace's own), a page at a time: filter, sort, then pass next as after for the following page. A named deploy target of one application (production, staging, uat...), with its git ref and tenants. Fields: application (Application, reference, required), env_id (Id, text, required), git_ref (Git ref, text), is_default (Default, enum), tenancy (Tenancy, enum), hosting_project (Hosting project, text), live_url (Live app, url), variables (Variables it needs, json).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, application, env_id, git_ref, is_default, tenancy, hosting_project, live_url, variables",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "application",
        "-application",
        "env_id",
        "-env_id",
        "git_ref",
        "-git_ref",
        "is_default",
        "-is_default",
        "tenancy",
        "-tenancy",
        "hosting_project",
        "-hosting_project",
        "live_url",
        "-live_url"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_environments Environments: get one

One record of Environments (this workspace's own) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Environments record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_environments Environments: export as CSV

Export the records of Environments (this workspace's own) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_environments does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_environments: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "application",
        "-application",
        "env_id",
        "-env_id",
        "git_ref",
        "-git_ref",
        "is_default",
        "-is_default",
        "tenancy",
        "-tenancy",
        "hosting_project",
        "-hosting_project",
        "live_url",
        "-live_url"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_create_environments Environments: add one

Add a record to Environments, this workspace's own, under a new key (refused when the key exists).

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The new record's key (1-200 letters, digits, . _ : ( ) or -, starting with a letter or digit)"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "env_id": {
          "type": "string",
          "maxLength": 40,
          "description": "Id: text, up to 40 characters. Lower-case: production, staging, uat."
        },
        "git_ref": {
          "type": "string",
          "maxLength": 120,
          "description": "Git ref: text, up to 120 characters."
        },
        "is_default": {
          "type": "string",
          "enum": [
            "default",
            "additional"
          ],
          "description": "Default: one of default (Default), additional (Additional). The default environment is where a build without an environment deploys."
        },
        "tenancy": {
          "type": "string",
          "enum": [
            "shared",
            "isolated"
          ],
          "description": "Tenancy: one of shared (Shared), isolated (Isolated)."
        },
        "hosting_project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters. The project the build deploys to (default prefix - application - environment )."
        },
        "live_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Live app: an http or https address, up to 2048 characters."
        },
        "variables": {
          "description": "Variables it needs: any JSON value. Names only: which building block needs each, and whether production and preview have it."
        }
      },
      "required": [
        "application",
        "env_id"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application, env_id)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_update_environments Environments: change one

Replace the title and fields of a record of Environments: every field left out is cleared. Read it with csor_get_environments first.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Environments record's key"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "env_id": {
          "type": "string",
          "maxLength": 40,
          "description": "Id: text, up to 40 characters. Lower-case: production, staging, uat."
        },
        "git_ref": {
          "type": "string",
          "maxLength": 120,
          "description": "Git ref: text, up to 120 characters."
        },
        "is_default": {
          "type": "string",
          "enum": [
            "default",
            "additional"
          ],
          "description": "Default: one of default (Default), additional (Additional). The default environment is where a build without an environment deploys."
        },
        "tenancy": {
          "type": "string",
          "enum": [
            "shared",
            "isolated"
          ],
          "description": "Tenancy: one of shared (Shared), isolated (Isolated)."
        },
        "hosting_project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters. The project the build deploys to (default prefix - application - environment )."
        },
        "live_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Live app: an http or https address, up to 2048 characters."
        },
        "variables": {
          "description": "Variables it needs: any JSON value. Names only: which building block needs each, and whether production and preview have it."
        }
      },
      "required": [
        "application",
        "env_id"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application, env_id)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_list_tenants Tenants: list

List the records of Tenants (this workspace's own), a page at a time: filter, sort, then pass next as after for the following page. A tenant of one environment: shared tenancy serves it from the environment's deployment, isolated tenancy gives it its own. Fields: environment (Environment, reference, required), application (Application, reference), tenant_id (Id, text, required), domain (Domain, text), config (Config, json), status (Status, enum).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, environment, application, tenant_id, domain, config, status",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "environment",
        "-environment",
        "application",
        "-application",
        "tenant_id",
        "-tenant_id",
        "domain",
        "-domain",
        "status",
        "-status"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_tenants Tenants: get one

One record of Tenants (this workspace's own) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Tenants record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_tenants Tenants: export as CSV

Export the records of Tenants (this workspace's own) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_tenants does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_tenants: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "environment",
        "-environment",
        "application",
        "-application",
        "tenant_id",
        "-tenant_id",
        "domain",
        "-domain",
        "status",
        "-status"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_create_tenants Tenants: add one

Add a record to Tenants, this workspace's own, under a new key (refused when the key exists). A new record starts in state active; its state changes only with csor_move_tenants.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The new record's key (1-200 letters, digits, . _ : ( ) or -, starting with a letter or digit)"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments)."
        },
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications). The environment's application: who sees the application sees its tenants."
        },
        "tenant_id": {
          "type": "string",
          "maxLength": 40,
          "description": "Id: text, up to 40 characters."
        },
        "domain": {
          "type": "string",
          "maxLength": 253,
          "description": "Domain: text, up to 253 characters. The host it is served on; no scheme or path."
        },
        "config": {
          "description": "Config: any JSON value. Settings, never secrets (16 KB at most)."
        }
      },
      "required": [
        "environment",
        "tenant_id"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: environment, tenant_id)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_update_tenants Tenants: change one

Replace the title and fields of a record of Tenants: every field left out is cleared; its state (status) is kept. Read it with csor_get_tenants first.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Tenants record's key"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments)."
        },
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications). The environment's application: who sees the application sees its tenants."
        },
        "tenant_id": {
          "type": "string",
          "maxLength": 40,
          "description": "Id: text, up to 40 characters."
        },
        "domain": {
          "type": "string",
          "maxLength": 253,
          "description": "Domain: text, up to 253 characters. The host it is served on; no scheme or path."
        },
        "config": {
          "description": "Config: any JSON value. Settings, never secrets (16 KB at most)."
        }
      },
      "required": [
        "environment",
        "tenant_id"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: environment, tenant_id)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_move_tenants Tenants: move one

Move a record of Tenants to another state along its lifecycle: active -> suspended (Suspend); suspended -> active (Resume).

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Tenants record's key"
    },
    "to": {
      "type": "string",
      "enum": [
        "suspended",
        "active"
      ],
      "description": "The state to move it to"
    }
  },
  "required": [
    "key",
    "to"
  ],
  "additionalProperties": false
}

csor_list_builds Builds: list

List the records of Builds (this workspace's own), a page at a time: filter, sort, then pass next as after for the following page. One build of an application: the workspace agent's session that wrote, checked and deployed it, with its log, its cost and what it deployed. Added by a person (Start build), then written by the agent session as it works. Fields: application (Application, reference, required), environment (Environment, reference), tenant (Tenant, reference), status (Status, enum), requested_by (Requested by, person), request (What to change, text), session (Agent session, text), started (Started, date), finished (Finished, date), duration_seconds (Duration, number), cost_usd (Model cost, number), model (Model, text), sandbox (Sandbox, text), hosting_project (Hosting project, text), deployment_url (Deployment, url), outcome (Outcome, text), error (Error, text), log (Timeline, json), workspace_files (Workspace, json), instructions (Instructions file, text).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, application, environment, tenant, status, requested_by, request, session, started, finished, duration_seconds, cost_usd, model, sandbox, hosting_project, deployment_url, outcome, error, log, workspace_files, instructions",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "application",
        "-application",
        "environment",
        "-environment",
        "tenant",
        "-tenant",
        "status",
        "-status",
        "requested_by",
        "-requested_by",
        "request",
        "-request",
        "session",
        "-session",
        "started",
        "-started",
        "finished",
        "-finished",
        "duration_seconds",
        "-duration_seconds",
        "cost_usd",
        "-cost_usd",
        "model",
        "-model",
        "sandbox",
        "-sandbox",
        "hosting_project",
        "-hosting_project",
        "deployment_url",
        "-deployment_url",
        "outcome",
        "-outcome",
        "error",
        "-error",
        "instructions",
        "-instructions"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_builds Builds: get one

One record of Builds (this workspace's own) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Builds record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_builds Builds: export as CSV

Export the records of Builds (this workspace's own) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_builds does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_builds: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "application",
        "-application",
        "environment",
        "-environment",
        "tenant",
        "-tenant",
        "status",
        "-status",
        "requested_by",
        "-requested_by",
        "request",
        "-request",
        "session",
        "-session",
        "started",
        "-started",
        "finished",
        "-finished",
        "duration_seconds",
        "-duration_seconds",
        "cost_usd",
        "-cost_usd",
        "model",
        "-model",
        "sandbox",
        "-sandbox",
        "hosting_project",
        "-hosting_project",
        "deployment_url",
        "-deployment_url",
        "outcome",
        "-outcome",
        "error",
        "-error",
        "instructions",
        "-instructions"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_create_builds Builds: add one

Add a record to Builds, this workspace's own, under a new key (refused when the key exists). A new record starts in state queued; its state changes only with csor_move_builds.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The new record's key (1-200 letters, digits, . _ : ( ) or -, starting with a letter or digit)"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments). Empty: the application's default environment."
        },
        "tenant": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Tenant: the key of a Tenants record (tenants). Isolated tenancy only: deploy this tenant alone."
        },
        "requested_by": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:@|-]{0,199}$",
          "description": "Requested by: a person's sign-in id."
        },
        "request": {
          "type": "string",
          "maxLength": 4000,
          "description": "What to change: text, up to 4000 characters. Optional: what this build should do beyond the application's spec."
        },
        "session": {
          "type": "string",
          "maxLength": 80,
          "description": "Agent session: text, up to 80 characters. The workspace agent session running it (Workspace agent, top bar)."
        },
        "started": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Started: a date, YYYY-MM-DD."
        },
        "finished": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Finished: a date, YYYY-MM-DD."
        },
        "duration_seconds": {
          "type": "number",
          "description": "Duration: a number."
        },
        "cost_usd": {
          "type": "number",
          "description": "Model cost: a number."
        },
        "model": {
          "type": "string",
          "maxLength": 80,
          "description": "Model: text, up to 80 characters."
        },
        "sandbox": {
          "type": "string",
          "maxLength": 120,
          "description": "Sandbox: text, up to 120 characters."
        },
        "hosting_project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters."
        },
        "deployment_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Deployment: an http or https address, up to 2048 characters."
        },
        "outcome": {
          "type": "string",
          "maxLength": 2000,
          "description": "Outcome: text, up to 2000 characters."
        },
        "error": {
          "type": "string",
          "maxLength": 8000,
          "description": "Error: text, up to 8000 characters."
        },
        "log": {
          "description": "Timeline: any JSON value. [{at, level, source, message}]: step, agent, tool, result and error lines."
        },
        "workspace_files": {
          "description": "Workspace: any JSON value. [{path, bytes, role}]: what the agent was given."
        },
        "instructions": {
          "type": "string",
          "maxLength": 20000,
          "description": "Instructions file: text, up to 20000 characters."
        }
      },
      "required": [
        "application"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_update_builds Builds: change one

Replace the title and fields of a record of Builds: every field left out is cleared; its state (status) is kept. Read it with csor_get_builds first.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Builds record's key"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments). Empty: the application's default environment."
        },
        "tenant": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Tenant: the key of a Tenants record (tenants). Isolated tenancy only: deploy this tenant alone."
        },
        "requested_by": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:@|-]{0,199}$",
          "description": "Requested by: a person's sign-in id."
        },
        "request": {
          "type": "string",
          "maxLength": 4000,
          "description": "What to change: text, up to 4000 characters. Optional: what this build should do beyond the application's spec."
        },
        "session": {
          "type": "string",
          "maxLength": 80,
          "description": "Agent session: text, up to 80 characters. The workspace agent session running it (Workspace agent, top bar)."
        },
        "started": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Started: a date, YYYY-MM-DD."
        },
        "finished": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Finished: a date, YYYY-MM-DD."
        },
        "duration_seconds": {
          "type": "number",
          "description": "Duration: a number."
        },
        "cost_usd": {
          "type": "number",
          "description": "Model cost: a number."
        },
        "model": {
          "type": "string",
          "maxLength": 80,
          "description": "Model: text, up to 80 characters."
        },
        "sandbox": {
          "type": "string",
          "maxLength": 120,
          "description": "Sandbox: text, up to 120 characters."
        },
        "hosting_project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters."
        },
        "deployment_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "Deployment: an http or https address, up to 2048 characters."
        },
        "outcome": {
          "type": "string",
          "maxLength": 2000,
          "description": "Outcome: text, up to 2000 characters."
        },
        "error": {
          "type": "string",
          "maxLength": 8000,
          "description": "Error: text, up to 8000 characters."
        },
        "log": {
          "description": "Timeline: any JSON value. [{at, level, source, message}]: step, agent, tool, result and error lines."
        },
        "workspace_files": {
          "description": "Workspace: any JSON value. [{path, bytes, role}]: what the agent was given."
        },
        "instructions": {
          "type": "string",
          "maxLength": 20000,
          "description": "Instructions file: text, up to 20000 characters."
        }
      },
      "required": [
        "application"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_move_builds Builds: move one

Move a record of Builds to another state along its lifecycle: queued -> running (Start); running -> deploying (Deploy); running/deploying -> succeeded (Mark succeeded); queued/running/deploying -> failed (Mark failed); queued/running -> cancelled (Cancel).

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Builds record's key"
    },
    "to": {
      "type": "string",
      "enum": [
        "running",
        "deploying",
        "succeeded",
        "failed",
        "cancelled"
      ],
      "description": "The state to move it to"
    }
  },
  "required": [
    "key",
    "to"
  ],
  "additionalProperties": false
}

csor_list_deployments Deployments: list

List the records of Deployments (this workspace's own), a page at a time: filter, sort, then pass next as after for the following page. One hosting deployment a build made: one per environment for shared tenancy, one per tenant for isolated tenancy. Written by the build's agent session. Fields: build (Build, reference), application (Application, reference, required), environment (Environment, reference), tenant (Tenant, reference), project (Hosting project, text), deployment_url (URL, url), state (State, enum), error (Error, text), deployed_at (Deployed, date).

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "{field: value} or {field: {op: value}}, every condition ANDed; op is eq, ne, in, lt, lte, gt, gte, contains, prefix or exists; field is one of key, title, updated_at, build, application, environment, tenant, project, deployment_url, state, error, deployed_at",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "build",
        "-build",
        "application",
        "-application",
        "environment",
        "-environment",
        "tenant",
        "-tenant",
        "project",
        "-project",
        "deployment_url",
        "-deployment_url",
        "state",
        "-state",
        "error",
        "-error",
        "deployed_at",
        "-deployed_at"
      ]
    },
    "limit": {
      "description": "Records per page (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    },
    "after": {
      "description": "The next value of the previous page",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_get_deployments Deployments: get one

One record of Deployments (this workspace's own) by its key, with every field and the records its links name.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Deployments record's key"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false
}

csor_export_deployments Deployments: export as CSV

Export the records of Deployments (this workspace's own) as CSV text: a header row, then one row per record with its key, title, every field under its label and when it last changed; filter and sort as csor_list_deployments does. At most 5000 records or 1 MB of CSV at once: when more remain, next is set; pass it as after for the rest. Give the user the csv as a file.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "filter": {
      "description": "As csor_list_deployments: {field: value} or {field: {op: value}}, every condition ANDed",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sort": {
      "description": "The order: a field, key, title or updated_at; - first for descending (default key)",
      "type": "string",
      "enum": [
        "key",
        "-key",
        "title",
        "-title",
        "updated_at",
        "-updated_at",
        "build",
        "-build",
        "application",
        "-application",
        "environment",
        "-environment",
        "tenant",
        "-tenant",
        "project",
        "-project",
        "deployment_url",
        "-deployment_url",
        "state",
        "-state",
        "error",
        "-error",
        "deployed_at",
        "-deployed_at"
      ]
    },
    "after": {
      "description": "The next value of the previous export",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "additionalProperties": false
}

csor_create_deployments Deployments: add one

Add a record to Deployments, this workspace's own, under a new key (refused when the key exists).

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The new record's key (1-200 letters, digits, . _ : ( ) or -, starting with a letter or digit)"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "build": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Build: the key of a Builds record (builds)."
        },
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments)."
        },
        "tenant": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Tenant: the key of a Tenants record (tenants)."
        },
        "project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters."
        },
        "deployment_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "URL: an http or https address, up to 2048 characters."
        },
        "state": {
          "type": "string",
          "enum": [
            "BUILDING",
            "READY",
            "ERROR",
            "CANCELED"
          ],
          "description": "State: one of BUILDING (Building), READY (Ready), ERROR (Error), CANCELED (Canceled)."
        },
        "error": {
          "type": "string",
          "maxLength": 4000,
          "description": "Error: text, up to 4000 characters."
        },
        "deployed_at": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Deployed: a date, YYYY-MM-DD."
        }
      },
      "required": [
        "application"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_update_deployments Deployments: change one

Replace the title and fields of a record of Deployments: every field left out is cleared. Read it with csor_get_deployments first.

Changes something. Who may call it: Member, Owner.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
      "description": "The Deployments record's key"
    },
    "title": {
      "description": "The record's title",
      "type": "string",
      "maxLength": 500
    },
    "data": {
      "type": "object",
      "properties": {
        "build": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Build: the key of a Builds record (builds)."
        },
        "application": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Application: the key of a Applications record (applications)."
        },
        "environment": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Environment: the key of a Environments record (environments)."
        },
        "tenant": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:()-]{0,199}$",
          "description": "Tenant: the key of a Tenants record (tenants)."
        },
        "project": {
          "type": "string",
          "maxLength": 120,
          "description": "Hosting project: text, up to 120 characters."
        },
        "deployment_url": {
          "type": "string",
          "maxLength": 2048,
          "description": "URL: an http or https address, up to 2048 characters."
        },
        "state": {
          "type": "string",
          "enum": [
            "BUILDING",
            "READY",
            "ERROR",
            "CANCELED"
          ],
          "description": "State: one of BUILDING (Building), READY (Ready), ERROR (Error), CANCELED (Canceled)."
        },
        "error": {
          "type": "string",
          "maxLength": 4000,
          "description": "Error: text, up to 4000 characters."
        },
        "deployed_at": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ][0-9:.]+(Z|[+-]\\d{2}:?\\d{2})?)?$",
          "description": "Deployed: a date, YYYY-MM-DD."
        }
      },
      "required": [
        "application"
      ],
      "additionalProperties": false,
      "description": "The record's fields (required: application)"
    }
  },
  "required": [
    "key",
    "data"
  ],
  "additionalProperties": false
}

csor_get_metrics Immaculate metrics

Immaculate's metrics for this workspace, computed now: applications_total (Applications), builds_total (Builds), builds_by_status (Builds by status), builds_succeeded (Succeeded builds), build_spend (Model spend), builds_failed (Failed builds), live_deployments (Live deployments), environments_total (Environments), tenants_active (Active tenants), molds_total (Molds), sor_total (Systems of record), compute_total (Compute), harness_total (Harnesses), design_total (Design systems). Each is read only by the roles that may read what it is over.

Reads only. Who may call it: Every role.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "names": {
      "description": "Only these metrics (default every one)",
      "minItems": 1,
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "applications_total",
          "builds_total",
          "builds_by_status",
          "builds_succeeded",
          "build_spend",
          "builds_failed",
          "live_deployments",
          "environments_total",
          "tenants_active",
          "molds_total",
          "sor_total",
          "compute_total",
          "harness_total",
          "design_total"
        ]
      }
    }
  },
  "additionalProperties": false
}