### # 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