Skip to content

feat(generator): build full SDK generation foundation - #7

Draft
nmorgan-cb wants to merge 10 commits into
mainfrom
toshi/plan-service-generator-upgrade
Draft

feat(generator): build full SDK generation foundation#7
nmorgan-cb wants to merge 10 commits into
mainfrom
toshi/plan-service-generator-upgrade

Conversation

@nmorgan-cb

@nmorgan-cb nmorgan-cb commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Description

Builds the deterministic, OpenAPI-driven generation foundation for the full Coinbase Prime Java client surface.

Generator implementation included

  • Uses committed apiSpec/prime-public-spec.yaml for normal generation and CI; live fetching is explicit only.
  • Runs OpenAPI model/enum generation and the existing model post-processing before custom client-surface emission.
  • Adds shared paths, configuration, naming/type resolution, request, response, service, factory, and template phases.
  • Generates SDK-style mutable request/response DTOs, synchronous services/implementations, and PrimeServiceFactory deterministically.
  • Supports path/version routing, including /v1 stripping, per-call /v2 base URLs, numeric 2xx statuses, and the documented 201/200 create/claim/submit compatibility rule.
  • Adds manifest-backed reconciliation that only deletes previously owned files and protects the legacy portfolio counterparty compatibility artifacts.
  • Adds make fetch-spec, make generate, make check-generated, and make generate-live-diff commands.

Tests added

  • Adds focused fixture coverage for request/response/service/factory rendering, shared model/enum/array/map type resolution, deterministic service ordering, v2 validation, compatibility statuses, and manifest-safe stale cleanup.
  • Extends parser handling so operation-level parameters correctly override same-name path-level declarations.

Generation preview performed

  • Ran the full generator in a detached temporary worktree from the committed OpenAPI spec.
  • The preview completed successfully and reported broad model/client-surface drift (434 tracked Java files; 19,945 insertions and 21,440 deletions), which is intentionally left for review as the generated baseline follow-up.

Generated SDK baseline intentionally not committed

No regenerated model, DTO, service, factory, or spec artifacts from the preview are included in this PR. Generated changes will be committed only after the generated baseline is reviewed.

Remaining follow-up

Review and commit the generated SDK baseline, then enable make check-generated as a required CI gate.

Generated with Toshi

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Dependency update
  • Refactor / cleanup
  • Other (describe below)

Checklist

  • Tests included / updated
  • Changelog updated
  • Version bump if needed

@cb-heimdall

Copy link
Copy Markdown

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@nmorgan-cb
nmorgan-cb force-pushed the toshi/plan-service-generator-upgrade branch from d0671ee to 5e2693d Compare September 2, 2026 17:43
@nmorgan-cb nmorgan-cb changed the title feat(generator): add OpenAPI operation inventory feat(generator): build full SDK generation foundation Sep 2, 2026
nmorgan-cb and others added 6 commits September 2, 2026 16:43
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants