{
  "repo": "pingcap/br",
  "binary": "tidb-lightning",
  "binary_path": "cmd/tidb-lightning/main.go",
  "dependencies": {
    "CLI tidb-lightning": {
      "infrastructure": {
        "filesystem": {
          "conditions": [
            "Always at startup"
          ],
          "operations": [
            {
              "operation": "READ FILE",
              "trigger": "Load global config and optional log file paths",
              "conditions": [
                "Process starts"
              ],
              "implementation": "config.LoadGlobalConfig(os.Args[1:], nil)"
            }
          ]
        }
      },
      "services": []
    },
    "Runtime TiDBLightningServer.run": {
      "infrastructure": {
        "tcp": {
          "conditions": [
            "Only when server-mode is enabled and status-addr is configured"
          ],
          "operations": [
            {
              "operation": "LISTEN",
              "trigger": "Serve the Lightning HTTP status/control surface",
              "conditions": [
                "globalCfg.App.ServerMode"
              ],
              "implementation": "app.GoServe(); app.RunServer()"
            }
          ]
        }
      },
      "services": []
    },
    "Runtime TiDBLightningOnce.run": {
      "infrastructure": {
        "mysql": {
          "conditions": [
            "When running one-shot import mode"
          ],
          "operations": [
            {
              "operation": "IMPORT DATA",
              "trigger": "Execute a one-shot Lightning import run",
              "conditions": [
                "globalCfg.App.ServerMode == false"
              ],
              "implementation": "app.RunOnce(context.Background(), cfg, nil)"
            }
          ]
        }
      },
      "services": []
    },
    "Runtime TiDBLightningStatusServer.serve": {
      "infrastructure": {},
      "services": []
    }
  }
}
