Jake Barnby
5cbbacaae5
refactor(notifications): move adapters under Appwrite\Utopia\Messaging
...
Mirror the upstream Utopia\Messaging package namespace under the
Appwrite\Utopia\Messaging prefix, matching the convention used by
Appwrite\Utopia\Database and Appwrite\Utopia\Response.
2026-05-01 15:51:25 +12:00
Jake Barnby and Claude Opus 4.7
6bde54675e
test(notifications): unit tests for worker and adapters
...
Covers the dedup short-circuit, per-channel dispatch routing, alert
persistence, error tagging, and legacy single-recipient fallback in the
Notifications worker, plus the Console adapter's permission shape and the
Webhook adapter's HMAC-SHA256 signing contract, header layout, response
handling, and unsigned-when-secret-missing behaviour.
Worker dispatch helpers move from private to protected so a test spy can
override them without monkey-patching. The Swoole runtime hook flag
mutation is now guarded by class_exists so the action can run under bare
PHPUnit (no Swoole extension on the test host).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-01 15:51:24 +12:00
Jake Barnby
90ef2d7487
feat(notifications): add Notifications worker and register it
...
Replaces the Mails worker. Resolves recipients into email, console, and
webhook channels, deduplicates deliveries via a hashed dedupKey, and persists
alerts for the console channel.
2026-05-01 12:07:42 +12:00
Jake Barnby
99641f24a5
feat(notifications): add Console and Webhook provider adapters
...
Console adapter persists alerts directly to the project database. Webhook
adapter dispatches signed JSON payloads (HMAC-SHA256) to subscriber URLs.
2026-05-01 12:07:38 +12:00
Jake Barnby
34935b8eed
feat(notifications): add Notification event class
...
Replaces the Mail event with a multi-channel Notification event capable of
dispatching to email, console, and webhook recipients in a single payload.
Maintains the existing Mail surface (setSubject, setRecipient, setBody, etc.)
so existing call sites can be migrated mechanically.
2026-05-01 12:07:32 +12:00
Matej Bačo
8785aa9877
Fix nullable implementation oauth
2026-04-30 12:41:55 +02:00
Matej Bačo
62b7d5558f
Mark params nonrequired
2026-04-30 12:36:45 +02:00
Matej Bačo
b73ba68bfb
Fix oauth order; Fix apple secreting too much
2026-04-30 10:21:38 +02:00
Chirag Aggarwal and GitHub
8ffe48d948
Merge pull request #12179 from appwrite/fix/project-delete-platform-cleanup
2026-04-30 09:43:37 +05:30
Chirag Aggarwal
4050b9ded1
Continue project cleanup after resource failures
2026-04-30 09:28:22 +05:30
Torsten Dittmann and GitHub
6088fd55c8
Merge pull request #12138 from appwrite/feat-out-of-order-chunk-uploads
2026-04-29 18:04:57 +04:00
Chirag Aggarwal
794d8eac5b
Fix project delete platform cleanup ordering
2026-04-29 17:55:06 +05:30
Matej Bačo
e1b8f5bf98
review improvements
2026-04-29 14:04:54 +02:00
Matej Bačo
4d86e67006
Fix missing scopes for tables
2026-04-29 14:03:44 +02:00
Matej Bačo
b3e3b2a330
Fix missing index scopes
2026-04-29 14:00:14 +02:00
Matej Bačo
aaf91f3816
Improve scopes quality
2026-04-29 13:52:13 +02:00
Matej Bačo
bae61e8a05
Improve developer experience of keys endpoints
2026-04-29 13:13:13 +02:00
Torsten Dittmann and GitHub
dfbf45f4cc
Merge branch '1.9.x' into feat-out-of-order-chunk-uploads
2026-04-29 15:03:33 +04:00
Chirag Aggarwal and GitHub
4d1f229ec7
Merge branch '1.9.x' into bump-docker-base-1.2.0
2026-04-29 15:32:32 +05:30
Jake Barnby and GitHub
8ab26aab44
Merge pull request #12171 from appwrite/migration-refractor
...
Refactor migrations API to module style
2026-04-29 21:44:19 +12:00
Chirag Aggarwal and GitHub
2d636ff7ec
Merge branch '1.9.x' into bump-docker-base-1.2.0
2026-04-29 15:06:03 +05:30
Chirag Aggarwal
9d7df34590
fix: clean up php 8.5 runtime deprecations
2026-04-29 14:47:05 +05:30
Matej Bačo
e75fc5b859
Add list scopes endpoint for Console
2026-04-29 10:08:31 +02:00
Matej Bačo and GitHub
aca11ed073
Merge pull request #12170 from appwrite/feat-create-dynamic-keys
...
Feat: create dynamic keys
2026-04-29 09:58:22 +02:00
ArnabChatterjee20k and GitHub
dae9cbcf45
Merge pull request #12070 from appwrite/realtime-action-channels
...
Realtime action channels
2026-04-29 10:49:13 +05:30
Matej Bačo
05f2d2b9cf
Fix tests
2026-04-28 19:29:37 +02:00
Matej Bačo
980762fc3e
Rename from dynamic key to ephemeral key (api keys)
2026-04-28 17:18:06 +02:00
Matej Bačo
c96836b1c0
Improve code quality of folder decoding project ID
2026-04-28 17:10:58 +02:00
Matej Bačo
15917ac7ba
Fix failing tests
2026-04-28 17:05:30 +02:00
Prem Palanisamy
3f5dcc81fd
Refactor migrations API to module style
2026-04-28 15:57:41 +01:00
Matej Bačo
11f80fc2ed
Solve key projectId backwards compatibility
2026-04-28 16:35:40 +02:00
Matej Bačo
ccb0ddd578
Bug&test fixing
2026-04-28 16:18:36 +02:00
Matej Bačo
b2ce95a0cd
Dynamic key backwards compatibility
2026-04-28 16:14:10 +02:00
Matej Bačo
ed9b47f6ce
Migrate project jwt to dynamic api key
2026-04-28 15:57:37 +02:00
Torsten Dittmann
a0ef145b92
Merge branch '1.9.x' of https://github.com/appwrite/appwrite into feat-out-of-order-chunk-uploads
2026-04-28 17:10:56 +04:00
Matej Bačo and GitHub
3d3f5934c6
Merge pull request #11993 from appwrite/feat-public-oauth2-endpoints
...
Feat: Public project OAuth2 configuration API
2026-04-28 12:41:50 +02:00
Torsten Dittmann
9e1f8af103
fix: persist sourceChunksTotal/Uploaded in finalization createDocument paths
...
Greptile review: Functions and Sites finalization branches reached via
single-chunk uploads or out-of-order last-chunk assembly omitted
sourceChunksTotal and sourceChunksUploaded in createDocument. This caused
the retry guard to evaluate 0 === 1 on retry, missing and queuing duplicate
builds.
2026-04-28 13:44:41 +04:00
Torsten Dittmann and GitHub
b055ff1066
Merge branch '1.9.x' into feat-out-of-order-chunk-uploads
2026-04-28 13:19:08 +04:00
Matej Bačo
cb4cff120b
Add Keycloak oauth support
2026-04-28 10:54:13 +02:00
Matej Bačo
49e6a38e7f
Add fusionauth oauth
2026-04-28 10:43:16 +02:00
Matej Bačo
543765a22a
Improve copy
2026-04-28 10:15:45 +02:00
Matej Bačo
e2bb9a9161
Simplify oauth endpoints
2026-04-28 10:08:39 +02:00
Matej Bačo
d25707346f
Add console oauth endpoint
2026-04-28 09:47:27 +02:00
Damodar Lohani and GitHub
cefd063c55
Merge pull request #12165 from appwrite/fix/CLO-4280-getheader-string-coerce
...
fix: coerce non-string header values in Request::getHeader
2026-04-28 10:43:40 +05:45
81321e82d1
Update src/Appwrite/Platform/Modules/Avatars/Http/Favicon/Get.php
...
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-28 10:05:01 +05:45
Damodar Lohani
9637409831
fix: coerce non-string header values in Request::getHeader
...
Closes CLO-4280
2026-04-28 03:54:35 +00:00
Damodar Lohani
c4f6b11706
fix: guard DOMDocument::loadHTML against empty body in favicon endpoint
...
Closes CLO-4279
2026-04-28 03:54:34 +00:00
Matej Bačo
1f16b0d9e7
Fix failing startup
2026-04-27 18:21:21 +02:00
Matej Bačo
015aee087a
Fix write only security
2026-04-27 18:04:22 +02:00
Matej Bačo
ca7f36a9b8
Fix bugs by improving tests
2026-04-27 17:17:57 +02:00