Skip to content

fix(storage): pin distinct operationIds for iceberg's analytics-bucket routes - #1274

Draft
grdsdev wants to merge 1 commit into
feat/vector-bucket-openapifrom
fix/iceberg-bucket-operation-ids
Draft

fix(storage): pin distinct operationIds for iceberg's analytics-bucket routes#1274
grdsdev wants to merge 1 commit into
feat/vector-bucket-openapifrom
fix/iceberg-bucket-operation-ids

Conversation

@grdsdev

@grdsdev grdsdev commented Jul 28, 2026

Copy link
Copy Markdown

Context

Follow-up from #1270 review discussion - stacked on top of it since it depends on the config.operationId mechanism added there. Rebase onto master once #1270 merges.

Summary

src/http/routes/iceberg/bucket.ts reuses ROUTE_OPERATIONS.CREATE_BUCKET/DELETE_BUCKET/LIST_BUCKET verbatim - the exact same constants src/http/routes/bucket/*.ts uses for the unrelated S3 storage-bucket endpoints. Two entirely different resources (S3 storage buckets vs Iceberg analytics buckets) were deriving the same OpenAPI operationId.

Pins createIcebergBucket/deleteIcebergBucket/listIcebergBuckets explicitly via config.operationId, so the generated SDK gets distinct, correctly-named methods for each instead of the collision being silently papered over (or, with #1270's original stricter design, crashing doc generation - see #1270's own fix for that).

Test plan

  • tsc -noEmit — no errors
  • biome check on touched file — clean
  • Full unit suite: 116 files / 1466 tests passing

…t routes

iceberg/bucket.ts reuses ROUTE_OPERATIONS.CREATE_BUCKET/DELETE_BUCKET/
LIST_BUCKET verbatim - the same constants src/http/routes/bucket/*.ts
uses for the unrelated S3 storage-bucket endpoints. Two entirely
different resources (S3 storage buckets vs Iceberg analytics buckets)
deriving the same OpenAPI operationId. Pins createIcebergBucket/
deleteIcebergBucket/listIcebergBuckets explicitly so the generated SDK
gets distinct, correctly-named methods for each.
@grdsdev
grdsdev requested a review from a team as a code owner July 28, 2026 17:33

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — straightforward operationId pinning that follows the pattern established in #1270.

Extended reasoning...

Overview

This PR adds explicit operationId values (createIcebergBucket, deleteIcebergBucket, listIcebergBuckets) to the three routes in src/http/routes/iceberg/bucket.ts, to avoid colliding with the identically-named ROUTE_OPERATIONS constants used by the unrelated S3 storage-bucket routes. It is a three-line, additive change to route config blocks only — no request handling, auth, or business logic is touched.

Security risks

None. The change only affects OpenAPI documentation metadata (the generated operationId used for SDK method naming); it has no effect on runtime request handling, authorization, or data access.

Level of scrutiny

Low. This is a mechanical doc-generation fix stacked on the config.operationId override mechanism introduced in #1270 (verified in src/http/routes/openapi-transform.ts:173, where route.config?.operationId takes precedence over the derived id). The mechanism itself is already covered by existing tests in openapi-transform.test.ts (e.g. "prefers an explicit config.operationId over the derived one"), so this PR is just applying an already-tested capability to three routes.

Other factors

The PR is intentionally scoped to a single file and includes a clear before/after rationale tied to a specific review discussion on #1270. Test plan reports passing full unit suite, clean typecheck, and clean lint. No outstanding review comments in the timeline.

@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 30383438639

Warning

No base build found for commit 55fe8bb on feat/vector-bucket-openapi.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 80.478%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 12892
Covered Lines: 10816
Line Coverage: 83.9%
Relevant Branches: 7587
Covered Branches: 5665
Branch Coverage: 74.67%
Branches in Coverage %: Yes
Coverage Strength: 409.89 hits per line

💛 - Coveralls

@grdsdev
grdsdev marked this pull request as draft July 28, 2026 17:43
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.

2 participants