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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions