authed

Add an action

Adds an action to the catalog by hand. The definition is checked in full, and one whose slug or endpoint the catalog already has, archived actions included, is refused. Its source is recorded as manual; a source_ref is not accepted.

post/api/v1/org-actions

Request

  • Base URL
    https://api.teaflask.com (the document declares no server; this is the origin it was published from)
  • URL
    https://api.teaflask.com/api/v1/org-actions
  • Auth
    none declared

Request body

actionobject required

The action's definition: slug, title, description, method, path_template, the JSON Schemas of its path, query and body parameters and of its response, and optionally policy, effect and a GraphQL operation.

Response

Successful Response

idstring uuid required

The action's id.

organization_idstring uuid required

The organization it belongs to.

slugstring required

The action's unique short name; an agent's configuration grants actions by it, like "cancel-subscription".

titlestring required

A short human-readable name.

descriptionstring required

What an agent reads when deciding whether to call the action.

method'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' required

The catalog's method whitelist: an action can only ever speak these.

path_templatestring required

The endpoint path on the organization's own API, with {placeholder} segments for path parameters, like "/api/pets/{pet_id}/".

path_params_schemaobject nullable required

The JSON Schema of the path placeholders' values; null when there are none.

query_params_schemaobject nullable required

The JSON Schema of the query parameters; null when none is declared.

body_schemaobject nullable required

The JSON Schema of the request body; null when none is declared.

response_schemaobject nullable required

The JSON Schema of the success (2xx) response body, as the API's spec declares it; null when the spec declares none.

policy'allow' | 'deny' | 'ask' required
effect'read_only' | 'idempotent' | 'destructive' required

What calling the action does to the world — an annotation, never a policy. It feeds the policy default for rows registered without one and the approval gate's prompt tone; an explicit policy always wins, and a mutating method never defaults above ask whatever the annotation claims.

status'active' | 'archived' required
source'manual' | 'scan' | 'inferred' required
registered_by_user_idstring uuid required

The member who registered it, or who approved the scan's proposal for it.

last_verified_atstring date-time nullable required

When the action was last confirmed to match its spec, by a scan or by approving a scan's proposed change; null until then.

last_verified_commit_shastring nullable required

What that confirmation read: a commit, or for uploaded spec files the fingerprint of the uploaded set (source_ref's set_sha256); null until then.

created_atstring date-time required

When the action was registered.

updated_atstring date-time required

When the action last changed.

versioninteger required

The action's version; send it back as expected_version so an edit made on a stale screen is refused.

arguments_notestring nullable required

Why the request body's fields aren't listed in arguments; null when they are, or there is no body.

member_edited_by_user_idstring uuid nullable required

The member who last edited what the action's code defines; null when no member has since its scan was last approved.

member_edited_atstring date-time nullable required

When a member last edited what the action's code defines; null when no member has since its scan was last approved.

Changes

No recorded changes to this operation across all 1 revision of this API.