{
  "generated_at": "2026-04-28T23:58:28.619Z",
  "system": {
    "id": "topolo-developers",
    "name": "Topolo Developers",
    "slug": "topolo-developers",
    "kind": "application",
    "summary": "Standalone developer application with a public signup entrypoint, the Developers-owned Topolo app store read model, and the authenticated workspace-backed console where publishers manage apps, App Store taxonomy-backed section/category marketing metadata, launcher deep-link exposure, Android/iOS mobile artifacts, submissions, and build requests while internal operators review app submissions, set app visibility/status, manage developer commerce controls, configure app pricing, and track payout readiness from staff-only routes inside the same product.",
    "aliases": [],
    "lifecycle": "active",
    "last_verified": "2026-04-29",
    "owners": [
      "platform-experience"
    ],
    "repo_paths": [
      "PlatformApplications/TopoloDevelopers"
    ],
    "service_ids": [
      "svc_topolo_developers"
    ],
    "visibility": "public",
    "api_contract": {
      "type": "curated",
      "source": "PlatformApplications/TopoloDevelopers/src/App.tsx",
      "notes": "Topolo Developers owns its own Pages Functions + D1 backend for authenticated workspace summary, onboarding, app drafts, Android/iOS mobile artifact records, public /api/apps catalog output, Developers-owned /api/store/catalog, /api/store/search, and /api/store/apps/:idOrSlug app store reads for TopoloOne and public store surfaces, app submissions, build requests, transfer codes, internal review workflows, app commerce controls, payout-account state, payout ledger events, P2P capability source records plus the public /api/p2p/capabilities/:id read-through endpoint, scaffold-provisioning routes for authenticated developer self-service, first-party Topolo scaffold registration into the Topolo-owned developer workspace, and per-app launcher quick-link authoring through the signed marketing editor. That D1 schema is now migration-managed from checked-in SQL in the Developers repo rather than being created on request. The app still exposes shared public landing and first-party embedded password-login surfaces at / and /login plus a dedicated public signup handoff at /signup, creates the org-backed developer workspace in Auth during signup, treats that workspace as the publisher boundary for many developer apps, and consumes Auth only for identity, central API-key surfaces, app-switcher entitlements, approved-app registration into the shared service catalog, install/launch authorization, and Auth-hosted end-user OAuth consent for registered third-party clients. The legacy Developers browser consent route forwards to Auth and must not require developer workspace admission. Developer apps now also carry explicit ownerType, portfolio, audience, tenancy, surfaceModel, optional containerAppId, distribution metadata, and launcher quick-link metadata so Topolo first-party platform/personal apps stay distinct from third-party business/personal apps, organization-internal apps stay private to the owning workspace, and the shared launcher can surface publisher-approved deep links without hardcoded per-app command lists. App visibility and mutation resolve from workspace org membership plus per-app owner/editor/viewer membership metadata, owner-issued transfer codes with destination-workspace claim, built-in developer_app API-key resource bindings for approved apps, explicit review:read/review:write permissions for staff-only review routes, explicit commerce:read/commerce:write permissions or Topolo super-admin access for staff-only commerce routes, the production Topolo Technology developer profile and first-party platform plus mobile app rows used to exercise the publisher workflow as Topolo, the Topolo Mobile records for the 22 retained Flutter apps under TopoloMobileApps with finalized app.topolo.mobile.* identifiers and Android APK artifacts published to the shared topolo-apks R2 bucket through apk.topolo.app, cleanup for 8 retired one-off mobile app records, the completed demo-suite developer profile used for platform auth audits, and the repo-level CI gate recorded in CloudControl."
    },
    "primary_hosts": [
      "https://developers.topolo.app",
      "https://staging.topolo-developers-staging.pages.dev"
    ],
    "doc_paths": [
      "applications/developers",
      "internal/apps/topolo-developers"
    ],
    "security_assurance": {
      "risk_tier": "critical",
      "auth_boundary": "Topolo Auth service access for developer workspaces, app registration, and API-key governance; first-party password login persists through the shared Auth client before returning into the Developers app.",
      "tenant_isolation": "organization_scoped",
      "external_inputs": [
        "browser",
        "api",
        "callback",
        "third_party_app"
      ],
      "sensitive_data": [
        "identity",
        "org_data",
        "provider_credentials",
        "customer_content",
        "telemetry"
      ],
      "last_security_review": "2026-04-21",
      "security_review_status": "not_started",
      "pentest_status": "not_started",
      "evidence_doc": "internal/apps/topolo-developers"
    },
    "dependencies": [
      "topolo-auth",
      "topolo-one",
      "topolo-p2p"
    ],
    "public_hub_url": "/systems/topolo-developers",
    "internal_hub_url": null,
    "application_api_url": "/reference/apps/topolo-developers",
    "generated_openapi_url": null,
    "machine_urls": {
      "system": "/machine/systems/topolo-developers.json",
      "application": "/machine/applications/topolo-developers.json"
    }
  },
  "docs": {
    "public": [
      {
        "id": "applications/developers.mdx",
        "title": "Topolo Developers",
        "summary": "Public overview of the authenticated Topolo developer portal and its submission/request workflows.",
        "audience": "public",
        "tags": [
          "developers",
          "portal",
          "auth"
        ],
        "url": "/applications/developers.mdx",
        "last_verified": "2026-04-28"
      }
    ],
    "internal": [],
    "runbooks": []
  },
  "authority": {
    "owners": [
      "platform-experience"
    ],
    "repo_paths": [
      "PlatformApplications/TopoloDevelopers"
    ],
    "service_ids": [
      "svc_topolo_developers"
    ],
    "dependencies": [
      "topolo-auth",
      "topolo-one",
      "topolo-p2p"
    ],
    "aliases": []
  },
  "interfaces": {
    "contract_type": "curated",
    "contract_source": "PlatformApplications/TopoloDevelopers/src/App.tsx",
    "contract_source_exists": true,
    "openapi": null,
    "readme": null
  },
  "auth": {
    "depends_on_topolo_auth": true,
    "api_key_scopes": [
      {
        "id": "aks_topolo_developers_apps_read",
        "name": "apps.read",
        "description": "View workspace-owned developer apps",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_apps_write",
        "name": "apps.write",
        "description": "Create and update workspace-owned developer apps",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_commerce_read",
        "name": "commerce.read",
        "description": "View internal developer commerce controls",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_commerce_write",
        "name": "commerce.write",
        "description": "Manage developer workspace commerce, marketplace, pricing, payout-account, and payout-ledger state",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_credentials_read",
        "name": "credentials.read",
        "description": "View Auth-backed API keys and service access",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_credentials_write",
        "name": "credentials.write",
        "description": "Create and revoke Auth-backed API keys and service access",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_marketplace_read",
        "name": "marketplace.read",
        "description": "View internal marketplace operations and launch-readiness controls",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_marketplace_write",
        "name": "marketplace.write",
        "description": "Manage internal marketplace operations, launch-readiness status, and featured catalogue placement",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_requests_read",
        "name": "requests.read",
        "description": "View developer build requests created by the current workspace",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_requests_write",
        "name": "requests.write",
        "description": "Create and manage developer build requests for the current workspace",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_review_read",
        "name": "review.read",
        "description": "View internal app-submission and build-request review queues",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_review_write",
        "name": "review.write",
        "description": "Review app submissions and build requests from the internal staff queue",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_settings_read",
        "name": "settings.read",
        "description": "View developer workspace settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_settings_write",
        "name": "settings.write",
        "description": "Manage developer workspace settings",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_submissions_read",
        "name": "submissions.read",
        "description": "View public catalogue submission state and review notes",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_submissions_write",
        "name": "submissions.write",
        "description": "Create and resubmit public catalogue submissions",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_workspace_read",
        "name": "workspace.read",
        "description": "View developer workspace summary and onboarding state",
        "resourcePattern": null,
        "kind": "api_key_scope"
      },
      {
        "id": "aks_topolo_developers_workspace_write",
        "name": "workspace.write",
        "description": "Manage developer workspace onboarding and profile state",
        "resourcePattern": null,
        "kind": "api_key_scope"
      }
    ],
    "service_permissions": [
      {
        "id": "perm_topolo_developers_apps_read",
        "name": "apps:read",
        "description": "View workspace-owned developer apps",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_apps_write",
        "name": "apps:write",
        "description": "Create and update workspace-owned developer apps",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_commerce_read",
        "name": "commerce:read",
        "description": "View internal developer commerce controls",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_commerce_write",
        "name": "commerce:write",
        "description": "Manage developer workspace commerce, marketplace, pricing, payout-account, and payout-ledger state",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_credentials_read",
        "name": "credentials:read",
        "description": "View Auth-backed API keys and service access",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_credentials_write",
        "name": "credentials:write",
        "description": "Create and revoke Auth-backed API keys and service access",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_marketplace_read",
        "name": "marketplace:read",
        "description": "View internal marketplace operations and launch-readiness controls",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_marketplace_write",
        "name": "marketplace:write",
        "description": "Manage internal marketplace operations, launch-readiness status, and featured catalogue placement",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_requests_read",
        "name": "requests:read",
        "description": "View developer build requests created by the current workspace",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_requests_write",
        "name": "requests:write",
        "description": "Create and manage developer build requests for the current workspace",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_review_read",
        "name": "review:read",
        "description": "View internal app-submission and build-request review queues",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_review_write",
        "name": "review:write",
        "description": "Review app submissions and build requests from the internal staff queue",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_settings_read",
        "name": "settings:read",
        "description": "View developer workspace settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_settings_write",
        "name": "settings:write",
        "description": "Manage developer workspace settings",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_submissions_read",
        "name": "submissions:read",
        "description": "View public catalogue submission state and review notes",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_submissions_write",
        "name": "submissions:write",
        "description": "Create and resubmit public catalogue submissions",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_workspace_read",
        "name": "workspace:read",
        "description": "View developer workspace summary and onboarding state",
        "resourcePattern": null,
        "kind": "permission"
      },
      {
        "id": "perm_topolo_developers_workspace_write",
        "name": "workspace:write",
        "description": "Manage developer workspace onboarding and profile state",
        "resourcePattern": null,
        "kind": "permission"
      }
    ]
  },
  "runtime": {
    "primary_hosts": [
      "https://developers.topolo.app",
      "https://staging.topolo-developers-staging.pages.dev"
    ],
    "repo_entries": [
      "PlatformApplications/TopoloDevelopers/functions/",
      "PlatformApplications/TopoloDevelopers/index.html",
      "PlatformApplications/TopoloDevelopers/migrations/",
      "PlatformApplications/TopoloDevelopers/package-lock.json",
      "PlatformApplications/TopoloDevelopers/package.json",
      "PlatformApplications/TopoloDevelopers/postcss.config.cjs",
      "PlatformApplications/TopoloDevelopers/public/",
      "PlatformApplications/TopoloDevelopers/scripts/",
      "PlatformApplications/TopoloDevelopers/src/",
      "PlatformApplications/TopoloDevelopers/tailwind.config.js",
      "PlatformApplications/TopoloDevelopers/test/",
      "PlatformApplications/TopoloDevelopers/topolo.cloudcontrol.json",
      "PlatformApplications/TopoloDevelopers/tsconfig.json",
      "PlatformApplications/TopoloDevelopers/tsconfig.node.json",
      "PlatformApplications/TopoloDevelopers/vite.config.ts",
      "PlatformApplications/TopoloDevelopers/workers/",
      "PlatformApplications/TopoloDevelopers/wrangler.toml"
    ],
    "wrangler_surfaces": [
      {
        "path": "PlatformApplications/TopoloDevelopers/workers/catalog-cron/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [],
        "routes": [],
        "vars": [
          "CATALOG_EMBEDDINGS_URL"
        ],
        "bindings": [],
        "cronTriggers": [
          "*/5 * * * *"
        ],
        "workerName": "topolo-catalog-cron",
        "main": "src/index.ts",
        "compatibilityDate": "2026-04-10"
      },
      {
        "path": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "observabilityEnabled": true,
        "environments": [
          "preview"
        ],
        "routes": [],
        "vars": [
          "AUTH_API_URL",
          "P2P_API_URL"
        ],
        "bindings": [
          {
            "kind": "d1",
            "binding": "DEVELOPERS_DB",
            "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
            "target": "ab11dc42-6af0-4026-83ec-def345ca7bd3"
          },
          {
            "kind": "r2",
            "binding": "MOBILE_ARTIFACTS",
            "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
            "target": "topolo-apks"
          },
          {
            "kind": "vectorize",
            "binding": "VECTORIZE",
            "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
            "target": "topolo-apps"
          },
          {
            "kind": "d1",
            "binding": "DEVELOPERS_DB",
            "environment": "preview",
            "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
            "target": "c37c0a93-2bfb-44d9-82b3-9176e5225f70"
          },
          {
            "kind": "vectorize",
            "binding": "VECTORIZE",
            "environment": "preview",
            "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
            "target": "topolo-apps-staging"
          }
        ],
        "cronTriggers": [],
        "workerName": "topolo-developers",
        "compatibilityDate": "2026-04-10"
      }
    ],
    "packages": [
      {
        "path": "PlatformApplications/TopoloDevelopers/package.json",
        "name": "topolo-developers",
        "description": "Authenticated developer portal for the Topolo ecosystem",
        "scripts": [
          "dev",
          "build",
          "build:staging",
          "build:functions",
          "preview",
          "lint",
          "test",
          "check",
          "db:migrate",
          "db:migrate:remote",
          "db:migrate:staging",
          "deploy:staging",
          "clean"
        ],
        "scriptCommands": [
          {
            "name": "dev",
            "command": "vite"
          },
          {
            "name": "build",
            "command": "tsc && vite build --mode production"
          },
          {
            "name": "build:staging",
            "command": "env VITE_PORTAL_URL=https://developers.stg.topolo.us VITE_AUTH_URL=https://auth.stg.topolo.us VITE_TOPOLO_AUTH_URL=https://auth.stg.topolo.us sh -c 'tsc && vite build --mode production'"
          },
          {
            "name": "build:functions",
            "command": "wrangler pages functions build functions --project-directory . --outdir .wrangler/functions-build"
          },
          {
            "name": "preview",
            "command": "vite preview"
          },
          {
            "name": "lint",
            "command": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0"
          },
          {
            "name": "test",
            "command": "node --test"
          },
          {
            "name": "check",
            "command": "npm run lint && npm run build && npm run build:functions && npm run test"
          },
          {
            "name": "db:migrate",
            "command": "wrangler d1 migrations apply DEVELOPERS_DB"
          },
          {
            "name": "db:migrate:remote",
            "command": "wrangler d1 migrations apply DEVELOPERS_DB --remote"
          },
          {
            "name": "db:migrate:staging",
            "command": "CLOUDFLARE_ACCOUNT_ID=4f4e1c69a3830946f9fea7b1eb7531ac wrangler d1 migrations apply DEVELOPERS_DB --remote --env preview"
          },
          {
            "name": "deploy:staging",
            "command": "rm -f node_modules/.cache/wrangler/pages.json node_modules/.cache/wrangler/wrangler-account.json && rm -rf dist && npm run build:staging && CLOUDFLARE_ACCOUNT_ID=4f4e1c69a3830946f9fea7b1eb7531ac wrangler pages deploy dist --project-name topolo-developers-staging --branch staging --commit-dirty=true"
          },
          {
            "name": "clean",
            "command": "rm -rf dist"
          }
        ]
      },
      {
        "path": "PlatformApplications/TopoloDevelopers/workers/catalog-cron/package.json",
        "name": "topolo-catalog-cron",
        "scripts": [
          "deploy",
          "tail"
        ],
        "scriptCommands": [
          {
            "name": "deploy",
            "command": "wrangler deploy"
          },
          {
            "name": "tail",
            "command": "wrangler tail"
          }
        ]
      }
    ]
  },
  "data": {
    "env_vars": [
      "AUTH_API_URL",
      "CATALOG_EMBEDDINGS_URL",
      "P2P_API_URL"
    ],
    "bindings": [
      {
        "kind": "d1",
        "binding": "DEVELOPERS_DB",
        "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "target": "ab11dc42-6af0-4026-83ec-def345ca7bd3"
      },
      {
        "kind": "r2",
        "binding": "MOBILE_ARTIFACTS",
        "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "target": "topolo-apks"
      },
      {
        "kind": "vectorize",
        "binding": "VECTORIZE",
        "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "target": "topolo-apps"
      },
      {
        "kind": "d1",
        "binding": "DEVELOPERS_DB",
        "environment": "preview",
        "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "target": "c37c0a93-2bfb-44d9-82b3-9176e5225f70"
      },
      {
        "kind": "vectorize",
        "binding": "VECTORIZE",
        "environment": "preview",
        "sourcePath": "PlatformApplications/TopoloDevelopers/wrangler.toml",
        "target": "topolo-apps-staging"
      }
    ],
    "queue_bindings": [],
    "storage_kinds": [
      "d1",
      "r2",
      "vectorize"
    ],
    "workflow_signals": [
      "cron */5 * * * *"
    ]
  },
  "deployment": {
    "commands": [
      {
        "name": "build",
        "command": "PlatformApplications/TopoloDevelopers/package.json :: tsc && vite build --mode production"
      },
      {
        "name": "build:staging",
        "command": "PlatformApplications/TopoloDevelopers/package.json :: env VITE_PORTAL_URL=https://developers.stg.topolo.us VITE_AUTH_URL=https://auth.stg.topolo.us VITE_TOPOLO_AUTH_URL=https://auth.stg.topolo.us sh -c 'tsc && vite build --mode production'"
      },
      {
        "name": "build:functions",
        "command": "PlatformApplications/TopoloDevelopers/package.json :: wrangler pages functions build functions --project-directory . --outdir .wrangler/functions-build"
      },
      {
        "name": "preview",
        "command": "PlatformApplications/TopoloDevelopers/package.json :: vite preview"
      },
      {
        "name": "deploy:staging",
        "command": "PlatformApplications/TopoloDevelopers/package.json :: rm -f node_modules/.cache/wrangler/pages.json node_modules/.cache/wrangler/wrangler-account.json && rm -rf dist && npm run build:staging && CLOUDFLARE_ACCOUNT_ID=4f4e1c69a3830946f9fea7b1eb7531ac wrangler pages deploy dist --project-name topolo-developers-staging --branch staging --commit-dirty=true"
      },
      {
        "name": "deploy",
        "command": "PlatformApplications/TopoloDevelopers/workers/catalog-cron/package.json :: wrangler deploy"
      }
    ],
    "routes": [],
    "environments": [
      "preview"
    ],
    "assets_directories": [],
    "observability_enabled": true
  },
  "debugging": {
    "failure_modes": [
      "Neither OpenAPI nor README-derived interface detail was found."
    ],
    "entrypoints": [
      "PlatformApplications/TopoloDevelopers/workers/catalog-cron/wrangler.toml",
      "PlatformApplications/TopoloDevelopers/wrangler.toml",
      "PlatformApplications/TopoloDevelopers/src/App.tsx",
      "PlatformApplications/TopoloDevelopers/package.json",
      "PlatformApplications/TopoloDevelopers/workers/catalog-cron/package.json"
    ]
  }
}