arborist-viz/development.ini
russell@unturf.com 0cd96ab1d7
Initial commit: arborist VIZ — Merkle command center
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).
2026-05-28 09:22:59 -04:00

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