Skip to content

api-review: add RUM remote-config & schedule by-person APIs; member_id filter on /member/list - #344

Merged
ysyneu merged 2 commits into
mainfrom
api-review/20260903T094116Z
Sep 5, 2026
Merged

api-review: add RUM remote-config & schedule by-person APIs; member_id filter on /member/list#344
ysyneu merged 2 commits into
mainfrom
api-review/20260903T094116Z

Conversation

@flashduty

@flashduty flashduty Bot commented Sep 3, 2026

Copy link
Copy Markdown

Summary

Daily api-review audit (--mode generate --scope all --auto) comparing the fc-pgy public-API registry (logic/api/api_test.go @ 8aed5cb8, 953 rows / 342 auth=all) against the committed OpenAPI 3.1 specs, plus handler-drift scan of all backend repos since each spec file's last commit.

Operation changes

RUM (rum.openapi.*.json) — 5 added

Method Path operationId Evidence
POST /rum/application/remote-config/get rum-application-remote-config-read-get fc-rum #204 (e5d9aa3); registry line 1187
POST /rum/application/remote-config/update rum-application-remote-config-write-update registry line 1191 (IsAudit, AQps 20/AQpm 300)
POST /rum/application/remote-config/preview rum-application-remote-config-read-preview registry line 1189
POST /rum/application/remote-config/history/list rum-application-remote-config-read-history-list registry line 1188
POST /rum/application/remote-config/history/revert rum-application-remote-config-write-history-revert registry line 1190 (IsAudit, AQps 20/AQpm 300)

On-call (on-call.openapi.*.json) — 1 added

Method Path operationId Evidence
POST /schedule/by-person scheduleByPerson fc-oncall aae1eab (#266); registry line 931

Platform (platform.openapi.*.json) — 1 updated, 0 added

  • POST /member/list: MemberListRequest gains optional member_id (integer, uint64) filter — fc-pgy bb7f8e39 ("Add member_id filter to POST /member/list").

Removed / other updates

None. Handler-drift scan found no other schema-affecting changes (fc-event WeCom commits are template-engine internals; fc-rum session commits touch engine ingestion only; fc-datasource commits are IM send-logic only; fc-safari types changed no field used by public schemas; fc-statuspage had no commits since last spec update).

Schemas added

  • RUM (14): RemoteConfig, RemoteConfigValues, RemoteConfigRule, RemoteConfigHistoryItem + 5 request/response pairs.
  • On-call (4): ScheduleByPersonRequest, ScheduleByPersonResponse, MemberOncallInterval, MemberScheduleItem.

Constraints provenance

Only Go binding: tags and explicit handler/model code were used: application_id required; reason max=255; version required min=1 (revert); p min=0 max=100000; limit default 20 / max 100 (handler clamp); orderby enum updated_at|version (SanitizeOrderBy allowlist); rules maxItems 20 (MaxRemoteConfigRules); match minProperties 1 + value maxLength 256 (Validate); rates min 0 max 100 (validateRate); defaultPrivacyLevel/activation enums (validPrivacyLevels / validRemoteConfigActivations); custom limits (validateCustom). updated_at fields carry "Unix timestamp in milliseconds" (getOutput doc comment; model UnixMilli()); schedule start_at/end_at carry "Unix timestamp in seconds".

Unresolved

0 — every new registry row resolved to a handler. Note: monit-webapi/monit-edge are not on GitHub, so the Monitors module was covered by registry comparison only (no handler-drift scan), per standing practice its committed content is preserved.

Examples

All request/response examples are constructed from the schemas (realistic IDs reused from sibling examples: WoyQQ3BohkdtPivubEvE8o, 2539108069860, 01HK8XQE3Z7JM2NTFQ5YJ8P9R4); no dev-API captures were performed in this environment.

Reconciliation

  • docs.json: +1 page (Schedules), +5 pages (Applications), both languages.
  • api-catalog.mdx (en+zh): +6 rows; On-call 192→193, RUM 36→41, total 336→342.

Verification

  • All 14 touched JSON files parse; EN/ZH parity (paths + schema keys) holds for every module; consolidated = 342 paths.
  • Line-level verification (difflib): all 8 spec files are pure line insertions (0 modified/deleted lines vs HEAD); docs.json/catalog diffs are limited to the intended count bumps + page/row insertions.
  • Nav & catalog coverage: every spec path present in docs.json and both api-catalog.mdx files.

flashduty-ai-sre and others added 2 commits September 3, 2026 09:41
…r_id filter on /member/list

Registry drift vs committed specs (fc-pgy api_test.go lines 931, 1187-1191):
- POST /rum/application/remote-config/{get,update,preview,history/list,history/revert}
  (fc-rum #204, registered 2026-08-31)
- POST /schedule/by-person (fc-oncall #266 aae1eab, registered 2026-09-01)

Schema drift: POST /member/list gains optional member_id (uint64) filter
(fc-pgy bb7f8e39).

Nav (docs.json) and api-catalog.mdx reconciled: On-call 192->193,
RUM 36->41, total 336->342. Split + consolidated specs updated in
EN and ZH; openapi.legacy.zh.json untouched.
Resolve conflicts with the AI SRE artifact gallery publish:
- consolidated openapi.{en,zh}.json: union of both additions
  (artifact ops + RUM remote-config / schedule by-person / member_id)
- api-catalog: keep both sections; endpoint count 353
- fix lint: document RemoteConfig.activation enum value 'immediate'
@ysyneu
ysyneu merged commit 7d581e4 into main Sep 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant