Commit Graph

35221 Commits

Author SHA1 Message Date
Torsten Dittmann 5091861e6e Merge remote-tracking branch 'origin/1.9.x' into feat/command-execute-migration 2026-05-26 01:09:09 +04:00
Shmuel Fogel 22be6514fb Merge pull request #12293 from appwrite/users-skip-targets
skip subQueryTargets in users route
2026-05-25 12:11:58 +03:00
Jake Barnby 7e4645ffbd Merge branch '1.9.x' into users-skip-targets 2026-05-25 20:09:58 +12:00
Damodar Lohani 4b801273c0 Merge pull request #12384 from appwrite/CLO-4385-fix-event-params-on-chunked-retry
fix(uploads): reset queueForEvents on idempotent chunked-upload retry
2026-05-25 13:04:08 +05:45
Damodar Lohani d6ca57d008 fix(uploads): reset queueForEvents on idempotent chunked-upload retry
The early-return branches added in #12138 for already-complete chunked
uploads bypass the trailing $queueForEvents->setParam('bucketId', ...)
calls. The action returns cleanly, the shutdown hook then calls
Event::generateEvents with empty params, throws \InvalidArgumentException,
and the error handler maps it to HTTP 500.

Reset the queue on each early-return path so the shutdown short-circuits
on the empty event string -- the resource was created on a previous
request and that request already fired the event; replaying it would
double-trigger webhooks/functions.

Applied to Storage Files Create, Functions Deployments Create, and
Sites Deployments Create -- all three endpoints share the same pattern
introduced by #12138.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 06:36:25 +00:00
Chirag Aggarwal 03555fa365 Merge pull request #12376 from appwrite/codex/builds-worker-span-logs
Replace builds worker logs with span attributes
2026-05-25 09:00:38 +05:30
Damodar Lohani 9cbd5be707 Merge pull request #12329 from appwrite/feat/actor-type-constants-CLO-4357
feat!: rename ACTIVITY_TYPE_*, ROLE_APPS, isApp() to ACTOR_TYPE_*, ROLE_KEYS, isKey() + bump utopia-php/audit to ^2.4
2026-05-24 10:02:05 +05:45
Damodar Lohani e9aaea19a4 Merge pull request #12378 from appwrite/CLO-4364-bump-php-runtimes-0.20.1
chore: bump appwrite/php-runtimes to 0.20.1
2026-05-24 09:44:45 +05:45
Damodar Lohani 3fc5fd8fcf chore: bump appwrite/php-runtimes to 0.20.1 2026-05-24 03:08:25 +00:00
Damodar Lohani 5f63100f4c fix(presences): rename isApp() callers to isKey() (new files from upstream 1.9.x merge) 2026-05-24 02:20:47 +00:00
Damodar Lohani 39aeecc58c fix(audits): drop removed 'location' field from event payload (utopia-php/audit 2.4 schema) 2026-05-24 02:20:47 +00:00
Damodar Lohani ce31a4f336 feat!: rename User::ROLE_APPS to ROLE_KEYS and isApp() to isKey() 2026-05-24 02:20:47 +00:00
Damodar Lohani 5f1e537e53 chore: bump utopia-php/audit to ^2.4 2026-05-24 02:20:47 +00:00
Damodar Lohani 27370b6acb feat!: rename ACTIVITY_TYPE_* constants to ACTOR_TYPE_*
Renames the actor identity constants used by the audit/auth flow:

- ACTIVITY_TYPE_USER             -> ACTOR_TYPE_USER             ('user')
- ACTIVITY_TYPE_ADMIN            -> ACTOR_TYPE_ADMIN            ('admin')
- ACTIVITY_TYPE_GUEST            -> ACTOR_TYPE_GUEST            ('guest')
- ACTIVITY_TYPE_KEY_PROJECT      -> ACTOR_TYPE_KEY_PROJECT      ('keyProject')
- ACTIVITY_TYPE_KEY_ACCOUNT      -> ACTOR_TYPE_KEY_ACCOUNT      ('keyAccount')
- ACTIVITY_TYPE_KEY_ORGANIZATION -> ACTOR_TYPE_KEY_ORGANIZATION ('keyOrganization')

Values are unchanged. Call sites updated in:
- app/controllers/shared/api.php
- src/Appwrite/Platform/Workers/Audits.php

Audit payload key rename (userType -> actorType) and utopia-php/audit
bump will land in a follow-up PR.

BREAKING CHANGE: ACTIVITY_TYPE_* global constants are removed. Any
downstream extension or plugin importing those names must be updated
to the ACTOR_TYPE_* equivalents.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 02:20:17 +00:00
Chirag Aggarwal f1abdde9cf Replace builds worker logs with span attributes 2026-05-23 20:37:34 +05:30
Harsh Mahajan 8436fb0175 Merge pull request #12375 from appwrite/fix/organization-projects-api
Fix: organization project API headers and queries
2026-05-22 16:46:45 +05:30
harsh mahajan 6a4dcd76a7 Keep organization projects schema unchanged 2026-05-22 15:45:32 +05:30
harsh mahajan e831b3e952 Add project status index 2026-05-22 15:39:16 +05:30
harsh mahajan 4dec4f2ff2 Fix organization project API headers and queries 2026-05-22 15:32:44 +05:30
Harsh Mahajan aa4c6b6e8f Merge pull request #12374 from appwrite/fix/smtp-test-email-missing-platform-vars
Fix missing platform variables in SMTP test email template
2026-05-22 13:39:59 +05:30
harsh mahajan 2628cc31fc Remove unused $plan injection 2026-05-22 13:12:50 +05:30
harsh mahajan e3768ce8ee Fix missing platform variables in SMTP test email template
The SMTP test email uses email-base-styled.tpl as its base template,
which contains {{platform}}, {{logoUrl}}, {{accentColor}}, and social/
legal link placeholders. These were never passed as template variables,
causing them to render as literal strings (e.g. "{{platform}} logo").

Inject the platform config and pass the variables to MailMessage,
matching the pattern used by OTP and magic-url email flows.

Co-Authored-By: Harsh Mahajan <harsh@appwrite.io>
2026-05-22 13:03:48 +05:30
Jake Barnby dfc5f1c8dc Merge pull request #12371 from appwrite/fix-project-smtp-port-type
fix(project): cast smtpPort to int in response model
2026-05-22 19:09:07 +12:00
Harsh Mahajan e375009a49 Merge pull request #12373 from appwrite/feat-ser-401-expose-build-trigger-fields
Expose providerBranches and providerPaths in Function and Site response
2026-05-22 12:36:59 +05:30
harsh mahajan cf1623bc91 Expose providerBranches and providerPaths in Function and Site response models
These fields were already persisted on update but omitted from the response
model, causing them to disappear after a page refresh in the console.

Co-Authored-By: Harsh Mahajan <harsh@appwrite.io>
2026-05-22 12:27:05 +05:30
Prem Palanisamy e364082577 fix(project): cast smtpPort to int in response model 2026-05-22 07:52:25 +01:00
Luke B. Silver 9951ccdca3 Merge pull request #12338 from appwrite/fix/coroutines-correctness
chore: migrate to utopia-php/http feat-safe-wildcards
2026-05-21 21:58:55 +01:00
loks0n 035cbacbfb Use 'params' injection in V20 filter
Drops the redundant Route::resolveParams() call. The matched path
params are now provided directly via the new frame-local 'params'
injection from utopia-php/http, avoiding a second URL parse.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:09:55 +01:00
loks0n 690c72b789 Use 'route' injection in remaining api/auth init hooks
The 'route' injection is frame-local and non-nullable inside a
matched action's hooks. Replaces \$utopia->match() lookups in api.php
and auth.php init hooks, drops the dead \$utopia inject from the
session shutdown hook, and removes the now-redundant null guards.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:09:41 +01:00
loks0n dd0c8af160 Use 'route' injection in shutdown hooks
The 'route' injection introduced in utopia-php/http feat-safe-wildcards
is frame-local and non-nullable inside a matched action's hooks, so
the shutdown handlers in api.php and mock.php no longer need to call
match() and dereference a nullable result.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:09:41 +01:00
loks0n 933fffd763 Use route template instead of request URI for documentsdb path check
The documentsdb/vectorsdb routes are registered with
setHttpPath('/v1/documentsdb/...') with no aliases, so getPath()
returns a template containing the substring we're matching against
— and matches the prior getMatchedPath() semantics without depending
on the raw request URI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:09:41 +01:00
loks0n 1538927486 chore: migrate to utopia-php/http feat-safe-wildcards
Adopts the new safe-wildcard dispatch primitive from
utopia-php/http#feat-safe-wildcards. Http::execute() is now the
re-entrant dispatch entry point and Http::match() is pure (returns
?RouteMatch). The removed Http::getRoute()/setRoute(),
Route::getMatchedPath(), Route::getPathValues() callsites are migrated
to the new API.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 21:09:41 +01:00
Harsh Mahajan 49bf24d388 Merge pull request #11955 from appwrite/feat-ser-401-custom-triggers
Feat: custom triggers for VCS builds
2026-05-21 19:08:38 +05:30
harsh mahajan f62d765bbf format 2026-05-21 18:46:18 +05:30
harsh mahajan 268dd50106 Use Globstar validator directly, remove BuildTrigger wrapper
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 18:43:34 +05:30
Harsh Mahajan 4eb956b820 Merge branch '1.9.x' into feat-ser-401-custom-triggers 2026-05-21 16:37:24 +05:30
harsh mahajan 01a6d6e4d6 Inline VCS build trigger checks 2026-05-21 15:35:44 +05:30
harsh mahajan c1e902c79c Restore deployments on branch creation 2026-05-21 15:32:35 +05:30
harsh mahajan 9bcb4d7ca7 Clarify renamed PR file filtering 2026-05-21 15:31:05 +05:30
Matej Bačo f77205295b Merge pull request #12309 from appwrite/feat-public-organization-api
Feat: Public organization API
2026-05-21 10:25:59 +02:00
Matej Bačo 781df9d4cf Merge branch '1.9.x' into feat-public-organization-api 2026-05-21 09:42:32 +02:00
Jake Barnby 238b4e447d test: stabilize function logging executions 2026-05-21 18:38:59 +12:00
Jake Barnby 349ac6bbc1 test: stabilize account log pagination 2026-05-21 16:47:45 +12:00
Jake Barnby dca75b059b Merge pull request #12361 from appwrite/fix-smtp-template-regressions
Fix SMTP empty sender regressions
2026-05-21 12:42:51 +12:00
Jake Barnby fd145e988a test: align versions endpoint expectations 2026-05-21 12:18:11 +12:00
Jake Barnby c6ac0f28e4 chore: restore twig security update 2026-05-21 12:16:06 +12:00
Jake Barnby 52d7ebd41e chore: revert to 2.0.0-rc.1 2026-05-21 10:59:37 +12:00
Jake Barnby 41ff2ed48e chore: update lock 2026-05-21 10:37:36 +12:00
harsh mahajan 436064e7cc Revert test fixture change 2026-05-20 23:44:11 +05:30
harsh mahajan a3ae9f39ec Fix SMTP empty sender regressions 2026-05-20 23:40:41 +05:30