{
  "generated_at": "2026-04-28T23:58:28.630Z",
  "system": {
    "id": "topolo-quro",
    "name": "Topolo Quro",
    "slug": "topolo-quro",
    "kind": "application",
    "summary": "QR creation, redirect, and scan-tracking application with modern and legacy UI surfaces.",
    "aliases": [],
    "lifecycle": "active",
    "last_verified": "2026-04-26",
    "owners": [
      "growth-platform"
    ],
    "repo_paths": [
      "PlatformApplications/TopoloQuro"
    ],
    "service_ids": [
      "svc_quro_api"
    ],
    "visibility": "public",
    "api_contract": {
      "type": "curated",
      "source": "PlatformApplications/TopoloDocs/src/content/public/applications/quro.mdx",
      "notes": "Canonical Quro coverage now lives in the docs application. The canonical browser callback delegates one-time sso_code redemption to the shared Topolo auth client and no longer exposes a /sso?token= bridge route. The canonical branded login surface completes embedded password sign-in through shared Auth persistence and app-owned navigation on quro.topolo.app. The browser keeps same-tab sessionStorage access-token restore enabled by default after login and refresh so normal reloads do not appear logged out before cookie refresh completes. The API worker now also exposes authenticated `GET /api/widget` for TopoloOne live workspace."
    },
    "primary_hosts": [
      "https://quro.topolo.app"
    ],
    "doc_paths": [
      "applications/quro",
      "internal/apps/quro"
    ],
    "security_assurance": {
      "risk_tier": "standard",
      "auth_boundary": "Topolo Auth service access with Quro-owned application authorization. The canonical Quro UI uses branded first-party embedded password login plus one-time sso_code callbacks, then performs app-owned navigation after shared Auth session persistence with default same-tab access-token restore. Protected Quro API bearer-token requests must validate through Auth and must not fall back to locally decoded JWT claims from a Worker secret.",
      "tenant_isolation": "organization_scoped",
      "external_inputs": [
        "browser",
        "api",
        "callback"
      ],
      "sensitive_data": [
        "identity",
        "org_data",
        "customer_content",
        "telemetry"
      ],
      "last_security_review": "2026-04-23",
      "security_review_status": "not_started",
      "pentest_status": "not_started",
      "evidence_doc": "internal/apps/quro"
    },
    "dependencies": [
      "topolo-auth",
      "applications-packages"
    ],
    "public_hub_url": "/systems/topolo-quro",
    "internal_hub_url": null,
    "application_api_url": "/reference/apps/topolo-quro",
    "generated_openapi_url": null,
    "machine_urls": {
      "system": "/machine/systems/topolo-quro.json",
      "application": "/machine/applications/topolo-quro.json"
    }
  },
  "docs": {
    "public": [
      {
        "id": "applications/quro.mdx",
        "title": "Topolo Quro",
        "summary": "Public overview of the QR creation, redirect, analytics, and authenticated UI surface in the Topolo portfolio.",
        "audience": "public",
        "tags": [
          "qr",
          "redirects",
          "analytics"
        ],
        "url": "/applications/quro.mdx",
        "last_verified": "2026-04-28"
      }
    ],
    "internal": [],
    "runbooks": []
  },
  "authority": {
    "owners": [
      "growth-platform"
    ],
    "repo_paths": [
      "PlatformApplications/TopoloQuro"
    ],
    "service_ids": [
      "svc_quro_api"
    ],
    "dependencies": [
      "topolo-auth",
      "applications-packages"
    ],
    "aliases": []
  },
  "interfaces": {
    "contract_type": "curated",
    "contract_source": "PlatformApplications/TopoloDocs/src/content/public/applications/quro.mdx",
    "contract_source_exists": true,
    "openapi": null,
    "readme": {
      "path": "PlatformApplications/TopoloQuro/README.md",
      "intro": [
        "Canonical documentation for Topolo Quro lives in `PlatformApplications/TopoloDocs`.",
        "Use this repository for implementation only. Local product and operational docs have been retired in favor of the docs application."
      ],
      "headings": [
        "Topolo Quro"
      ],
      "routeHighlights": [],
      "commandHighlights": []
    }
  },
  "auth": {
    "depends_on_topolo_auth": true,
    "api_key_scopes": [
      {
        "id": "aks_quro_analytics_read",
        "name": "analytics.read",
        "description": "View QR analytics",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_analytics_write",
        "name": "analytics.write",
        "description": "Manage QR analytics exports",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_api_keys_write",
        "name": "api_keys.write",
        "description": "Manage Quro machine credentials",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_codes_read",
        "name": "codes.read",
        "description": "View generated codes",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_codes_write",
        "name": "codes.write",
        "description": "Manage generated codes",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_series_read",
        "name": "series.read",
        "description": "View QR series",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_series_write",
        "name": "series.write",
        "description": "Manage QR series",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_settings_read",
        "name": "settings.read",
        "description": "View Quro settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_quro_settings_write",
        "name": "settings.write",
        "description": "Manage Quro settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      }
    ],
    "service_permissions": [
      {
        "id": "perm_quro_analytics_read",
        "name": "analytics:read",
        "description": "View QR analytics",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_analytics_write",
        "name": "analytics:write",
        "description": "Manage QR analytics exports",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_api_keys_write",
        "name": "api_keys:write",
        "description": "Manage Quro machine credentials",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_codes_read",
        "name": "codes:read",
        "description": "View generated codes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_codes_write",
        "name": "codes:write",
        "description": "Manage generated codes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_series_read",
        "name": "series:read",
        "description": "View QR series",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_series_write",
        "name": "series:write",
        "description": "Manage QR series",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_settings_read",
        "name": "settings:read",
        "description": "View Quro settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_quro_settings_write",
        "name": "settings:write",
        "description": "Manage Quro settings",
        "resourcePattern": null,
        "kind": "permission"
      }
    ]
  },
  "runtime": {
    "primary_hosts": [
      "https://quro.topolo.app"
    ],
    "repo_entries": [
      "PlatformApplications/TopoloQuro/README.md",
      "PlatformApplications/TopoloQuro/migration.config.ts",
      "PlatformApplications/TopoloQuro/quro-system/",
      "PlatformApplications/TopoloQuro/topolo.cloudcontrol.json"
    ],
    "wrangler_surfaces": [
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-api/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [],
        "routes": [],
        "vars": [
          "APP_URL",
          "AUTH_BASE_URL",
          "SERVICE_ID"
        ],
        "bindings": [
          {
            "kind": "d1",
            "binding": "QURO_METADATA",
            "sourcePath": "PlatformApplications/TopoloQuro/quro-system/quro-api/wrangler.toml",
            "target": "64df2761-0e21-403d-a1c1-88abb09448f3"
          }
        ],
        "cronTriggers": [],
        "workerName": "quro-api",
        "main": "index.js",
        "compatibilityDate": "2026-04-10"
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [],
        "routes": [],
        "vars": [],
        "bindings": [
          {
            "kind": "d1",
            "binding": "QURO_METADATA",
            "sourcePath": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/wrangler.toml",
            "target": "64df2761-0e21-403d-a1c1-88abb09448f3"
          }
        ],
        "cronTriggers": [],
        "workerName": "quro-redirect-system",
        "main": "index.js",
        "compatibilityDate": "2026-04-10"
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-ui/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [
          "preview",
          "production"
        ],
        "routes": [],
        "vars": [
          "VITE_API_BASE_URL",
          "VITE_SERVICE_ID"
        ],
        "bindings": [],
        "cronTriggers": [],
        "workerName": "quro-ui",
        "compatibilityDate": "2026-04-10"
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [],
        "routes": [],
        "vars": [],
        "bindings": [],
        "cronTriggers": [],
        "workerName": "quro-ui-legacy",
        "compatibilityDate": "2026-04-10"
      }
    ],
    "packages": [
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-api/package.json",
        "name": "quro-api",
        "description": "QURO code API system using Cloudflare Workers, KV, and D1",
        "scripts": [
          "deploy",
          "dev",
          "deploy:dry-run",
          "lint",
          "build",
          "test:auth-contract"
        ],
        "scriptCommands": [
          {
            "name": "deploy",
            "command": "wrangler deploy"
          },
          {
            "name": "dev",
            "command": "wrangler dev"
          },
          {
            "name": "deploy:dry-run",
            "command": "wrangler deploy --dry-run --config wrangler.toml"
          },
          {
            "name": "lint",
            "command": "find . -maxdepth 1 -name '*.js' -print0 | xargs -0 -n1 node --check"
          },
          {
            "name": "build",
            "command": "node --check index.js"
          },
          {
            "name": "test:auth-contract",
            "command": "node scripts/check-auth-contract.mjs"
          }
        ]
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/package.json",
        "name": "quro-redirect-system",
        "description": "QURO code redirect system using Cloudflare Workers, KV, and D1",
        "scripts": [
          "deploy",
          "dev",
          "deploy:dry-run",
          "lint",
          "build"
        ],
        "scriptCommands": [
          {
            "name": "deploy",
            "command": "wrangler deploy"
          },
          {
            "name": "dev",
            "command": "wrangler dev"
          },
          {
            "name": "deploy:dry-run",
            "command": "wrangler deploy --dry-run --config wrangler.toml"
          },
          {
            "name": "lint",
            "command": "find . -path './node_modules' -prune -o -path './dist' -prune -o -name '*.js' -print0 | xargs -0 -n1 node --check"
          },
          {
            "name": "build",
            "command": "node --check index.js"
          }
        ]
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json",
        "name": "quro-ui",
        "scripts": [
          "dev",
          "build",
          "lint",
          "preview",
          "typecheck",
          "deploy",
          "deploy:preview"
        ],
        "scriptCommands": [
          {
            "name": "dev",
            "command": "vite --host 0.0.0.0 --port 3000"
          },
          {
            "name": "build",
            "command": "tsc -b && vite build"
          },
          {
            "name": "lint",
            "command": "eslint ."
          },
          {
            "name": "preview",
            "command": "vite preview --host 0.0.0.0 --port 3001"
          },
          {
            "name": "typecheck",
            "command": "tsc --noEmit"
          },
          {
            "name": "deploy",
            "command": "npm run build && wrangler pages deploy ./dist --project-name quro-ui"
          },
          {
            "name": "deploy:preview",
            "command": "npm run build && wrangler pages deploy ./dist --project-name quro-ui --env preview"
          }
        ]
      },
      {
        "path": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json",
        "name": "quro-ui-legacy",
        "description": "Legacy static UI for TopoloQuro kept for reference only",
        "scripts": [
          "start",
          "dev",
          "dev:serve",
          "deploy:github",
          "deploy:netlify",
          "deploy:cloudflare",
          "deploy",
          "build:production"
        ],
        "scriptCommands": [
          {
            "name": "start",
            "command": "node server.js"
          },
          {
            "name": "dev",
            "command": "node server.js"
          },
          {
            "name": "dev:serve",
            "command": "npx serve -s ."
          },
          {
            "name": "deploy:github",
            "command": "npm run build:production && gh-pages -d ."
          },
          {
            "name": "deploy:netlify",
            "command": "npm run build:production && netlify deploy --prod"
          },
          {
            "name": "deploy:cloudflare",
            "command": "npm run build:production && wrangler pages deploy --project-name=quro-ui-legacy ."
          },
          {
            "name": "deploy",
            "command": "npm run deploy:cloudflare"
          },
          {
            "name": "build:production",
            "command": "echo 'Preparing legacy reference files for deployment...'"
          }
        ]
      }
    ]
  },
  "data": {
    "env_vars": [
      "APP_URL",
      "AUTH_BASE_URL",
      "SERVICE_ID",
      "VITE_API_BASE_URL",
      "VITE_SERVICE_ID"
    ],
    "bindings": [
      {
        "kind": "d1",
        "binding": "QURO_METADATA",
        "sourcePath": "PlatformApplications/TopoloQuro/quro-system/quro-api/wrangler.toml",
        "target": "64df2761-0e21-403d-a1c1-88abb09448f3"
      },
      {
        "kind": "d1",
        "binding": "QURO_METADATA",
        "sourcePath": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/wrangler.toml",
        "target": "64df2761-0e21-403d-a1c1-88abb09448f3"
      }
    ],
    "queue_bindings": [],
    "storage_kinds": [
      "d1"
    ],
    "workflow_signals": []
  },
  "deployment": {
    "commands": [
      {
        "name": "deploy",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-api/package.json :: wrangler deploy"
      },
      {
        "name": "deploy:dry-run",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-api/package.json :: wrangler deploy --dry-run --config wrangler.toml"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-api/package.json :: node --check index.js"
      },
      {
        "name": "deploy",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/package.json :: wrangler deploy"
      },
      {
        "name": "deploy:dry-run",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/package.json :: wrangler deploy --dry-run --config wrangler.toml"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-redirect/package.json :: node --check index.js"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json :: tsc -b && vite build"
      },
      {
        "name": "preview",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json :: vite preview --host 0.0.0.0 --port 3001"
      },
      {
        "name": "deploy",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json :: npm run build && wrangler pages deploy ./dist --project-name quro-ui"
      },
      {
        "name": "deploy:preview",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json :: npm run build && wrangler pages deploy ./dist --project-name quro-ui --env preview"
      },
      {
        "name": "deploy:github",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json :: npm run build:production && gh-pages -d ."
      },
      {
        "name": "deploy:netlify",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json :: npm run build:production && netlify deploy --prod"
      },
      {
        "name": "deploy:cloudflare",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json :: npm run build:production && wrangler pages deploy --project-name=quro-ui-legacy ."
      },
      {
        "name": "deploy",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json :: npm run deploy:cloudflare"
      },
      {
        "name": "build:production",
        "command": "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json :: echo 'Preparing legacy reference files for deployment...'"
      }
    ],
    "routes": [],
    "environments": [
      "preview",
      "production"
    ],
    "assets_directories": [],
    "observability_enabled": true
  },
  "debugging": {
    "failure_modes": [],
    "entrypoints": [
      "PlatformApplications/TopoloQuro/quro-system/quro-api/wrangler.toml",
      "PlatformApplications/TopoloQuro/quro-system/quro-redirect/wrangler.toml",
      "PlatformApplications/TopoloQuro/quro-system/quro-ui/wrangler.toml",
      "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/wrangler.toml",
      "PlatformApplications/TopoloDocs/src/content/public/applications/quro.mdx",
      "PlatformApplications/TopoloQuro/README.md",
      "PlatformApplications/TopoloQuro/quro-system/quro-api/package.json",
      "PlatformApplications/TopoloQuro/quro-system/quro-redirect/package.json",
      "PlatformApplications/TopoloQuro/quro-system/quro-ui/package.json",
      "PlatformApplications/TopoloQuro/quro-system/quro-ui-legacy/package.json"
    ]
  }
}