{
  "generated_at": "2026-05-25T14:50:41.868Z",
  "system": {
    "id": "topolo-device-platform",
    "name": "Topolo Device Platform",
    "slug": "topolo-device-platform",
    "kind": "application",
    "summary": "Topolo platform-owned TopoloFeed delivery, analytics, Android playback, and device-side app-catalog consumption surfaces.",
    "aliases": [],
    "lifecycle": "active",
    "last_verified": "2026-05-14",
    "owners": [
      "device-platform"
    ],
    "repo_paths": [],
    "external_repo_paths": [
      "Apps/business/TopoloFeed"
    ],
    "service_ids": [
      "srv_IgInB3xJeF5x"
    ],
    "visibility": "public",
    "api_contract": {
      "type": "curated",
      "source": "PlatformApplications/TopoloDocs/src/content/public/applications/device-platform.mdx",
      "notes": "Canonical device-platform coverage lives in the docs application. TopoloFeed contains the feed delivery API, feed asset host, feed operator UI, Android playback runtime, and feed analytics worker. Feed delivery is the callable platform service slug `topolo-feed`, with `feed` retained as a registry alias, at https://feed-api.topolo.app; feed media assets are served from the `topolo-feed-assets` R2 bucket at https://topolo-feed-assets.topolo.app; and feed analytics remains a deploy target for device telemetry at https://feed-analytics-api.topolo.app. The Topolo-owned staging mirror uses https://feed-api.stg.topolo.us and https://feed-analytics-api.stg.topolo.us. TopoloMDM owns device management and Android provisioning. Mobile app catalog metadata belongs to Topolo Developers and is consumed through Developers-owned /api/apps routes. The former Nodo Host Network Pages site at https://nodo.topolo.io is retired, while retained Nodo-origin mobile surfaces are represented in Developers as first-party Topolo Feed, Topolo Provision, and Topolo MDM Mobile records."
    },
    "primary_hosts": [
      "https://feed-api.topolo.app",
      "https://topolo-feed-assets.topolo.app",
      "https://feed-analytics-api.topolo.app",
      "https://feed-api.stg.topolo.us",
      "https://feed-analytics-api.stg.topolo.us"
    ],
    "doc_paths": [
      "applications/device-platform",
      "internal/apps/device-platform"
    ],
    "security_assurance": {
      "risk_tier": "high",
      "auth_boundary": "Device-platform service API authorization with Topolo Auth where integrated.",
      "tenant_isolation": "service_local",
      "external_inputs": [
        "api",
        "scheduled_task"
      ],
      "sensitive_data": [
        "customer_content",
        "telemetry"
      ],
      "last_security_review": "2026-04-30",
      "security_review_status": "reviewed",
      "pentest_status": "passed",
      "evidence_doc": "internal/apps/device-platform"
    },
    "data_privacy": {
      "classification": "restricted",
      "sensitive_data_classes": [
        "customer_content",
        "device_data",
        "telemetry"
      ],
      "storage_locations": [
        "analytics_engine",
        "d1",
        "kv",
        "r2"
      ],
      "encryption_at_rest": "application_layer_required",
      "encryption_in_transit": "https_only",
      "key_management": "versioned_platform_key_required",
      "retention_policy": "partial",
      "deletion_export_status": "planned",
      "logging_redaction_status": "needs_review",
      "privacy_review_status": "reviewed",
      "enterprise_ready": false,
      "evidence_doc": "internal/apps/device-platform"
    },
    "dependencies": [
      "topolo-auth",
      "topolo-mdm",
      "topolo-developers"
    ],
    "bugfix_policy": {
      "tier": "autonomous",
      "preferred_agent": "either",
      "require_validator": false
    },
    "public_hub_url": "/systems/topolo-device-platform",
    "internal_hub_url": null,
    "application_api_url": "/reference/apps/topolo-device-platform",
    "generated_openapi_url": null,
    "machine_urls": {
      "system": "/machine/systems/topolo-device-platform.json",
      "application": "/machine/applications/topolo-device-platform.json"
    }
  },
  "docs": {
    "public": [
      {
        "id": "applications/commerce",
        "title": "TopoloCommerce",
        "summary": "Public overview of the multi-vertical commerce platform for venue operations, guest runtimes, and staff execution.",
        "audience": "public",
        "tags": [
          "commerce",
          "venues",
          "kiosk"
        ],
        "url": "/applications/commerce",
        "last_verified": "2026-05-13"
      },
      {
        "id": "applications/device-platform",
        "title": "Topolo Device Platform",
        "summary": "Public overview of Topolo's device distribution, feed delivery, analytics, Android playback, and provisioning surfaces.",
        "audience": "public",
        "tags": [
          "device-platform",
          "devices",
          "feeds"
        ],
        "url": "/applications/device-platform",
        "last_verified": "2026-05-13"
      }
    ],
    "internal": [],
    "runbooks": []
  },
  "authority": {
    "owners": [
      "device-platform"
    ],
    "repo_paths": [],
    "service_ids": [
      "srv_IgInB3xJeF5x"
    ],
    "dependencies": [
      "topolo-auth",
      "topolo-mdm",
      "topolo-developers"
    ],
    "aliases": []
  },
  "interfaces": {
    "contract_type": "curated",
    "contract_source": "PlatformApplications/TopoloDocs/src/content/public/applications/device-platform.mdx",
    "contract_source_exists": false,
    "openapi": null,
    "readme": null
  },
  "auth": {
    "depends_on_topolo_auth": true,
    "api_key_scopes": [
      {
        "id": "aks_feed_analytics_read",
        "name": "analytics.read",
        "description": "View feed engagement and analytics",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_feed_feed_read",
        "name": "feed.read",
        "description": "View feed entries and aggregations",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_feed_feed_write",
        "name": "feed.write",
        "description": "Publish and update feed entries",
        "resourcePattern": null,
        "kind": "api_key_scope"
      }
    ],
    "service_permissions": [
      {
        "id": "perm_feed_analytics_read",
        "name": "analytics:read",
        "description": "View feed engagement and analytics",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_feed_feed_read",
        "name": "feed:read",
        "description": "View feed entries and aggregations",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_feed_feed_write",
        "name": "feed:write",
        "description": "Publish and update feed entries",
        "resourcePattern": null,
        "kind": "permission"
      }
    ]
  },
  "runtime": {
    "primary_hosts": [
      "https://feed-api.topolo.app",
      "https://topolo-feed-assets.topolo.app",
      "https://feed-analytics-api.topolo.app",
      "https://feed-api.stg.topolo.us",
      "https://feed-analytics-api.stg.topolo.us"
    ],
    "repo_entries": [],
    "wrangler_surfaces": [],
    "packages": []
  },
  "data": {
    "env_vars": [],
    "bindings": [],
    "queue_bindings": [],
    "storage_kinds": [],
    "workflow_signals": []
  },
  "deployment": {
    "commands": [],
    "routes": [],
    "environments": [],
    "assets_directories": [],
    "observability_enabled": false
  },
  "debugging": {
    "failure_modes": [
      "No wrangler.toml surface was discovered under the registered repo paths.",
      "The registered contract source is missing: PlatformApplications/TopoloDocs/src/content/public/applications/device-platform.mdx",
      "Neither OpenAPI nor README-derived interface detail was found."
    ],
    "entrypoints": [
      "PlatformApplications/TopoloDocs/src/content/public/applications/device-platform.mdx"
    ]
  }
}