tree: f2f56f76f62de1e0fbb95cc7cb768838c7990f52 [search]
  1. server/
  2. tests/
  3. DISCLAIMER
  4. Dockerfile.backend
  5. Dockerfile.backend-prod
  6. LICENSE
  7. NOTICE
  8. pyproject.toml
  9. README.md
  10. uv.lock
ui/backend/README.md

Apache Hamilton UI: Tracking Server

Disclaimer

Apache Hamilton is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

apache-hamilton-ui is the tracking server and web application for visualizing, monitoring, and debugging Apache Hamilton dataflow DAGs.

Features

  • Visualize Hamilton DAGs and their execution history
  • Track inputs, outputs, and runtime metadata for each DAG run
  • Compare runs across versions and configurations
  • Self-hosted: run locally or deploy on your own infrastructure

Getting Started

The easiest way to run the UI is via Docker:

git clone https://github.com/apache/hamilton
cd hamilton/ui
docker-compose up

Then open http://localhost:8242 in your browser.

For full documentation, visit hamilton.apache.org and see the Apache Hamilton UI section.

Connecting Hamilton to the UI

Install the tracking SDK alongside your Hamilton project:

pip install "apache-hamilton[sdk]"

Then add a HamiltonTracker adapter to your driver:

from hamilton_sdk import adapters
from hamilton import driver

tracker = adapters.HamiltonTracker(
    project_id=PROJECT_ID,
    username=YOUR_EMAIL,
    dag_name="my_dag",
)
dr = (
    driver.Builder()
    .with_config(your_config)
    .with_modules(*your_modules)
    .with_adapters(tracker)
    .build()
)

Building from source

This package uses flit as its build backend (declared in pyproject.toml).

The source distribution (.tar.gz) is backend-only and builds directly:

# from the ui/backend directory (the package root)
python -m pip install flit
flit build --no-use-vcs --format sdist
# artifact is written to dist/

The wheel additionally bundles a compiled frontend, so it requires Node.js + npm. Build the frontend first, copy it into the package, then build the wheel:

# 1. build the frontend (from ui/frontend)
cd ../frontend
npm install
npm run build
npm run licenses     # generates build/THIRD-PARTY-LICENSES.txt

# 2. copy the compiled assets into the backend package
rm -rf ../backend/hamilton_ui/build
cp -r build ../backend/hamilton_ui/build

# 3. build the wheel (from ui/backend)
cd ../backend
flit build --no-use-vcs --format wheel
# artifact is written to dist/

The release script scripts/apache_release_helper.py --package ui performs all of these steps automatically.

License

Apache 2.0. See the LICENSE file included with this package for details.

This package is distributed in two forms:

  • The source distribution (sdist) contains only Apache Hamilton source code, licensed under the Apache License, Version 2.0.
  • The binary distribution (wheel) additionally bundles a compiled frontend web application (hamilton_ui/build/) built from the TypeScript/React sources in ui/frontend/. That bundle includes third-party JavaScript dependencies (e.g. React, Redux, Chart.js, React Flow), each under permissive licenses (MIT, Apache-2.0, BSD, ISC, and similar). The full per-dependency license texts and copyright notices are included in the wheel at hamilton_ui/build/THIRD-PARTY-LICENSES.txt.