DoculaDevelopersDezvoltatori
API 0.8.0 · BuildVersiune produs 0.33.0
Documentation navigationNavigare documentație
GET/api/v1/submissions/transformations

List canonical transformation nodes across submissions in stable newest-first orderListează cronologic transformările canonice ale solicitărilor

List canonical transformation nodes across submissions in stable newest-first order. Reads a bounded canonical view without mutation. No request body or required parameters apply. HTTP success: 200; documented failures: 401, 403, 405, 422, 500, 503. Treat the returned cursor as opaque and preserve the operation's filters across pages.Listează cronologic transformările canonice ale solicitărilor. Citește o vedere canonică limitată fără modificare. Nu declară body sau parametri obligatorii. Succes HTTP: 200; erori documentate: 401, 403, 405, 422, 500, 503. Tratează cursorul returnat ca opac și păstrează filtrele operației între pagini.

Roles: administrator, engineer, operator, auditor, business_viewerRoluri: administrator (administrator), engineer (inginer), operator (operator), auditor (auditor), business_viewer (cititor business)Host-local session requiredEste necesară sesiunea hostului

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

fromquery · optionalopțional
Inclusive transformation node created_at UTC boundary; defaults to 30 days before to.Limita UTC inclusivă pentru received_at; implicit este cu 30 de zile înainte de to.
2026-08-01T10:00:00Z
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "date-time"
}
toquery · optionalopțional
Exclusive transformation node created_at UTC boundary; defaults to now and permits at most 366 days.Limita UTC exclusivă pentru received_at; implicit este momentul curent și permite un interval de cel mult 366 de zile.
2026-08-01T10:00:00Z
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "date-time"
}
object_referencequery · optionalopțional
Exact Submission object reference.Filtrul exact după referința obiectului clientului.
DOCS-EXAMPLE-0001
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "minLength": 1,
  "maxLength": 128,
  "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,127}$"
}
statusquery · optionalopțional
Exact canonical transformation-status filter.Filtrul exact după starea canonică a transformării.
pending
Complete parameter schemaSchema completă a parametrului
{
  "$ref": "#/components/schemas/ProcessingNodeStatus",
  "type": "string",
  "enum": [
    "pending",
    "queued",
    "processing",
    "awaiting_compose",
    "completed",
    "failed",
    "blocked"
  ]
}
limitquery · optionalopțional
Maximum number of ordered results to return on this page.Numărul maxim de rezultate ordonate returnate în această pagină.
25
Complete parameter schemaSchema completă a parametrului
{
  "type": "integer",
  "minimum": 1,
  "maximum": 100,
  "default": 25
}
cursorquery · optionalopțional
Opaque cursor binding the normalized UTC window and every transformation filter.Cursor stabil și opac din pagina ordonată precedentă; păstrează filtrele operației la continuare.
synthetic-cursor
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "minLength": 1,
  "maxLength": 512
}

Parameter limitsLimitele parametrilor

{"name":"object_reference","maximum":null,"max_length":128}{"name":"limit","maximum":100,"max_length":null}{"name":"cursor","maximum":null,"max_length":512}

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 GET "$DOCULA_URL/api/v1/submissions/transformations" \
  --cookie "$COOKIE_JAR"

No request body applies. Use the documented method, path, headers, and parameters.Nu se aplică un body al cererii. Folosește metoda, calea, headerele și parametrii documentați.

Responses and failuresRăspunsuri și erori

200A stable newest-first bounded PostgreSQL projection of canonical transformation nodes.O proiecție PostgreSQL stabilă și mărginită a nodurilor canonice de transformare, ordonată de la cea mai nouă.

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/TransformationPage",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "transformations"
  ],
  "properties": {
    "transformations": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/TransformationListItem",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "submission_id",
          "object_reference",
          "model_slug",
          "name",
          "slug",
          "address",
          "status",
          "attempt_count",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "submission_id": {
            "type": "string",
            "format": "uuid"
          },
          "object_reference": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@+-]{0,127}$"
          },
          "model_slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "address": {
            "type": "string",
            "minLength": 3,
            "maxLength": 1024,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*(?::[a-z0-9]+(?:-[a-z0-9]+)*){1,15}$"
          },
          "status": {
            "$ref": "#/components/schemas/ProcessingNodeStatus",
            "type": "string",
            "enum": [
              "pending",
              "queued",
              "processing",
              "awaiting_compose",
              "completed",
              "failed",
              "blocked"
            ]
          },
          "attempt_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5
          },
          "duration_ms": {
            "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."
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "completed",
                    "failed"
                  ]
                }
              },
              "required": [
                "status"
              ]
            },
            "then": {
              "required": [
                "duration_ms"
              ]
            }
          },
          {
            "if": {
              "properties": {
                "status": {
                  "enum": [
                    "pending",
                    "queued",
                    "processing",
                    "awaiting_compose",
                    "blocked"
                  ]
                }
              },
              "required": [
                "status"
              ]
            },
            "then": {
              "not": {
                "required": [
                  "duration_ms"
                ]
              }
            }
          }
        ]
      }
    },
    "next_cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    }
  }
}
Synthetic TransformationListOK responseExemplu sintetic HTTP 200
{
  "transformations": [
    {
      "id": "11111111-1111-4111-8111-000000000001",
      "submission_id": "11111111-1111-4111-8111-000000000001",
      "object_reference": "DOCS-EXAMPLE-0001",
      "model_slug": "synthetic-example",
      "name": "synthetic-example",
      "slug": "synthetic-example",
      "address": "document:render",
      "status": "pending",
      "attempt_count": 0,
      "created_at": "2026-08-01T10:00:00Z"
    }
  ]
}
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 authenticated identity lacks the administrator permission.Identitatea autentificată nu are permisiunea de administrator.

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": 403
        },
        "code": {
          "const": "forbidden"
        }
      }
    }
  ]
}
Synthetic Forbidden responseExemplu sintetic HTTP 403
{
  "type": "/problems/synthetic_example",
  "title": "synthetic-example",
  "status": 403,
  "code": "forbidden",
  "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"
}
422The request is invalid.Cererea 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/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"
        }
      }
    }
  ]
}
Synthetic ValidationFailed 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"
}
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

Owner: business-ui · /app/transformationsResponsabil: business-ui · /app/transformations
PlannedPlanificatNoNuImplementedImplementatYesDaAcceptedAcceptatNoNu

The business transformation list is served by the React application.Operația este folosită de aplicația React de pe ruta indicată.

Guided courseCurs ghidat

This operation is not part of the finite Story 5.3 course.Această operație nu face parte din cursul finit Story 5.3.