Skip to content

feat: API specs update for version latest#50

Merged
ChiragAgg5k merged 1 commit intomainfrom
feat-latest-specs
Apr 16, 2026
Merged

feat: API specs update for version latest#50
ChiragAgg5k merged 1 commit intomainfrom
feat-latest-specs

Conversation

@appwrite-specs
Copy link
Copy Markdown

This PR contains API specification updates for version latest.

@ChiragAgg5k ChiragAgg5k merged commit 7034317 into main Apr 16, 2026
2 checks passed
@ChiragAgg5k ChiragAgg5k deleted the feat-latest-specs branch April 16, 2026 08:45
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 16, 2026

Greptile Summary

This bot-generated PR adds discriminator (OpenAPI 3) and x-discriminator (Swagger 2) blocks to oneOf/anyOf arrays for attribute, column, and platform schemas across all spec variants, and removes four document/collection log endpoints (documentsDBListDocumentLogs, documentsDBListCollectionLogs, vectorsDBListDocumentLogs, vectorsDBListCollectionLogs) from the console specs. All weight values are adjusted uniformly as a consequence of the endpoint removals.

  • The standard discriminator.mapping is incomplete for attributeEmail, attributeEnum, attributeUrl, and attributeIp subtypes — all share type=\"string\" and would be resolved to attributeString by standard-compliant tools. The custom x-mapping extension handles these correctly for Appwrite's generators.
  • The removal of the four log endpoints is a breaking change for any console UI or SDK code that calls them — please confirm this is intentional.

Confidence Score: 4/5

Safe to merge if the log endpoint removals are intentional; the discriminator incompleteness is a known OpenAPI limitation mitigated by x-mapping.

Two P2 findings: an incomplete standard discriminator mapping for format-differentiated attribute types (mitigated by x-mapping for Appwrite's own generators) and the removal of 4 console log endpoints that could break dependent code if unintentional. Both warrant confirmation before merging.

specs/latest/open-api3-latest-console.json and specs/latest/swagger2-latest-console.json (endpoint removals); specs/latest/open-api3-latest-server.json and specs/latest/swagger2-latest-server.json (discriminator completeness)

Important Files Changed

Filename Overview
specs/latest/open-api3-latest-server.json Adds discriminator blocks to oneOf/anyOf arrays for attributes, columns, and platforms; standard mapping is incomplete for format-based attribute types (email/enum/url/ip); no operationId changes
specs/latest/open-api3-latest-console.json Removes 4 log endpoints (documentsDBListDocumentLogs, documentsDBListCollectionLogs, vectorsDBListDocumentLogs, vectorsDBListCollectionLogs); adds discriminator blocks; weight reorderings
specs/latest/open-api3-latest-client.json Weight-only adjustments for transaction and document endpoints; no structural or schema changes
specs/latest/swagger2-latest-console.json Mirrors OpenAPI3 console changes: removes 4 log endpoints and adds x-discriminator (Swagger 2 equivalent) blocks; weight adjustments
specs/latest/swagger2-latest-server.json Mirrors OpenAPI3 server changes: adds x-discriminator blocks to attribute and column schemas; same incomplete mapping pattern for format-based types
specs/latest/swagger2-latest-client.json Weight-only adjustments mirroring the OpenAPI3 client changes; no structural changes

Comments Outside Diff (2)

  1. specs/latest/open-api3-latest-server.json, line 1 (link)

    P2 Incomplete discriminator mapping for format-differentiated attribute types

    The standard discriminator.mapping added to attributeList.attributes.items (and likewise columnList.columns.items, table.columns.items) maps "string"attributeString, but four schemas in the same anyOf also carry type="string" and are distinguished only by their format: attributeEmail (format=email), attributeEnum (format=enum), attributeUrl (format=url), and attributeIp (format=ip).

    A standard OpenAPI-compliant tool following discriminator.propertyName: "type" will resolve all four of those to attributeString, silently dropping type-specific fields (e.g., enum elements). The x-mapping extension (using both type + format) is the correct path for Appwrite's own generators, but third-party tools relying on the standard discriminator would get incorrect deserialization for these four subtypes.

    If third-party tooling compatibility is a goal, consider using a dedicated discriminator key per schema (e.g., "email", "enum", "url", "ip" as the type field values) so the standard mapping is unambiguous. Otherwise, documenting that x-mapping is required for full fidelity would help consumers.

  2. specs/latest/open-api3-latest-console.json, line 1 (link)

    P2 Four log endpoints removed from documentsDB and vectorsDB

    The following console-scoped endpoints are removed in this update:

    • GET /documentsdb/{databaseId}/collections/{collectionId}/documents/{documentId}/logs (documentsDBListDocumentLogs)
    • GET /documentsdb/{databaseId}/collections/{collectionId}/logs (documentsDBListCollectionLogs)
    • GET /vectorsdb/{databaseId}/collections/{collectionId}/documents/{documentId}/logs (vectorsDBListDocumentLogs)
    • GET /vectorsdb/{databaseId}/collections/{collectionId}/logs (vectorsDBListCollectionLogs)

    If the underlying API endpoints still exist but are simply not intended to be exposed in this spec variant, this is intentional. If they have been removed from the API, any console UI or generated SDK code calling these endpoints will receive 404 responses. Please confirm this is intentional and that dependent code paths have been updated.

Reviews (1): Last reviewed commit: "chore: update API specs and SDK examples" | Re-trigger Greptile

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.

1 participant