Skip to main content

Mini Atlas Graph app

Single-user, loopback-bound, pip-installed Graph app. The console script is mini-atlas-graph. Node, Docker, and Vite are not required at runtime.

Install and launch

Use a dedicated virtualenv. Install the wheel (and the three library wheels it depends on) from the files you were given until a GitHub Release has been published to PyPI. .github/workflows/pypi-publish.yml is that publisher; ordinary pushes and pull requests do not upload.

python3 -m venv .venv
source .venv/bin/activate
pip install mini_atlas_graph_etl-*.whl mini_atlas_graph_warehouse-*.whl mini_atlas_graph_ingestor-*.whl
pip install mini_atlas_graph_app-0.1.2-py3-none-any.whl

Launch from a working directory that is not a source checkout, with an empty PYTHONPATH, so imports resolve from site-packages:

unset PYTHONPATH
mini-atlas-graph serve --data-dir /path/to/data

serve binds to loopback (127.0.0.1:8765 by default) and prints a launch URL whose token lives in the URL fragment. The bundled UI exchanges that token once at POST /api/v1/session for an HttpOnly; SameSite=Strict session cookie. API routes under /api/v1 require that cookie. By default serve opens the system browser with that launch URL. Use --no-browser when you will paste the URL yourself.

Other commands:

mini-atlas-graph url --data-dir /path/to/data
mini-atlas-graph doctor --data-dir /path/to/data
mini-atlas-graph backup --data-dir /path/to/data --out backup.zip
mini-atlas-graph restore backup.zip --data-dir /path/to/empty

--data-dir holds app metadata (config.toml, metadata.sqlite, recipes, managed mapping/Avro files, jobs, uploads). The first serve against an empty directory creates inputs/, warehouses/, and exports/ there and writes them into input_roots, warehouse_roots, and export_roots. Authorize additional folders in Settings → Locations, then restart. YAML/CSV/SQL sources must live under an input root; DuckDB warehouses under a warehouse root; export destinations under an export root.

Optional extras and ODBC

Core install covers local CSV, SQLite, and local DuckDB SQL. Optional extras in pyproject.toml are leftover names, not the R1 source set:

Extra What it installs What it does not prove
[odbc] pyodbc An OS driver, a DSN, or a live SQL Server / BigQuery session
[postgres] psycopg PostgreSQL is not an R1 source
[oracle] oracledb Oracle is not an R1 source

SQL Server and BigQuery connection shapes exist. Live corporate authentication is unverified. Importable pyodbc is not an OS driver. Expired GCP auth for BigQuery is handled outside this app; there is no in-app Google login.

Backup exclusions

backup writes metadata.sqlite (SQLite backup API), recipes/, managed/ mapping and Avro files, and config.toml. Pass --include-artifacts to add jobs/, runs/, exports/, uploads/, imports/, and logs/. Never copied: warehouse DuckDB files, operator Python modules, host CSVs under input_roots, instance.lock, runtime.json, and launch tokens. Restore only into a new or empty directory; then launch that directory. Host source files used by recipes must still be reachable under the restored app's input_roots.

Trusted operator bindings

CSV wizard names can select callables from a trusted operator-bindings module listed in Settings. The browser cannot upload Python. Changing or deleting that module fails the next run explicitly. Treat the module path as operator-controlled code, not an app sandbox.

Resume is a Run History action on an interrupted run. GraphETL validates saved progress when Resume starts and may replay work since the last completed round. A checkpoint filename is not a restored graph.

HTTP API contract (F-A4)

schema/api-v1.json is generated from mini_atlas_graph_app/contracts/models.py. Those models cover the F-06 / J1 graph-web HTTP subset (graphs, jobs, slice preview, exports, and related types). They do not describe the expanded first-release surface: SQL console, external ETL, config-files, backup/restore, Help search, analytics import, Expansion/Resume, mapping/Avro, and related routes.

npm run check:api-types in the webapp checks the generated TypeScript client against that pinned subset. Additional contracts live in handwritten webapp modules (src/api/*.ts) and API tests. Do not treat the OpenAPI file as the entire current API.

Path picker, uploads, jobs

Authenticated picker routes GET /api/v1/fs/roots and GET /api/v1/fs/list stay inside operator-configured roots. A list inspects at most 2000 directory entries and returns at most 500 matches. When scan_complete is false the page is a partial scan, not the first 500 names in the folder. Bounded uploads go to data/uploads/<upload_id>/ via POST /api/v1/uploads and are removed by id with DELETE /api/v1/uploads/<upload_id>. Absolute host paths never appear in URLs.

Jobs are submitted only through the internal submit_job / JobService interface. Workers run as python -m mini_atlas_graph_app.worker <job_id>. Authenticated reads are GET /api/v1/jobs, GET /api/v1/jobs/<id>, and GET /api/v1/jobs/<id>/events.

Known limitations

  • Windows checkpoint legs were not run for this cut (not passed).
  • Live SQL Server and BigQuery remain unverified.
  • HTTP publication admission still content-hashes Parquet on the request thread (fail-closed). Light jobs share one slot. Job directories are retained.
  • Multi-user / shared-server mode is withdrawn. Keep launch-token session and Host/Origin checks.
  • Warehouse-upgrade UI (P2-08) is deferred. Rebuild current warehouses rather than in-place upgrade.

Packaging a wheel (maintainers)

Release wheels vendor the compiled UI and a curated library-help snapshot. Build those assets first:

python scripts/vendor_frontend.py --dist <webapp>/dist --commit <pinned-sha> --version <ui-version>
python scripts/vendor_help.py
python -m build

Wheel and sdist builds refuse missing, extra, or tampered vendored frontend and help files. Editable installs still work without web/ and without Node. scripts/install_smoke.py is the local installed-wheel proof. .github/workflows/installed-wheel.yml is Ubuntu/macOS/Windows clean-venv smoke; it is not a release or PyPI publish workflow. .github/workflows/pypi-publish.yml vendors the same fail-closed UI, Help, tutorial assets, and migrations, then publishes the wheel and sdist to PyPI only when a GitHub Release is published. The release tag must be v plus the exact pyproject.toml version. Register a PyPI Trusted Publisher for GitHub environment pypi before the first upload; do not add a PyPI API-token secret.

Help and UI sources are commit-pinned in graph_app_build.py. scripts/vendor_help.py and scripts/assert_source_pins.py refuse a checkout whose HEAD is not that commit. See docs/F07_SIBLING_CHECKOUT.md and docs/F07_MIGRATION_PRESENCE.md.

Metadata

Release files for mini-atlas-graph-app 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mini-atlas-graph-app 0.1.2
File Size Uploaded Provenance
mini_atlas_graph_app-0.1.2.tar.gz 788.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mini-atlas-graph-app 0.1.2
File Interpreter ABI Platform
mini_atlas_graph_app-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / mini_atlas_graph_app-0.1.2.tar.gz

Download URL mini_atlas_graph_app-0.1.2.tar.gz
Size 788.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1873191b9255ef4d9fdf50f7d4743850fea6a3cd5b0c830d5ead78d660582e1c
BLAKE2b-256 checksum
How to use checksums
edfe5ca4a139ebbff92f0b0e4722e3ad74050cbf501302bce43ea6930f848d13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / mini_atlas_graph_app-0.1.2-py3-none-any.whl

Download URL mini_atlas_graph_app-0.1.2-py3-none-any.whl
Size 833.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba8411a47d1264bddaf0d5e0524957a154b9d49981c276731e25920e93d5991c
BLAKE2b-256 checksum
How to use checksums
055afca8a31f7701b50d872701f00624aa569afcc82bf0605c4f4ddc3714f591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Security for mini-atlas-graph-app 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mini_atlas_graph_app-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page