{
  "repo": "tidbcloud/ffs",
  "binary": "universe-server",
  "binary_path": "cmd/universe-server/main.go",
  "dependencies": {
    "UniverseLifecycle.RegisterLease": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.Lease.Grant / clientv3.KV.Put",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Universe server startup"],
          "operations": [
            {
              "operation": "GRANT",
              "trigger": "Create lease for universe service registration",
              "conditions": ["Universe server startup"],
              "implementation": "universe/server.go:129"
            },
            {
              "operation": "PUT",
              "trigger": "Register universe service address in etcd under the granted lease",
              "conditions": ["Universe server startup"],
              "implementation": "universe/server.go:135"
            }
          ]
        }
      ]
    },
    "UniverseLifecycle.KeepAliveLease": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.Lease.KeepAliveOnce",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Periodic background loop"],
          "operations": [
            {
              "operation": "KEEPALIVE",
              "trigger": "Refresh universe service lease",
              "conditions": ["Periodic background loop"],
              "implementation": "universe/server.go:143"
            }
          ]
        }
      ]
    },
    "UniverseLifecycle.WatchZoneMetadata": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Bootstrap phase"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Load existing zone metadata before starting watchers",
              "conditions": ["Bootstrap phase"],
              "implementation": "universe/server.go:167"
            }
          ]
        },
        {
          "name": "etcd",
          "target_interface": "clientv3.Watcher.Watch",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Background watcher loop"],
          "operations": [
            {
              "operation": "WATCH",
              "trigger": "Watch zone endpoint changes in etcd",
              "conditions": ["Background watcher loop"],
              "implementation": "universe/server.go:180"
            }
          ]
        }
      ]
    },
    "UniverseLifecycle.WatchTenantMetadata": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Bootstrap phase"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Load existing tenant metadata before starting watchers",
              "conditions": ["Bootstrap phase"],
              "implementation": "universe/server.go:479"
            }
          ]
        },
        {
          "name": "etcd",
          "target_interface": "clientv3.Watcher.Watch",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Background watcher loop"],
          "operations": [
            {
              "operation": "WATCH",
              "trigger": "Watch tenant metadata changes in etcd",
              "conditions": ["Background watcher loop"],
              "implementation": "universe/server.go:489"
            }
          ]
        }
      ]
    },
    "UniverseService.GetZone": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Get zone by name from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.DeleteZone": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Delete",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "DELETE",
              "trigger": "Delete zone from etcd",
              "conditions": ["Zone exists"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.GetAllZones": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "List all zones from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.GlobZones": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Glob zones by pattern from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.WatchZones": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.Watcher.Watch",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "WATCH",
              "trigger": "Watch zone changes from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.ZoneHeartbeat": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Put",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "PUT",
              "trigger": "Update zone heartbeat in etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.CreateTenant": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Put",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "PUT",
              "trigger": "Create tenant in etcd",
              "conditions": ["Tenant not exists"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.GetTenant": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Get tenant by name from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.DeleteTenant": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Delete",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "DELETE",
              "trigger": "Delete tenant from etcd",
              "conditions": ["Tenant exists"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.GetAllTenants": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "List all tenants from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.GlobTenants": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.KV.Get",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "GET",
              "trigger": "Glob tenants by pattern from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    },
    "UniverseService.WatchTenants": {
      "infrastructure": {},
      "services": [
        {
          "name": "etcd",
          "target_interface": "clientv3.Watcher.Watch",
          "operation_type": "etcd",
          "target_repo": "etcd-io/etcd",
          "conditions": ["Always"],
          "operations": [
            {
              "operation": "WATCH",
              "trigger": "Watch tenant changes from etcd",
              "conditions": ["Always"],
              "implementation": "universe/server.go"
            }
          ]
        }
      ]
    }
  }
}
