Pyramid web app for inspecting arborist Merkle trees over sharded SQLite: document roots, inclusion proofs, an interactive 3D Merkle lattice (six.js / WebGL with graceful fallback), audit-chain linkage, and a live SSE event stream. Generated artifacts (env/, vendored static/six/ bundles, demo databases) are gitignored and rebuilt via the Makefile (venv, six, init-db, serve).
109 lines
2.2 KiB
INI
109 lines
2.2 KiB
INI
###
|
|
# arborist-viz — Merkle Command Center (development)
|
|
# Pyramid + Jinja2 + SQLAlchemy + waitress
|
|
# Matches the remarkbox / make_post_sell deployment idiom.
|
|
###
|
|
|
|
[alembic]
|
|
script_location = arborist_viz/scripts/alembic
|
|
sqlalchemy.url = sqlite:///%(here)s/data/arborist_viz.sqlite
|
|
|
|
[app:main]
|
|
use = egg:arborist-viz
|
|
|
|
###
|
|
# dashboard metadata DB (saved layouts, filter presets, prefs).
|
|
# arborist provenance shards are read-only via arborist.embed — not here.
|
|
###
|
|
sqlalchemy.url = sqlite:///%(here)s/data/arborist_viz.sqlite
|
|
|
|
###
|
|
# arborist provenance store(s) — read-only. Comma-separated paths.
|
|
# If empty, VIZ runs in demo / fixture mode (no live arborist data).
|
|
###
|
|
arborist.shards =
|
|
|
|
###
|
|
# Pyramid configuration.
|
|
###
|
|
pyramid.reload_templates = true
|
|
pyramid.debug_authorization = false
|
|
pyramid.debug_notfound = false
|
|
pyramid.debug_routematch = false
|
|
pyramid.default_locale_name = en
|
|
pyramid.includes =
|
|
pyramid_jinja2
|
|
pyramid_tm
|
|
pyramid_retry
|
|
|
|
jinja2.directories = arborist_viz:templates
|
|
jinja2.extensions =
|
|
jinja2.ext.do
|
|
|
|
###
|
|
# session / cookie configuration (signed, NOT encrypted).
|
|
###
|
|
session.hashalg = sha512
|
|
session.secret = dev-secret-change-me
|
|
session.timeout = 86400
|
|
session.max_age = 86400
|
|
session.reissue_time = 7200
|
|
session.samesite = lax
|
|
session.secure = False
|
|
|
|
###
|
|
# privacy default-deny — proposal §14.
|
|
# private leaves never sent to the browser unless this is true.
|
|
# Local-dev default: TRUE. The operator inspecting their own arborist
|
|
# corpus needs to see chunk content for the visualizer to be useful.
|
|
# production.ini keeps this fail-closed.
|
|
###
|
|
privacy.reveal_private_leaves = true
|
|
|
|
###
|
|
# SSE stream tuning.
|
|
###
|
|
sse.heartbeat_seconds = 15
|
|
sse.max_event_bytes = 65536
|
|
|
|
###
|
|
# server.
|
|
###
|
|
[server:main]
|
|
use = egg:waitress#main
|
|
listen = *:6543
|
|
|
|
###
|
|
# logging.
|
|
###
|
|
[loggers]
|
|
keys = root, arborist_viz, sqlalchemy
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = INFO
|
|
handlers = console
|
|
|
|
[logger_arborist_viz]
|
|
level = DEBUG
|
|
handlers =
|
|
qualname = arborist_viz
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARN
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
|