Chirag Aggarwal
597b20a6cb
Merge pull request #11795 from rathi-yash/fix-11765-global-variable-creation
...
fix: make variableId optional in createProjectVariable endpoint
2026-04-09 09:34:39 +05:30
Chirag Aggarwal
6b7d9853f9
Merge branch '1.9.x' into fix-11765-global-variable-creation
2026-04-09 09:24:52 +05:30
Jake Barnby
8412790436
Merge remote-tracking branch 'origin/1.9.x' into feat-dedicated-db
2026-04-09 14:02:49 +12:00
Damodar Lohani
d6f51a96a5
Merge branch '1.9.x' into CLO-4175-allow-delete-with-memberships
2026-04-09 07:32:30 +05:45
Damodar Lohani
20f80ac067
Merge pull request #11580 from appwrite/feat-audit-user-type-distinction
...
feat: distinguish user types in audit logs
2026-04-09 06:55:43 +05:45
My Name
8bfa659120
test: add test case for createProjectVariable without variableId
2026-04-08 15:18:13 -04:00
Yash Rathi
65e44d76a1
Merge branch '1.9.x' into fix-11765-global-variable-creation
2026-04-08 14:50:58 -04:00
Jake Barnby
bb07808661
Merge pull request #11820 from appwrite/fix-ttl-message
2026-04-09 03:39:48 +12:00
Luke B. Silver
d18550ff54
Merge pull request #11826 from appwrite/fix/cookie-test-hack
...
fix: use cURL cookie engine for RFC 6265 compliant cookie handling in e2e client
2026-04-08 16:17:04 +01:00
loks0n and Claude Sonnet 4.6
84dc921d41
fix: replace utopia-php/framework with http, fix RFC 6265 cookie handling
...
utopia-php/framework was the old name for utopia-php/http. Replacing it
with utopia-php/http 0.34.19 which fixes getCookie() to use Swoole's
native cookie store (populated via php_raw_url_decode) instead of
re-parsing the raw Cookie header without URL-decoding.
This fixes a production auth bug where Swoole's setcookie() URL-encodes
base64 session values (+ → %2B, / → %2F, = → %3D) in Set-Cookie headers.
RFC 6265 clients (Dart, Swift) reflect these verbatim; the old getCookie()
returned %2B/%2F/%3D to base64_decode() which produced corrupted output,
rejecting valid sessions.
Also updates the e2e test client to use cURL's built-in RFC 6265 cookie
engine (CURLOPT_COOKIEFILE) instead of parse_str() which silently
URL-decoded values, masking the bug in tests. Adds a cookie roundtrip
assertion to testCreateAccountSession.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 15:07:46 +01:00
loks0n and Claude Sonnet 4.6
e2d7dd837d
fix: use cURL cookie engine instead of parse_str for RFC 6265 compliance
...
parse_str() URL-decodes cookie values, causing the test client to behave
differently from real clients (Dart, Swift) which store values verbatim
per RFC 6265. This masked a production bug where base64 session values
containing %3D%3D would fail to decode on real devices.
Replaces the manual Set-Cookie header parsing with cURL's built-in cookie
engine (CURLOPT_COOKIEFILE='') and reads cookies via CURLINFO_COOKIELIST,
which stores and returns values verbatim without any decoding.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-08 15:07:46 +01:00
Jake Barnby
9feb204fd5
Merge pull request #11611 from appwrite/feat-x-oauth2-provider
2026-04-09 01:32:31 +12:00
Jake Barnby
3880f181b3
fix(databases): propagate purge parameter to documentsdb updateCollection
2026-04-09 01:19:18 +12:00
Harsh Mahajan
44a37e9e20
Use Exception for X OAuth2 PKCE encryption errors
...
Align with other OAuth2 adapters that throw base Exception for
configuration and crypto failures instead of RuntimeException.
Made-with: Cursor
2026-04-08 18:41:42 +05:30
Harsh Mahajan
e6cfedd340
addressed greptile comment
2026-04-08 18:27:36 +05:30
Harsh Mahajan
e4d1178e71
simplified code
2026-04-08 17:56:37 +05:30
Harsh Mahajan
929bdcef25
Merge branch '1.9.x' into feat-x-oauth2-provider
2026-04-08 17:55:00 +05:30
Harsh Mahajan
3f725c6be9
changes
2026-04-08 17:44:49 +05:30
Jake Barnby and greptile-apps[bot]
990a32dd9e
Update src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/XList.php
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-08 23:31:55 +12:00
Jake Barnby
c5b8ed9cc1
feat(databases): cache list responses without requiring a select query
2026-04-08 23:02:34 +12:00
Matej Bačo
fec573d23b
Merge pull request #11821 from appwrite/chore-public-project-api
...
Chore: Mark project response format sub-formats as public
2026-04-08 12:32:58 +02:00
Matej Bačo
a144968d70
Fix formatting
2026-04-08 12:08:32 +02:00
Matej Bačo
6fa0724404
Mark project response format sub-formats as public
2026-04-08 11:52:12 +02:00
Jake Barnby
b1ce71e6b0
(chore): fmt
2026-04-08 21:35:49 +12:00
Jake Barnby
939092726c
test(databases): add regression for purge=true list cache invalidation
2026-04-08 21:31:42 +12:00
Jake Barnby
c6f8599c75
feat(databases): add purge parameter to updateCollection and updateTable
2026-04-08 21:31:38 +12:00
Jake Barnby
91d8519940
refactor(databases): restructure list response cache and clarify ttl description
2026-04-08 21:31:34 +12:00
Matej Bačo
a90f79f1c1
Merge pull request #11650 from appwrite/feat-public-project-keys
...
Feat: Public keys API
2026-04-08 11:15:04 +02:00
Matej Bačo
f880b6e8c3
Fix failing tests
2026-04-08 10:52:20 +02:00
Matej Bačo
b8d65326e6
Fix failing tests
2026-04-08 10:34:18 +02:00
Matej Bačo
a9fd82e406
New tests
2026-04-08 10:32:20 +02:00
Matej Bačo
a8c2491fbb
Fix platform scopes
2026-04-08 10:17:48 +02:00
Jake Barnby
7f6486ec80
Merge pull request #11762 from bhardwajparth51/fix-10923-realtime-atomic-payload
2026-04-08 20:16:55 +12:00
Matej Bačo
388cec1737
Merge branch '1.9.x' into feat-public-project-keys
2026-04-08 10:16:22 +02:00
Parth Bhardwaj
2f5a49a37d
Merge branch '1.9.x' into fix-10923-realtime-atomic-payload
2026-04-08 13:39:54 +05:30
Matej Bačo
1f93184c42
Merge pull request #11615 from appwrite/feat-public-platform-api
...
Feat: public platform API
2026-04-08 10:08:10 +02:00
Jake Barnby
7d9cf48ca3
Merge pull request #11750 from appwrite/bump-database-version2
2026-04-08 20:04:25 +12:00
Matej Bačo
eef2a7abdf
Fix scopes
2026-04-08 10:01:52 +02:00
Matej Bačo
c7a022ba43
Simplify after discussions
2026-04-08 09:54:57 +02:00
Matej Bačo
96a84a8fd7
Merge branch '1.9.x' into feat-public-project-keys
2026-04-08 09:45:15 +02:00
Matej Bačo
cea242c66f
Merge branch '1.9.x' into feat-public-platform-api
2026-04-08 09:29:54 +02:00
Matej Bačo
ce4eb563b3
AI review fixes
2026-04-08 09:29:12 +02:00
Matej Bačo
2307d637fb
Revert new patch version
2026-04-08 09:10:02 +02:00
premtsd-code
0aa72aafae
Merge branch '1.9.x' into bump-database-version2
2026-04-08 11:32:22 +05:30
Chirag Aggarwal
6e1f0d57af
Merge pull request #11817 from appwrite/fix/specs-unresolved-model
...
fix: throw RuntimeException for unresolved response models in spec generation
2026-04-08 11:08:30 +05:30
Chirag Aggarwal
62b6ef06e6
fix: add swoole extension to specs CI job
2026-04-08 10:49:50 +05:30
Chirag Aggarwal
f5ab593261
fix: make Project model public for server SDK spec generation
...
The project.updateLabels route uses AuthType::KEY which makes it
available on the server platform, but the Project model had public=false
causing it to be filtered out during spec generation.
2026-04-08 10:47:37 +05:30
Chirag Aggarwal
dd4a43b78c
fix: throw RuntimeException for unresolved response models in spec generation
...
Spec generation silently produced a fatal error when a response model
string could not be resolved to a registered model object. Now throws a
clear RuntimeException in both Swagger2 and OpenAPI3 formats, for both
single and array model responses.
Also adds a CI job to run spec generation on every PR so unresolved
models are caught before merge.
2026-04-08 10:41:43 +05:30
premtsd-code
c4c56283e5
Merge branch '1.9.x' into bump-database-version2
2026-04-08 10:33:58 +05:30
Chirag Aggarwal
f71a98a527
Merge pull request #11816 from appwrite/fix/email-session-cache-purge
...
fix: persist session before purging user cache in email/password login
2026-04-08 10:25:19 +05:30