PPanel Edge

public

由 openapi.json 自动生成的 4 个端点及其请求、响应和权限元数据。

此参考由已发布 API 契约生成。字段、请求头和权限要求如下。

下载完整 OpenAPI 文档 · SHA-256: ccaa20cec11fad96e369b88073ce3608a5b071ce55d6dc03fa31df7b0f08c525

标识符和数据结构与公开契约一致,说明直接给出调用规则。共享模型见 数据模型.

POST /api/v1/public/captcha/cap/challenge

POST /api/v1/public/captcha/cap/challenge

Cap proof-of-work challenge (cap-widget challenge)

{
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CapChallenge"
          }
        }
      },
      "description": "Challenge"
    }
  },
  "summary": "Cap proof-of-work challenge (cap-widget `challenge`)",
  "tags": [
    "public"
  ],
  "x-body": "json",
  "x-body-limit": 1024,
  "x-idempotency": "none",
  "x-rate-limit": "auth.captcha.issue.ip",
  "effectiveSecurity": []
}

POST /api/v1/public/captcha/cap/redeem

POST /api/v1/public/captcha/cap/redeem

Redeem Cap solutions for a one-time pass token (cap-widget redeem)

{
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CapRedeemRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CapPass"
          }
        }
      },
      "description": "Pass token"
    }
  },
  "summary": "Redeem Cap solutions for a one-time pass token (cap-widget `redeem`)",
  "tags": [
    "public"
  ],
  "x-body": "json",
  "x-body-limit": 16384,
  "x-idempotency": "none",
  "x-rate-limit": "auth.captcha.redeem.ip",
  "effectiveSecurity": []
}

GET /api/v1/public/captcha/image

GET /api/v1/public/captcha/image

Image captcha (SVG) for a scene that uses it; one-time, 5 minutes, 3 attempts

{
  "parameters": [
    {
      "in": "query",
      "name": "scene",
      "required": true,
      "schema": {
        "enum": [
          "register",
          "login_after_failures",
          "password_reset",
          "send_code",
          "checkout"
        ],
        "example": "register",
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "image/svg+xml": {
          "schema": {
            "type": "string"
          }
        }
      },
      "description": "The captcha; answer it with the protected request (X-Captcha-Response + Captcha-Id)",
      "headers": {
        "Captcha-Id": {
          "description": "Captcha id to send back in Captcha-Id",
          "schema": {
            "type": "string"
          }
        }
      }
    }
  },
  "summary": "Image captcha (SVG) for a scene that uses it; one-time, 5 minutes, 3 attempts",
  "tags": [
    "public"
  ],
  "x-body": "none",
  "x-body-limit": 0,
  "x-rate-limit": "auth.captcha.issue.ip",
  "effectiveSecurity": []
}

GET /api/v1/public/invitations/{id}

GET /api/v1/public/invitations/{id}

Invitation details for the invitee (masked)

{
  "parameters": [
    {
      "in": "path",
      "name": "id",
      "required": true,
      "schema": {
        "maxLength": 64,
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PublicInvitation"
          }
        }
      },
      "description": "Invitation"
    }
  },
  "summary": "Invitation details for the invitee (masked)",
  "tags": [
    "public"
  ],
  "x-body": "none",
  "x-body-limit": 0,
  "x-rate-limit": "iam.invitation.view",
  "effectiveSecurity": []
}