DoculaDevelopersDezvoltatori
API 0.8.0 · BuildVersiune produs 0.33.0
Documentation navigationNavigare documentație
POST/api/v1/templates/{templateId}/versions

Freeze the canonical draft with JSON or preserve the legacy immediate multipart uploadFixează ciorna canonică sau păstrează încărcarea multipart existentă

Freeze the canonical draft with JSON or preserve the legacy immediate multipart upload. Validates the documented inputs and creates or triggers the canonical outcome. Required inputs: templateId, Origin, X-CSRF-Token, request body. HTTP success: 200, 201; documented failures: 401, 403, 404, 405, 409, 412, 415, 422, 428, 500, 503. Send the current strong revision precondition and recover explicitly from stale writes.Fixează ciorna canonică sau păstrează încărcarea multipart existentă. Validează intrările documentate și creează sau declanșează rezultatul canonic. Intrări obligatorii: templateId, Origin, X-CSRF-Token, request body. Succes HTTP: 200, 201; erori documentate: 401, 403, 404, 405, 409, 412, 415, 422, 428, 500, 503. Trimite precondiția puternică a reviziei curente și recuperează explicit după o scriere învechită.

Roles: administrator, engineerRoluri: administrator (administrator), engineer (inginer)Host-local session requiredEste necesară sesiunea hostuluiBody ≤ 11,534,336 bytesBody ≤ 11.534.336 bytes

A session with must_change_password=true is forbidden regardless of role; only session read, password change, and logout remain authorized.O sesiune cu must_change_password=true este interzisă indiferent de rol; rămân autorizate doar citirea sesiunii, schimbarea parolei și deconectarea.

Required headers and parametersHeadere și parametri obligatorii

Content-TypeRequired request headerHeader obligatoriu al cererii
OriginRequired request headerHeader obligatoriu al cererii
X-CSRF-TokenRequired request headerHeader obligatoriu al cererii
templateIdpath · requiredobligatoriu
Immutable canonical template family UUID.UUID-ul familiei imuabile a șablonului canonic.
11111111-1111-4111-8111-000000000001
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "uuid"
}
Originheader · requiredobligatoriu
Must be one configured exact browser origin and its host must equal the request Host; no Referer fallback is accepted.Trebuie să fie una dintre originile exacte configurate pentru browser, iar hostul ei trebuie să coincidă cu Host-ul cererii. Un Referer corespunzător este acceptat numai când Origin lipsește.
http://127.0.0.1:18081
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "uri"
}
X-CSRF-Tokenheader · requiredobligatoriu
Per-session HMAC token returned by login or session-read; it is accepted only with that host's session and exact matching Origin.Token HMAC specific sesiunii, returnat la autentificare sau la citirea sesiunii; este acceptat numai împreună cu sesiunea acelui host și cu un Origin exact corespunzător.
synthetic-csrf-token
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "minLength": 1
}
Idempotency-Keyheader · optionalopțional
Required for the canonical application/json form; omitted by the preserved legacy multipart form.Identitatea cererii, limitată la actor. O reluare identică returnează rezultatul inițial; un conținut canonic diferit produce conflict.
docs-example-0001
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "minLength": 8,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$"
}
If-Matchheader · optionalopțional
Required for the canonical application/json freeze; omitted by the preserved legacy multipart upload.ETagul puternic al reviziei zecimale curente a ciornei.
"1"
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "pattern": "^\"[1-9][0-9]*\"$"
}

Parameter limitsLimitele parametrilor

{"name":"Idempotency-Key","maximum":null,"max_length":128}

Lifecycle and conventionsCiclu și convenții

Open the related API conventionDeschide convenția API asociată

Request examplesExemple de cerere

Synthetic curl · copy onlycurl sintetic · numai pentru copiere
curl --request POST "$DOCULA_URL/api/v1/templates/$TEMPLATE_ID/versions" \
  --cookie "$COOKIE_JAR" \
  --header "Content-Type: application/json" \
  --header "Origin: $DOCULA_URL" \
  --header "X-CSRF-Token: $CSRF_TOKEN" \
  --data-binary @request.json

Request body: requiredBody cerere: obligatoriu

application/json

Structured response bodyBody structurat al răspunsului

Complete request schemaSchema completă a cererii
{
  "type": "object",
  "additionalProperties": false
}
Synthetic createTemplateVersion request · syntheticExemplu sintetic · application/json
{}

multipart/form-data

Structured response bodyBody structurat al răspunsului

Complete request schemaSchema completă a cererii
{
  "$ref": "#/components/schemas/CreateTemplateVersionRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "x-docula-max-bytes": 10485760
    }
  }
}
Synthetic createTemplateVersion request · syntheticExemplu sintetic · multipart/form-data
{
  "file": "synthetic-file-content"
}

Responses and failuresRăspunsuri și erori

200A committed canonical definition mutation, cancellation, or exact actor-scoped replay.O mutație ori anulare confirmată a definiției canonice sau o reluare exactă limitată la actor.

Structured response bodyBody structurat al răspunsului

application/json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "$ref": "#/components/schemas/ConfigurationMutationResult",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "resource_kind",
    "resource_id",
    "result",
    "response_hash",
    "idempotent_replay",
    "correlation_id"
  ],
  "properties": {
    "resource_kind": {
      "type": "string",
      "enum": [
        "activation",
        "ingestion_model",
        "transformer",
        "template"
      ]
    },
    "resource_id": {
      "type": "string",
      "format": "uuid"
    },
    "result": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ConfigurationPublicationOutcome",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "family_id",
            "family_slug",
            "version_id",
            "version",
            "content_hash",
            "activation_id",
            "effective_from",
            "scheduled_at"
          ],
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "ingestion_model",
                "transformer",
                "template"
              ]
            },
            "family_id": {
              "type": "string",
              "format": "uuid"
            },
            "family_slug": {
              "type": "string"
            },
            "version_id": {
              "type": "string",
              "format": "uuid"
            },
            "version": {
              "type": "integer",
              "minimum": 1
            },
            "content_hash": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "activation_id": {
              "type": "string",
              "format": "uuid"
            },
            "effective_from": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            },
            "scheduled_at": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            }
          }
        },
        {
          "$ref": "#/components/schemas/ConfigurationCancellationOutcome",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "activation_id",
            "kind",
            "family_id",
            "version_id",
            "effective_from",
            "cancelled_at",
            "cancellation_code"
          ],
          "properties": {
            "activation_id": {
              "type": "string",
              "format": "uuid"
            },
            "kind": {
              "type": "string",
              "enum": [
                "ingestion_model",
                "transformer",
                "template"
              ]
            },
            "family_id": {
              "type": "string",
              "format": "uuid"
            },
            "version_id": {
              "type": "string",
              "format": "uuid"
            },
            "effective_from": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            },
            "cancelled_at": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            },
            "cancellation_code": {
              "type": "string",
              "pattern": "^[a-z0-9]+(?:_[a-z0-9]+)*$"
            }
          }
        },
        {
          "$ref": "#/components/schemas/ConfigurationDefinitionFamilyOutcome",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "id",
            "slug",
            "name",
            "description",
            "draft_revision",
            "created_at",
            "updated_at"
          ],
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "ingestion_model",
                "transformer",
                "template"
              ]
            },
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "slug": {
              "type": "string",
              "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "draft_revision": {
              "type": "integer",
              "minimum": 0
            },
            "created_at": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            },
            "updated_at": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            }
          }
        },
        {
          "$ref": "#/components/schemas/ConfigurationDefinitionVersionOutcome",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "kind",
            "id",
            "family_id",
            "number",
            "content_hash",
            "source_revision",
            "status",
            "created_at",
            "reused"
          ],
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "ingestion_model",
                "transformer",
                "template"
              ]
            },
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "family_id": {
              "type": "string",
              "format": "uuid"
            },
            "number": {
              "type": "integer",
              "minimum": 1
            },
            "content_hash": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "source_revision": {
              "type": "integer",
              "minimum": 1
            },
            "status": {
              "type": "string",
              "enum": [
                "versioned",
                "published"
              ]
            },
            "created_at": {
              "$ref": "#/components/schemas/CanonicalTimestamp",
              "type": "string",
              "format": "date-time",
              "description": "UTC timestamp serialized with RFC3339Nano precision."
            },
            "reused": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    "response_hash": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "idempotent_replay": {
      "type": "boolean"
    },
    "correlation_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
Synthetic ConfigurationMutationOK responseExemplu sintetic HTTP 200
{
  "resource_kind": "activation",
  "resource_id": "11111111-1111-4111-8111-000000000001",
  "result": {
    "kind": "ingestion_model",
    "family_id": "11111111-1111-4111-8111-000000000001",
    "family_slug": "synthetic-example",
    "version_id": "11111111-1111-4111-8111-000000000001",
    "version": 1,
    "content_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "activation_id": "11111111-1111-4111-8111-000000000001",
    "effective_from": "2026-08-01T10:00:00Z",
    "scheduled_at": "2026-08-01T10:00:00Z"
  },
  "response_hash": "0000000000000000000000000000000000000000000000000000000000000000",
  "idempotent_replay": false,
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
201Canonical immutable freeze or legacy immutable upload.Înghețare canonică imuabilă sau încărcare legacy imuabilă.

Structured response bodyBody structurat al răspunsului

application/json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/ConfigurationMutationResult",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "resource_kind",
        "resource_id",
        "result",
        "response_hash",
        "idempotent_replay",
        "correlation_id"
      ],
      "properties": {
        "resource_kind": {
          "type": "string",
          "enum": [
            "activation",
            "ingestion_model",
            "transformer",
            "template"
          ]
        },
        "resource_id": {
          "type": "string",
          "format": "uuid"
        },
        "result": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/ConfigurationPublicationOutcome",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "family_id",
                "family_slug",
                "version_id",
                "version",
                "content_hash",
                "activation_id",
                "effective_from",
                "scheduled_at"
              ],
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "ingestion_model",
                    "transformer",
                    "template"
                  ]
                },
                "family_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "family_slug": {
                  "type": "string"
                },
                "version_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "version": {
                  "type": "integer",
                  "minimum": 1
                },
                "content_hash": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "activation_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "effective_from": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                },
                "scheduled_at": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                }
              }
            },
            {
              "$ref": "#/components/schemas/ConfigurationCancellationOutcome",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "activation_id",
                "kind",
                "family_id",
                "version_id",
                "effective_from",
                "cancelled_at",
                "cancellation_code"
              ],
              "properties": {
                "activation_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "ingestion_model",
                    "transformer",
                    "template"
                  ]
                },
                "family_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "version_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "effective_from": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                },
                "cancelled_at": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                },
                "cancellation_code": {
                  "type": "string",
                  "pattern": "^[a-z0-9]+(?:_[a-z0-9]+)*$"
                }
              }
            },
            {
              "$ref": "#/components/schemas/ConfigurationDefinitionFamilyOutcome",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "id",
                "slug",
                "name",
                "description",
                "draft_revision",
                "created_at",
                "updated_at"
              ],
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "ingestion_model",
                    "transformer",
                    "template"
                  ]
                },
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "slug": {
                  "type": "string",
                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "draft_revision": {
                  "type": "integer",
                  "minimum": 0
                },
                "created_at": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                },
                "updated_at": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                }
              }
            },
            {
              "$ref": "#/components/schemas/ConfigurationDefinitionVersionOutcome",
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "id",
                "family_id",
                "number",
                "content_hash",
                "source_revision",
                "status",
                "created_at",
                "reused"
              ],
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "ingestion_model",
                    "transformer",
                    "template"
                  ]
                },
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "family_id": {
                  "type": "string",
                  "format": "uuid"
                },
                "number": {
                  "type": "integer",
                  "minimum": 1
                },
                "content_hash": {
                  "type": "string",
                  "pattern": "^[0-9a-f]{64}$"
                },
                "source_revision": {
                  "type": "integer",
                  "minimum": 1
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "versioned",
                    "published"
                  ]
                },
                "created_at": {
                  "$ref": "#/components/schemas/CanonicalTimestamp",
                  "type": "string",
                  "format": "date-time",
                  "description": "UTC timestamp serialized with RFC3339Nano precision."
                },
                "reused": {
                  "type": "boolean"
                }
              }
            }
          ]
        },
        "response_hash": {
          "type": "string",
          "pattern": "^[0-9a-f]{64}$"
        },
        "idempotent_replay": {
          "type": "boolean"
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    {
      "$ref": "#/components/schemas/TemplateVersionMutation",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "version",
        "correlation_id"
      ],
      "properties": {
        "version": {
          "$ref": "#/components/schemas/TemplateVersion",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "template_id",
            "number",
            "original_filename",
            "media_type",
            "byte_size",
            "content_hash",
            "bindings",
            "created_by",
            "correlation_id",
            "created_at",
            "status"
          ],
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "template_id": {
              "type": "string",
              "format": "uuid"
            },
            "number": {
              "type": "integer",
              "minimum": 1
            },
            "original_filename": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255
            },
            "media_type": {
              "type": "string",
              "const": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
            },
            "byte_size": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10485760
            },
            "content_hash": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "bindings": {
              "type": "array",
              "maxItems": 256,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "pattern": "^/",
                "maxLength": 256
              }
            },
            "created_by": {
              "type": "string",
              "format": "uuid"
            },
            "correlation_id": {
              "type": "string",
              "minLength": 1
            },
            "created_at": {
              "type": "string",
              "format": "date-time"
            },
            "source_revision": {
              "type": "integer",
              "minimum": 1
            },
            "status": {
              "type": "string",
              "enum": [
                "versioned",
                "published"
              ]
            },
            "published_at": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        }
      }
    }
  ]
}
Synthetic TemplateVersionOrLegacyCreated responseExemplu sintetic HTTP 201
{
  "resource_kind": "activation",
  "resource_id": "11111111-1111-4111-8111-000000000001",
  "result": {
    "kind": "ingestion_model",
    "family_id": "11111111-1111-4111-8111-000000000001",
    "family_slug": "synthetic-example",
    "version_id": "11111111-1111-4111-8111-000000000001",
    "version": 1,
    "content_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "activation_id": "11111111-1111-4111-8111-000000000001",
    "effective_from": "2026-08-01T10:00:00Z",
    "scheduled_at": "2026-08-01T10:00:00Z"
  },
  "response_hash": "0000000000000000000000000000000000000000000000000000000000000000",
  "idempotent_replay": false,
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
401A valid server-side session is required.Este necesară o sesiune validă pe server.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 401
        },
        "code": {
          "const": "authentication_required"
        }
      }
    }
  ]
}
Synthetic AuthenticationRequired responseExemplu sintetic HTTP 401
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 401,
  "code": "authentication_required",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
403The session protection failed or the authenticated role cannot mutate this resource.Protecția sesiunii a eșuat sau rolul autentificat nu poate modifica această resursă.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "$ref": "#/components/schemas/MutationProblem",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "correlation_id"
  ],
  "properties": {
    "type": {
      "type": "string",
      "pattern": "^/problems/[a-z_]+$"
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "status": {
      "type": "integer",
      "const": 403
    },
    "code": {
      "type": "string",
      "enum": [
        "csrf_rejected",
        "forbidden"
      ]
    },
    "detail": {
      "type": "string",
      "minLength": 1
    },
    "correlation_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
Synthetic MutationRejected responseExemplu sintetic HTTP 403
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 403,
  "code": "csrf_rejected",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
404The API or health path is unknown.Calea API sau de health este necunoscută.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 404
        },
        "code": {
          "const": "not_found"
        }
      }
    }
  ]
}
Synthetic NotFound responseExemplu sintetic HTTP 404
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 404,
  "code": "not_found",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
405The method is not supported by this path.Metoda nu este acceptată de această cale.

Structured response bodyBody structurat al răspunsului

Response headersHeaderele răspunsului

AllowThe exact method or method set supported by this path.Metoda sau setul exact de metode acceptate de această cale.

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 405
        },
        "code": {
          "const": "method_not_allowed"
        }
      }
    }
  ]
}
Synthetic MethodNotAllowed responseExemplu sintetic HTTP 405
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 405,
  "code": "method_not_allowed",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
409The resource changed before the requested mutation could be applied.Resursa s-a schimbat înainte ca mutația solicitată să poată fi aplicată.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 409
        },
        "code": {
          "const": "conflict"
        }
      }
    }
  ]
}
Synthetic Conflict responseExemplu sintetic HTTP 409
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 409,
  "code": "conflict",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
412The strong draft revision is malformed or stale.Revizia puternică a ciornei este formatată greșit sau învechită.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 412
        },
        "code": {
          "const": "precondition_failed"
        }
      }
    }
  ]
}
Synthetic ConfigurationPreconditionFailed responseExemplu sintetic HTTP 412
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 412,
  "code": "precondition_failed",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
415The mutation is missing the exact supported JSON content type.Mutației îi lipsește tipul de conținut JSON acceptat exact.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 415
        },
        "code": {
          "const": "unsupported_media_type"
        }
      }
    }
  ]
}
Synthetic UnsupportedMediaType responseExemplu sintetic HTTP 415
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 415,
  "code": "unsupported_media_type",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
422The request, DOCX, or exact release components are invalid; bounded details are included when available.Cererea, fișierul DOCX sau componentele exacte ale release-ului sunt invalide; detaliile mărginite sunt incluse când sunt disponibile.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "$ref": "#/components/schemas/ValidationProblem",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "correlation_id"
  ],
  "properties": {
    "type": {
      "type": "string",
      "const": "/problems/validation_failed"
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "status": {
      "type": "integer",
      "const": 422
    },
    "code": {
      "type": "string",
      "const": "validation_failed"
    },
    "detail": {
      "type": "string",
      "minLength": 1
    },
    "correlation_id": {
      "type": "string",
      "minLength": 1
    },
    "errors": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "items": {
        "$ref": "#/components/schemas/ProblemError",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "path",
          "rule",
          "detail"
        ],
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1
          },
          "rule": {
            "type": "string",
            "minLength": 1
          },
          "detail": {
            "type": "string",
            "minLength": 1
          },
          "value": {
            "description": "Offending submitted value. Present only in development; omitted in test and production.",
            "nullable": true
          }
        }
      }
    }
  }
}
Synthetic ValidationFailedDetailed responseExemplu sintetic HTTP 422
{
  "type": "/problems/validation_failed",
  "title": "synthetic-example",
  "status": 422,
  "code": "validation_failed",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
428A current strong If-Match draft revision is required.Este necesară revizia curentă puternică If-Match a ciornei.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ConfigurationProblem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id",
        "errors"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "validation_failed",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "errors": {
          "type": "array",
          "maxItems": 100,
          "items": {
            "$ref": "#/components/schemas/ConfigurationIssue",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "stage",
              "resource_kind",
              "message",
              "correlation_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "stage": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_kind": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "resource_id": {
                "type": "string",
                "maxLength": 128
              },
              "path": {
                "type": "string",
                "maxLength": 512
              },
              "message": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512
              },
              "dependency": {
                "type": "string",
                "maxLength": 64,
                "pattern": "^[a-z][a-z0-9_.:-]{0,63}$"
              },
              "context": {
                "type": "object",
                "maxProperties": 16,
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "correlation_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        }
      }
    },
    {
      "properties": {
        "status": {
          "const": 428
        },
        "code": {
          "const": "precondition_required"
        }
      }
    }
  ]
}
Synthetic ConfigurationPreconditionRequired responseExemplu sintetic HTTP 428
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 428,
  "code": "precondition_required",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
500An internal handler failure occurred.A apărut o eroare internă în handler.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 500
        },
        "code": {
          "const": "internal_error"
        }
      }
    }
  ]
}
Synthetic InternalError responseExemplu sintetic HTTP 500
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 500,
  "code": "internal_error",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
503A required dependency is unavailable.O dependență obligatorie este indisponibilă.

Structured response bodyBody structurat al răspunsului

application/problem+json

Structured response bodyBody structurat al răspunsului

Complete response schemaSchema completă a răspunsului
{
  "allOf": [
    {
      "$ref": "#/components/schemas/Problem",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "type",
        "title",
        "status",
        "code",
        "detail",
        "correlation_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "pattern": "^/problems/[a-z_]+$"
        },
        "title": {
          "type": "string",
          "minLength": 1
        },
        "status": {
          "type": "integer",
          "minimum": 400,
          "maximum": 599
        },
        "code": {
          "type": "string",
          "enum": [
            "internal_error",
            "dependency_unavailable",
            "invalid_credentials",
            "origin_rejected",
            "validation_failed",
            "rate_limited",
            "authentication_required",
            "csrf_rejected",
            "forbidden",
            "conflict",
            "not_found",
            "method_not_allowed",
            "unsupported_media_type",
            "content_unavailable",
            "precondition_required",
            "precondition_failed"
          ]
        },
        "detail": {
          "type": "string",
          "minLength": 1
        },
        "correlation_id": {
          "type": "string",
          "minLength": 1
        },
        "dependencies": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "$ref": "#/components/schemas/PublicDependency",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "name",
              "status"
            ],
            "properties": {
              "name": {
                "type": "string",
                "enum": [
                  "postgresql",
                  "nats",
                  "s3",
                  "outbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "unavailable"
                ]
              }
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "const": 503
        },
        "code": {
          "const": "dependency_unavailable"
        }
      }
    }
  ]
}
Synthetic DependencyUnavailable responseExemplu sintetic HTTP 503
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 503,
  "code": "dependency_unavailable",
  "detail": "synthetic-example",
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}

Frontend capabilityCapabilitate frontend

API-onlyDoar API
PlannedPlanificatNoNuImplementedImplementatNoNuAcceptedAcceptatNoNu

Template workflows are API-only; see the operational tasks guide.Operația rămâne intenționat disponibilă doar prin API.

Guided courseCurs ghidat