tree: e5c8a3e046790c73970d2e9b21c35f3fb6eab5df
  1. backend/
  2. deployment/
  3. frontend/
  4. screenshots/
  5. sdk/
  6. .gitignore
  7. hamilton-ui-architecture.png
  8. README.md
ui/README.md

Hamilton UI

This contains the code for the new Hamilton UI. For an overview of getting started & features see this documentation. For a lengthier post and intro see our blog post.

One operational UI for all your dataflows

The Hamilton UI is a system that provides the following capabilities:

  1. Execution tracking with associated metadata
    • Provides a persistent database to store/manage these
    • Provides a server that allows reading/writing/authentication
  2. Data/artifact observability: provides telemetry/observability of Hamilton executions + specific function results/code through a web interface
  3. Lineage & provenance: allows you to quickly inspect how code and data is connected.
  4. Catalog: everything is observed and cataloged, so you can quickly search and find what exists and when it was run.

The UI is meant to monitor/debug Hamilton dataflows both in development and production. The aim is to enable dataflow authors to move faster during all phases of the software development lifecycle.

For an overview of some of these features you can watch this quick video.

Execution Tracking

Data/Artifact Observability

Lineage & Provenance

Catalog

Getting started

You can watch this video walkthrough on getting set up.

Make sure you have docker running:

# clone the repository if you haven't
git clone https://github.com/dagworks-inc/hamilton
# change into the UI directory
cd hamilton/ui
# run docker
./deployment/run.sh

Once docker is running navigate to http://localhost:8242 and create an email and a project; then follow instructions on integrating with Hamilton.

A fuller guide can be found here.

Architecture

The architecture is simple.

architecture-diagram

The tracking server stores data on postgres, as well as any blobs on s3. This is stored in a docker volume on local mode. The frontend is a simple React application. There are a few authentication/ACL capabilities, but the default is to use local/unauthenticated (open). Please talk to us if you have a need for more custom authentication.

License

There are a few directories that are not licensed under the BSD-3 Clear Clause license. These are:

  • frontend/src/ee
  • backend/server/trackingserver_auth

See the main repository LICENSE for details, else the LICENSE file in the respective directories mentioned above.