masterplan-lock / check (push) Successful in 3s
masterplan-lock / check (pull_request) Successful in 10s
Security Scan (SIAX Cloud) / security (push) Successful in 14s
CI (SIAX Cloud) / security (push) Successful in 17s
CI (SIAX Cloud) / security (pull_request) Successful in 17s
CI (SIAX Cloud) / integration (push) Successful in 25s
CI (SIAX Cloud) / quality (push) Successful in 35s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 40s
CI (SIAX Cloud) / integration (pull_request) Successful in 49s
CI (SIAX Cloud) / quality (pull_request) Successful in 56s
- X-Internal-Token skickades av edgen men verifierades ALDRIG — gate som raw-ASGI-middleware: INTERNAL_TOKEN satt => alla routes utom /health kräver exakt token, 401 (constant-time) annars. Ospecificerad token = inert (dev). - Dockerfile: ARG GIT_SHA + OCI-label + /health.reporting revision - compose var redan skriven för INTERNAL_TOKEN — motorn hade bara aldrig deployats med den - tester: tests/test_internal_token_gate.py (3: off/public/401-pass) — hela services/api-sviten 62 passed, 2 skipped (dokumenterade known-gaps), 0 fail
22 lines
665 B
Docker
22 lines
665 B
Docker
# 0pt data engine — API + worker image (runs on a VPS, NOT Vercel; long jobs).
|
|
FROM python:3.12-slim
|
|
|
|
# Commit-kedjan (samma mönster som 0pt-motor/scripts/build-images.sh): samma
|
|
# SHA i image-taggen (sätts av byggaren), OCI-label och GET /health.
|
|
ARG GIT_SHA=unknown
|
|
LABEL org.opencontainers.image.revision=${GIT_SHA}
|
|
ENV GIT_SHA=${GIT_SHA}
|
|
|
|
WORKDIR /app
|
|
ENV PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install -r requirements.txt
|
|
|
|
COPY . .
|
|
|
|
EXPOSE 8000
|
|
# API: uvicorn orchestrator.main:app --host 0.0.0.0 --port 8000
|
|
# Worker: python -m workers.run
|
|
CMD ["uvicorn", "orchestrator.main:app", "--host", "0.0.0.0", "--port", "8000"]
|