ATOMA's users use the Petrolyst app; Superset keeps admins, editors and the app's embedded dashboards. Removed: the "ATOMA Reader" role and its rules (petrolyst_reader.py, ReaderAccessMixin, reader.css, the head template, the SQL-hiding patch), the atoma-reader mapping (it now maps to nothing in Superset), the iframe allowance for the Map tab, and the "atoma" dashboard with its Fleet/Map tab, D0 and dashboard.css. The bundle holds atoma-overview and atoma-site only (byte-identical to before); the guest role keeps the reader's 12 permissions in roles/atoma_guest.py. Brand files now name petrolyst-web. SPEC marks the retired parts as history. Checks (local): bundle checks pass; image rebuilt and healthy; import with column drift 0 and unchanged embedding ids; the production config loads with OAuth, embedding off, no reader hook; admin sees atoma-site with its tabs and filter column; the app's browser tests pass 10/10. shellcheck not run (not installed). Not deployed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.4 KiB
Docker
30 lines
1.4 KiB
Docker
# Petrolyst Superset image. Deployment only: every customization is copied from
|
|
# petrolyst-insights/, which compose.yaml passes as the named build context
|
|
# "insights". deploy/deploy.sh tags the result with a hash of exactly these
|
|
# inputs (this file plus what is copied below), so the tag changes only when
|
|
# the image would.
|
|
FROM apache/superset:6.1.0@sha256:16b50bbef6648912a79e3293d418fefa743ce555d36c5af6b85d859119ed7f88
|
|
|
|
USER root
|
|
# The 6.1.0 image ships neither an OAuth client nor the Postgres and Trino
|
|
# drivers.
|
|
RUN uv pip install --no-cache --python /app/.venv/bin/python \
|
|
authlib==1.9.1 psycopg2-binary==2.9.13 "trino[sqlalchemy]==0.340.0"
|
|
|
|
COPY --from=insights --chown=superset:superset superset_config.py petrolyst_security.py /app/pythonpath/
|
|
COPY --from=insights --chown=superset:superset roles/ /app/petrolyst-roles/
|
|
COPY --from=insights --chown=superset:superset assets/branding/ /app/superset/static/assets/branding/
|
|
COPY --from=insights patches/ /app/patches/petrolyst/
|
|
# Stop at the first patch or verify that fails, so a later success cannot hide
|
|
# an earlier failure.
|
|
RUN for p in /app/patches/petrolyst/fix_*.py; do \
|
|
[ -e "$p" ] || continue; \
|
|
{ python3 "$p" && python3 "$p" --verify; } || exit 1; \
|
|
done
|
|
|
|
# Deployment, not customization: in the image (and so in the tag) rather than
|
|
# bind-mounted, so a change to it makes deploy.sh run superset-init again.
|
|
COPY init.sh /app/petrolyst-init.sh
|
|
|
|
USER superset
|