{
  "openapi": "3.0.3",
  "info": {
    "title": "绮梦数据分析平台 Public and Customer API",
    "version": "1.0.0",
    "description": "Generated from executable Controller source; environment base URLs are supplied at deployment."
  },
  "servers": [
    {
      "url": "/",
      "description": "Use the deployment API_BASE_URL / ADMIN_BASE_URL"
    }
  ],
  "paths": {
    "/api/auth/email/password/login": {
      "post": {
        "operationId": "auth_service_AuthController_emailPasswordLogin_post",
        "summary": "AuthController.emailPasswordLogin",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "AuthController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/AuthController.java:23",
        "x-request-dto": "AuthDtos.EmailPasswordLoginRequest",
        "x-response-dto": "AuthDtos.LoginResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/api/auth/public/brand": {
      "get": {
        "operationId": "auth_service_SettingsController_publicBrand_get",
        "summary": "SettingsController.publicBrand",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "SettingsController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/SettingsController.java:19",
        "x-request-dto": "NONE",
        "x-response-dto": "PublicBranding",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/api/auth/public/i18n/{locale}": {
      "get": {
        "operationId": "auth_service_SettingsController_resources_get",
        "summary": "SettingsController.resources",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "SettingsController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/SettingsController.java:21",
        "x-request-dto": "NONE",
        "x-response-dto": "java.util.Map<String,String>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/api/auth/public/providers": {
      "get": {
        "operationId": "auth_service_SettingsController_publicProviders_get",
        "summary": "SettingsController.publicProviders",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "SettingsController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/SettingsController.java:20",
        "x-request-dto": "NONE",
        "x-response-dto": "List<LoginProvider>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/api/auth/refresh": {
      "post": {
        "operationId": "auth_service_AuthController_refresh_post",
        "summary": "AuthController.refresh",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "AuthController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/AuthController.java:28",
        "x-request-dto": "AuthDtos.RefreshTokenRequest",
        "x-response-dto": "AuthDtos.LoginResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/api/platform/webhook-logs": {
      "get": {
        "operationId": "analysis_service_OpenPlatformController_webhookLogs_get",
        "summary": "OpenPlatformController.webhookLogs",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:69",
        "x-request-dto": "NONE",
        "x-response-dto": "List<WebhookLogResponse>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      }
    },
    "/api/platform/webhook-logs/{id}/replay": {
      "post": {
        "operationId": "analysis_service_OpenPlatformController_replayWebhook_post",
        "summary": "OpenPlatformController.replayWebhook",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:75",
        "x-request-dto": "NONE",
        "x-response-dto": "WebhookLogResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      }
    },
    "/api/platform/webhooks": {
      "get": {
        "operationId": "analysis_service_OpenPlatformController_webhooks_get",
        "summary": "OpenPlatformController.webhooks",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:49",
        "x-request-dto": "NONE",
        "x-response-dto": "List<WebhookResponse>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      },
      "post": {
        "operationId": "analysis_service_OpenPlatformController_createWebhook_post",
        "summary": "OpenPlatformController.createWebhook",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:46",
        "x-request-dto": "WebhookRequest",
        "x-response-dto": "WebhookResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      }
    },
    "/api/platform/webhooks/{id}": {
      "delete": {
        "operationId": "analysis_service_OpenPlatformController_deleteWebhook_delete",
        "summary": "OpenPlatformController.deleteWebhook",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:55",
        "x-request-dto": "NONE",
        "x-response-dto": "void",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      }
    },
    "/api/platform/webhooks/{id}/test": {
      "post": {
        "operationId": "analysis_service_OpenPlatformController_testWebhook_post",
        "summary": "OpenPlatformController.testWebhook",
        "tags": [
          "analysis-service"
        ],
        "x-category": "WEBHOOK",
        "x-service": "analysis-service",
        "x-controller": "OpenPlatformController",
        "x-source": "backend/analysis-service/src/main/java/com/analytics/platform/analysis/platform/controller/OpenPlatformController.java:62",
        "x-request-dto": "NONE",
        "x-response-dto": "WebhookLogResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "webhookSignature": []
          }
        ]
      }
    },
    "/api/public/branding": {
      "get": {
        "operationId": "auth_service_PublicBrandingController_branding_get",
        "summary": "PublicBrandingController.branding",
        "tags": [
          "auth-service"
        ],
        "x-category": "PUBLIC",
        "x-service": "auth-service",
        "x-controller": "PublicBrandingController",
        "x-source": "backend/auth-service/src/main/java/com/analytics/platform/auth/controller/PublicBrandingController.java:17",
        "x-request-dto": "NONE",
        "x-response-dto": "PublicBranding",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        }
      }
    },
    "/collect/v1/aha-pdftool": {
      "post": {
        "operationId": "gateway_CollectController_ahaPdfTool_post",
        "summary": "CollectController.ahaPdfTool",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:59",
        "x-request-dto": "JsonNode",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/aha-pdftool/batch": {
      "post": {
        "operationId": "gateway_CollectController_ahaPdfTool_post",
        "summary": "CollectController.ahaPdfTool",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:59",
        "x-request-dto": "JsonNode",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/batch": {
      "post": {
        "operationId": "gateway_CollectController_batch_post",
        "summary": "CollectController.batch",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:54",
        "x-request-dto": "BatchCollectRequest",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/identify": {
      "post": {
        "operationId": "gateway_CollectController_identify_post",
        "summary": "CollectController.identify",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:39",
        "x-request-dto": "CollectorEvent",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/profile/increment": {
      "post": {
        "operationId": "gateway_CollectController_profileIncrement_post",
        "summary": "CollectController.profileIncrement",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:49",
        "x-request-dto": "CollectorEvent",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/profile/set": {
      "post": {
        "operationId": "gateway_CollectController_profileSet_post",
        "summary": "CollectController.profileSet",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:44",
        "x-request-dto": "CollectorEvent",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v1/track": {
      "post": {
        "operationId": "gateway_CollectController_track_post",
        "summary": "CollectController.track",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectController.java:34",
        "x-request-dto": "CollectorEvent",
        "x-response-dto": "CompletableFuture<ResponseEntity<CollectResponse>>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v2/cloak": {
      "get": {
        "operationId": "gateway_CollectV2CloakController_get_get",
        "summary": "CollectV2CloakController.get",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectV2CloakController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectV2CloakController.java:31",
        "x-request-dto": "NONE",
        "x-response-dto": "ResponseEntity<String>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      },
      "post": {
        "operationId": "gateway_CollectV2CloakController_post_post",
        "summary": "CollectV2CloakController.post",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectV2CloakController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectV2CloakController.java:26",
        "x-request-dto": "CompanyCloakRequest",
        "x-response-dto": "ResponseEntity<String>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v2/context": {
      "get": {
        "operationId": "gateway_CollectV2ContextController_context_get",
        "summary": "CollectV2ContextController.context",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectV2ContextController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectV2ContextController.java:42",
        "x-request-dto": "NONE",
        "x-response-dto": "ContextResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      },
      "post": {
        "operationId": "gateway_CollectV2ContextController_contextWithCompatibilityCheck_post",
        "summary": "CollectV2ContextController.contextWithCompatibilityCheck",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectV2ContextController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectV2ContextController.java:47",
        "x-request-dto": "Map<String,",
        "x-response-dto": "ContextResponse",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    },
    "/collect/v2/track": {
      "post": {
        "operationId": "gateway_CollectV2ContextController_track_post",
        "summary": "CollectV2ContextController.track",
        "tags": [
          "gateway"
        ],
        "x-category": "CUSTOMER",
        "x-service": "gateway",
        "x-controller": "CollectV2ContextController",
        "x-source": "backend/gateway/src/main/java/com/analytics/platform/gateway/controller/CollectV2ContextController.java:60",
        "x-request-dto": "NONE",
        "x-response-dto": "ResponseEntity<TrackV2Receipt>",
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "description": "Validation error"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Permission denied"
          },
          "500": {
            "description": "Internal error"
          }
        },
        "security": [
          {
            "sdkKey": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "sdkKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-SDK-Key"
      },
      "webhookSignature": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Signature-Sha256"
      }
    },
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "messageKey": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "traceId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}