refactor(backend): external logging metrics, required mode, health checks

- Add external_logging_init_failures counter
- Add external_log_required flag, raise if init fails and required
- Health endpoint: add external_logging status check
- Blocklist service: enrich with metadata fields, update import logic
- Health check task: add runtime_state dependency, fix return typing
- Metrics: add Histogram for request latencies
- Frontend: align BlocklistImportLogSection props
- Docs: update deployment guide, remove stale tasks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-05-04 03:45:13 +02:00
parent 42e177e6ea
commit 0a3f9c6c16
15 changed files with 172 additions and 131 deletions

View File

@@ -90,7 +90,7 @@ export function BlocklistImportLogSection(): React.JSX.Element {
</Table>
</div>
{data.total_pages > 1 && (
{data.pagination_mode === "offset" && data.total_pages > 1 && (
<div className={styles.pagination}>
<Button size="small" appearance="secondary" disabled={page <= 1} onClick={() => { setPage(page - 1); }}>
Previous

View File

@@ -17,6 +17,10 @@ export interface PaginatedListResponse<T> extends CollectionResponse<T> {
page: number;
/** Number of items per page. */
page_size: number;
/** Total number of pages (only for offset pagination; -1 for cursor). */
total_pages: number;
/** Pagination mode discriminator: 'offset' or 'cursor'. */
pagination_mode: "offset" | "cursor";
}
export interface CommandResponse {