{
  "schemaVersion": 3,
  "kind": "tennis-hq-agent-auth",
  "path": "/registry/tennis/agent-auth.json",
  "generatedAt": "2026-08-05T02:48:46.377Z",
  "tenantId": "tennis",
  "consumer": "tennis-hq-cloud-agent",
  "label": "Tennis HQ · FactoryWager registry auth",
  "purpose": "Cloud agent remote sandbox: install scoped packages and publish to FactoryWager registry",
  "status": "configured",
  "configured": true,
  "registryUrl": "https://registry.factory-wager.com/",
  "envKey": "FACTORY_WAGER_TOKEN",
  "envAliases": [
    "FW_REGISTRY_TOKEN",
    "REGISTRY_SECRET"
  ],
  "vaultRef": "pass://factorywager/FactoryWager Registry Token/password",
  "vaultItem": "FactoryWager Registry Token",
  "vault": "factorywager",
  "tokenKind": "shared-bearer",
  "secretInRepo": false,
  "handoff": {
    "operatorEnvFile": "~/.reasonix/tennis-hq-registry-token.env",
    "inject": "export FACTORY_WAGER_TOKEN from vault or operator handoff; never commit",
    "npmrcLine": "//registry.factory-wager.com/:_authToken=${FACTORY_WAGER_TOKEN}",
    "bunfigScopes": [
      "@factorywager",
      "@factory-wager",
      "@factory"
    ]
  },
  "planes": {
    "read": "Public Pages/R2 mirror — GET/HEAD without token",
    "write": "Bearer FACTORY_WAGER_TOKEN — local serve-public or private publish path (Pages rejects writes)"
  },
  "producerRuntime": {
    "url": "https://tennis.factory-wager.com",
    "worker": "tennis-hq",
    "platform": "cloudflare-workers",
    "ownership": "factorywager-operator",
    "versionPath": "/api/version",
    "contractBasePath": "/api/v1",
    "contractAuth": {
      "mode": "bearer-fail-closed",
      "producerEnvKey": "PARTNER_API_TOKEN",
      "registryTokenAccepted": false,
      "unauthenticatedStatuses": [
        401,
        503
      ]
    },
    "releaseVerification": "bun run cloudflare:deploy:verify"
  },
  "docs": [
    "docs/harness/tenants/tennis-hq-registry.md",
    "docs/registry-client.md",
    "docs/guides/REGISTRY_PRODUCTION_READINESS.md"
  ],
  "portal": {
    "board": "/portal/tennis/",
    "md": "/portal/tennis.md",
    "registry": "/registry/tennis/registry.json",
    "vaultMap": "/registry/vault-map.json",
    "envBoard": "/portal/env/"
  }
}
