{
  "repo": "tidbcloud/infra-provider",
  "binary": "server",
  "binary_path": "config-manager/cmd/server/main.go",
  "dependencies": {
    "MetricsService.metrics": {
      "infrastructure": {},
      "services": []
    },
    "ProbeService.healthz": {
      "infrastructure": {},
      "services": []
    },
    "ProbeService.readyz": {
      "infrastructure": {},
      "services": []
    },
    "SecondaryConfirmAPI.SecondaryConfirmRoutes": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "Read cluster-related CRs",
              "trigger": "Serve secondary confirmation workflow APIs",
              "implementation": "secondaryconfirm.NewAPI(mgr.GetClient(), clusterNSPrefix)"
            }
          ]
        }
      },
      "services": []
    },
    "WebhookService.ClusterRevisionMutator": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "config.Global().Server.IsGloballyDeployed()"
          ],
          "operations": [
            {
              "operation": "Admission webhook registration",
              "trigger": "Mutate cluster revision resources",
              "implementation": "mgr.GetWebhookServer().Register(...)"
            }
          ]
        }
      },
      "services": []
    },
    "ClusterConfigControllers.ReconcileClusterConfig": {
      "infrastructure": {
        "kubernetes": {
          "conditions": [
            "config.Global().Server.IsGloballyDeployed()"
          ],
          "operations": [
            {
              "operation": "Controller-runtime watch/reconcile",
              "trigger": "Sync cluster configuration revisions and GC old revisions",
              "implementation": "clusterconfig.NewClusterConfigReconciler(...).SetupWithManager(mgr)"
            }
          ]
        }
      },
      "services": [
        {
          "name": "GitHub",
          "target_interface": "GitHub App installation API",
          "operation_type": "http_client",
          "conditions": [
            "Globally deployed"
          ],
          "operations": [
            {
              "operation": "GitHub API calls",
              "trigger": "Manage config revisions through GitHub app credentials",
              "implementation": "ghinstallation.NewKeyFromFile(...) and github.NewClient(...)"
            }
          ]
        },
        {
          "name": "clinic",
          "target_interface": "Activity Hub / Clinic endpoints",
          "operation_type": "http_client",
          "conditions": [
            "config.Global().Server.Activity.Enabled"
          ],
          "operations": [
            {
              "operation": "Clinic event publishing",
              "trigger": "Emit config activity events",
              "implementation": "clinic_event.InitEventClient(...)"
            }
          ]
        }
      ]
    }
  }
}
