Skip to main content

v3 Public Launch Audit Checklist

PR #12 작업용 내부 체크리스트입니다. v3 public launch 문서를 domains/voxai/api-server의 현재 구현과 맞춰 보고, endpoint별로 검증 상태를 체크하면서 수정합니다.

목표

v3 API reference와 관련 가이드가 current api-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.md in domains/voxai/docs.
  • Read api-server AGENTS.md and ARCHITECTURE.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.py against current docs OpenAPI: 7 blockers, 6 warnings, 1 info.
  • Replace stale docs OpenAPI after reviewing the generated diff.
  • Update docs.json navigation 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/summary text.
  • Verified docs OpenAPI operation list equals v3 docs.json navigation 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.sh so future live OpenAPI syncs keep the 4 confirmed-private flow helper endpoints and their private-only schemas out of the docs snapshot.
  • Ran mint validate with Node 20.18 in PATH: build validation passed.
  • Ran mint broken-links with Node 20.18 in PATH: no broken links found.

Baseline Findings

Confirmed-private operations kept out of public scope:
  • POST /agents/autofix-flow-data
  • POST /agents/validate-flow-data
  • POST /agents/{agent_id}/operations
  • POST /flow-data/autofix
Audit warning triage:
  • UNREVIEWED_CAMEL_CASE_PROPERTY warnings are restricted to agent.data / flow_data payload internals and are documented as explicit compatibility exceptions in api-reference/v3/introduction.mdx.
  • ORG_ID_NOT_USED_IN_HANDLER warnings 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:
  1. Rebuild the checklist against the current docs PR branch and current domains/voxai/api-server source.
  2. Check every public endpoint for method/path/nav/auth/request/response/errors.
  3. Check examples, descriptions, schema descriptions, and public/private scope.
  4. Compare docs OpenAPI with freshly generated api-server OpenAPI.
  5. Run real validation gates and fix any issues found.
Prompt-to-artifact checklist: 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_version has no default, so docs OpenAPI must not publish webhookVersion.default = "v2".
  • Docs OpenAPI keeps full schema/property descriptions while matching the current source contract after docs-localized description/summary text is removed.

Focused Recheck 2026-05-09

Objective restated as concrete deliverables:
  1. Spend a focused pass rebuilding the checklist instead of trusting prior results.
  2. Check every public API operation one by one.
  3. Verify every operation’s status codes, request schemas, response schemas, and public/private scope against current api-server source.
  4. Check description consistency, natural Korean tone, and developer-friendly wording without over-explaining.
  5. Fix docs when the recheck finds drift.
Prompt-to-artifact checklist:

Completion Audit

Concrete objective: make a Markdown checklist, check every endpoint one by one, compare the public docs against current api-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 minProperties on 2 PATCH schemas, and non-integer timestamp fields on schema registry metadata.
  • 2026-05-08: Initially synced api-reference/v3/openapi.json from 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, and POST /flow-data/autofix are 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.mdx and versionless API reference links in outbound/post-call/export guides. Also clarified that v3 public API has no dedicated CSV export endpoint; programmatic extraction uses GET /calls and GET /calls/{call_id}.
  • 2026-05-08: Verified api-reference/v3/openapi.json contract matches the expected api-server generated OpenAPI after excluding the four confirmed-private flow helper endpoints, pruning unreachable schemas, and ignoring docs-localized description/summary text. Verified v3 OpenAPI operations and docs.json v3 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_id path params and numeric knowledgeIds arrays; no UUID wording was found for public knowledge IDs.
  • 2026-05-08: Patched scripts/sync-openapi.sh to 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 matches api-reference/v3/openapi.json.
  • 2026-05-08: Fixed stale changelog links found by validation: /docs/operate/deploy/cti now 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 validate passed and mint broken-links passed.
  • 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/summary fields 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-server source. Found one missing coverage class: schema/property descriptions. Added descriptions until the coverage check returned description_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_version default 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 localized description/summary text.
  • 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.