Skip to content

web-based support/diagnostics UI for any production Datomic service

Notifications You must be signed in to change notification settings

hyperfiddle/datomic-browser

Repository files navigation

A Datomic entity browser for prod

This app is an easy way to get a generic web-based support/diagnostics UI for any production Datomic service, with the ability to extend using Clojure to add custom queries, routes, and views.

20260126-datomic-entity-browser-square-2.png Figure: Datomic browser targetting an entity in the mbrainz-full dataset, a music catalogue. Here we inspect the entity for :artist/name "The Beatles" and filter for that artist's releases titled "Yellow Submarine".

10min lightning talk – Conj 2025 (start here!)


Features

Standalone Datomic Browser mode (connect by Datomic URI)

  • Out of the box, a general Datomic entity browser
  • schema views, db-stats, history views, searchable EAVT index, entity navigation, reverse refs, etc
  • large database support, fluent virtual scroll over 50k+ records
  • "It has everything you would want"

Integrated Service Browser mode (service intermediated query)

  • securely embed in your service as a Clojure lib -- no direct Datomic URI connection
  • invoke and navigate your actual service query endpoints (Clojure fns)
  • integrate your secure production ring middlewares for auth, etc
  • custom entrypoint and dependency injection – integrate your standard service dependencies to invoke the service endpoints you already have
  • first class support for PII protection
  • built-in query supervision feature to safeguard against slow queries

By the way, it's only like 300 LOC: datomic_browser2.cljc. Fork it! Program it!

Getting started

Prerequisites

git clone [email protected]:hyperfiddle/datomic-browser.git
cd datomic-browser
./datomic_fixtures_mbrainz_small.sh       # Download Datomic w/ mbrainz dataset
#./datomic_fixtures_mbrainz_full.sh       # optional
./run_datomic.sh
clj -X:dev dev/-main
# Please login with any email to activate automatically: ...
# INFO  dev: 👉 http://0.0.0.0:8080

# boot with Datomic transactor URI
clj -X:dev dev/-main :datomic-uri '"'datomic:dev://localhost:4334/*'"'

Repl: jack-in with :dev alias, then eval (dev/-main)

License

  • free for individual use on local dev machines, free use requires login to activate (we are a business)
  • deploying in prod at work requires a license, contact us.
  • still working out the details

About

web-based support/diagnostics UI for any production Datomic service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5