Repository navigation
docs(api-reference): daily api-review 2026-10-28 — RUM DQL parse errors are InvalidParameter - #1144
Open
flashduty[bot] wants to merge 1 commit into
Open
flashduty[bot] wants to merge 1 commit into
flashduty[bot] wants to merge 1 commit into
Conversation
POST /rum/data/query reports a per-query failure in the entry's own `error`. Since fc-rum cc55956 an unparsable `dql` carries InvalidParameter (the query is named in the message) instead of being rewrapped as InternalError, and a lone `*` is accepted as 'match every event'. Both statements in the spec that claimed the entry code is always InternalError are now wrong. - rum split + consolidated, EN/ZH: 3 strings each (x-mint Usage bullet, RumDataQueryOutput.error description, RumDataQueryDefinition.dql description). - No path, schema key, required or enum change, so docs.json pages, the two api-catalog.mdx and api-reference redirects are untouched.
This branch has not been deployed
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.
Daily api-review — 2026-10-28
Window:
2026-10-27T09:36:16Z(previous successful run) →2026-10-28T08:0xZ(this run). Basis per repo:origin/main, read throughgit showon the committed tree, never the work tree.Result per module (added / updated / removed)
POST /rum/data/query) + 2 schemas (RumDataQueryOutput.error,RumDataQueryDefinition.dql)No path was added or removed, so
docs.json(pages and the API bare-pathredirects) and the twoapi-catalog.mdxare intentionally untouched.The one real drift: RUM DQL parse errors are no longer
InternalErrorSource: fc-rum
cc55956— fix(query): accept a lone*and report unparsable DQL as a client error (inorigin/mainvia merge8edbb03).cmd/server/controller/data/fetch.go:buildQuerynow returnssrv.NewErrorWithMsg(srv.ErrInvalidParameter, "Invalid query %q: %v", …)for a DQL parse failure, andfetchreturns it throughsrv.ToError(err, srv.ErrInternalError).srv.ToError(go-pkgsrv/error.go) returns an existing*srv.Errorunchanged.logic/dataquery/dataquery.go#ClientErrornow passes on an error whoseHTTPStatusCodeis 4xx;cmd/server/controller/data/query.gotherefore writes thatInvalidParameterinto the failing entry's ownerrorinstead of falling through toerrOut = srv.NewError(srv.ErrInternalError).dqlfails only its own query entry with codeInvalidParameterand a message naming the query, notInternalError.The spec asserted the opposite in two places, so both were corrected (EN + ZH, split + consolidated):
/rum/data/queryx-mint.contentUsage bullet —invaliddql`` removed from theInternalErrorlist, and the `InvalidParameter` case added.RumDataQueryOutput.errordescription —The code is alwaysInternalError`` replaced withInternalError, or `InvalidParameter` when `dql` cannot be parsed`.RumDataQueryDefinition.dqldescription — added that a lone*matches every event (fromlogic/ast/dql/dql.go:if query == "" || strings.TrimSpace(query) == "*"), since callers that used Datadog-style*used to get a parse error.Statements the same commit left true and therefore were not touched: malformed SQL / bad
time_zone/ out-of-range window still fail the whole request withInvalidParameter(they are rejected inquery.Validate, beforefetch), andsearch_after_ctx/ unknown table or column / database errors remain per-entryInternalError.Judged no change, with evidence
cfabda27(merged byd13bd002):/monit/api/edge/heartbeatAQps20 → 64,AQpmdropped. The row isAuth: "data", i.e. not on theapp_keypublic surface, and no registry row was added or removed, so no nav or catalog change either.754b02e8b/afdaaf364:licenseReleasesPerSeat2 → 100. Docs publish no numeric quota —LicenseListResponse.release_limitedonly says the release quota for the 30-day window is used up, which is still true.c1fa3e573: AI SRE/stopno longer opens a cancel card when there is nothing to rewrite — IM runtime behaviour, no Open API operation involved.bb1f0faff,d127b58d7,0d926eb79,c31b2a778,b1be809d2: lint/test/onboarding-internal cleanups; nojson:/binding:change and no public controller touched.5c500da(merge4cb7ff4): addsalert_key,created_at_ms,queue_delay_ms,receive_lag_msto internal zap log lines only.2c1729ae1/8c24108f1/785da2e17/b838546fband their merges addvcs_credentials_disabled(cmd/api/environment/*,types/environment.go,model/environment) andrunner_vcs_toggle(cmd/api/app/app.go). Every/safari/environment/*registry row isAuth: "jwt", so none of it is on theapp_keysurface and no published schema carries these fields. The67d4a073d/9c2236795sync merges (PR #1657/#1658) addChatAutomationExecutionGuard.reuse_current_session,PageContext.facts,config_only/config_targetand IM delivery plumbing — all runtime envelopes (cmd/api/runtime/*,logic/session/actor/*), not response types returned by/safari/{skill,mcp,a2a-agent,session,automation}/*;types/automation.gois untouched, so the published automation schemas do not move.1c05b18f9only editscmd/api/ambient/judge.goprompts and in-repo bootstrap skill markdown.078f8d06) added RUM session-replay privacy prose, unrelated toapi-reference/.Registry vs specs
scripts/parse_pgy_registry.pyonfc-pgy/logic/api/api_test.go: 1240 rows, 393 withauth == "all"; after dropping/event/push/, 393 public operations vs 392 operation keys across the five split specs (on-call,monitors,platform,rum,safari). Gin-style:paramis normalised to{param}before comparing.POST /channel/incident/daily-counts(channel:read:incidentDailyCounts). The registry row exists but the handler only lives on fc-event'sdevbranch, so it is deliberately not in any spec.Split vs consolidated
Deep compare ignoring dict key order, both languages, all five modules. Only the two established hand-edits differ, both left alone:
DutyError.reasonexists in the consolidated copies only, carryingx-flashduty-preserve-absence: true(on-call / platform / rum / safari splits).components.responses:BadRequest.missingParameterkeeps itssummaryand the safari-specificskill_idmessage, andForbiddennames its exampleaccessDeniedwhere the consolidated copy usesnoEditPermission.No new drift, and no drift was introduced by this change (the same three strings were edited on both sides).
Examples
No operation was added and no schema shape changed, so no new request/response example was needed and none was written. The dev API is not reachable from this environment, so no example was captured either — nothing here is constructed.
Validation
python3 -c "import json; json.load(open(p))"for all 13 files underapi-reference/→ all pass.python3 scripts/lint_openapi.py→OK: 12 spec files, no violations.python3 scripts/api_path_redirects.py --check→ exit 0.mint broken-linkswas not run (nomintin this environment); no link or path changed, so no new link can exist.