DoculaDevelopersDezvoltatori
API 0.8.0 · BuildVersiune produs 0.33.0
Documentation navigationNavigare documentație
POST/api/v1/ingestion-models/{ingestionModelId}/validate

Validate an ingestion-model definition and sample without canonical writesValidează definiția și exemplul modelului fără scrieri canonice

Validate an ingestion-model definition and sample without canonical writes. Validates the documented inputs and creates or triggers the canonical outcome. Required inputs: ingestionModelId, Origin, X-CSRF-Token, Idempotency-Key, request body. HTTP success: 200; documented failures: 401, 403, 404, 405, 415, 422, 500, 503. Reuse the request key only for an exact replay; changed canonical content conflicts.Validează definiția și exemplul modelului fără scrieri canonice. Validează intrările documentate și creează sau declanșează rezultatul canonic. Intrări obligatorii: ingestionModelId, Origin, X-CSRF-Token, Idempotency-Key, request body. Succes HTTP: 200; erori documentate: 401, 403, 404, 405, 415, 422, 500, 503. Refolosește cheia cererii numai pentru o reluare identică; un conținut canonic diferit produce conflict.

Roles: administrator, engineerRoluri: administrator (administrator), engineer (inginer)Host-local session requiredEste necesară sesiunea hostuluiBody ≤ 2,097,152 bytesBody ≤ 2.097.152 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
Idempotency-KeyRequired request headerHeader obligatoriu al cererii
OriginRequired request headerHeader obligatoriu al cererii
X-CSRF-TokenRequired request headerHeader obligatoriu al cererii
ingestionModelIdpath · requiredobligatoriu
Immutable canonical ingestion-model family UUID.UUID-ul familiei imuabile a modelului canonic de ingestie.
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 · requiredobligatoriu
Actor-scoped request identity. An exact replay returns the original result; different canonical content conflicts.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}$"
}

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/ingestion-models/$INGESTION_MODEL_ID/validate" \
  --cookie "$COOKIE_JAR" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --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
{
  "$ref": "#/components/schemas/IngestionModelValidationRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "definition",
    "contract_version_id",
    "contract_hash",
    "sample"
  ],
  "properties": {
    "definition": {
      "type": "object"
    },
    "contract_version_id": {
      "type": "string",
      "format": "uuid"
    },
    "contract_hash": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "sample": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "metadata",
        "payload"
      ],
      "properties": {
        "metadata": {
          "$ref": "#/components/schemas/SubmissionMetadata",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "model_slug",
            "object_reference",
            "object_effective_at",
            "source_system",
            "source_actor"
          ],
          "properties": {
            "model_slug": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
            },
            "object_reference": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,127}$"
            },
            "object_effective_at": {
              "type": "string",
              "format": "date-time"
            },
            "source_system": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,127}$"
            },
            "source_actor": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,127}$"
            }
          }
        },
        "payload": true
      }
    }
  }
}
Synthetic validateIngestionModel request · syntheticExemplu sintetic · application/json
{
  "definition": {},
  "contract_version_id": "11111111-1111-4111-8111-111111111111",
  "contract_hash": "0000000000000000000000000000000000000000000000000000000000000000",
  "sample": {
    "metadata": {
      "model_slug": "synthetic-example",
      "object_reference": "synthetic-example",
      "object_effective_at": "2026-08-01T10:00:00Z",
      "source_system": "synthetic-example",
      "source_actor": "synthetic-example"
    },
    "payload": "synthetic-example"
  }
}

Responses and failuresRăspunsuri și erori

200Bounded deterministic ingestion-model validation; invalid input is represented by ordered errors.Validare deterministă mărginită a modelului de ingestie; intrarea invalidă este reprezentată prin erori ordonate.

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/ConfigurationValidationResult",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "valid",
    "errors",
    "correlation_id"
  ],
  "properties": {
    "valid": {
      "type": "boolean"
    },
    "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
          }
        }
      }
    },
    "correlation_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
Synthetic IngestionModelValidationOK responseExemplu sintetic HTTP 200
{
  "valid": false,
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ],
  "correlation_id": "11111111-1111-4111-8111-000000000001"
}
401A valid session is required.Este necesară o sesiune validă.

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": 401
        },
        "code": {
          "const": "authentication_required"
        }
      }
    }
  ]
}
Synthetic ConfigurationAuthenticationRequired 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
403The current role cannot access configuration, or same-origin CSRF protection rejected a mutation.Rolul curent nu poate accesa configurarea sau protecția CSRF same-origin a respins o mutație.

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": 403
        },
        "code": {
          "enum": [
            "csrf_rejected",
            "forbidden"
          ]
        }
      }
    }
  ]
}
Synthetic ConfigurationForbidden 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
404The requested canonical configuration resource was not found.Resursa canonică de configurare solicitată nu a fost găsită.

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": 404
        },
        "code": {
          "const": "not_found"
        }
      }
    }
  ]
}
Synthetic ConfigurationNotFound 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
405The method is not supported by this canonical path.Metoda nu este acceptată de această cale canonică.

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/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": 405
        },
        "code": {
          "const": "method_not_allowed"
        }
      }
    }
  ]
}
Synthetic ConfigurationMethodNotAllowed 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
415Content-Type must be application/json.Content-Type trebuie să fie application/json.

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": 415
        },
        "code": {
          "const": "unsupported_media_type"
        }
      }
    }
  ]
}
Synthetic ConfigurationUnsupportedMediaType 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
422The request, query, header, or canonical configuration is invalid.Cererea, query-ul, headerul sau configurarea canonică este invalidă.

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": 422
        },
        "code": {
          "const": "validation_failed"
        }
      }
    }
  ]
}
Synthetic ConfigurationValidationFailed responseExemplu sintetic HTTP 422
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 422,
  "code": "validation_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"
    }
  ]
}
500Canonical configuration failed safely.Configurarea canonică a eșuat în siguranță.

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": 500
        },
        "code": {
          "const": "internal_error"
        }
      }
    }
  ]
}
Synthetic ConfigurationInternalError 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}
503A canonical configuration dependency is unavailable or returned unsafe evidence.O dependență a configurării canonice este indisponibilă sau a returnat dovezi nesigure.

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": 503
        },
        "code": {
          "const": "dependency_unavailable"
        }
      }
    }
  ]
}
Synthetic ConfigurationDependencyUnavailable 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",
  "errors": [
    {
      "code": "synthetic-example",
      "stage": "synthetic-example",
      "resource_kind": "synthetic-example",
      "message": "synthetic-example",
      "correlation_id": "11111111-1111-4111-8111-000000000001"
    }
  ]
}

Frontend capabilityCapabilitate frontend

API-onlyDoar API
PlannedPlanificatNoNuImplementedImplementatNoNuAcceptedAcceptatNoNu

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

Guided courseCurs ghidat