Skip to content

api(coverage): reconcile typed handler routes with the refreshed Redis Cloud OpenAPI spec #72

@joshrotenberg

Description

@joshrotenberg

Summary

Refreshing the bundled OpenAPI fixture and adding executable route coverage checks surfaced a concentrated set of typed-route mismatches between the current client implementation and the upstream Redis Cloud spec.

What the new coverage check found

With the refreshed fixture:

  • 89 OpenAPI paths
  • 137 schemas
  • 151 HTTP operations

The typed handler inventory currently shows:

  • 29 spec operations with no matching typed handler path
  • 22 typed handler routes that do not match any current OpenAPI path

Concentrated mismatch areas

Most of the drift is in connectivity and Active-Active path shapes:

  • Private Service Connect
  • Transit Gateway invitations/attachments
  • Active-Active peerings
  • Active-Active PrivateLink deletes/disassociate flows
  • subscription resource tags

Examples of missing current-spec routes

  • PUT /subscriptions/{subscriptionId}/resource-tags
  • GET /subscriptions/{subscriptionId}/transitGateways/invitations
  • GET /subscriptions/{subscriptionId}/regions/{regionId}/transitGateways
  • POST /subscriptions/{subscriptionId}/regions/peerings
  • DELETE /subscriptions/{subscriptionId}/regions/{regionId}/private-link

Examples of client routes that no longer match the spec

  • GET /subscriptions/{subscriptionId}/tgw/shared-invitations
  • POST /subscriptions/{subscriptionId}/transitGateways/attachments
  • GET /subscriptions/{subscriptionId}/private-service-connect/endpoints
  • DELETE /subscriptions/{subscriptionId}/regions/private-service-connect

Relevant files

  • tests/openapi_route_coverage.rs
  • tests/fixtures/openapi_unsupported_routes.txt
  • tests/fixtures/openapi_non_spec_routes.txt

Acceptance criteria

  • reduce the allowlist by reconciling typed handler paths with the current spec
  • add or fix missing typed handlers where the API is supported but not modeled yet
  • remove legacy/non-spec route shapes or document compatibility handling if both must remain
  • keep the route coverage allowlists as small, intentional exceptions rather than a long-term inventory of drift

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions