Repository navigation
docs(api-reference): 补 safari SignedURLs 的 artifact frame 字段(api-review 2026-10-21) - #1116
Merged
Merged
Conversation
fc-safari 56a491d6 (2026-10-17) added frame_url, frame_base and frame_expires_in to logic/artifact.SignedURLs, which /safari/artifact/sign returns on every call. The safari spec still described only the stream URLs. Adds the three properties, lists frame_url/frame_expires_in as always present, and extends the sign response example.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
api-review 每日审计 · 2026-10-21(
--mode generate --scope all --auto)结论: 本轮无接口增删,修复 1 处「源码已改、文档未跟上」的 schema 漂移(safari 模块
/safari/artifact/sign)。各模块 operation 变化
SignedURLs补 3 个字段(见下)已注册公开 operation 数未变:on-call 202 / monitors 46 / rum 50 / platform 28 / safari 53 = 379(consolidated 参考副本同为 379)。无接口增删,故
docs.json与{en,zh}/openapi/api-catalog.mdx未改动(逐 path 覆盖检查均为none)。修复内容:safari
SignedURLs缺 3 个 frame 字段一手证据(fc-safari
origin/main):logic/artifact/file.go→SignedURLs结构体含frame_url、frame_base(omitempty)、frame_expires_in;由signForFileWith()在每次/safari/artifact/sign调用中无条件填充,FrameURL/FrameExpiresIn无omitempty,即必然出现在响应中。56a491d6(2026-10-17,feat(artifact): multi-file versions served through a sandboxed frame route),晚于 safari 规格最初写入,故文档一直缺这三个字段。logic/artifact/frame.go:frame_url=/safari/artifact/f/<token>/<escaped name>(token 为唯一凭据,有效期 12 小时);frame_base= 版本目录地址,仅目录型(多文件)记录非空、单文件为空并被省略;frame_expires_in恒为43200。omitempty,frame_url/frame_expires_in同时加进SignedURLs.required;frame_base保持可选。改动文件(EN/ZH × split/consolidated 共 4 个):属性就地插在
expires_in之后(与 Go 结构体顺序一致,非重排),并同步扩展/safari/artifact/sign的 200 响应示例。示例来源说明
本环境无法引用凭据类环境变量,因此调不通 dev API(
api-dev.flashcat.cloud)抓真实响应。本次新增的frame_url与frame_expires_in两个示例值按 schema 与代码常量构造(token 沿用该 operation 既有示例的同一串,frame_expires_in取代码常量 43200),非线上抓包;既有示例未改动。本轮排除的候选(逐条附证,均判定为不应改)
DSMongoDBConfig缺tls_cert/tls_key:Go 结构体确实通过内嵌TLSClientConfig携带这两个字段,但model/datasource_diagnostic.go的validateDiagnosticTLS(..., mongo=true, ...)里if mongo && (TLSCert != "" || TLSKey != "")直接返回错误does not support client certificates。MongoDB 诊断配置不支持客户端证书,文档省略是正确的(Kafka 同类配置传mongo=false,文档有这两个字段)。A2AAgentItem.description:结构体注释写明「kept temporarily for pre-GA API clients … OpenAPI/SDK/CLI no longer expose description」,属刻意不公开。AssignedTo的layer_person_*/layer_webhook_*:来自 push event / servicenow 场景,push 路由不走公开面,属刻意不公开(与既有记录一致)。EscalateRuleItem.channel_name:仅ListEscalateRuleBySchedule(注册表Auth: jwt,非公开)填充;公开的/channel/escalate/rule/info|list不填。EscalateTarget.by/webhooks:Go 为required_without=(互斥约束),非普通 required;文档已在 description 说明「Required unlesswebhooksis set」,无需改动。a46ac82e(cmd/server/controller/incident/info.go):iFilter删除了range_by/orderby/by_intersection,但它们原本就是apidoc:"omit",从未进入文档;start_time/end_time的binding:"required"保持不变。dff799e3(etc/kv.yml白名单,kv 模块 hidden)、fc-rumf955e51/e51144a(引擎解析逻辑与注释,无 wire 字段变化)、monit-webapif09964d(check_nodata.end_mode在未启用时补默认值,属业务分支默认、非 binding 约束)、monit-webapi5750e0d/ab4d5dc、monit-edgee50d091(查询校验)、fc-datasourcef2bc808(IM 插件重试)——均不触及公开 schema。findings.unresolved(1 条,与前几轮一致,未写入任何 spec)
POST /channel/incident/daily-counts(注册名channel:read:incidentDailyCounts,Auth: "all"):handlercmd/server/controller/channel/daily_incident_counts.go仍只存在于fc-event的origin/dev,不在origin/main。注册表公开行 380 条 vs 文档 379 个 operation,差集仅此一条。需人判断是补 handler 还是把该行Auth改掉。内部漂移(记录不改,本轮重算)
DutyError.reason:consolidated 有、split 无,带x-flashduty-preserve-absence: true手改标记 → 不动。components.responses:BadRequest示例带 safari 专有skill_id、Forbidden示例名accessDenied、NotFound/ServiceUnavailable仅 consolidated 有(split 未引用,无悬空$ref)→ 判定为有意定制。components.securitySchemes.AutomationTriggerBearerAuth:两侧均无 operation 引用,属未引用定义 → 仅记录。ServiceUnavailable(仅 monitors 引用它,monitors split 已定义):其余 split 不引用,属正常裁剪。校验清单
python3 scripts/lint_openapi.py→OK: 12 spec files, no violations。4 files changed, 64 insertions(+),0 deletions;patience 与默认算法结果一致(无重排 / 纯排序 diff)。git show HEAD:<path>读取;逐个文件验证json.dumps(..., indent=2) + "\n"与原字节完全一致后才落盘,故 diff 只含本轮语义新增。$ref:5 个 split 与 consolidated 均无。docs.json、en/zh api-catalog.mdx中覆盖均为none(无增删,故未改)。mint broken-links未执行:本环境未安装mint;本轮只改既有 path 的属性与示例,不新增链接。