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

List canonical submissions with separate ingestion, processing, and storage outcomesListează solicitările canonice și rezultatele lor distincte

List canonical submissions with separate ingestion, processing, and storage outcomes. 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ă solicitările canonice și rezultatele lor distincte. 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 received_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 received_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_effective_fromquery · optionalopțional
Inclusive official object-time boundary.Limita inclusivă a timpului oficial al obiectului.
2026-08-01T10:00:00Z
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "date-time"
}
object_effective_toquery · optionalopțional
Exclusive official object-time boundary.Limita exclusivă a timpului oficial al obiectului.
2026-08-01T10:00:00Z
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "date-time"
}
submission_idquery · optionalopțional
Exact Submission UUID filter.Filtrul exact după UUID-ul Submission-ului.
11111111-1111-4111-8111-000000000001
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "format": "uuid"
}
object_referencequery · optionalopțional
Exact customer object-reference filter.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}$"
}
ingestion_outcomequery · optionalopțional
Exact canonical ingestion-outcome filter.Filtrul exact după rezultatul canonic al ingestiei.
received
Complete parameter schemaSchema completă a parametrului
{
  "type": "string",
  "enum": [
    "received",
    "accepted",
    "rejected",
    "no_processing"
  ]
}
processing_outcomequery · optionalopțional
Exact canonical processing-outcome filter.Filtrul exact după rezultatul canonic al procesării.
not_triggered
Complete parameter schemaSchema completă a parametrului
{
  "$ref": "#/components/schemas/SubmissionListProcessingOutcome",
  "type": "string",
  "enum": [
    "not_triggered",
    "pending",
    "queued",
    "processing",
    "completed",
    "failed",
    "partial_failure"
  ]
}
storage_availablequery · optionalopțional
When set, filters by whether retained storage evidence is available.Când este setat, filtrează după disponibilitatea dovezii păstrate în stocare.
false
Complete parameter schemaSchema completă a parametrului
{
  "type": "boolean"
}
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 from the preceding page; it binds the normalized receipt window and every server 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" \
  --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 page containing each matching Submission exactly once.O pagină stabilă mărginită, ordonată de la cea mai nouă, care conține fiecare Submission corespunzător exact o dată.

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/SubmissionList",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "submissions"
  ],
  "properties": {
    "submissions": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/SubmissionListItem",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "model_slug",
          "object_reference",
          "object_effective_at",
          "received_at",
          "ingestion_outcome",
          "processing_triggered",
          "processing_outcome",
          "storage_object_count",
          "storage_bytes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "model_slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "object_reference": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "object_effective_at": {
            "type": "string",
            "format": "date-time"
          },
          "received_at": {
            "type": "string",
            "format": "date-time"
          },
          "ingestion_outcome": {
            "type": "string",
            "enum": [
              "received",
              "accepted",
              "rejected"
            ]
          },
          "processing_triggered": {
            "type": "boolean"
          },
          "processing_outcome": {
            "$ref": "#/components/schemas/SubmissionListProcessingOutcome",
            "type": "string",
            "enum": [
              "not_triggered",
              "pending",
              "queued",
              "processing",
              "completed",
              "failed",
              "partial_failure"
            ]
          },
          "reason_code": {
            "type": "string",
            "maxLength": 128
          },
          "storage_object_count": {
            "type": "integer",
            "minimum": 0
          },
          "storage_bytes": {
            "type": "integer",
            "minimum": 0
          }
        }
      }
    },
    "next_cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    }
  }
}
Synthetic SubmissionListOK responseExemplu sintetic HTTP 200
{
  "submissions": [
    {
      "id": "11111111-1111-4111-8111-000000000001",
      "model_slug": "synthetic-example",
      "object_reference": "DOCS-EXAMPLE-0001",
      "object_effective_at": "2026-08-01T10:00:00Z",
      "received_at": "2026-08-01T10:00:00Z",
      "ingestion_outcome": "received",
      "processing_triggered": false,
      "processing_outcome": "not_triggered",
      "storage_object_count": 0,
      "storage_bytes": 0
    }
  ]
}
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/ingestionsResponsabil: business-ui · /app/ingestions
PlannedPlanificatNoNuImplementedImplementatYesDaAcceptedAcceptatNoNu

Submission and journey workflows are 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.