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.
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".
- youtube, transcript with screenshots
- Get a demo: DM @dustingetz on Clojurians slack, or email dustin@hyperfiddle.net.
- For updates, follow on twitter here: https://x.com/dustingetz
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!
Prerequisites
java -versionmodern version, we useopenjdk version "23.0.2"- Clojure CLI https://clojure.org/guides/install_clojure
git clone git@github.com: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)
- 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