Skip to content

fix: remove produces extension from latest canonical spec - #110

Merged
ChiragAgg5k merged 1 commit into
mainfrom
clo-4377-produces-latest
Sep 8, 2026
Merged

fix: remove produces extension from latest canonical spec#110
ChiragAgg5k merged 1 commit into
mainfrom
clo-4377-produces-latest

Conversation

@ChiragAgg5k

Copy link
Copy Markdown
Member

Summary

Publish the genuine latest canonical document without x-appwrite.produces, following Appwrite #13524 (merged 75535982188c586d404cddc3e748a56d60089bd6). Tracks CLO-4377.

Targets main. Does not duplicate the pending 2.0.x examples/spec update in #108.

Draft gate: Cloud's Composer lock promotion to the merged Appwrite revision is prepared locally but not yet accepted upstream. Accept that producer promotion before merging these artifacts. The SDK generator consumer #1888 remains release-gated on publication of both canonical documents.

Actual emitted spec change

Excerpt for accountDeleteBillingAddress:

 "responses": {
     "204": {"description": "No content"}
 },
 "x-appwrite": {
-    "produces": ["application/json"],
     ...
 }

Exactly 49 extension removals, with required trailing-comma adjustments only. No response body is invented. All other parsed values are identical: 1,020 operations, 77 aliases, 16 security schemes, including platform availability, aliases, auth, model schemas, runtime enums and explicit response media. Invoice binary response declarations remain intact.

Generated SDK effect

Actual Rust console output from this new canonical document using #1888:

pub async fn delete_billing_address(
    &self,
    billing_address_id: impl Into<String>,
) -> crate::error::Result<()> {
api_headers.insert("accept".to_string(), "application/json".to_string());

The previous generator inferred Result<serde_json::Value> from the removed extension. Result<()> is an intentional breaking Rust API correction; SDK release notes/versioning must account for it. Explicit response media remains authoritative; JSON is the negotiation fallback when responses declare no content.

Validation

  • Real Cloud CLI: php app/cli.php specs --version=latest --mode=normal --git=no, in an isolated linux/amd64, network-disabled container matching the publisher's architecture, before and after the Composer-installed dependency promotion. Whole emitter output copied without JSON editing.
  • Same-producer baseline exactly matches this PR's prerequisite spec semantically. All non-extension values are unchanged.
  • Both before/after canonical documents pass OpenAPI schema validation; both specs branches pass 101/101 local-reference checks.
  • Both final canonical documents are byte-identical. Generated Rust console smoke succeeds.
  • No unit tests added; no examples, historical Swagger, templates, or per-platform documents changed.

Generation architecture

The earlier apparent legacy Deno enum drift was local ARM64 filtering, not an API change. Regeneration on the publisher's x86 architecture retains those enums. No unrelated runtime removal is included.

Testing screenshot below captures actual command output (not UI e2e).

validation

@ChiragAgg5k
ChiragAgg5k marked this pull request as ready for review September 8, 2026 11:07
@ChiragAgg5k
ChiragAgg5k merged commit 3adab28 into main Sep 8, 2026
1 check passed
@greptile-apps

greptile-apps Bot commented Sep 8, 2026

Copy link
Copy Markdown

Greptile Summary

This PR corrects the canonical latest OpenAPI document by removing misleading JSON response metadata from bodyless operations.

  • Removes exactly 49 x-appwrite.produces properties.
  • Every affected operation declares only a bodyless 204 response.
  • Leaves all other parsed specification values unchanged.
  • Preserves valid JSON structure and does not modify local references.

Confidence Score: 5/5

The PR appears safe to merge because the canonical specification remains structurally valid and the removals consistently align response metadata with bodyless 204 responses.

Parsed comparison found exactly the 49 intended property removals and no unrelated value changes; each affected operation has no response content, and no actionable correctness, security, or quality issue remains.

Important Files Changed

Filename Overview
specs/latest/open-api3-latest.json Removes 49 misleading JSON production hints from operations that declare bodyless 204 responses, with no other semantic changes.

Reviews (1): Last reviewed commit: "fix: remove produces extension from late..." | 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