Files
ahp 06d233054b
CI / lint (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / release (push) Canceled after 0s
feat: per-sink delivery, journal forwarding, and operational API
Persistence:
- one delivery state per sink, with claim, crash recovery, and index replacement
- retention for delivered and dead records
- LMDB writes moved off the event loop

Pipeline:
- one attempt per dispatch, with the next try scheduled by next_retry_at
- backpressure through max_queue_size
- reload re-reads YAML; SIGTERM drains and SIGHUP reloads

Plugins:
- journald source, enricher and filter processors, Loki sink
- built-ins register when entry points are missing

API and CLI:
- health, metrics, per-sink queue, and dead-letter replay
- startup prints the pipeline on one line

Tests:
- dispatch, plugins, metrics, CLI, and persistence coverage
2026-10-14 01:58:07 +03:30

28 lines
556 B
Docker

FROM python:3.13-slim AS builder
RUN pip install uv --no-cache-dir
WORKDIR /app
COPY pyproject.toml .
RUN uv sync --no-dev --frozen
FROM python:3.13-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
liblmdb0 \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd -r daena && useradd -r -g daena -d /var/lib/daena daena
COPY --from=builder /app /app
COPY src/ /app/src/
COPY proto/ /app/proto/
ENV PATH="/app/.venv/bin:$PATH" \
DAENA_CONFIG_PATH=/etc/daena/daena.yaml
EXPOSE 8642 8643
USER daena
ENTRYPOINT ["daena-serve"]