v3 Public Launch Audit Checklist
PR #12 작업용 내부 체크리스트입니다. v3 public launch 문서를
domains/voxai/api-server의 현재 구현과 맞춰 보고, endpoint별로 검증
상태를 체크하면서 수정합니다.
목표
v3 API reference와 관련 가이드가 currentapi-server public contract와
일치하도록 검증하고, 잘못된 예시, 설명, 스키마, 누락된 제약을 최소 수정으로
고칩니다.
작업 원칙
- 먼저 이 파일에 증거와 상태를 기록합니다.
- 문서 수정은 체크리스트에 근거를 남긴 뒤 수행합니다.
- source of truth는 current
api-server코드, generated public OpenAPI, v3 schema, service validation, tests입니다. - 코드와 문서가 충돌하면 문서를 고칩니다.
- 코드 contract 자체가 불명확하면
UNVERIFIED또는ISSUE로 남깁니다. - endpoint별 상태는
TODO,PASS,FIXED,ISSUE,UNVERIFIED중 하나로 표시합니다.
Source Of Truth
Baseline Evidence
- Checked out correct docs submodule branch:
domains/voxai/docs>codex-v3-api-reference. - Read nearest
AGENTS.mdindomains/voxai/docs. - Read
api-serverAGENTS.mdandARCHITECTURE.md. - Generated current api-server public OpenAPI:
uv run python scripts/generate_v3_public_openapi.py --output /tmp/current-v3-public-openapi.json --servers-from /Users/ryanhan/Documents/development/voxai/vox-mono/domains/voxai/docs/api-reference/v3/openapi.json - Compared docs OpenAPI operations against generated api-server operations.
- Ran
scripts/v3_audit.pyagainst current docs OpenAPI: 7 blockers, 6 warnings, 1 info. - Replace stale docs OpenAPI after reviewing the generated diff.
- Update
docs.jsonnavigation after reviewing missing public operations. - Re-ran API-side audit with the 4 confirmed-private flow helper endpoints passed as intentional excludes. Result: 0 blockers, 52 warnings, 1 info for accepted exclusions. Without those explicit excludes, current api-server still reports exactly those 4 endpoints as missing from public OpenAPI.
- Run docs validation after edits.
- Verified docs OpenAPI contract is equal to expected api-server OpenAPI after removing the 4 confirmed-private flow helper endpoints, pruning unreachable schemas, and ignoring docs-localized
description/summarytext. - Verified docs OpenAPI operation list equals v3
docs.jsonnavigation operation list. - Verified stale v2 endpoint examples and versionless API reference links are gone from v3 launch guide pages; historical changelog entries intentionally keep v2 links where the release predates v3.
- Patched
scripts/sync-openapi.shso future live OpenAPI syncs keep the 4 confirmed-private flow helper endpoints and their private-only schemas out of the docs snapshot. - Ran
mint validatewith Node 20.18 in PATH: build validation passed. - Ran
mint broken-linkswith Node 20.18 in PATH: no broken links found.
Baseline Findings
Confirmed-private operations kept out of public scope:
POST /agents/autofix-flow-dataPOST /agents/validate-flow-dataPOST /agents/{agent_id}/operationsPOST /flow-data/autofix
UNREVIEWED_CAMEL_CASE_PROPERTYwarnings are restricted toagent.data/flow_datapayload internals and are documented as explicit compatibility exceptions inapi-reference/v3/introduction.mdx.ORG_ID_NOT_USED_IN_HANDLERwarnings are limited to authenticated catalog reads (models,schemas, available telephone lines) and an excluded traffic split endpoint. Org-owned resources still require org context.- Knowledge endpoint import-boundary warnings are source architecture debt, but the public request/response schema is still generated from v3 response models and does not expose provider or persistence types.
Cross-Cutting Review Checklist
Detailed Endpoint Verification Matrix
Every public operation was checked one by one against the current docs OpenAPI, the v3 navigation, and a freshly regenerated api-server OpenAPI after removing the four confirmed-private helper endpoints.Examples is the count of request
examples currently present in OpenAPI. 0 means no explicit request example is
published for that request body; it does not indicate a failing example.
Endpoint Checklist
PASS in this section means the public documentation surface was checked for
path, method, navigation, bearer auth, request schema, response schema, documented
errors, examples where present, and known guide references. It is not a blanket
backend implementation sign-off; source-side generator/audit debt is tracked in
the findings above and intentionally left outside this docs PR.
Agents
Agent Versions
Calls
Campaigns
Telephone Numbers
Tools
Schemas And Flow Data
Knowledges
Models
Alerts And Incidents
Full Reverification Pass 2026-05-08
Objective restated as concrete deliverables:- Rebuild the checklist against the current docs PR branch and current
domains/voxai/api-serversource. - Check every public endpoint for method/path/nav/auth/request/response/errors.
- Check examples, descriptions, schema descriptions, and public/private scope.
- Compare docs OpenAPI with freshly generated api-server OpenAPI.
- Run real validation gates and fix any issues found.
Source-side findings from this pass:
- Current api-server generator/audit still need explicit excludes for the 4 confirmed-private flow helper endpoints. The companion api-server PR was closed and removed from scope.
- Current api-server
AgentWebhookSettings.webhook_versionhas no default, so docs OpenAPI must not publishwebhookVersion.default = "v2". - Docs OpenAPI keeps full schema/property descriptions while matching the
current source contract after docs-localized
description/summarytext is removed.
Focused Recheck 2026-05-09
Objective restated as concrete deliverables:- Spend a focused pass rebuilding the checklist instead of trusting prior results.
- Check every public API operation one by one.
- Verify every operation’s status codes, request schemas, response schemas, and public/private scope against current api-server source.
- Check description consistency, natural Korean tone, and developer-friendly wording without over-explaining.
- Fix docs when the recheck finds drift.
Completion Audit
Concrete objective: make a Markdown checklist, check every endpoint one by one, compare the public docs against currentapi-server, and fix incorrect examples,
descriptions, schemas, links, or public/private scope mistakes.
Work Log
- 2026-05-08: Created checklist in the correct docs submodule. Baseline mismatch: docs OpenAPI 58 operations vs generated api-server public OpenAPI 62 operations.
-
2026-05-08: API-side audit of the current docs OpenAPI found 7 blockers:
4 missing public operations, missing
minPropertieson 2 PATCH schemas, and non-integer timestamp fields on schema registry metadata. -
2026-05-08: Initially synced
api-reference/v3/openapi.jsonfrom generated api-server public OpenAPI, then corrected scope after product clarification:POST /agents/validate-flow-data,POST /agents/autofix-flow-data,POST /agents/{agent_id}/operations, andPOST /flow-data/autofixare not public and were removed from docs OpenAPI/navigation. -
2026-05-08: Scanned guide pages for stale API references. Found and fixed v2 examples in
docs/build/variables/dynamic-variables.mdxand versionless API reference links in outbound/post-call/export guides. Also clarified that v3 public API has no dedicated CSV export endpoint; programmatic extraction usesGET /callsandGET /calls/{call_id}. -
2026-05-08: Verified
api-reference/v3/openapi.jsoncontract matches the expected api-server generated OpenAPI after excluding the four confirmed-private flow helper endpoints, pruning unreachable schemas, and ignoring docs-localizeddescription/summarytext. Verified v3 OpenAPI operations anddocs.jsonv3 navigation operations have no diff. - 2026-05-08: Validated public OpenAPI JSON request examples. Result: 12 examples checked, 0 schema validation failures.
-
2026-05-08: Checked knowledge ID contract. Public OpenAPI uses numeric
integer
knowledge_idpath params and numericknowledgeIdsarrays; no UUID wording was found for public knowledge IDs. -
2026-05-08: Patched
scripts/sync-openapi.shto enforce docs-side public launch exclusions for the four confirmed-private flow helper endpoints and their private-only schemas. Verified the filter output has 58 operations and matchesapi-reference/v3/openapi.json. -
2026-05-08: Fixed stale changelog links found by validation:
/docs/operate/deploy/ctinow points to the SIP trunking guide, and historical versionless API reference links now point to the v2 API reference. -
2026-05-08: Ran docs validation with Node 20.18 in PATH.
mint validatepassed andmint broken-linkspassed. - 2026-05-08: Added a detailed endpoint-by-endpoint verification matrix with nav/auth/request schema/example count/success response/error envelope/source parity columns for all 58 public operations. Re-generated api-server OpenAPI from current source and confirmed the docs OpenAPI still matches after the four confirmed-private helper endpoints are filtered out.
-
2026-05-08: Localized user-facing v3 OpenAPI descriptions in the docs snapshot.
Operation descriptions, request-body descriptions, shared error response text,
and high-visibility schema descriptions now use Korean prose while preserving
code identifiers, enum values, and schema names. Re-verified the contract by
stripping
description/summaryfields from the docs and filtered generated specs and comparing the normalized JSON. -
2026-05-08: Rebuilt the full verification checklist and re-ran the audit
against current
api-serversource. Found one missing coverage class: schema/property descriptions. Added descriptions until the coverage check returneddescription_coverage_issues=0. -
2026-05-08: Source-side recheck exposed api-server v3 test failures:
public generator expected 61 ops while current source emitted 62, and
AgentWebhookSettings.webhook_versiondefault did not match the existing PROD-1493 test. A companion api-server PR was opened briefly, then closed and removed from scope. The docs PR therefore keeps source-side issues tracked rather than patching api-server. -
2026-05-09: Re-generated current api-server OpenAPI after the companion PR was
removed:
paths=45 ops=62 schemas=176 pruned_schemas=16. After docs-side removal of the 4 confirmed-private helper endpoints and unreachable schemas, the filtered source contract has 58 operations and 161 schemas. Docs OpenAPI matches that filtered contract after removing localizeddescription/summarytext. -
2026-05-08: Normalized public-facing v3 prose toward
~합니다/~습니다. Replaced direct imperative endings in OpenAPI descriptions and the v3 introduction with formal descriptive endings. -
2026-05-09: Removed stale
webhookVersion.default = "v2"from docs OpenAPI because current api-server source has no default. Re-ran operation-level status code/request schema/response schema comparison for all 58 public operations:status_or_schema_mismatches=0.