trading-system-docs/tolaria/c5-sync-service/delete_Dockerfile
Rain Ocampo 9c2d6e365a AUTH.4D: DELETE-scoped executor + delete_request_id binding in SoT core
- delete_worker.py: DELETE-scoped worker loop (ApprovalStateStore, fail-closed)
- delete_tolaria_client.py: DELETE-only Tolaria client (fixed /delete endpoint)
- delete_entrypoint.py: DELETE runtime entrypoint (health/status + worker)
- delete_Dockerfile: DELETE executor image (no SAVE code, no credentials)
- delete_executor_core.py: minimal SoT patch — VALID_NONCE replay guard +
  VALID_DELETE_REQUEST binding (approval binds delete_request_id, fail-closed
  APPROVAL_MISMATCH). Closes P10/T29 security gap in productive SoT.

AUTH.4D P14. No deployment, no token injection, no key provisioning.
2026-08-28 02:28:48 +00:00

27 lines
1,013 B
Text

# AUTH.4D — c5-delete-executor (DELETE-only, fail-closed, verdrahtet)
FROM python:3.11-slim
# Kein echtes Credential im Image. Kein produktiver DELETE ohne injiziertes
# TOLARIA_DELETE_TOKEN (env_file, 0600). DELETE-only: kein SAVE-Code, kein
# forgejo_source_loader, kein git, keine write()-Capability.
# Kein Docker-Socket, kein SSH, keine Host-Root-Mounts.
RUN useradd --uid 10012 --create-home --shell /usr/sbin/nologin c5delete
WORKDIR /app
COPY --chown=10012:10012 \
approval_payload.py \
approval_signature.py \
approval_state.py \
approval_verifier.py \
delete_executor_core.py \
job_store.py \
job_schema.py \
job_state_machine.py \
job_claim.py \
delete_tolaria_client.py \
delete_worker.py \
delete_entrypoint.py \
/app/
USER 10012:10012
ENV C5_DELETE_DB=/data/c5a_delete.db
# FIXED Tolaria Base URL (interne Docker-DNS-Adresse, NIE aus dem Job)
ENV C5_TOLARIA_BASE=http://tolaria:5173/api/vault
ENTRYPOINT ["python3", "/app/delete_entrypoint.py"]