接口详情
GET /v1/edge-scripts
列出边缘脚本
- operationId
listEdgeScripts- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. Tenant identities only. enabled is true when module.edge_script is granted and a valid package has limits.edge_script; when false the console hides the menu and the script rule action (existing scripts stay readable).
响应
listEdgeScripts 响应| 状态码 | 说明 |
|---|
200 | Scripts by name. 字段:items: array<EdgeScript> enabled: boolean |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
503 | Edge scripts or their entitlement are unavailable (edge_scripts_unavailable). |
|---|
失败时怎么办
401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表
POST /v1/edge-scripts
创建边缘脚本
- operationId
createEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.manage; tenant only; module.edge_script and limits.edge_script (403 entitlement_feature_denied / package_feature_denied). Creates the script with a draft that is not published. At most 50 live scripts per tenant (422 edge_script_limit); a name is unique per tenant (409 edge_script_name_conflict). Omitted settings take the defaults. Audit edge_script.create.
请求体
application/json · 必填:是
createEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
failure_mode | string: deny / allow | 否 | deny answers 503 on an error or limit hit, allow lets the request through and drops the script's intents. |
|---|
max_instructions | integer | 否 | — |
|---|
max_time_ms | integer | 否 | — |
|---|
max_memory_kb | integer | 否 | — |
|---|
name | string | 是 | — |
|---|
description | string | 否 | — |
|---|
source | string | 否 | — |
|---|
响应
createEdgeScript 响应| 状态码 | 说明 |
|---|
201 | Created. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer id: string(uuid) name: string description: string source: string current_version: integer latest_version: integer dirty: boolean reference_count: integer revision: integer updated_at: string(date-time) |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
409 | 请求的状态与已有资源或幂等记录冲突。 |
|---|
422 | The request is well formed but breaks a business rule (error.code names it). |
|---|
500 | 服务内部故障,请求未完成。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
↑ 回到列表
POST /v1/edge-scripts/check
检查边缘脚本
- operationId
checkEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. Parses the source and checks forbidden identifiers, string.dump, concatenation chains over 16 operands and the 32 KiB size; never runs it. Not stored, not audited. Each diagnostic carries a 1-based line (0: the whole source).
请求体
application/json · 必填:是
checkEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
source | string | 是 | — |
|---|
响应
checkEdgeScript 响应| 状态码 | 说明 |
|---|
200 | The check result. 字段:ok: boolean diagnostics: array<object> |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
500 | 服务内部故障,请求未完成。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
↑ 回到列表
POST /v1/edge-scripts/trial
试运行边缘脚本
- operationId
trialEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. Runs the source in a resource-limited child process of the control plane: a simulation, not the node's result (instruction counts are not reported, bit and country are simulated; the node's real result is in the security log). 500 ms wall clock; at most 4 trials at once; 30 trials per tenant per minute (429 edge_script_trial_rate_limited). A source that fails the check answers outcome fail, reason syntax. Not stored, not audited.
请求体
application/json · 必填:是
trialEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
source | string | 是 | — |
|---|
failure_mode | string: deny / allow | 否 | — |
|---|
request | object | 否 | — |
|---|
响应
trialEdgeScript 响应| 状态码 | 说明 |
|---|
200 | The trial result. 字段:outcome: string: continue / exit / fail reason?: string detail?: string status?: integer redirect?: string response_headers: array<EdgeScriptTrialHeader> request_headers: array<EdgeScriptTrialHeader> elapsed_ms: number failure_mode: string |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
429 | Too many trials (edge_script_trial_rate_limited). |
|---|
503 | Trials are not configured (edge_scripts_unavailable). |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。429 被限速:等待后再试,降低并发。503 依赖暂不可用:稍后用原 Idempotency-Key 重试。
↑ 回到列表
GET /v1/edge-scripts/{script_id}
查看边缘脚本
- operationId
getEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. The script with its draft; dirty is true when the draft differs from the current version.
参数
getEdgeScript 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
响应
getEdgeScript 响应| 状态码 | 说明 |
|---|
200 | The script. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer id: string(uuid) name: string description: string source: string current_version: integer latest_version: integer dirty: boolean reference_count: integer revision: integer updated_at: string(date-time) |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。
↑ 回到列表
PUT /v1/edge-scripts/{script_id}
保存边缘脚本草稿
- operationId
updateEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.manage, the current revision, module.edge_script and limits.edge_script. Replaces the name, description, settings and source of the draft (revision + 1); the nodes keep running the current version. Audit edge_script.update.
参数
updateEdgeScript 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
请求体
application/json · 必填:是
updateEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
failure_mode | string: deny / allow | 否 | deny answers 503 on an error or limit hit, allow lets the request through and drops the script's intents. |
|---|
max_instructions | integer | 否 | — |
|---|
max_time_ms | integer | 否 | — |
|---|
max_memory_kb | integer | 否 | — |
|---|
name | string | 是 | — |
|---|
description | string | 否 | — |
|---|
source | string | 否 | — |
|---|
expected_revision | integer | 是 | — |
|---|
响应
updateEdgeScript 响应| 状态码 | 说明 |
|---|
200 | Saved. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer id: string(uuid) name: string description: string source: string current_version: integer latest_version: integer dirty: boolean reference_count: integer revision: integer updated_at: string(date-time) |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
409 | 请求的状态与已有资源或幂等记录冲突。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
↑ 回到列表
DELETE /v1/edge-scripts/{script_id}
删除边缘脚本
- operationId
deleteEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.manage and the current revision (entitlement is not asked). A script a live policy runs is refused (409 edge_script_in_use). Audit edge_script.delete.
参数
deleteEdgeScript 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
expected_revision | query | integer | 是 | — |
|---|
响应
deleteEdgeScript 响应| 状态码 | 说明 |
|---|
204 | Deleted. |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
409 | 请求的状态与已有资源或幂等记录冲突。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
↑ 回到列表
POST /v1/edge-scripts/{script_id}/publish
发布边缘脚本
- operationId
publishEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.manage, the current revision, module.edge_script and limits.edge_script. Checks the draft (422 edge_script_check_failed with diagnostics and line numbers), stores it as an immutable version latest + 1, makes it current and republishes every tenant whose bound WAF policy runs the script (system trigger edge_script). The newest 100 versions are kept. Audit edge_script.publish.
参数
publishEdgeScript 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
请求体
application/json · 必填:是
publishEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
expected_revision | integer | 是 | — |
|---|
note | string | 否 | — |
|---|
响应
publishEdgeScript 响应| 状态码 | 说明 |
|---|
200 | Published. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer id: string(uuid) name: string description: string source: string current_version: integer latest_version: integer dirty: boolean reference_count: integer revision: integer updated_at: string(date-time) |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
409 | 请求的状态与已有资源或幂等记录冲突。 |
|---|
422 | The request is well formed but breaks a business rule (error.code names it). |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
↑ 回到列表
GET /v1/edge-scripts/{script_id}/references
列出边缘脚本引用
- operationId
listEdgeScriptReferences- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. The tenant's live WAF policies with a script rule naming it, by policy name; rule_count counts those rules.
参数
listEdgeScriptReferences 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
响应
listEdgeScriptReferences 响应| 状态码 | 说明 |
|---|
200 | References. 字段:items: array<object> |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。
↑ 回到列表
POST /v1/edge-scripts/{script_id}/rollback
回滚边缘脚本
- operationId
rollbackEdgeScript- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.manage, the current revision, module.edge_script and limits.edge_script. Makes an existing version current again (404 edge_script_version_not_found); the draft stays. Republishes every tenant running the script (system trigger edge_script). Audit edge_script.rollback.
参数
rollbackEdgeScript 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
请求体
application/json · 必填:是
rollbackEdgeScript 请求体| 名称 | 类型 | 必填 | 说明 |
|---|
expected_revision | integer | 是 | — |
|---|
version | integer | 是 | — |
|---|
响应
rollbackEdgeScript 响应| 状态码 | 说明 |
|---|
200 | Rolled back. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer id: string(uuid) name: string description: string source: string current_version: integer latest_version: integer dirty: boolean reference_count: integer revision: integer updated_at: string(date-time) |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
409 | 请求的状态与已有资源或幂等记录冲突。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。409 先回读资源当前状态;同一操作重试保持原 Idempotency-Key 和原请求内容。
↑ 回到列表
GET /v1/edge-scripts/{script_id}/versions
列出边缘脚本版本
- operationId
listEdgeScriptVersions- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. The kept versions, newest first, without sources.
参数
listEdgeScriptVersions 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
响应
listEdgeScriptVersions 响应| 状态码 | 说明 |
|---|
200 | Versions. 字段:items: array<EdgeScriptVersion> |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。
↑ 回到列表
GET /v1/edge-scripts/{script_id}/versions/{version}
查看边缘脚本版本
- operationId
getEdgeScriptVersion- 认证
- API Key:请求头 Authorization: CdncaKey <key_id>.<secret>。有效权限是 Key 的范围与所有者当前权限的交集。
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
契约没有单独标注权限码,权限要求见下方说明与 403 响应。
说明(契约原文)
Requires security_policies.read. The version with its source (the console loads it into the draft).
参数
getEdgeScriptVersion 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
script_id | path | string(uuid) | 是 | — |
|---|
version | path | integer | 是 | — |
|---|
响应
getEdgeScriptVersion 响应| 状态码 | 说明 |
|---|
200 | The version. 字段:failure_mode?: string: deny / allow max_instructions?: integer max_time_ms?: integer max_memory_kb?: integer version: integer sha256: string note: string current: boolean published_at: string(date-time) source?: string |
|---|
400 | 请求体或参数不合法。 |
|---|
401 | 认证失败或会话已失效。 |
|---|
403 | 当前身份没有执行该操作的权限。 |
|---|
404 | 请求的资源不存在。 |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。404 资源不存在或不属于当前租户。
↑ 回到列表