{"adminPagesProtected":[{"method":"GET/POST","name":"Create HoloBell signature","path":"/create","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin home","path":"/admin/","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin signatures dashboard","path":"/admin/signatures","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin audit dashboard","path":"/admin/audit","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin email dashboard","path":"/admin/emails","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin backup dashboard","path":"/admin/backups","protected":true,"requiresAdminKey":true},{"method":"GET","name":"Admin email HTML viewer","path":"/admin/email-html/<event_id>","protected":true,"requiresAdminKey":true}],"cppAdminApis":[{"createsPersistentSignature":true,"experimental":true,"method":"POST","methodExpectedOnGet":{"httpStatus":405,"reason":"POST only"},"mode":"admin_persistent_cpp_signature_create","name":"Experimental persistent C++ signature creation V055","path":"/api/holobell/cpp/signatures/create","protected":true,"public":false,"replacesPythonSystem":false,"requiresAdminKey":true,"securityExpectedWithoutAdminKey":{"error":"admin_key_required","httpStatus":403},"writesDatabase":true}],"cppApis":[{"createsPersistentSignature":false,"method":"GET","mode":"read_only","name":"C++ core version","path":"/api/holobell/cpp/version","public":true,"requiresAdminKey":false,"writesDatabase":false},{"createsPersistentSignature":false,"method":"GET","mode":"read_only","name":"C++ core presets","path":"/api/holobell/cpp/presets","public":true,"requiresAdminKey":false,"writesDatabase":false},{"createsPersistentSignature":false,"method":"GET","mode":"read_only_preview_canonical_v050","name":"Canonical C++ signature preview V051","path":"/api/holobell/cpp/signature-preview","public":true,"requiresAdminKey":false,"writesDatabase":false},{"createsPersistentSignature":false,"method":"GET","mode":"canonical_dry_run_only","name":"Python/C++ canonical payload/hash dry-run V050","path":"/api/holobell/cpp/canonical-dry-run","public":true,"requiresAdminKey":false,"writesDatabase":false},{"createsPersistentSignature":false,"method":"GET","mode":"dry_run_compare_only","name":"Python/C++ dry-run comparison V049","path":"/api/holobell/cpp/compare-dry-run","public":true,"requiresAdminKey":false,"writesDatabase":false}],"cppCore":{"bridge":"Python subprocess","canonicalSpec":"HOLOBELL_CANONICAL_SIGNATURE_SPEC_V050","cliPath":"/srv/holobell/core_cpp/build/holobell_core_cli","engineVersion":"HOLOBELL_CPP_CORE_1.2.0_CANONICAL_V050","error":null,"hashAlgorithm":"SHA-256","status":"online"},"currentValidatedMilestones":["V039 server baseline","V040 public hygiene","V041 HoloBell visual page","V042 HOLOSID home page","V043 C++ core v1","V044 Python calls C++ CLI","V045 C++ status visible on /holobell","V046B simple GET preview form","V047 Python/C++ dry-run compare","V048 real SHA-256 in C++ core","V049 SHA-256 compare dry-run","V050 canonical signature spec","V051 canonical signature-preview","V052 canonical preview link on /holobell","V053 public route manifest","V054 route manifest visible on /holobell","V055 admin-only persistent C++ signature create endpoint","V056 route manifest documents V055","V057 DB schema verified with venv","V058 admin schema-report documented read-only","V060 controlled admin C++ persistent create test","V061 missing V055 helpers added","V062 DB insert JSON handling fixed","V063 insert placeholder count fixed","V064 jsonb placeholder position fixed","V065 public signature validation complete","V066 manifest documents V060-V065","V067 public verify UX","V068 public signatures gallery","V069 manifest documents V067-V068"],"domain":"https://holosid.com","generatedAtUtc":"2026-06-03T06:29:44.642985+00:00","manifestName":"HOLOBELL_PUBLIC_ROUTE_MANIFEST","nextRecommendedStep":{"name":"Prepare HoloBell Server RC1 clean baseline","reason":"V067 improved the public verify page and V068 improved the public signatures gallery. The next step is a clean RC1 baseline with documented public/admin/API stability.","version":"V070"},"ok":true,"product":"HOLOBELL_SIGNATURE_SERVER","publicApis":[{"method":"GET","name":"Server version","path":"/api/version","public":true,"writesDatabase":false},{"method":"GET","name":"HoloBell server status","path":"/api/holobell/status","public":true,"writesDatabase":false},{"method":"GET","name":"Public signature records","path":"/api/holobell/signatures","public":true,"writesDatabase":false},{"method":"GET","name":"Public verification JSON","path":"/api/holobell/verify/<public_code>","public":true,"writesDatabase":false},{"method":"GET","name":"Public certificate JSON","path":"/api/holobell/certificate/<public_code>","public":true,"writesDatabase":false},{"method":"GET","name":"Public .holobell export","path":"/api/holobell/file/<public_code>.holobell","public":true,"writesDatabase":false},{"method":"GET","name":"Python public preset list","path":"/api/holobell/presets","public":true,"writesDatabase":false},{"method":"GET","name":"HOLOSID Core 21 status","path":"/api/holobell/core21","public":true,"writesDatabase":false},{"method":"GET","name":"Marketing offer JSON","path":"/api/holobell/marketing/offer","public":true,"writesDatabase":false},{"method":"GET","name":"Public route manifest V069","path":"/api/holobell/routes/manifest","public":true,"writesDatabase":false}],"publicPages":[{"method":"GET","name":"HOLOSID public home","path":"/","public":true,"writesDatabase":false},{"method":"GET","name":"HoloBell product page with route manifest and canonical preview links","path":"/holobell","public":true,"writesDatabase":false},{"method":"GET","name":"HoloBell public signatures","path":"/signatures","public":true,"writesDatabase":false},{"method":"GET","name":"Public signature verification page","path":"/verify/<public_code>","public":true,"writesDatabase":false},{"method":"GET","name":"Robots policy","path":"/robots.txt","public":true,"writesDatabase":false},{"method":"GET","name":"Text sitemap","path":"/sitemap.txt","public":true,"writesDatabase":false},{"method":"GET","name":"Security contact policy","path":"/.well-known/security.txt","public":true,"writesDatabase":false}],"safety":{"manifestCreatesPersistentSignature":false,"manifestReplacesPythonSystem":false,"manifestRequiresAdminKey":false,"manifestWritesDatabase":false,"mode":"public_read_only_manifest"},"server":{"backend":"Python Flask","database":"PostgreSQL","gateway":"NGINX HTTPS","pythonEngine":"HOLOBELL_CORE_21.0.1","serverVersion":"0.2.0","service":"systemd holobell-api"},"version":"V069"}
