Commit graph

429 commits

Author SHA1 Message Date
ArnabChatterjee20k
0d2a4da347 updated the presence helper 2026-04-17 12:01:56 +05:30
ArnabChatterjee20k
2ef62b309e Refactor presence upsert logic to handle duplicate entries. Added exception handling for MongoDB adapter to update existing documents instead of creating new ones when presenceId mismatches occur. 2026-04-16 18:14:13 +05:30
ArnabChatterjee20k
a480d8ed73 updated realtime 2026-04-16 18:11:01 +05:30
ArnabChatterjee20k
4fea92c9cb Refactor realtime authorization handling and enhance presence event tests. Updated authorization roles synchronization in the realtime connection and added exception handling for user retrieval. Improved connection pool size logic for PubSub workers and added comprehensive tests for presence events to ensure correct message ordering and validation. 2026-04-16 17:47:34 +05:30
ArnabChatterjee20k
0e3a017d50 added realtime trigger 2026-04-16 12:35:50 +05:30
ArnabChatterjee20k
d28cce761d updated to have permissions order deterministic 2026-04-16 11:20:52 +05:30
ArnabChatterjee20k
7e18e6f8c5 updated realtime and tests 2026-04-15 16:30:17 +05:30
ArnabChatterjee20k
968b1c0861 updated configs 2026-04-15 16:11:05 +05:30
ArnabChatterjee20k
2ce39768c3 added delete of presence on disconnect 2026-04-15 13:38:34 +05:30
ArnabChatterjee20k
69bc935517 Add permission handling for presence updates and enhance error validation in realtime messages 2026-04-15 13:21:26 +05:30
Chirag Aggarwal
584acafb1d
Merge branch '1.9.x' into feat-services-protocols-apis 2026-04-13 10:45:42 +05:30
Chirag Aggarwal
938e65cb02
Merge pull request #11831 from appwrite/codex/remove-realtime-http-dependency
Use dedicated connection resources in realtime
2026-04-10 12:54:45 +05:30
ArnabChatterjee20k
2e6f3f5c14 typo 2026-04-10 11:13:03 +05:30
ArnabChatterjee20k
7b3d9bae03 updated authorization 2026-04-10 11:04:44 +05:30
Chirag Aggarwal
d81a1154e3 refactor: isolate realtime connection resources 2026-04-10 10:19:41 +05:30
Chirag Aggarwal
2ca551123d use connection container 2026-04-10 09:25:00 +05:30
Matej Bačo
0293da1e22 Improve test for backwards compatibility 2026-04-09 15:54:00 +02:00
Matej Bačo
a4a0c4175d Implement new endpoints in /v1/project for services and protocols 2026-04-09 15:45:06 +02:00
ArnabChatterjee20k
912dbda159 updated type 2026-04-09 18:16:09 +05:30
ArnabChatterjee20k
410a050244 updated 2026-04-09 18:04:01 +05:30
ArnabChatterjee20k
9cf45816c2 added triggering stats for messaging based subscription during the start 2026-04-09 17:38:25 +05:30
Chirag Aggarwal
357d6482f9 Remove realtime HTTP app dependency 2026-04-09 10:52:31 +05:30
ArnabChatterjee20k
da2444ede2
Merge branch '1.9.x' into realtime-query-message-payload 2026-04-07 17:36:29 +05:30
ArnabChatterjee20k
bc224de751 Add userId to connection info in Realtime adapter and simplify userId fetching 2026-04-07 17:35:48 +05:30
ArnabChatterjee20k
ca62504b5a Enhance realtime message handling to support initial connection payload and improve query subscription logic 2026-04-07 16:55:10 +05:30
ArnabChatterjee20k
d5fe5c34af Validate subscribe payload format in realtime message handling 2026-04-06 17:14:12 +05:30
ArnabChatterjee20k
6bc9adece8 Refactor realtime message handling to send subscriber keys and add comprehensive tests for subscription message upsert behavior 2026-04-06 17:10:57 +05:30
ArnabChatterjee20k
97d46c6273 Remove redundant subscription removal call in realtime message handling 2026-04-06 16:58:08 +05:30
ArnabChatterjee20k
9d78a8e6b6 Add stats tracking for outbound subscription messages in realtime 2026-04-06 16:57:06 +05:30
ArnabChatterjee20k
d12a6f5168 Refactor realtime message payload handling for improved validation and parsing 2026-04-06 16:41:42 +05:30
ArnabChatterjee20k
0f47e6ea28 Enhance subscription message documentation for clarity on upsertion behavior 2026-04-06 15:59:22 +05:30
ArnabChatterjee20k
187fde4a4e Refactor realtime subscription handling and enhance query validation in tests 2026-04-06 14:05:42 +05:30
ArnabChatterjee20k
bfbf180aee Refactor realtime message handling and enhance query validation tests 2026-04-02 18:32:27 +05:30
ArnabChatterjee20k
df4dbcf607 updated user roles 2026-04-02 17:02:46 +05:30
ArnabChatterjee20k
29b0ebb3bd updated query subscription 2026-04-02 16:28:00 +05:30
ArnabChatterjee20k
f0ccd1f586 added message based query payload to realtime 2026-04-02 15:56:56 +05:30
Chirag Aggarwal
4a905a6ac9 Merge branch '1.9.x' into feat/migrate-di-container
Resolve conflicts keeping DI container migration (container->set pattern)
while incorporating 1.9.x fixes: PHPStan unused variable cleanup in
GraphQL Resolvers, (int) casts in Builds.php, and phpstan-baseline removal.
2026-04-02 11:17:32 +05:30
Chirag Aggarwal
33f8e35b62 chore: remove phpstan baseline 2026-04-01 23:01:11 +05:30
Chirag Aggarwal
908e408480 Merge remote-tracking branch 'origin/1.9.x' into feat/migrate-di-container
# Conflicts:
#	app/init/resources.php
#	composer.json
#	composer.lock
#	phpstan-baseline.neon
2026-04-01 11:46:13 +05:30
Claude
32005c0a49
fix: remove redundant new User(getArrayCopy()) wrapping
Since setDocumentType('users', User::class) is registered on all
database instances, getDocument('users', ...) already returns User
instances. The new User($doc->getArrayCopy()) pattern was redundant
and could lose internal state managed by the database layer.

https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
2026-03-29 03:04:43 +00:00
Claude
9aa488c961
fix: wrap getDocument('users') results in User instances
The user resource and realtime handlers return Document objects from
getDocument(), but isPrivileged()/isApp() are now instance methods on
the User class. Wrapping results with new User() ensures the correct
type is returned for all code paths.

https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
2026-03-26 02:47:57 +00:00
Claude
7aff75ae1c
refactor: convert User::isApp() and User::isPrivileged() from static to instance methods
All call sites now use $user->isApp() and $user->isPrivileged() instance
syntax instead of static User::isApp() / $user::isPrivileged() calls.
Added setUser() to Request class for consistency with Response.

https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
2026-03-26 02:47:56 +00:00
Claude
669f323156
refactor: use $user:: for isPrivileged() to make privilege checks extensible
Replace all static User::isPrivileged() calls with $user::isPrivileged()
across the codebase. Since $user is resolved via setDocumentType, this
allows subclasses to override the privilege check without CE needing to
know about downstream-specific roles.

https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
2026-03-26 02:46:48 +00:00
Chirag Aggarwal
d932527561 add null collacing 2026-03-23 10:27:10 +05:30
Chirag Aggarwal
6421bc8689 fn name 2026-03-23 10:08:19 +05:30
Chirag Aggarwal
10cc6a8040 fix global pools state 2026-03-20 14:09:43 +05:30
Chirag Aggarwal
9ecdbf5950 func exists 2026-03-20 13:13:07 +05:30
Chirag Aggarwal
6700340ef3 fix realtime 2026-03-19 23:26:49 +05:30
Chirag Aggarwal
2095a94bc5
Merge branch '1.8.x' into feat/migrate-di-container 2026-03-18 14:19:59 +05:30
Eldad A. Fux
6c383b41f5
Merge pull request #11573 from appwrite/fix-realtime-errors
Fix realtime errors
2026-03-17 22:48:30 +01:00