application/json
Structured response bodyBody structurat al răspunsului
Complete request schemaSchema completă a cererii
{
"$ref": "#/components/schemas/EmptyObject",
"type": "object",
"additionalProperties": false,
"maxProperties": 0
}{}
DevelopersDezvoltatori/api/v1/contracts/{contractId}/versions/{versionNumber}/publishPublish an immutable contract version. Validates the documented inputs and creates or triggers the canonical outcome. Required inputs: contractId, versionNumber, Origin, X-CSRF-Token, request body. HTTP success: 200; documented failures: 401, 403, 404, 405, 409, 415, 422, 500, 503. Preserve draft revision, immutable version, publication, and deprecation identities.Publică o versiune imuabilă a contractului. Validează intrările documentate și creează sau declanșează rezultatul canonic. Intrări obligatorii: contractId, versionNumber, Origin, X-CSRF-Token, request body. Succes HTTP: 200; erori documentate: 401, 403, 404, 405, 409, 415, 422, 500, 503. Păstrează identitățile ciornei, versiunii imuabile, publicării și retragerii.
Content-TypeRequired request headerHeader obligatoriu al cereriiOriginRequired request headerHeader obligatoriu al cereriiX-CSRF-TokenRequired request headerHeader obligatoriu al cereriicontractIdpath · requiredobligatoriu11111111-1111-4111-8111-000000000001{
"type": "string",
"format": "uuid"
}versionNumberpath · requiredobligatoriu1{
"type": "integer",
"minimum": 1
}Originheader · requiredobligatoriuhttp://127.0.0.1:18081{
"type": "string",
"format": "uri"
}X-CSRF-Tokenheader · requiredobligatoriusynthetic-csrf-token{
"type": "string",
"minLength": 1
}curl --request POST "$DOCULA_URL/api/v1/contracts/$CONTRACT_ID/versions/$VERSION_NUMBER/publish" \
--cookie "$COOKIE_JAR" \
--header "Content-Type: application/json" \
--header "Origin: $DOCULA_URL" \
--header "X-CSRF-Token: $CSRF_TOKEN" \
--data-binary @request.jsonRequest body: requiredBody cerere: obligatoriu
Structured response bodyBody structurat al răspunsului
{
"$ref": "#/components/schemas/EmptyObject",
"type": "object",
"additionalProperties": false,
"maxProperties": 0
}{}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al răspunsului
{
"$ref": "#/components/schemas/VersionMutation",
"type": "object",
"additionalProperties": false,
"required": [
"version",
"correlation_id"
],
"properties": {
"version": {
"$ref": "#/components/schemas/ContractVersion",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"contract_id",
"number",
"schema",
"content_hash",
"status",
"source_revision",
"created_by",
"created_at"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"contract_id": {
"type": "string",
"format": "uuid"
},
"number": {
"type": "integer",
"minimum": 1
},
"schema": {
"type": "string",
"minLength": 1
},
"content_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"status": {
"type": "string",
"enum": [
"versioned",
"published",
"deprecated"
]
},
"source_revision": {
"type": "integer",
"minimum": 1
},
"created_by": {
"type": "string",
"format": "uuid"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"published_at": {
"type": "string",
"format": "date-time"
},
"deprecated_at": {
"type": "string",
"format": "date-time"
}
}
},
"correlation_id": {
"type": "string",
"minLength": 1
}
}
}{
"version": {
"id": "11111111-1111-4111-8111-000000000001",
"contract_id": "11111111-1111-4111-8111-000000000001",
"number": 1,
"schema": "synthetic-example",
"content_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"status": "versioned",
"source_revision": 1,
"created_by": "11111111-1111-4111-8111-000000000001",
"created_at": "2026-08-01T10:00:00Z"
},
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 401,
"code": "authentication_required",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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": 403
},
"code": {
"enum": [
"csrf_rejected",
"forbidden"
]
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 403,
"code": "csrf_rejected",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 404,
"code": "not_found",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
AllowThe exact method or method set supported by this path.Metoda sau setul exact de metode acceptate de această cale.Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 405,
"code": "method_not_allowed",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 409,
"code": "conflict",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 415,
"code": "unsupported_media_type",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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": 422
},
"code": {
"const": "validation_failed"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 422,
"code": "validation_failed",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 500,
"code": "internal_error",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Structured response bodyBody structurat al răspunsului
Structured response bodyBody structurat al 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"
}
}
}
]
}{
"type": "/problems/synthetic_example",
"title": "synthetic-example",
"status": 503,
"code": "dependency_unavailable",
"detail": "synthetic-example",
"correlation_id": "11111111-1111-4111-8111-000000000001"
}Contract lifecycle workflows are API-only; see the operational tasks guide.Operația rămâne intenționat disponibilă doar prin API.