mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Blockers fixed: - Rename DockerFile → Dockerfile (case-sensitive fix for Linux CI/Docker) - Fix Docker CMD: semantica.server:app → semantica.explorer.app:app - Add module-level app = create_app() so uvicorn can reference the ASGI app - Remove pre-built static assets from git; add semantica/static/ to .gitignore Security / correctness fixes: - Fix CORS default from "*" to localhost:5173 (explicit env var still overrides) - Add guard to get_ws_manager() — returns 503 instead of AttributeError when unset - Restrict SPARQL endpoint to read-only query types (SELECT/ASK/CONSTRUCT/DESCRIBE) - Add 10 MB upload size limit to vocabulary import route - Add JSON-LD format auto-detection (.jsonld / .json-ld / .json) in vocabulary import Code quality fixes: - Replace O(N) annotation scan in create_annotation with O(1) get_annotation() lookup - Add get_annotation(ann_id) method to GraphSession - Add self-loop guard in batchMergeEdges (graph has allowSelfLoops: false) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
552 B
Docker
29 lines
552 B
Docker
FROM node:20-alpine AS frontend-builder
|
|
|
|
WORKDIR /app/semantica-explorer
|
|
|
|
|
|
COPY semantica-explorer/package.json semantica-explorer/package-lock.json* ./
|
|
|
|
|
|
RUN npm install
|
|
|
|
|
|
COPY semantica-explorer/ ./
|
|
RUN npm run build
|
|
|
|
|
|
FROM python:3.12-slim AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
COPY pyproject.toml ./
|
|
COPY semantica/ ./semantica/
|
|
|
|
COPY --from=frontend-builder /app/semantica/static ./semantica/static
|
|
|
|
RUN pip install --no-cache-dir ".[explorer]"
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["python", "-m", "uvicorn", "semantica.explorer.app:app", "--host", "0.0.0.0", "--port", "8000"] |