开放接口

/v1/edge-scripts

12 个接口 · 12 个接口支持 API Key

← 全部分组 · 第一次调用?先看教程:认证、权限、请求与响应、常见失败

方法路径摘要认证
GET/v1/edge-scripts列出边缘脚本API Key 可调登录会话
POST/v1/edge-scripts创建边缘脚本API Key 可调登录会话
POST/v1/edge-scripts/check检查边缘脚本API Key 可调登录会话
POST/v1/edge-scripts/trial试运行边缘脚本API Key 可调登录会话
GET/v1/edge-scripts/{script_id}查看边缘脚本API Key 可调登录会话
PUT/v1/edge-scripts/{script_id}保存边缘脚本草稿API Key 可调登录会话
DELETE/v1/edge-scripts/{script_id}删除边缘脚本API Key 可调登录会话
POST/v1/edge-scripts/{script_id}/publish发布边缘脚本API Key 可调登录会话
GET/v1/edge-scripts/{script_id}/references列出边缘脚本引用API Key 可调登录会话
POST/v1/edge-scripts/{script_id}/rollback回滚边缘脚本API Key 可调登录会话
GET/v1/edge-scripts/{script_id}/versions列出边缘脚本版本API Key 可调登录会话
GET/v1/edge-scripts/{script_id}/versions/{version}查看边缘脚本版本API Key 可调登录会话

契约文件:api/openapi/v1/control.yaml

接口详情

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 响应
状态码说明
200Scripts by name.

字段:items: array<EdgeScript> enabled: boolean

401认证失败或会话已失效。
403当前身份没有执行该操作的权限。
503Edge 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_modestring: deny / allow否deny answers 503 on an error or limit hit, allow lets the request through and drops the script's intents.
max_instructionsinteger否—
max_time_msinteger否—
max_memory_kbinteger否—
namestring是—
descriptionstring否—
sourcestring否—

响应

createEdgeScript 响应
状态码说明
201Created.

字段: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请求的状态与已有资源或幂等记录冲突。
422The 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 请求体
名称类型必填说明
sourcestring是—

响应

checkEdgeScript 响应
状态码说明
200The 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 请求体
名称类型必填说明
sourcestring是—
failure_modestring: deny / allow否—
requestobject否—

响应

trialEdgeScript 响应
状态码说明
200The 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当前身份没有执行该操作的权限。
429Too many trials (edge_script_trial_rate_limited).
503Trials 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_idpathstring(uuid)是—

响应

getEdgeScript 响应
状态码说明
200The 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_idpathstring(uuid)是—

请求体

application/json · 必填:是

updateEdgeScript 请求体
名称类型必填说明
failure_modestring: deny / allow否deny answers 503 on an error or limit hit, allow lets the request through and drops the script's intents.
max_instructionsinteger否—
max_time_msinteger否—
max_memory_kbinteger否—
namestring是—
descriptionstring否—
sourcestring否—
expected_revisioninteger是—

响应

updateEdgeScript 响应
状态码说明
200Saved.

字段: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_idpathstring(uuid)是—
expected_revisionqueryinteger是—

响应

deleteEdgeScript 响应
状态码说明
204Deleted.
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_idpathstring(uuid)是—

请求体

application/json · 必填:是

publishEdgeScript 请求体
名称类型必填说明
expected_revisioninteger是—
notestring否—

响应

publishEdgeScript 响应
状态码说明
200Published.

字段: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请求的状态与已有资源或幂等记录冲突。
422The 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_idpathstring(uuid)是—

响应

listEdgeScriptReferences 响应
状态码说明
200References.

字段: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_idpathstring(uuid)是—

请求体

application/json · 必填:是

rollbackEdgeScript 请求体
名称类型必填说明
expected_revisioninteger是—
versioninteger是—

响应

rollbackEdgeScript 响应
状态码说明
200Rolled 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_idpathstring(uuid)是—

响应

listEdgeScriptVersions 响应
状态码说明
200Versions.

字段: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_idpathstring(uuid)是—
versionpathinteger是—

响应

getEdgeScriptVersion 响应
状态码说明
200The 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 资源不存在或不属于当前租户。

↑ 回到列表