Skip to content

docs: OpenAPI spec deltas - fields missing from official spec #40

@joshrotenberg

Description

@joshrotenberg

Purpose

Track differences between the official Redis Cloud OpenAPI spec and actual API responses. Use this for internal tickets to fix the spec.

Spec URL: https://api.redislabs.com/v1/cloud-api-docs

Policy

  • No raw JSON fields - every field must be fully typed
  • No extra: Value - missing fields are bugs to fix

Progress

Response Types

Type Spec Props Actual Status PR
AccountSubscriptionDatabases 2 4+ Done #41
Account/RootAccount 0 10+ Done #41
Database 2 27+ Pending -
Subscription 12 20+ Pending -
AccountSubscriptions 2 ? Pending -
FixedDatabase 29 ? Pending -
FixedSubscription 27 ? Pending -
ACLUser 5 ? Pending -
CloudAccount 9 ? Pending -
TaskStateUpdate 7 ? Pending -

Files to audit (by extra: Value count)


Validated Deltas

AccountSubscriptionDatabases (Fixed in #41)

Spec: accountId, links

Actual:

{
  "accountId": 761976,
  "subscription": [{
    "subscriptionId": 3096571,
    "databases": [...],
    "links": [...]
  }],
  "links": [...]
}

Missing from spec: subscription array


Account/RootAccount (Fixed in #41)

Spec: 0 properties (only documented as "account" field with no definition)

Actual:

{
  "account": {
    "id": 761976,
    "name": "account-name",
    "createdTimestamp": "2024-06-04T19:47:09Z",
    "updatedTimestamp": "2024-06-04T19:51:29Z",
    "marketplaceStatus": "active",
    "key": {
      "name": "key-name",
      "accountId": 761976,
      "accountName": "account-name",
      "allowedSourceIps": ["0.0.0.0/0"],
      "owner": {
        "name": "Owner Name",
        "email": "owner@example.com"
      },
      "userAccountId": 12345,
      "httpSourceIp": "1.2.3.4",
      "accountMarketplaceId": null
    }
  },
  "links": [...]
}

Missing from spec: Entire account object structure


Database (from GET /subscriptions/{id}/databases)

Spec: databaseId, links

Actual (27 fields):

  • Basic: databaseId, name, protocol, provider, region, status
  • Version: redisVersion, redisVersionCompliance, respVersion
  • Memory: memoryLimitInGb, datasetSizeInGb, memoryUsedInMb, memoryStorage
  • Config: supportOSSClusterApi, useExternalEndpointForOSSClusterApi, dataPersistence, replication, dataEvictionPolicy, queryPerformanceFactor
  • Endpoints: publicEndpoint, privateEndpoint
  • Timestamps: activatedOn
  • Nested objects:
    • throughputMeasurement: {by, value}
    • clustering: {numberOfShards, regexRules, hashingPolicy}
    • security: {enableDefaultUser, sslClientAuthentication, tlsClientAuthentication, enableTls, sourceIps}
    • backup: {enableRemoteBackup, interval, timeUTC, destination}
  • Arrays: modules, alerts, links
  • Nullable: replicaOf, replica

Subscription (from GET /subscriptions)

Spec: 12 properties

Actual (20+ fields):

  • Basic: id, name, status, memoryStorage, numberOfDatabases
  • Payment: paymentMethodId, paymentMethodType
  • Config: storageEncryption, persistentStorageEncryptionType, deploymentType, publicEndpointAccess
  • Nested: cloudDetails[], subscriptionPricing[], links[]

Notes

  • Local spec: tests/fixtures/cloud_openapi.json (119 schemas)
  • Live spec: 135 schemas, 88 paths (16 newer schemas)
  • GETs are easy to validate; POSTs need test resources

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