Automation

Archive a script

Keep the name, versions and draft while archiving.

Keep the name, versions and draft while archiving. The default list hides it and new target resolution and run requests reject the archived target.

POST /automation/v1/scripts/{ns}/{name}/archive

Authentication

Authorization: Bearer $PRAXIS_API_KEY

Request fields

ParameterTypeDescription
path: nsstringrequired; Namespace, folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}. praxis is read-only.
path: namestringrequired; Name, folded to lowercase; matches [a-z0-9][a-z0-9._-]{0,63}.

application/json

no additional fields. object

Examples

Set these environment variables to your own resources:

VariableSource
SCRIPT_NAMEname returned by creating a script
: "${SCRIPT_NAME:?Set SCRIPT_NAME}"
curl --fail-with-body -X POST "https://api.deepraxis.ai/automation/v1/scripts/docs-samples/${SCRIPT_NAME}/archive" \
  -H "Authorization: Bearer $PRAXIS_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{}'
import { createAutomationClient } from '@deepraxis/sdk/automation';

function env(name: string): string {
  const value = process.env[name];
  if (!value) throw new Error(`Set ${name}`);
  return value;
}
const automation = createAutomationClient({
  apiKey: env('PRAXIS_API_KEY'),
  baseUrl: 'https://api.deepraxis.ai',
  maxRetries: 0,
  timeoutMs: 90_000,
});
const result = await automation.scripts.archive({
  "path": {
    "ns": "docs-samples",
    "name": env("SCRIPT_NAME")
  },
  "body": {}
});
console.log(result);

Response

HTTP 200

Success

application/json

FieldTypeDescription
idstringrequired; Definition id, prefixed scr_ for scripts and wf_ for workflows; calls normally use namespace and name.
kind"script" / "workflow"required; Orchestration kind. script is a TypeScript script that executes once; workflow is a YAML workflow made of steps that can wait for events, timers or child runs and can be suspended.
namespacestringrequired; Namespace; references take the form namespace/name@version.
namestringrequired; Name; with namespace it is unique within the tenant, and scripts and workflows share one namespace (duplicates return 409 NAME_TAKEN).
descriptionstringrequired; Free-text description, at most 1000 characters.
labelsobjectrequired; User-defined string key and value tags for grouping and list filtering (labels[key]=value); keys must not start with praxis.
ownerstringrequired; Tenant that owns the definition, injected by the gateway; treat it as an opaque string.
latest_versionnull / objectrequired; The published version the latest tag points to, as {version, published_at}; null if nothing is published.
latest_version (variant 2).versionstringrequired; Version number (semver) of the latest published version.
latest_version (variant 2).published_atstringrequired; Time that version was published (RFC 3339 UTC).
dist_tagsobjectrequired; Map from dist-tag to the exact version it points to, for example latest to 1.2.0; ns/name@tag resolves through it.
draft_changedbooleanrequired; true when the draft content (digest) differs from the latest version, meaning there are unpublished changes.
latest_runnull / objectrequired; Summary of the most recent run of this definition, or null if it has never run.
latest_run (variant 2).idstringrequired; Run id (run_ prefix); pass it to runs.retrieve.
latest_run (variant 2).numbernull / numberrequired; Increasing sequence number of the run within its script or workflow.
latest_run (variant 2).status"running" / "completed" / "faulted" / "cancelled" / "pending" / "waiting" / "suspended"required; Run status. pending is created but not started; running is executing; waiting means a workflow is waiting on an event, timer or child run; suspended means a workflow was suspended; cancelled was cancelled; faulted failed; completed finished successfully.
latest_run (variant 2).created_atstringrequired; Time the run was created (RFC 3339 UTC).
latest_run (variant 2).current_waitnull / objectrequired; The wait point currently open, or null when the run is not waiting.
latest_run (variant 2).current_wait (variant 2).idstringrequired; Wait point id, prefixed wait_; use it as wait_id when completing an event wait.
latest_run (variant 2).current_wait (variant 2).run_idstringrequired; Id (run_) of the run this wait belongs to.
latest_run (variant 2).current_wait (variant 2).kind"event" / "timer" / "child"required; Wait kind. event waits for an external event that can be submitted with runs.completeWait; timer waits until resume_at; child waits for a child run to finish.
latest_run (variant 2).current_wait (variant 2).state"cancelled" / "open" / "resolved" / "expired"required; Wait point state. open is still waiting; resolved was satisfied; expired passed its expires_at; cancelled was cancelled and can no longer be satisfied.
latest_run (variant 2).current_wait (variant 2).tasknull / objectrequired; The workflow step {reference, name} that produced the wait; null when there is no such step.
latest_run (variant 2).current_wait (variant 2).task (variant 2).referencestringrequired; JSON Pointer of the step, for example /do/2/wait_payment.
latest_run (variant 2).current_wait (variant 2).task (variant 2).namestringrequired; Step name, the key in the workflow YAML.
latest_run (variant 2).current_wait (variant 2).resume_atnull / stringrequired; For kind=timer, the instant the run resumes (RFC 3339 UTC); null for other kinds.
latest_run (variant 2).current_wait (variant 2).event_typenull / stringrequired; For kind=event, the event type being awaited; null for other kinds.
latest_run (variant 2).current_wait (variant 2).child_run_idnull / stringrequired; For kind=child, the id of the child run being awaited; null for other kinds.
latest_run (variant 2).current_wait (variant 2).created_atstringrequired; Time the wait point was created (RFC 3339 UTC).
latest_run (variant 2).current_wait (variant 2).expires_atnull / stringrequired; Time the wait point expires (RFC 3339 UTC), or null if it has no deadline.
latest_run (variant 2).current_wait (variant 2).resolved_atnull / stringrequired; Time the wait point was resolved (RFC 3339 UTC), or null if still open.
stats_7dobjectrequired; Run statistics for the last seven days, bucketed by the day each run ended and updated when runs finish. no additional fields.
stats_7d.runsnumberrequired; Number of runs that ended in the last seven days, in any terminal status.
stats_7d.failuresnumberrequired; How many of those runs ended faulted.
archived_atnull / stringrequired; Archive time, or null while not archived. An archived name stays reserved and cannot be reused.
created_atstringrequired; Creation time (RFC 3339 UTC).
updated_atstringrequired; Time of the last update (RFC 3339 UTC).

Measured response

HTTP 200

{
  "id": "scr_00mv67lwvh08624c70ef824a0d8b14b0315c88452e",
  "owner": "tnt_3a9759864ccb4e00",
  "kind": "script",
  "namespace": "docs-samples",
  "name": "sample-scripts-1791867412840-b05e8a",
  "description": "Sample definition",
  "labels": {},
  "latest_version": {
    "version": "1.0.0",
    "published_at": "2026-10-13T04:57:22.398Z"
  },
  "dist_tags": {
    "latest": "1.0.0"
  },
  "draft_changed": false,
  "latest_run": null,
  "stats_7d": {
    "runs": 0,
    "failures": 0
  },
  "archived_at": "2026-10-13T04:57:27.639Z",
  "created_at": "2026-10-13T04:57:19.277Z",
  "updated_at": "2026-10-13T04:57:27.639Z"
}

Errors

HTTPCodes and description
400INVALID_PARAMS: Invalid request parameters, path, cursor, or body format.
403NAMESPACE_FORBIDDEN: The namespace is read-only, or the run token does not permit this call.
404TARGET_NOT_FOUND: The target does not exist or has an incompatible type.
412PRECONDITION_FAILED: The revision, source digest, or concurrent write precondition does not match.
defaultRFC 9457 automation problem. 429 includes Retry-After.

Authentication and common errors · Retain the X-Request-Id response header for troubleshooting.

Export

On this page