Skip to content

feat: API specs update for version latest#72

Open
appwrite-specs[bot] wants to merge 1 commit into
mainfrom
feat-latest-specs
Open

feat: API specs update for version latest#72
appwrite-specs[bot] wants to merge 1 commit into
mainfrom
feat-latest-specs

Conversation

@appwrite-specs
Copy link
Copy Markdown

This PR contains API specification updates for version latest.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 28, 2026

Greptile Summary

This auto-generated PR updates all six API spec files (OpenAPI 3 and Swagger 2, across client/server/console variants) for the Appwrite latest version. It introduces dedicated-database backup policy endpoints, restructures several compute database paths, expands usageGauge with new fields, and updates a number of defaults and schemas.

  • New GET/POST /compute/databases/{databaseId}/backups/policies endpoints added to console specs; computeGetDatabaseMetrics and computeUpdateDatabaseMaintenanceWindow paths reorganized; computeListDatabaseLogs and computeGetDatabaseUsage endpoints removed along with their schemas (dedicatedDatabaseAuditLog, dedicatedDatabaseAuditLogList, dedicatedDatabaseUsage).
  • computeUpdateDatabaseCredentials HTTP method changed from POST to PATCH; database creation type default changed from \"shared\" to \"dedicated\"; metricsEnabled default flipped from true to false; usageGauge schema gains resourceType and resourceId as required fields across all spec variants.
  • Client and server specs gain console as an additional platform for two presences endpoints, and dedicatedDatabases is added to usage-metric filter enums.

Confidence Score: 3/5

The console and server spec changes contain multiple backward-incompatible modifications that will affect existing SDK consumers and generated clients.

The credentials endpoint HTTP method flip (POST→PATCH) will silently break any client calling that path today. Adding resourceType and resourceId as required fields on usageGauge will invalidate responses for code generated from the previous spec. The database type default switching to dedicated means omitting the field now provisions a more expensive resource class. These are real, present behavioral changes — not speculative risks — spread across the most-changed files.

Both console files (open-api3-latest-console.json and swagger2-latest-console.json) carry the most risk and deserve a careful second look before the spec is published.

Important Files Changed

Filename Overview
specs/latest/open-api3-latest-console.json Largest change set: adds backup policy endpoints, restructures metrics/maintenance/logs paths, changes credentials endpoint from POST to PATCH (breaking), flips type default to dedicated (breaking), removes audit-log endpoint and schemas, adds api field to dedicatedDatabase schema
specs/latest/swagger2-latest-console.json Swagger 2 mirror of console spec changes: same breaking POST→PATCH, default changes, endpoint removals, and schema additions as the OpenAPI 3 console file
specs/latest/open-api3-latest-server.json Adds dedicatedDatabases to usage-metric enums, adds console platform to two presences endpoints, updates usageGauge description, and adds resourceType/resourceId as required fields on the usageGauge schema (breaking for existing consumers)
specs/latest/swagger2-latest-server.json Swagger 2 mirror of server spec: same enum additions, presences platform expansion, and usageGauge required-field changes as the OpenAPI 3 server file
specs/latest/open-api3-latest-client.json Minimal change: adds console to platforms list for two presences endpoints; no breaking changes
specs/latest/swagger2-latest-client.json Minimal change: Swagger 2 mirror of client spec, same presences platform addition as OpenAPI 3 client file

Comments Outside Diff (2)

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

    P1 High-impact default change: type now defaults to dedicated

    The type field for database creation changed its default from "shared" to "dedicated". Any client or SDK that omits this field when creating a database will now provision a dedicated (always-on) instance instead of a shared (serverless) one. Dedicated databases are likely more expensive and carry different SLA implications. The same change applies in swagger2-latest-console.json. If this is intentional, it warrants a prominent changelog notice.

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

    P2 Breaking removal: computeListDatabaseLogs endpoint and audit-log schemas dropped

    The GET /compute/databases/{databaseId}/logs endpoint (computeListDatabaseLogs) has been removed, along with the dedicatedDatabaseAuditLog and dedicatedDatabaseAuditLogList schemas. Any consumer that retrieves DDL or security-event audit logs via this endpoint will receive a 404. Ensure this removal is intentional and that a migration path or replacement surface exists for audit log access. The removal is mirrored in swagger2-latest-console.json.

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

Comment on lines +9945 to 9947
"patch": {
"summary": "Update database credentials.",
"operationId": "computeUpdateDatabaseCredentials",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Breaking HTTP method change on credentials endpoint

computeUpdateDatabaseCredentials has changed from POST to PATCH on /compute/databases/{databaseId}/credentials. Any existing SDK client or generated code that calls this endpoint via POST will receive a 405 Method Not Allowed error after this spec ships. The same change is present in swagger2-latest-console.json.

Comment on lines 74337 to +74362
"type": "string",
"description": "The snapshot timestamp.",
"x-example": "2026-04-09T12:00:00.000+00:00"
},
"resourceType": {
"type": "string",
"description": "The resource type.",
"x-example": "dedicatedDatabases"
},
"resourceId": {
"type": "string",
"description": "The resource ID.",
"x-example": "production"
}
},
"required": [
"metric",
"value",
"time"
"time",
"resourceType",
"resourceId"
],
"example": {
"metric": "users",
"value": 1500,
"time": "2026-04-09T12:00:00.000+00:00"
"time": "2026-04-09T12:00:00.000+00:00",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Breaking schema change: usageGauge required fields expanded

resourceType and resourceId are now marked as required on the usageGauge schema across all six spec files. Any existing client that validates API responses against this schema (or any code-generated model that was built from the prior spec) will fail if the server does not unconditionally include these fields. Conversely, any code that serialises a usageGauge without these fields will produce invalid output. Confirm the backend has been updated to always populate both fields before this spec is published.

Comment on lines 8499 to +8502
"metricsEnabled": {
"type": "boolean",
"description": "Enable metrics collection.",
"default": true,
"default": false,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Silent behavior change: metricsEnabled default flipped to false

The default value for metricsEnabled changed from true to false. New databases created without explicitly setting this field will have metrics collection silently disabled, which could cause gaps in observability for operators who expected the previous opt-out behavior. The same change is present in swagger2-latest-console.json.

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.

0 participants