{
  "generated_at": "2026-04-10T18:55:56.734Z",
  "system": {
    "id": "twinview",
    "name": "TwinView",
    "slug": "twinview",
    "kind": "application",
    "summary": "Standalone digital-twin application for property capture, twin publishing, inspection workflows, and client share surfaces.",
    "aliases": [],
    "lifecycle": "active",
    "last_verified": "2026-04-10",
    "owners": [
      "platform-experience"
    ],
    "repo_paths": [
      "PlatformApplications/TwinView"
    ],
    "service_ids": [
      "srv_twinview"
    ],
    "visibility": "public",
    "api_contract": {
      "type": "curated",
      "source": "PlatformApplications/TwinView/apps/api/src/index.ts",
      "notes": "TwinView exposes a worker-backed application API for properties, property-detail aggregates, units, capture jobs, twins, annotations, inspection tasks, uploads, public share views, and Matterport connection metadata."
    },
    "primary_hosts": [
      "https://twinview.app",
      "https://api.twinview.app"
    ],
    "doc_paths": [
      "applications/twinview",
      "internal/apps/twinview",
      "internal/apps/twinview-design"
    ],
    "dependencies": [
      "topolo-auth",
      "topolo-platform"
    ],
    "public_hub_url": "/systems/twinview",
    "internal_hub_url": null,
    "application_api_url": "/reference/apps/twinview",
    "generated_openapi_url": null,
    "machine_urls": {
      "system": "/machine/systems/twinview.json",
      "application": "/machine/applications/twinview.json"
    }
  },
  "docs": {
    "public": [
      {
        "id": "applications/twinview.mdx",
        "title": "TwinView",
        "summary": "Standalone property digital-twin application for hybrid 360 capture, Matterport-backed premium twins, inspections, and client sharing.",
        "audience": "public",
        "tags": [
          "digital-twins",
          "property",
          "capture",
          "auth"
        ],
        "url": "/applications/twinview.mdx",
        "last_verified": "2026-04-10"
      }
    ],
    "internal": [],
    "runbooks": []
  },
  "authority": {
    "owners": [
      "platform-experience"
    ],
    "repo_paths": [
      "PlatformApplications/TwinView"
    ],
    "service_ids": [
      "srv_twinview"
    ],
    "dependencies": [
      "topolo-auth",
      "topolo-platform"
    ],
    "aliases": []
  },
  "interfaces": {
    "contract_type": "curated",
    "contract_source": "PlatformApplications/TwinView/apps/api/src/index.ts",
    "contract_source_exists": true,
    "openapi": null,
    "readme": null
  },
  "auth": {
    "depends_on_topolo_auth": true,
    "api_key_scopes": [
      {
        "name": "dashboard.read",
        "description": "View TwinView dashboards and portfolio summaries",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "properties.read",
        "description": "View properties and site records",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "properties.write",
        "description": "Create and update properties and site records",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "units.read",
        "description": "View units and subspaces",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "units.write",
        "description": "Create and update units and subspaces",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "capture_jobs.read",
        "description": "View capture jobs and field status",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "capture_jobs.write",
        "description": "Create and manage capture jobs and schedules",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "twins.read",
        "description": "View published and draft twins",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "twins.write",
        "description": "Create and update twin records",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "twins.publish",
        "description": "Publish or archive twin share views",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "annotations.read",
        "description": "View annotations and pinned notes",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "annotations.write",
        "description": "Create and manage annotations and pinned notes",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "inspections.read",
        "description": "View inspection tasks and issue status",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "inspections.write",
        "description": "Create and manage inspection tasks and issue status",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "share_views.read",
        "description": "View public and client share configuration",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "share_views.write",
        "description": "Manage public and client share configuration",
        "resourcePattern": "property:*",
        "kind": "api_key_scope"
      },
      {
        "name": "integrations.read",
        "description": "View Matterport and external integration metadata",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "integrations.write",
        "description": "Manage Matterport and external integration metadata",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "reports.read",
        "description": "View TwinView reporting and portfolio summaries",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "settings.read",
        "description": "View TwinView workspace settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "name": "settings.write",
        "description": "Manage TwinView workspace settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      }
    ],
    "service_permissions": [
      {
        "name": "dashboard:read",
        "description": "View TwinView dashboards and portfolio summaries",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "properties:read",
        "description": "View properties and site records",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "properties:write",
        "description": "Create and update properties and site records",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "units:read",
        "description": "View units and subspaces",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "units:write",
        "description": "Create and update units and subspaces",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "capture_jobs:read",
        "description": "View capture jobs and field status",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "capture_jobs:write",
        "description": "Create and manage capture jobs and schedules",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "twins:read",
        "description": "View published and draft twins",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "twins:write",
        "description": "Create and update twin records",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "twins:publish",
        "description": "Publish or archive twin share views",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "annotations:read",
        "description": "View annotations and pinned notes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "annotations:write",
        "description": "Create and manage annotations and pinned notes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "inspections:read",
        "description": "View inspection tasks and issue status",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "inspections:write",
        "description": "Create and manage inspection tasks and issue status",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "share_views:read",
        "description": "View public and client share configuration",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "share_views:write",
        "description": "Manage public and client share configuration",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "integrations:read",
        "description": "View Matterport and external integration metadata",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "integrations:write",
        "description": "Manage Matterport and external integration metadata",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "reports:read",
        "description": "View TwinView reporting and portfolio summaries",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "settings:read",
        "description": "View TwinView workspace settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "name": "settings:write",
        "description": "Manage TwinView workspace settings",
        "resourcePattern": null,
        "kind": "permission"
      }
    ]
  },
  "runtime": {
    "primary_hosts": [
      "https://twinview.app",
      "https://api.twinview.app"
    ],
    "repo_entries": [
      "PlatformApplications/TwinView/apps/",
      "PlatformApplications/TwinView/package-lock.json",
      "PlatformApplications/TwinView/package.json",
      "PlatformApplications/TwinView/packages/",
      "PlatformApplications/TwinView/topolo.cloudcontrol.json"
    ],
    "wrangler_surfaces": [
      {
        "path": "PlatformApplications/TwinView/apps/api/wrangler.toml",
        "observabilityEnabled": false,
        "environments": [],
        "routes": [],
        "vars": [
          "ALLOWED_ORIGINS",
          "APP_ORIGIN",
          "ASSET_PUBLIC_BASE_URL",
          "AUTH_BASE_URL"
        ],
        "bindings": [
          {
            "kind": "d1",
            "binding": "DB",
            "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
            "target": "05bd77a2-5028-4d97-b8dd-e9ef22715a2c"
          },
          {
            "kind": "r2",
            "binding": "ASSETS",
            "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
            "target": "twinview-assets"
          },
          {
            "kind": "queue",
            "binding": "JOBS",
            "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
            "target": "twinview-jobs"
          }
        ],
        "cronTriggers": [],
        "workerName": "twinview-api",
        "main": "src/index.ts",
        "compatibilityDate": "2026-04-10"
      },
      {
        "path": "PlatformApplications/TwinView/apps/web/wrangler.toml",
        "observabilityEnabled": false,
        "environments": [],
        "routes": [],
        "vars": [],
        "bindings": [],
        "cronTriggers": [],
        "workerName": "twinview-web",
        "compatibilityDate": "2026-04-10"
      }
    ],
    "packages": [
      {
        "path": "PlatformApplications/TwinView/apps/api/package.json",
        "name": "@twinview/api",
        "scripts": [
          "build",
          "typecheck",
          "dev",
          "deploy",
          "deploy:dry-run",
          "cf-typegen"
        ],
        "scriptCommands": [
          {
            "name": "build",
            "command": "tsc -p tsconfig.json"
          },
          {
            "name": "typecheck",
            "command": "tsc -p tsconfig.json --noEmit"
          },
          {
            "name": "dev",
            "command": "wrangler dev"
          },
          {
            "name": "deploy",
            "command": "wrangler deploy"
          },
          {
            "name": "deploy:dry-run",
            "command": "wrangler deploy --dry-run --outdir .wrangler/build"
          },
          {
            "name": "cf-typegen",
            "command": "wrangler types"
          }
        ]
      },
      {
        "path": "PlatformApplications/TwinView/apps/web/package.json",
        "name": "@twinview/web",
        "scripts": [
          "dev",
          "build",
          "preview",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "dev",
            "command": "vite"
          },
          {
            "name": "build",
            "command": "tsc -p tsconfig.json && vite build"
          },
          {
            "name": "preview",
            "command": "vite preview"
          },
          {
            "name": "typecheck",
            "command": "tsc -p tsconfig.json --noEmit"
          }
        ]
      },
      {
        "path": "PlatformApplications/TwinView/package.json",
        "name": "twinview",
        "scripts": [
          "build",
          "typecheck",
          "dev:web",
          "dev:api"
        ],
        "scriptCommands": [
          {
            "name": "build",
            "command": "npm run build -w @twinview/shared && npm run build -w @twinview/api && npm run build -w @twinview/web"
          },
          {
            "name": "typecheck",
            "command": "npm run build -w @twinview/shared && npm run typecheck -w @twinview/api && npm run typecheck -w @twinview/web"
          },
          {
            "name": "dev:web",
            "command": "npm run dev -w @twinview/web"
          },
          {
            "name": "dev:api",
            "command": "npm run dev -w @twinview/api"
          }
        ]
      },
      {
        "path": "PlatformApplications/TwinView/packages/shared/package.json",
        "name": "@twinview/shared",
        "scripts": [
          "build",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "build",
            "command": "tsc -p tsconfig.json"
          },
          {
            "name": "typecheck",
            "command": "tsc -p tsconfig.json --noEmit"
          }
        ]
      },
      {
        "path": "PlatformApplications/TwinView/packages/topolo-auth-client/package.json",
        "name": "@topolo/auth-client",
        "description": "Shared authentication client for Topolo applications",
        "scripts": [
          "build",
          "dev",
          "typecheck"
        ],
        "scriptCommands": [
          {
            "name": "build",
            "command": "tsup src/index.ts --format esm,cjs --dts"
          },
          {
            "name": "dev",
            "command": "tsup src/index.ts --format esm,cjs --dts --watch"
          },
          {
            "name": "typecheck",
            "command": "tsc --noEmit"
          }
        ]
      }
    ]
  },
  "data": {
    "env_vars": [
      "ALLOWED_ORIGINS",
      "APP_ORIGIN",
      "ASSET_PUBLIC_BASE_URL",
      "AUTH_BASE_URL"
    ],
    "bindings": [
      {
        "kind": "d1",
        "binding": "DB",
        "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
        "target": "05bd77a2-5028-4d97-b8dd-e9ef22715a2c"
      },
      {
        "kind": "r2",
        "binding": "ASSETS",
        "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
        "target": "twinview-assets"
      }
    ],
    "queue_bindings": [
      {
        "kind": "queue",
        "binding": "JOBS",
        "sourcePath": "PlatformApplications/TwinView/apps/api/wrangler.toml",
        "target": "twinview-jobs"
      }
    ],
    "storage_kinds": [
      "d1",
      "r2"
    ],
    "workflow_signals": [
      "JOBS -> twinview-jobs"
    ]
  },
  "deployment": {
    "commands": [
      {
        "name": "build",
        "command": "PlatformApplications/TwinView/apps/api/package.json :: tsc -p tsconfig.json"
      },
      {
        "name": "deploy",
        "command": "PlatformApplications/TwinView/apps/api/package.json :: wrangler deploy"
      },
      {
        "name": "deploy:dry-run",
        "command": "PlatformApplications/TwinView/apps/api/package.json :: wrangler deploy --dry-run --outdir .wrangler/build"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TwinView/apps/web/package.json :: tsc -p tsconfig.json && vite build"
      },
      {
        "name": "preview",
        "command": "PlatformApplications/TwinView/apps/web/package.json :: vite preview"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TwinView/package.json :: npm run build -w @twinview/shared && npm run build -w @twinview/api && npm run build -w @twinview/web"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TwinView/packages/shared/package.json :: tsc -p tsconfig.json"
      },
      {
        "name": "build",
        "command": "PlatformApplications/TwinView/packages/topolo-auth-client/package.json :: tsup src/index.ts --format esm,cjs --dts"
      }
    ],
    "routes": [],
    "environments": [],
    "assets_directories": [],
    "observability_enabled": false
  },
  "debugging": {
    "failure_modes": [
      "Neither OpenAPI nor README-derived interface detail was found."
    ],
    "entrypoints": [
      "PlatformApplications/TwinView/apps/api/wrangler.toml",
      "PlatformApplications/TwinView/apps/web/wrangler.toml",
      "PlatformApplications/TwinView/apps/api/src/index.ts",
      "PlatformApplications/TwinView/apps/api/package.json",
      "PlatformApplications/TwinView/apps/web/package.json",
      "PlatformApplications/TwinView/package.json",
      "PlatformApplications/TwinView/packages/shared/package.json",
      "PlatformApplications/TwinView/packages/topolo-auth-client/package.json"
    ]
  }
}