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

Read bounded workflow aggregates and document-generation capacityCitește agregatele fluxului și capacitatea de generare a documentelor

Read bounded workflow aggregates and document-generation capacity. 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. Preserve the documented UTC interval and temporal-resolution semantics.Citește agregatele fluxului și capacitatea de generare a documentelor. 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. Păstrează intervalul UTC și semantica documentată de rezolvare temporală.

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 UTC cohort boundary aligned to an exact hour. Omit with to for the latest completed-hour 30-day default.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 UTC cohort boundary aligned to an exact hour. Omit with from for the latest completed-hour 30-day default; the maximum explicit window is 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"
}

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/analytics/summary" \
  --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

200Bounded Submission, Ingestion, Processing, and Storage analytics with explicit sample and measurement availability.Analitice mărginite pentru Submission, Ingestion, Processing și Storage, cu disponibilitatea explicită a eșantionului și măsurătorilor.

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/AnalyticsSummary",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "from",
    "to",
    "submissions",
    "ingestion",
    "processing",
    "processing_load",
    "storage",
    "rates",
    "failures",
    "percentile_method",
    "document_generation"
  ],
  "properties": {
    "from": {
      "type": "string",
      "format": "date-time"
    },
    "to": {
      "type": "string",
      "format": "date-time"
    },
    "submissions": {
      "$ref": "#/components/schemas/AnalyticsSubmissionSummary",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "count",
        "raw_bytes"
      ],
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 0
        },
        "raw_bytes": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "ingestion": {
      "$ref": "#/components/schemas/AnalyticsIngestionSummary",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "accepted_count",
        "rejected_count",
        "no_processing_count",
        "decision_latency"
      ],
      "properties": {
        "accepted_count": {
          "type": "integer",
          "minimum": 0
        },
        "rejected_count": {
          "type": "integer",
          "minimum": 0
        },
        "no_processing_count": {
          "type": "integer",
          "minimum": 0
        },
        "decision_latency": {
          "$ref": "#/components/schemas/AnalyticsDurationPercentiles",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "sample_count",
            "p50_ms",
            "p95_ms"
          ],
          "properties": {
            "sample_count": {
              "type": "integer",
              "minimum": 0
            },
            "p50_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "p95_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            }
          }
        }
      }
    },
    "processing": {
      "$ref": "#/components/schemas/AnalyticsProcessingSummary",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "planned_count",
        "attempted_count",
        "completed_count",
        "failed_count",
        "derived_blocked_count",
        "duration",
        "peak_rss"
      ],
      "properties": {
        "planned_count": {
          "type": "integer",
          "minimum": 0
        },
        "attempted_count": {
          "type": "integer",
          "minimum": 0
        },
        "completed_count": {
          "type": "integer",
          "minimum": 0
        },
        "failed_count": {
          "type": "integer",
          "minimum": 0
        },
        "derived_blocked_count": {
          "type": "integer",
          "minimum": 0
        },
        "duration": {
          "$ref": "#/components/schemas/AnalyticsDurationPercentiles",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "sample_count",
            "p50_ms",
            "p95_ms"
          ],
          "properties": {
            "sample_count": {
              "type": "integer",
              "minimum": 0
            },
            "p50_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "p95_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            }
          }
        },
        "peak_rss": {
          "$ref": "#/components/schemas/AnalyticsRSSPercentiles",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "measured_count",
            "unavailable_count",
            "p50_bytes",
            "p95_bytes"
          ],
          "properties": {
            "measured_count": {
              "type": "integer",
              "minimum": 0
            },
            "unavailable_count": {
              "type": "integer",
              "minimum": 0
            },
            "p50_bytes": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "p95_bytes": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            }
          }
        }
      }
    },
    "processing_load": {
      "$ref": "#/components/schemas/AnalyticsProcessingLoad",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "bucket_width_seconds",
        "buckets"
      ],
      "properties": {
        "bucket_width_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 31622400
        },
        "buckets": {
          "type": "array",
          "minItems": 1,
          "maxItems": 366,
          "items": {
            "$ref": "#/components/schemas/AnalyticsProcessingLoadBucket",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "bucket_start",
              "ingestion",
              "transformation",
              "docx_composition",
              "pdf_generation"
            ],
            "properties": {
              "bucket_start": {
                "type": "string",
                "format": "date-time"
              },
              "ingestion": {
                "$ref": "#/components/schemas/AnalyticsProcessingLoadPhase",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "duration_ms",
                  "operation_count",
                  "average_duration_ms"
                ],
                "properties": {
                  "duration_ms": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "operation_count": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "average_duration_ms": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                }
              },
              "transformation": {
                "$ref": "#/components/schemas/AnalyticsProcessingLoadPhase",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "duration_ms",
                  "operation_count",
                  "average_duration_ms"
                ],
                "properties": {
                  "duration_ms": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "operation_count": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "average_duration_ms": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                }
              },
              "docx_composition": {
                "$ref": "#/components/schemas/AnalyticsProcessingLoadPhase",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "duration_ms",
                  "operation_count",
                  "average_duration_ms"
                ],
                "properties": {
                  "duration_ms": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "operation_count": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "average_duration_ms": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                }
              },
              "pdf_generation": {
                "$ref": "#/components/schemas/AnalyticsProcessingLoadPhase",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "duration_ms",
                  "operation_count",
                  "average_duration_ms"
                ],
                "properties": {
                  "duration_ms": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "operation_count": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "average_duration_ms": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                }
              }
            }
          }
        }
      }
    },
    "storage": {
      "$ref": "#/components/schemas/AnalyticsStorageSummary",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "docx_count",
        "docx_bytes",
        "pdf_count",
        "pdf_bytes"
      ],
      "properties": {
        "docx_count": {
          "type": "integer",
          "minimum": 0
        },
        "docx_bytes": {
          "type": "integer",
          "minimum": 0
        },
        "pdf_count": {
          "type": "integer",
          "minimum": 0
        },
        "pdf_bytes": {
          "type": "integer",
          "minimum": 0
        }
      }
    },
    "rates": {
      "$ref": "#/components/schemas/AnalyticsRates",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ingestion_acceptance",
        "processing_completion",
        "processing_failure"
      ],
      "properties": {
        "ingestion_acceptance": {
          "$ref": "#/components/schemas/AnalyticsRate",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "numerator",
            "denominator",
            "value"
          ],
          "properties": {
            "numerator": {
              "type": "integer",
              "minimum": 0
            },
            "denominator": {
              "type": "integer",
              "minimum": 0
            },
            "value": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 1
            }
          }
        },
        "processing_completion": {
          "$ref": "#/components/schemas/AnalyticsRate",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "numerator",
            "denominator",
            "value"
          ],
          "properties": {
            "numerator": {
              "type": "integer",
              "minimum": 0
            },
            "denominator": {
              "type": "integer",
              "minimum": 0
            },
            "value": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 1
            }
          }
        },
        "processing_failure": {
          "$ref": "#/components/schemas/AnalyticsRate",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "numerator",
            "denominator",
            "value"
          ],
          "properties": {
            "numerator": {
              "type": "integer",
              "minimum": 0
            },
            "denominator": {
              "type": "integer",
              "minimum": 0
            },
            "value": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 1
            }
          }
        }
      }
    },
    "failures": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "$ref": "#/components/schemas/AnalyticsFailureCount",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "count"
        ],
        "properties": {
          "code": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_.-]{0,63}$"
          },
          "count": {
            "type": "integer",
            "minimum": 1
          }
        }
      }
    },
    "percentile_method": {
      "type": "string",
      "const": "nearest_rank"
    },
    "document_generation": {
      "$ref": "#/components/schemas/AnalyticsDocumentGenerationSummary",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "completed_render_count",
        "window_minutes",
        "documents_per_minute",
        "render_latency",
        "render_attempt_error_rate",
        "peak_rss",
        "queue",
        "workers"
      ],
      "properties": {
        "completed_render_count": {
          "type": "integer",
          "minimum": 0
        },
        "window_minutes": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "documents_per_minute": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "render_latency": {
          "$ref": "#/components/schemas/AnalyticsDurationPercentiles",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "sample_count",
            "p50_ms",
            "p95_ms"
          ],
          "properties": {
            "sample_count": {
              "type": "integer",
              "minimum": 0
            },
            "p50_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "p95_ms": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            }
          }
        },
        "render_attempt_error_rate": {
          "$ref": "#/components/schemas/AnalyticsRate",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "numerator",
            "denominator",
            "value"
          ],
          "properties": {
            "numerator": {
              "type": "integer",
              "minimum": 0
            },
            "denominator": {
              "type": "integer",
              "minimum": 0
            },
            "value": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 1
            }
          }
        },
        "peak_rss": {
          "$ref": "#/components/schemas/AnalyticsRSSPercentiles",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "measured_count",
            "unavailable_count",
            "p50_bytes",
            "p95_bytes"
          ],
          "properties": {
            "measured_count": {
              "type": "integer",
              "minimum": 0
            },
            "unavailable_count": {
              "type": "integer",
              "minimum": 0
            },
            "p50_bytes": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            },
            "p95_bytes": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0
            }
          }
        },
        "queue": {
          "$ref": "#/components/schemas/AnalyticsDocumentQueueSnapshot",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "observed_at",
            "pending_count",
            "in_flight_count",
            "availability",
            "scope",
            "method"
          ],
          "properties": {
            "observed_at": {
              "type": "string",
              "format": "date-time"
            },
            "pending_count": {
              "type": "integer",
              "minimum": 0
            },
            "in_flight_count": {
              "type": "integer",
              "minimum": 0
            },
            "availability": {
              "type": "string",
              "enum": [
                "available",
                "unavailable"
              ]
            },
            "scope": {
              "type": "string",
              "const": "document_compose_and_render"
            },
            "method": {
              "type": "string",
              "const": "jetstream_consumer_info"
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "availability": {
                    "const": "unavailable"
                  }
                },
                "required": [
                  "availability"
                ]
              },
              "then": {
                "properties": {
                  "pending_count": {
                    "const": 0
                  },
                  "in_flight_count": {
                    "const": 0
                  }
                }
              }
            }
          ]
        },
        "workers": {
          "$ref": "#/components/schemas/AnalyticsDocumentWorkerSnapshot",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "observed_at",
            "responsive_replicas",
            "busy_slots",
            "capacity_slots",
            "saturation_ratio",
            "availability",
            "scope",
            "method"
          ],
          "properties": {
            "observed_at": {
              "type": "string",
              "format": "date-time"
            },
            "responsive_replicas": {
              "type": "integer",
              "minimum": 0
            },
            "busy_slots": {
              "type": "integer",
              "minimum": 0
            },
            "capacity_slots": {
              "type": "integer",
              "minimum": 0
            },
            "saturation_ratio": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 1
            },
            "availability": {
              "type": "string",
              "enum": [
                "available",
                "unavailable"
              ]
            },
            "scope": {
              "type": "string",
              "const": "document_worker_replicas"
            },
            "method": {
              "type": "string",
              "const": "bounded_nats_broadcast"
            }
          },
          "allOf": [
            {
              "if": {
                "properties": {
                  "availability": {
                    "const": "available"
                  },
                  "capacity_slots": {
                    "minimum": 1
                  }
                },
                "required": [
                  "availability",
                  "capacity_slots"
                ]
              },
              "then": {
                "properties": {
                  "saturation_ratio": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                }
              },
              "else": {
                "properties": {
                  "saturation_ratio": {
                    "type": "null"
                  }
                }
              }
            }
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "completed_render_count": {
                "const": 0
              }
            },
            "required": [
              "completed_render_count"
            ]
          },
          "then": {
            "properties": {
              "documents_per_minute": {
                "type": "null"
              }
            }
          },
          "else": {
            "properties": {
              "documents_per_minute": {
                "type": "number",
                "minimum": 0
              }
            }
          }
        }
      ]
    }
  }
}
Synthetic AnalyticsSummaryOK responseExemplu sintetic HTTP 200
{
  "from": "2026-08-01T10:00:00Z",
  "to": "2026-08-01T10:00:00Z",
  "submissions": {
    "count": 0,
    "raw_bytes": 0
  },
  "ingestion": {
    "accepted_count": 0,
    "rejected_count": 0,
    "no_processing_count": 0,
    "decision_latency": {
      "sample_count": 0,
      "p50_ms": null,
      "p95_ms": null
    }
  },
  "processing": {
    "planned_count": 0,
    "attempted_count": 0,
    "completed_count": 0,
    "failed_count": 0,
    "derived_blocked_count": 0,
    "duration": {
      "sample_count": 0,
      "p50_ms": null,
      "p95_ms": null
    },
    "peak_rss": {
      "measured_count": 0,
      "unavailable_count": 0,
      "p50_bytes": null,
      "p95_bytes": null
    }
  },
  "processing_load": {
    "bucket_width_seconds": 1,
    "buckets": [
      {
        "bucket_start": "2026-08-01T10:00:00Z",
        "ingestion": {
          "duration_ms": 0,
          "operation_count": 0,
          "average_duration_ms": null
        },
        "transformation": {
          "duration_ms": 0,
          "operation_count": 0,
          "average_duration_ms": null
        },
        "docx_composition": {
          "duration_ms": 0,
          "operation_count": 0,
          "average_duration_ms": null
        },
        "pdf_generation": {
          "duration_ms": 0,
          "operation_count": 0,
          "average_duration_ms": null
        }
      }
    ]
  },
  "storage": {
    "docx_count": 0,
    "docx_bytes": 0,
    "pdf_count": 0,
    "pdf_bytes": 0
  },
  "rates": {
    "ingestion_acceptance": {
      "numerator": 0,
      "denominator": 0,
      "value": null
    },
    "processing_completion": {
      "numerator": 0,
      "denominator": 0,
      "value": null
    },
    "processing_failure": {
      "numerator": 0,
      "denominator": 0,
      "value": null
    }
  },
  "failures": [
    {
      "code": "synthetic-example",
      "count": 1
    }
  ],
  "percentile_method": "nearest_rank",
  "document_generation": {
    "completed_render_count": 0,
    "window_minutes": 1,
    "documents_per_minute": null,
    "render_latency": {
      "sample_count": 0,
      "p50_ms": null,
      "p95_ms": null
    },
    "render_attempt_error_rate": {
      "numerator": 0,
      "denominator": 0,
      "value": null
    },
    "peak_rss": {
      "measured_count": 0,
      "unavailable_count": 0,
      "p50_bytes": null,
      "p95_bytes": null
    },
    "queue": {
      "observed_at": "2026-08-01T10:00:00Z",
      "pending_count": 0,
      "in_flight_count": 0,
      "availability": "available",
      "scope": "document_compose_and_render",
      "method": "jetstream_consumer_info"
    },
    "workers": {
      "observed_at": "2026-08-01T10:00:00Z",
      "responsive_replicas": 0,
      "busy_slots": 0,
      "capacity_slots": 0,
      "saturation_ratio": null,
      "availability": "available",
      "scope": "document_worker_replicas",
      "method": "bounded_nats_broadcast"
    }
  }
}
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 · /appResponsabil: business-ui · /app
PlannedPlanificatNoNuImplementedImplementatYesDaAcceptedAcceptatNoNu

Business analytics are served by the React dashboard.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.