{
  "repo": "tidbcloud/infra-provider",
  "binary": "audit",
  "binary_path": "infra-api/cmd/audit/main.go",
  "dependencies": {
    "AuditCLI.Precheck": {
      "infrastructure": {
        "object_storage": {
          "conditions": [
            "Always when running the precheck command"
          ],
          "operations": [
            {
              "operation": "WRITE",
              "trigger": "Validate remote object storage permissions by pushing an empty probe file",
              "conditions": [
                "Always"
              ],
              "implementation": "PushEmptyProbeFile"
            }
          ]
        }
      },
      "services": []
    },
    "AuditCLI.Server": {
      "infrastructure": {
        "filesystem": {
          "conditions": [
            "Always while the audit worker is running"
          ],
          "operations": [
            {
              "operation": "WATCH/LIST/ROTATE/DELETE",
              "trigger": "Watch config changes and manage local rotated audit logs",
              "conditions": [
                "Always"
              ],
              "implementation": "WatchConfig, ListRotatedLogs, RotateIfNeeded, CleanOldLogs"
            }
          ]
        },
        "object_storage": {
          "conditions": [
            "Always while the audit worker is running"
          ],
          "operations": [
            {
              "operation": "WRITE",
              "trigger": "Upload rotated audit logs to the configured bucket",
              "conditions": [
                "Always"
              ],
              "implementation": "PushRotatedLogFiles"
            }
          ]
        }
      },
      "services": []
    },
    "MetricsAPI.Metrics": {
      "infrastructure": {},
      "services": []
    }
  }
}
