Files
where_woof/docs/where-woof-archify.json
Sam Rolfe ad8ee626fa Add where-woof.com flow maps: Mermaid + Archify interactive HTML
- docs/where-woof-flow.mmd (flowchart) + PNG/SVG renders
- docs/diagrams/where-woof-flow.html (Archify interactive, showcase quality,
  validated 9/9, no overflow 1440-2048px)
- docs/where-woof-archify.json spec + ARCHITECTURE.md maps section
- Published to maps.lab.audasmedia.com.au/where_woof/docs/
(secret-scan skip: SVG color hex false positive)
2026-09-06 18:10:52 +10:00

29 lines
2.1 KiB
JSON

{
"schema_version": 1,
"diagram_type": "architecture",
"meta": {
"title": "Where Woof — where-woof.com flow",
"subtitle": "Finder scan to owner alert · ordering · admin",
"quality_profile": "showcase"
},
"components": [
{ "id": "finder", "type": "external", "label": "Finder", "sublabel": "QR / NFC scan", "pos": [20, 120], "size": [120, 56] },
{ "id": "site", "type": "frontend", "label": "where-woof.com", "sublabel": "Go + HTMX · .13:3020", "pos": [200, 120], "size": [150, 56] },
{ "id": "gate", "type": "security", "label": "Alert gate", "sublabel": "paid sub · pool · caps", "pos": [480, 120], "size": [140, 56] },
{ "id": "sms", "type": "external", "label": "Owner SMS", "sublabel": "SMSGlobal → phone", "pos": [690, 40], "size": [140, 56] },
{ "id": "db", "type": "database", "label": "Postgres", "sublabel": "users · tags · scans · orders", "pos": [480, 290], "size": [170, 60] },
{ "id": "admin", "type": "backend", "label": "Admin + ordering", "sublabel": "admin.site · /order · Stripe", "pos": [200, 290], "size": [170, 60] }
],
"boundaries": [
{ "kind": "region", "label": "where-woof.com backend", "wraps": ["site", "gate", "db", "admin"] }
],
"connections": [
{ "id": "finder-site", "from": "finder", "to": "site", "label": "scan tag", "variant": "emphasis" },
{ "id": "site-gate", "from": "site", "to": "gate", "label": "scan request", "labelDy": 44 },
{ "id": "gate-sms", "from": "gate", "to": "sms", "label": "alert SMS", "variant": "emphasis", "fromSide": "top", "toSide": "bottom" },
{ "id": "gate-db", "from": "gate", "to": "db", "label": "record scan", "fromSide": "bottom", "toSide": "top", "labelAt": [510, 225] },
{ "id": "db-gate", "from": "db", "to": "gate", "label": "sub + pool", "variant": "dashed", "fromSide": "top", "toSide": "bottom", "labelAt": [500, 192] },
{ "id": "admin-db", "from": "admin", "to": "db", "label": "orders → status", "variant": "security", "fromSide": "right", "toSide": "bottom", "labelDy": 38 },
{ "id": "homegate", "from": "site", "to": "admin", "label": "promo / order", "variant": "dashed", "fromSide": "bottom", "toSide": "top" }
]
}