-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Removed $sequence from response through response filters #10115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughThis change introduces a new response filter version (V20) to the application's response handling logic. The V20 filter is implemented as a new class extending the existing filter base class. It processes response content by removing the Possibly related PRs
📜 Recent review detailsConfiguration used: .coderabbit.yaml 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/Appwrite/Utopia/Response/Filters/V20.php (1)
8-11
: Consider clarifying the comment.The comment mentions "removing $sequence from all versions less than 1.8" but the version filtering is actually handled in the controller, not within this filter class itself. This filter simply removes the
$sequence
field when applied.Consider updating the comment to be more precise:
- // removing $sequence from all versions less than 1.8 + // Removes $sequence field from document responses
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
app/controllers/general.php
(2 hunks)src/Appwrite/Utopia/Response/Filters/V20.php
(1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: abnegate
PR: appwrite/appwrite#9743
File: src/Appwrite/Utopia/Request.php:33-36
Timestamp: 2025-05-12T06:05:27.133Z
Learning: In Appwrite's architecture, the Request class should only filter parameters when filters are explicitly registered. If no filters are present, all parameters should be passed through, and the route action is responsible for validating which parameters are present/valid.
Learnt from: ItzNotABug
PR: appwrite/appwrite#9669
File: src/Appwrite/Utopia/Request/Filters/V19.php:56-71
Timestamp: 2025-05-03T05:58:34.294Z
Learning: According to the developer, wildcard select handling in V19 request filter is only needed for `listDocuments` operations, not for `getDocument` operations, despite the doc-block mentioning both.
src/Appwrite/Utopia/Response/Filters/V20.php (1)
Learnt from: ItzNotABug
PR: appwrite/appwrite#9669
File: src/Appwrite/Utopia/Request/Filters/V19.php:56-71
Timestamp: 2025-05-03T05:58:34.294Z
Learning: According to the developer, wildcard select handling in V19 request filter is only needed for `listDocuments` operations, not for `getDocument` operations, despite the doc-block mentioning both.
🧬 Code Graph Analysis (1)
src/Appwrite/Utopia/Response/Filters/V20.php (2)
src/Appwrite/Utopia/Response.php (1)
Response
(151-963)src/Appwrite/Utopia/Request/Filter.php (2)
Filter
(5-16)parse
(15-15)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Linter
- GitHub Check: Setup & Build Appwrite Image
- GitHub Check: Setup & Build Appwrite Image
- GitHub Check: scan
🔇 Additional comments (4)
src/Appwrite/Utopia/Response/Filters/V20.php (2)
11-22
: LGTM! Clean implementation using modern PHP syntax.The match expression appropriately handles the different model types, with proper delegation to
parseDocument
for individual documents andhandleList
for document collections. The default case ensures other models pass through unchanged.
24-28
: LGTM! Safe and straightforward implementation.The
unset()
operation safely removes the$sequence
field without causing errors if the key doesn't exist. The method is focused and does exactly what's needed.app/controllers/general.php (2)
30-30
: LGTM! Import follows established conventions.The import statement is correctly positioned with other response filter imports and follows the consistent naming pattern.
1016-1018
: LGTM! Version filtering correctly implemented.The version check follows the established pattern and correctly applies the V20 filter for API versions less than 1.8.0. This ensures backward compatibility by removing the
$sequence
field from responses for older clients.
Security Scan Results for PRDocker Image Scan Results
Source Code Scan Results🎉 No vulnerabilities found! |
✨ Benchmark results
⚡ Benchmark Comparison
|
What does this PR do?
(Provide a description of what this PR does and why it's needed.)
Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work. Screenshots may also be helpful.)
Related PRs and Issues
Checklist