Compare commits

...
Author SHA1 Message Date
Atharva Deosthale c1e2d4593d Merge remote-tracking branch 'origin/1.8.x' into add-cursor-plugin
# Conflicts:
#	composer.lock
2026-02-25 15:41:05 +05:30
Jake BarnbyandGitHub 32ef15f89a Merge pull request #11398 from appwrite/fix-cast 2026-02-25 09:58:35 +00:00
Jake Barnby 7dc50b43dc Fix method 2026-02-25 22:20:52 +13:00
Jake Barnby a43e94990b Lint 2026-02-25 21:49:31 +13:00
Jake Barnby c91252d94c Switch types 2026-02-25 21:42:28 +13:00
Damodar LohaniandGitHub b4a32c8265 Merge pull request #11397 from appwrite/revert-11387-feat-update-project-usage
Revert "Fix: add missing sites bandwidth to project usage"
2026-02-25 13:35:55 +05:45
Jake Barnby 62d03199b6 Force ID as int 2026-02-25 20:44:44 +13:00
Damodar LohaniandGitHub 244606ff1d Revert "Fix: add missing sites bandwidth to project usage" 2026-02-25 12:56:05 +05:45
Atharva Deosthale 9ee6304513 format 2026-02-25 10:35:32 +05:30
Atharva Deosthale ff4e756958 Merge remote-tracking branch 'origin/1.8.x' into add-cursor-plugin
# Conflicts:
#	composer.lock
#	src/Appwrite/Platform/Tasks/SDKs.php
2026-02-25 10:32:51 +05:30
Atharva Deosthale 19df20de61 composer 2026-02-25 10:18:37 +05:30
Eldad A. FuxandGitHub ac0aa81629 Merge pull request #11378 from appwrite/fix-missing-email-warning
OAuth provider handling fix
2026-02-24 14:36:09 +01:00
Eldad A. FuxandGitHub 0c83fa40e4 Merge pull request #11380 from appwrite/feat-fix-email-key
Feat fix for missing null safety on console redirects
2026-02-24 14:35:50 +01:00
Eldad A. FuxandGitHub f832b96e3b Merge pull request #11384 from appwrite/fix-proper-error-namespace-and-method
Update composer.lock and enhance error logging in HTTP requests
2026-02-24 14:30:47 +01:00
eldadfux 2b5307715a Merge remote 1.8.x
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	composer.lock
2026-02-24 14:25:56 +01:00
Jake BarnbyandGitHub aa7dfd0bd1 Merge pull request #11312 from appwrite/feat-mongodb 2026-02-24 09:32:22 +00:00
Jake BarnbyandClaude Opus 4.6 8dfc4abfe0 fix: cache DatabasesStringTypesTest setup before waiting
Same cache-before-wait pattern as DatabasesBase to prevent
cascading 409 failures when attribute polling times out.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:47:56 +13:00
Damodar LohaniandGitHub b3f7256156 Merge pull request #11387 from appwrite/feat-update-project-usage
Fix: add missing sites bandwidth to project usage
2026-02-24 12:51:39 +05:45
Jake BarnbyandClaude Opus 4.6 3b3177722b fix: cache setup data before waiting to prevent 409 on retry
When setupAttributes() or setupIndexes() timed out during
waitForAllAttributes/waitForAllIndexes, the cache was never populated.
Subsequent test methods calling setup again would find empty cache,
reuse the same collection IDs (from collection cache), and attempt to
re-create existing attributes/indexes, resulting in 409 Conflict errors.

Fix: populate the static cache immediately after successful creation
(202 assertions), before the wait calls. This ensures retries skip
creation and go straight to waiting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:06:20 +13:00
Damodar Lohani 2898d57243 Fix: Add missing sites bandwidth in the project usage 2026-02-24 06:26:52 +00:00
Jake BarnbyandClaude Opus 4.6 3306a03e8e chore: add 5-minute retry wait to reduce CI resource contention
With 120+ jobs starting simultaneously, transient failures are common
due to resource contention. Adding retry_wait_seconds: 300 to all
php-retry action usages gives the CI environment time to settle
before retrying failed tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 19:07:42 +13:00
Jake BarnbyandClaude Opus 4.6 e1791e17c3 fix: increase attribute/index polling timeouts to 240s for shared mode CI
Shared tables mode experiences significant worker queue contention during
parallel test execution. 120s was insufficient for attribute processing
in Shared V1 mode and occasionally for PostgreSQL under load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:50:46 +13:00
Jake BarnbyandClaude Opus 4.6 e69c1ddc7f fix: add executor readiness check to Site Screenshots CI jobs
The Site Screenshots CI jobs were missing the "Wait for Open Runtimes"
step that other E2E test jobs have, causing deployments to fail with
"Failed to connect to exc1 port 80" when the executor wasn't ready yet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:37:15 +13:00
Jake BarnbyandClaude Opus 4.6 9a97694a19 fix: resolve flaky E2E tests for realtime, avatars, migrations, and GraphQL
- Realtime: Use getLastEmailByAddress with userId probe instead of getLastEmail
  to prevent email race conditions in parallel execution; add status assertions
  on verification/recovery PUT responses for clearer failure diagnostics
- Avatars: Wrap external URL image fetches in assertEventually to retry
  transient network failures from appwrite.io
- Migrations: Increase performMigrationSync timeout from 10s to 60s
- GraphQL: Increase attribute polling timeouts from 60s to 120s with 500ms
  intervals to accommodate PostgreSQL under CI load

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:51:22 +13:00
Jake BarnbyandClaude Opus 4.6 7df86a3838 fix: cast attribute defaults after queue deserialization and improve test robustness
- Fix float/int/bool attribute creation failures caused by type loss
  during queue serialization in the Databases worker
- Rework session limit test to retry session creation for cache
  propagation in shared mode
- Increase GraphQL attribute polling timeouts from 30s to 60s
- Increase SchemaPolling waitForAllAttributes timeout to 180s
- Increase Realtime WebSocket client timeout from 30s to 45s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:02:23 +13:00
Jake BarnbyandClaude Opus 4.6 07dc088e4e fix: improve E2E test probes and enable function webhook events
- Fix testPasswordRecoveryUrlParams: use URL-based probes instead of
  userId-based probes to distinguish between test cases that share the
  same user
- Enable functions.* webhook events in ProjectCustom for function
  webhook tests that were silently passing by matching stale events
- Fix setupTeamMembership: add email address probe to getLastEmail to
  prevent picking up wrong invitation email
- Fix getLastEmail multi-email race: assert count inside assertEventually
  when requesting multiple emails

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:15:59 +13:00
Jake BarnbyandClaude Opus 4.6 5cb36a0a3a fix: resolve E2E test race conditions in parallel execution
- Add probe callback support to getLastEmail(), getLastEmailByAddress(),
  and getLastRequest() to filter results by content before accepting
- Fix variable name typo in TeamsCustomClientTest ($email vs $lastEmail)
- Add event probes to all 56 webhook test getLastRequest() calls to
  filter by specific event pattern (resource ID + action)
- Add email probes to Account OTP/recovery/magic-url tests to wait for
  the correct email (security phrase, Password Reset subject, etc.)
- Add email probes to Projects tests for recovery email URL matching
- Increase FunctionsSchedule future time from 1min to 2min to avoid
  timing issues when seconds are zeroed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:43:15 +13:00
Jake Barnby 811a759a8f Update lock 2026-02-24 14:14:14 +13:00
Jake Barnby 1c457c3a80 Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2026-02-24 14:07:14 +13:00
Jake Barnby 1cb7c4b3f6 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	.gitignore
#	composer.lock
#	tests/e2e/Services/Teams/TeamsCustomClientTest.php
2026-02-24 14:06:57 +13:00
Jake Barnby bada1a7c05 Timing updates 2026-02-24 14:00:07 +13:00
Luke B. SilverandGitHub 850b35d73c Merge pull request #11385 from appwrite/fix/missing-span-import
hotfix/ incorrect span import
2026-02-23 23:35:55 +00:00
loks0nandClaude Opus 4.6 8a365b781d Fix incorrect Span import in StatsResources worker
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:04:52 +00:00
eldadfux fb8a1057af Update composer.lock 2026-02-23 19:47:22 +01:00
eldadfux ae4c02221f Merge remote 1.8.x
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	composer.lock
2026-02-23 19:46:48 +01:00
eldadfux 3b1b7bd611 Update composer.lock and enhance error logging in HTTP requests
- Updated versions for several dependencies in composer.lock, including utopia-php/database (5.3.3), utopia-php/detector (0.2.4), utopia-php/dns (1.6.5), utopia-php/framework (0.33.40), utopia-php/queue (0.15.6), and utopia-php/storage (1.0.1).
- Improved error logging in app/http.php and app/controllers/general.php to handle null routes gracefully, ensuring that the HTTP method and request URI are logged correctly even when the route is not defined.
2026-02-23 19:35:52 +01:00
Matej BačoandGitHub f97e893238 Merge pull request #11369 from appwrite/fix-email-url-params-encoding
Fix: url params in redirect URLs
2026-02-23 16:52:44 +01:00
Matej BačoandGitHub f8783faf1e Merge branch '1.8.x' into fix-email-url-params-encoding 2026-02-23 16:52:32 +01:00
f0c8f7e00e Update tests/e2e/Services/Projects/ProjectsConsoleClientTest.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-23 16:49:17 +01:00
Matej Bačo 8946d3b7ee AI review fixes 2026-02-23 16:19:19 +01:00
Jake BarnbyandGitHub e92b80b3cb Merge branch '1.8.x' into feat-mongodb 2026-02-24 02:53:40 +13:00
Chirag AggarwalandGitHub 99df4c4d02 Merge pull request #11360 from appwrite/feat/assistant-sdk-release-automation
feat(sdks): automate AI SDK release version and changelog updates
2026-02-23 18:30:58 +05:30
Luke B. SilverandGitHub 8c48c764a9 Merge pull request #11383 from appwrite/telemetry/better-stats-logging
Remove superfluous logs from StatsResources worker
2026-02-23 12:21:44 +00:00
Chirag Aggarwal f9d6594955 composer 2026-02-23 17:43:11 +05:30
Chirag Aggarwal 40d5a9e43b Merge branch '1.8.x' into feat/assistant-sdk-release-automation 2026-02-23 17:42:52 +05:30
Matej Bačo f4ee6488ac Add tests for custom url schema in redirects 2026-02-23 13:09:26 +01:00
Matej Bačo 5414cc67ab Finalize html encoding rework 2026-02-23 12:54:20 +01:00
Chirag AggarwalandGitHub cf9148f0ac Merge pull request #11381 from appwrite/chore/fix-specs-generation
chore: remove examples from repo after migration to specs repo
2026-02-23 17:22:51 +05:30
Matej Bačo 2b6b66d8a4 Remove html encoding for urls 2026-02-23 12:45:18 +01:00
loks0nandClaude Opus 4.6 44cd5bb7f0 Remove superfluous Console logs from StatsResources worker
Replace redundant Console::info/error/success logs with Span::add
for document count — all other details (project ID, sequence, region,
database, duration) are already captured by the telemetry span.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:36:11 +00:00
Jake BarnbyandClaude Opus 4.6 95c67ea155 fix: resolve merge conflict markers in composer.lock
The merge of 1.8.x into feat-mongodb left unresolved conflict markers
in composer.lock, breaking all CI checks. Resolved in favor of
feat-mongodb values (minimum-stability: dev, prefer-stable: true)
to match composer.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:17:55 +13:00
Jake BarnbyandGitHub 0019f01492 Merge branch '1.8.x' into feat-mongodb 2026-02-23 21:21:26 +13:00
Chirag Aggarwal c07a7b0ea4 fix: auto-create specs directory and improve SDK error messages
- Auto-create specs directory in Specs.php if it doesn't exist

- Add helpful error message in SDKs.php when specs are missing

- Remove docs/examples from git tracking (added to .gitignore)
2026-02-23 11:06:21 +05:30
Chirag AggarwalandGitHub e2d6b76a88 Merge pull request #11368 from appwrite/feat/assistant-sdk-release-artifacts
chore: split sdk release artifacts from automation
2026-02-23 09:53:03 +05:30
eldadfux 9cabe15219 Fix for console redirect warning 2026-02-22 20:38:42 +01:00
eldadfux addba2cdb7 Refactor OAuth provider checks in account controller
Updated the handling of OAuth provider configurations to ensure that defaults are set when parameters are missing. This change improves error handling by checking for null values and ensuring class existence before proceeding with OAuth operations.
2026-02-22 11:42:12 +01:00
Jake BarnbyandClaude Opus 4.6 f2759cb65a fix: remove file caching, disable --functional for Databases/Functions/Realtime
Services that depend on shared static state between test methods
(Databases, Functions, Realtime) now run without --functional flag,
so test methods execute sequentially within each class while classes
still run in parallel. All other services keep --functional mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 03:44:28 +13:00
Jake BarnbyandClaude Opus 4.6 32c84ae869 fix: retry on TCP connection errors in callWithAuthRetry for Functions tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 03:29:31 +13:00
Jake BarnbyandClaude Opus 4.6 48698f40ba fix: add polling and delay for testSSRLogs logging config propagation
After setting logging=false, the site runtime may not immediately pick up
the config change. Add a 5s delay and poll for the NEW log entry (filtering
out the old one by $id) to avoid picking up stale log entries with content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 03:12:44 +13:00
Jake BarnbyandClaude Opus 4.6 8d18a33072 fix: call ensureSharedProject() in all setup methods, not just setupDatabase
When setupAttributes/setupIndexes/etc hit the file cache, they return
immediately without calling setupDatabase(), so ensureSharedProject()
was never called. This left self::$project empty, causing getProject()
to create a new project that didn't match the cached database IDs (404s).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 03:11:50 +13:00
Jake BarnbyandClaude Opus 4.6 a0b8437f08 fix: scope file caching to Database tests only, revert for non-Database tests
The previous file caching approach cached getRoot(), getUser(), getProject(),
and getConsoleVariables() globally. This caused all test methods in a class
to share the same project, breaking non-Database tests that expect isolated
state (Account 401s, Storage 500s, Users 404s, etc.).

Now file caching is only applied in Database/Transaction test setup chains:
- ensureSharedProject() in DatabasesBase, TransactionsBase, TransactionPermissionsBase
  creates and file-caches both the project AND user so all methods share
  consistent project + user state (needed for collection permissions)
- Non-Database tests (Account, Storage, Users, etc.) create their own
  isolated projects per-process as before

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 02:46:56 +13:00
Jake BarnbyandClaude Opus 4.6 3ea1e8e59f fix: add file-based cross-process caching for ParaTest --functional mode
With --functional mode, each test method runs in its own process so
static caches are empty. This causes every method to recreate projects,
databases, collections, attributes, and indexes - flooding the serial
database worker queue and causing attribute polling timeouts.

File-based caching with file locks ensures resources are created once
per test class, then shared across all method processes. This restores
--functional mode and dramatically reduces worker queue load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 01:47:20 +13:00
Chirag Aggarwal 7737139f23 composer 2026-02-20 17:59:33 +05:30
Atharva Deosthale a803bafbb8 feat: add cursor-plugin SDK support 2026-02-20 17:54:50 +05:30
HemachandarandGitHub 15b5202c16 Check project access only when user is present (#11370) 2026-02-20 17:37:12 +05:30
Eldad A. FuxandGitHub e45254d456 Merge pull request #11364 from appwrite/fix-dsn-vcs-error
Enhance error handling for project database configuration
2026-02-20 12:58:38 +01:00
Jake BarnbyandClaude Opus 4.6 8be633a140 fix: remove --functional from paratest to use class-level parallelism
With --functional mode, every test method gets its own process with no
static cache sharing. This causes each method to independently create
databases, collections, and attributes, flooding the serial database
worker queue. Without --functional, each test class shares static caches
between methods, dramatically reducing schema operation count.

Also reverts _APP_WORKERS_NUM change since worker must remain serial.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:38:39 +13:00
Jake BarnbyandClaude Opus 4.6 31f4260908 fix: increase database worker count and test resilience for parallel execution
Parallel test execution via ParaTest creates more queue load than a single
database worker can handle, causing attributes to get stuck at 'processing'.
Increase _APP_WORKERS_NUM to 4 to match parallelism, increase WebSocket
timeout from 15s to 30s, and add retry logic for proxy requests in Sites tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 00:16:40 +13:00
Chirag Aggarwal 7fc2c93529 lock file 2026-02-20 16:34:10 +05:30
0f3ea91d5d Update app/init/resources.php
Co-authored-by: Matej Bačo <matejbacocom@gmail.com>
2026-02-20 11:41:09 +01:00
eldadfux 92439ef0c4 format 2026-02-20 11:39:28 +01:00
Chirag Aggarwal 619fe72693 use diff check 2026-02-20 16:05:36 +05:30
8e4fddddbc Update app/init/resources.php
Co-authored-by: Matej Bačo <matejbacocom@gmail.com>
2026-02-20 11:24:42 +01:00
Matej Bačo e2bc3afce6 Fix url params in redirect URLs 2026-02-20 11:15:59 +01:00
Jake BarnbyandClaude Opus 4.6 818c89fe23 fix: increase site deployment build and activation polling timeouts
Build timeout: 120s → 240s
Activation timeout: 60s → 120s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 22:37:41 +13:00
Chirag Aggarwal 02951064ef bump composer 2026-02-20 14:09:44 +05:30
Chirag Aggarwal 0431337b22 chore: remove sdk release artifacts from automation PR 2026-02-20 14:04:06 +05:30
Chirag Aggarwal a9d2fed1ba chore: split sdk release artifacts from automation 2026-02-20 14:02:16 +05:30
Jake BarnbyandClaude Opus 4.6 58bf529183 fix: make testGetAccountLogs flexible for 1 or 2 audit logs
The user.create audit may or may not be present depending on async
audit processing timing. Accept either count and adjust offset/limit
assertions accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:28:09 +13:00
Chirag AggarwalandGitHub b9ea24eeb8 Merge pull request #11367 from appwrite/fix-invalid-type
fix: invalid type error from resources endpoint
2026-02-20 13:49:24 +05:30
Jake BarnbyandClaude Opus 4.6 abdceb831a fix: resolve E2E test failures for screenshots, account logs, risky tests, and deployment timeouts
- Accept 404 alongside 200 for screenshot tests with custom headers/permissions (browser service CI limitation)
- Fix testGetAccountLogs to expect 1 log (session.create only, user.create audit not triggered for self-service)
- Move getSupportForOperators() check before any assertions in testOperators/testBulkOperators (PHPUnit 12 risky test fix)
- Increase deployment build/activation polling timeout from 240s to 360s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 20:43:51 +13:00
Jake BarnbyandGitHub 2dc503d0de Merge pull request #11363 from appwrite/fix-CLOUD-3JBN
Fix CLOUD-3JBN
2026-02-20 20:04:51 +13:00
Jake BarnbyandClaude Opus 4.6 b976454416 fix: add early failure detection and increase polling timeouts
Throw Critical exception when attribute/index/deployment status is
'failed' to fail tests immediately instead of waiting 15-20 minutes.
Increase default schema polling timeouts from 15 to 20 minutes for
CI stability under parallel load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 19:51:59 +13:00
Jake BarnbyandClaude Opus 4.6 b7d503e8e9 fix: resolve MariaDB spatial attribute and index creation failures
- Replace findOne()->isEmpty() with count() > 0 in spatial check to avoid
  potential false positives when checking for existing data in empty collections
- Use waitForAllAttributes instead of waitForAttribute before spatial index
  creation to ensure the collection document cache is refreshed
- Add response assertions for attribute creation in testSpatialPolygonAttributes
  to fail fast instead of timing out for 15 minutes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:53:50 +13:00
Chirag Aggarwal ee223046e0 fix: invalid type error from resources endpoint 2026-02-20 11:22:23 +05:30
Jake BarnbyandClaude Opus 4.6 168f9828bc fix: make activate param optional in site deployments
The activate param in Deployments/Create was missing the optional flag,
making it required unlike the VCS and Template deployment endpoints.
This caused 400 errors for multipart/form-data requests where the param
was present but treated as missing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:40:31 +13:00
Jake BarnbyandClaude Opus 4.6 89f0f227d6 fix: resolve CI failures in database, functions, and realtime tests
- Increase SchemaPolling default timeouts from 8min to 15min for
  waitForAttribute, waitForAttributes, waitForAttributeCount, and
  waitForIndex to match waitForAllAttributes/waitForAllIndexes. Under
  parallel test load the database worker gets backlogged, causing
  attributes to stay in 'processing' state longer than 8 minutes.
- Add isEmpty check in Functions Delete before updating schedules to
  prevent 500 errors when the schedule document is missing (consistent
  with other modules like Executions/Delete).
- Add retry logic to cleanupFunction in FunctionsBase for transient
  MongoDB transaction abort errors during function deletion.
- Increase Realtime attribute/index polling timeouts from 2min to 15min
  to handle worker backlog under CI load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:22:51 +13:00
eldadfux f9ed35ed8a Enhance error handling for project database configuration
* Added checks to ensure project references a valid database and throws exceptions if not configured.
* Improved error messaging for non-existent projects in VCS controller.
2026-02-19 20:28:29 +01:00
eldadfux 9c597623ff fix: handle null authorization in realtime connections
Added a check to initialize the authorization object with an empty string if it is null when processing messages in the realtime server. This ensures that the database authorization is always set, preventing potential errors during message handling.
2026-02-19 19:50:48 +01:00
Jake BarnbyandClaude Opus 4.6 0b7c8865f5 fix: increase E2E test timeout from 30 to 40 minutes
Database tests (PostgreSQL, Shared V1, Shared V2) consistently take
31-32 minutes, just exceeding the 30-minute timeout. Increase to 40
minutes for all E2E service tests to prevent false timeout failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 04:19:44 +13:00
Jake BarnbyandClaude Opus 4.6 a952dad8d3 fix: add missing Role import and convert @group to PHP 8 attributes
- Add missing `use Utopia\Database\Helpers\Role` import in ProjectsBase.php
  (fixes "Class Role not found" fatal error)
- Convert @group ciIgnore docblock annotations to #[Group('ciIgnore')]
  PHP 8 attributes (PHPUnit 12 no longer supports docblock annotations)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 03:26:15 +13:00
Jake BarnbyandClaude Opus 4.6 2a535a2adc fix: exclude ciIgnore tests from CI and increase Realtime polling timeouts
- Add --exclude-group ciIgnore to paratest commands in tests.yml
  (the @group ciIgnore annotation was defined but never excluded)
- Increase attribute/index polling timeouts in RealtimeConsoleClientTest
  from 15s to 120s for Shared V2 stability

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 03:10:56 +13:00
Jake BarnbyandClaude Opus 4.6 b645721e14 fix: resolve CI failures from 1.8.x merge
- Remove unused WhiteList import in teams.php (linter fix)
- Add missing $teamId and $newTeam params to setupProject() in ProjectsBase.php (fixes 401 errors in all Projects tests)
- Filter execution logs by requestPath in testSSRLogs to avoid picking up screenshot worker executions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 02:46:23 +13:00
Chirag Aggarwal 0af495f241 release some sdks 2026-02-19 18:15:05 +05:30
Jake BarnbyandGitHub 8a6ddeef30 Merge branch '1.8.x' into feat-mongodb 2026-02-20 01:33:02 +13:00
Jake BarnbyandClaude Opus 4.6 8a391e2e27 fix: mark transactionId as required param in transaction endpoints
Path parameters should not be optional. This caused SDK TypeScript
build failures where transactionId was typed as string | undefined.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:36:41 +13:00
HemachandarandGitHub 14e79f34db Populate project-specific roles (#11209)
* Populate project-specific roles

* better comments

* simplify

* privileged user

* update permissions

* feedback

* lint

* only read + cleanup

* fix role length

* scopes

* not api-key

* cl-ignore group

* rename

* ciIgnore

* base scope

* change base scope

* fix projects

* copilot suggestion
2026-02-19 16:48:39 +05:30
Chirag Aggarwal 035227312f add back spacing 2026-02-19 15:53:00 +05:30
Chirag Aggarwal fe48882e6c feat(sdks): automate sdk version/changelog with assistant 2026-02-19 15:39:11 +05:30
e902d3b6ad fix: sanitize branch names for valid domain generation (#11245)
* fix: sanitize branch names for valid domain generation

Branch names containing invalid domain characters (like '/') were being
used directly when creating VCS preview domains, resulting in invalid
domains like 'branch-abc/test.appwrite.network'. This adds a Domain
helper class that sanitizes branch names by replacing invalid characters
with hyphens before generating domains.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: use Text constants for branch name sanitization

Replace regex with explicit character validation using Utopia Text
constants for better readability and maintainability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Move to transformation adapter

* lint

* tiny

* fix test

* ut

* use Filter

* lint

* more lint

* simplify

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-19 14:37:01 +05:30
Matej BačoandGitHub cdb6a2985f Merge pull request #11355 from appwrite/fix-rule-domains
Convert rule domains to lowercase
2026-02-19 09:42:34 +01:00
Jake BarnbyandClaude Opus 4.6 c2e4ddc177 fix: bump utopia-php/database to 5.3.2
Includes fix for empty orderAsc() attribute mapping in MongoDB adapter
that caused subQueryVariables filter to hang and crash the service.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:05:47 +13:00
Jake BarnbyandClaude Opus 4.6 ce0b7ab455 fix: increase function deployment build timeout to 4 minutes
FunctionsBase deployment polling was only 100 seconds, insufficient
under CI load when build workers are busy. Increased to 240 seconds
for both deployment readiness and activation checks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 06:10:18 +13:00
Jake BarnbyandClaude Opus 4.6 c1cb7bdc8e fix: increase schema polling timeouts to 15 minutes
Spatial attribute creation under parallel CI load consistently exceeds
10 minutes. Increased both waitForAllAttributes and waitForAllIndexes
from 10/8 minutes to 15 minutes to accommodate heavy parallel load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 05:12:09 +13:00
Hemachandar 702484c27b lowercase only id 2026-02-18 21:12:56 +05:30
Jake BarnbyandClaude Opus 4.6 54505c0600 fix: increase polling timeouts for CI stability
Spatial attribute creation under parallel MariaDB load and function
deployment builds under MongoDB can exceed previous limits. Increased
SchemaPolling timeout from 8 to 10 minutes and GraphQL function build
timeout from 2 to 4 minutes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 04:21:49 +13:00
Chirag AggarwalandGitHub f0574f5079 Merge pull request #11357 from appwrite/chore-gitignore-specs
chore: move specs to dedicated repo and remove from git tracking
2026-02-18 20:17:06 +05:30
Jake BarnbyandClaude Opus 4.6 e26bac1e6e fix: resolve merge conflicts in projects.php template endpoints
Merge from 1.8.x left 6 unresolved conflicts in SMS/email template
endpoints. Resolved by keeping both the dynamic UID validator from
feat-mongodb and the strict WhiteList comparison from 1.8.x.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 03:41:36 +13:00
Jake BarnbyandClaude Opus 4.6 f8e29c6b38 fix: prevent testTimeout from deleting shared database
testTimeout was using setupDatabase() to get the shared database, creating
a collection within it, then deleting the entire database at cleanup. This
destroyed the shared Movies/Actors/Books collections, causing testNotSearch
and other tests relying on the shared database to fail with 404.

Fix: only delete the test collection, not the shared database. Also add
waitForAttribute to prevent intermittent failures from attribute not being
available when inserting documents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 02:37:06 +13:00
Matej BačoandGitHub 243b439186 Merge pull request #11354 from appwrite/fix-screenshot-target
Fix: Target rule for screenshot
2026-02-18 13:42:07 +01:00
Chirag Aggarwal baa44ce0bb remove testspecs 2026-02-18 17:39:56 +05:30
Jake BarnbyandGitHub 3bf594ecae Merge branch '1.8.x' into feat-mongodb 2026-02-18 12:09:43 +00:00
Chirag Aggarwal 74c8be3fad fix workflow 2026-02-18 17:30:17 +05:30
Matej Bačo 2f32e312c8 Fix tests 2026-02-18 12:56:42 +01:00
Chirag Aggarwal 9bb76f5510 chore: merge 1.8.x and resolve spec file conflicts
Resolved modify/delete conflicts by keeping deletions of spec files,
as they now live in the dedicated appwrite/specs repository.
2026-02-18 17:24:40 +05:30
Chirag Aggarwal 8d82bc89a1 chore: remove specs from git tracking and add to gitignore 2026-02-18 17:13:07 +05:30
Harsh MahajanandGitHub add50aa489 Merge pull request #11356 from appwrite/fix/specs-template-type-casing
Fix/specs template type casing
2026-02-18 17:12:39 +05:30
Harsh MahajanandGitHub aa52908d03 Merge branch '1.8.x' into fix/specs-template-type-casing 2026-02-18 16:24:22 +05:30
Harsh Mahajan f1f03fd35e fix: preserve template type casing in specs 2026-02-18 16:22:33 +05:30
Hemachandar 8f3472d55b Convert rule domains to lowercase 2026-02-18 15:58:24 +05:30
Jake BarnbyandClaude Opus 4.6 fa972093f4 fix: front-load fulltext search infrastructure into cached setup chain
Move the Books collection, attributes, and fulltext index creation into
the shared setupCollection/setupAttributes/setupIndexes cache chain so
they are processed early when the worker queue is less loaded. This
eliminates testNotSearch creating redundant infrastructure from scratch
at test time when the queue is overwhelmed with 830+ parallel tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 23:26:03 +13:00
Jake BarnbyandClaude Opus 4.6 ddb392caf7 fix: increase SchemaPolling default timeouts from 4min to 8min
MariaDB attribute/index processing consistently times out under parallel
test load in CI with different tests failing each run. Increase all default
polling timeouts from 240s to 480s to handle worst-case MariaDB load.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 23:18:56 +13:00
Matej Bačo 84eb065eb0 Screenshot after rule ready 2026-02-18 11:07:31 +01:00
Matej Bačo 7956b47aa8 Target rule for screenshot 2026-02-18 11:06:56 +01:00
Jake BarnbyandClaude Opus 4.6 dca375624c fix: add missing 202 assertions before schema polling waits
- Fix testSpatialDistanceInMeter: move assertEquals(202) BEFORE waitForIndex
  (was after, causing misleading 4-minute timeout on creation failure)
- Add 202 assertions to testSpatialAttributesMixedCollection attribute creation
- Add 202 assertion to testConcurrentTransactionConflicts attribute creation
- Add 202 assertion to fulltext search index creation
- Add 202 assertion to shared collection attribute creation

These ensure tests fail fast with clear errors if schema creation returns
an error, instead of pointlessly polling for 4 minutes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 22:58:05 +13:00
Jake Barnby 3e0febca92 Revert "fix: increase SchemaPolling default timeouts from 4min to 6min"
This reverts commit 2a4c33be11.
2026-02-18 22:49:31 +13:00
Jake BarnbyandClaude Opus 4.6 2a4c33be11 fix: increase SchemaPolling default timeouts from 4min to 6min
MariaDB attribute/index processing consistently times out under parallel
test load in CI. Increase all default polling timeouts from 240s to 360s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 22:39:07 +13:00
Jake BarnbyandClaude Opus 4.6 6582ec8e67 fix: register TYPE_ID in GraphQL Mapper and fix Schedules tests for ParaTest
- Add 'id' => Type::string() to GraphQL Mapper Registry defaults to handle
  Model::TYPE_ID used by Document and Row models ($sequence field)
- Refactor SchedulesConsoleClientTest to use static-cached setup helpers
  instead of @depends annotations, which don't work in ParaTest --functional mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 21:59:33 +13:00
Jake Barnby 2c5806d1e7 Revert "fix: revert accidentally committed working tree changes"
This reverts commit a3503f4124.

# Conflicts:
#	composer.lock
2026-02-18 21:45:54 +13:00
Chirag AggarwalandGitHub 6728754d3f Merge pull request #11353 from appwrite/feat/specs-pr-platform-filter
feat: add getPlatformsForPR and getSdksCommand overridable methods
2026-02-18 14:15:02 +05:30
Jake Barnby 43f7c99039 Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2026-02-18 21:44:48 +13:00
Jake Barnby c584a72496 Update lock 2026-02-18 21:44:32 +13:00
Jake BarnbyandGitHub ce64011551 Merge branch '1.8.x' into feat-mongodb 2026-02-18 08:42:56 +00:00
Jake BarnbyandGitHub d118bb2c59 Merge pull request #11331 from appwrite/feat-schedules-endpoints
Add schedules API endpoints
2026-02-18 08:40:23 +00:00
Jake BarnbyandClaude Opus 4.6 a3503f4124 fix: revert accidentally committed working tree changes
Reverts composer.lock (database 5.3.0→5.2.1), Model.php TYPE_ID,
Document.php/Row.php $sequence type changes, and OpenAPI/Swagger
id type additions that were unintentionally included in dd1a3d82.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 20:58:54 +13:00
Prem Palanisamy bd2e788c2a Update utopia-php/database to 5.3.1 2026-02-18 07:31:37 +00:00
Jake BarnbyandClaude Opus 4.6 0d1a6e07b4 fix: use relative path for --log-junit so retry action can find JUnit XML
The retry action couldn't extract the container name from docker compose
exec commands to copy the JUnit XML. Using a relative path works because
CWD inside the container is /usr/src/code and the volume mount
./tests:/usr/src/code/tests makes the file accessible at the same
relative path on both container and host.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 20:30:48 +13:00
Chirag Aggarwal b2742ab932 glob changes 2026-02-18 12:58:39 +05:30
Chirag Aggarwal fe86578d3c try filtering examples 2026-02-18 12:39:37 +05:30
Jake BarnbyandClaude Opus 4.6 dd1a3d8222 fix: adjust testCreateIndexes index count for MongoDB maxIndexLength=1024
MongoDB's maxIndexLength (1024) allows the 512+512 index to succeed,
resulting in 5 indexes instead of 4. Use conditional count and
assertContains for position-independent key checks.

Verified: 830/830 Database tests pass locally on MongoDB with paratest.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:59:20 +13:00
Prem Palanisamy 63bb69dfb1 Update docs for directory change 2026-02-18 06:23:19 +00:00
Prem Palanisamy 4940239c99 Move schedules module into projects namespace 2026-02-18 06:23:19 +00:00
Prem Palanisamy c3e80296b1 coderabbit - Fix misleading resourceUpdatedAt description 2026-02-18 06:23:19 +00:00
Prem Palanisamy d6a3fd6242 Address review comments: nest in project namespace, refactor maps, remove auth skip 2026-02-18 06:23:19 +00:00
Prem Palanisamy e1c35c743c Add data field to Schedule response model and remove unused events 2026-02-18 06:23:19 +00:00
Prem Palanisamy 2c8b1fb98a Add parentheses to validator constructors in schedule Create 2026-02-18 06:23:19 +00:00
Prem Palanisamy d8987ad975 Fix schedule Create endpoint and tests 2026-02-18 06:23:19 +00:00
Prem Palanisamy 9dbd225118 Refactor schedule Create to use protected methods for extensibility 2026-02-18 06:23:19 +00:00
Prem Palanisamy 2c35b7a4b5 Fix testNoHostValidationWithDevKey: avoid external dependency on example.com 2026-02-18 06:23:19 +00:00
Prem Palanisamy 24b1a70646 Add AAA Certificate Services root cert to fix SSL verification 2026-02-18 06:23:19 +00:00
Prem Palanisamy 374b087980 Rename SchedulesCustomServerTest to SchedulesConsoleClientTest 2026-02-18 06:23:19 +00:00
Prem Palanisamy 63d2efdaac Move schedule endpoints to projects group (/v1/projects/:projectId/schedules) 2026-02-18 06:23:19 +00:00
Prem Palanisamy 3fde05e024 Add resource validation, admin scopes, and events for schedules 2026-02-18 06:23:19 +00:00
Prem Palanisamy 9b72b78338 Use Query class in schedules E2E test 2026-02-18 06:23:19 +00:00
Prem Palanisamy f57f78014e Fix query format in schedules E2E test 2026-02-18 06:23:19 +00:00
Prem Palanisamy 5c28e59a83 Add E2E tests for schedules API 2026-02-18 06:23:19 +00:00
Prem Palanisamy 0314d6cc15 Add schedules API endpoints (GET, XList, Create) 2026-02-18 06:23:19 +00:00
Jake BarnbyandClaude Opus 4.6 93bc3871df fix: MongoDB test compatibility and enable JUnit XML for paratest retry
- testCreateIndexes: conditionally check index length based on adapter's maxIndexLength (MongoDB 1024 vs SQL 768)
- testConcurrentTransactionConflicts: accept both 409 and 500 since MongoDB adapter doesn't map write conflicts to ConflictException
- testEnforceCollectionPermissions: add error body to assertion for debugging
- Enable --log-junit for paratest in both project and shared mode CI jobs so itznotabug/php-retry@v3 can identify and selectively retry failing tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:09:01 +13:00
Chirag Aggarwal 66cb7191c1 feat: add getPlatformsForPR and getSdksCommand overridable methods
Adds two overridable methods to Specs task:
- getPlatformsForPR(): controls which platforms are included when copying
  spec files to the repo and creating the PR (defaults to all platforms)
- getSdksCommand(): builds the CLI command for SDK example regeneration,
  allowing subclasses to customise flags like platform, sdk, and mode
2026-02-18 11:10:44 +05:30
Chirag AggarwalandGitHub 460639233b Merge pull request #11349 from appwrite/feat/specs-push-to-repo
feat: add git push and PR support to specs task
2026-02-18 10:45:07 +05:30
Jake BarnbyandClaude Opus 4.6 ca01ec7b6b fix: increase SchemaPolling default timeout to 240s for CI stability
120s was insufficient for attribute processing under parallel CI load,
causing spurious timeout failures in spatial, transaction, and attribute tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:28:24 +13:00
Jake BarnbyandClaude Opus 4.6 d6d12d818c fix: use getContainerIdResponseKey() instead of hardcoded $collectionId in upsert test
TablesDB uses $tableId not $collectionId in data payloads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 16:03:46 +13:00
Jake BarnbyandClaude Opus 4.6 442a8d86d6 fix: use getRecordResource() instead of hardcoded 'documents' in testUpsertDocument
TablesDB uses 'rows' not 'documents' for the list records response key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:44:41 +13:00
Jake BarnbyandClaude Opus 4.6 84c40cea41 fix: resolve testCreateAttributes, testUpsertDocument, and SchemaPolling timeouts
- Fix testCreateAttributes: use $actorsAttr instead of undefined $actors variable,
  and use $this->getSchemaResource() instead of hardcoded 'attributes' for TablesDB compat
- Fix testUpsertDocument: add missing 'data' => $upsertData in PUT request body
- Increase SchemaPolling default timeout from 60s to 120s for CI stability with
  spatial attributes under parallel load

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:25:45 +13:00
Jake BarnbyandClaude Opus 4.6 9796c46975 fix: misplaced assertion in testUpdateAttributeEnum and reduce timeouts
- Move maxLength/assertStringContainsString from testUpdateAttributeEnum
  back to testPatchAttribute where $attribute is defined
- Fix remaining $data['moviesId'] -> $moviesId in testCreateAttributes
- Reduce WebSocket timeout from 30s to 15s for faster failure detection
- Reduce Realtime helper assertEventually from 30s to 15s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 15:07:05 +13:00
Jake BarnbyandClaude Opus 4.6 ae4e79518b fix: remaining testCreateAttributes undefined variable references
- Change $data['moviesId'] to $moviesId at integers2 attribute creation
- Change $data['actorsId'] to $actorsId at relationship assertion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:59:25 +13:00
Jake BarnbyandClaude Opus 4.6 2c1919140f fix: resolve additional test failures from CI results
DatabasesBase:
- testCreateAttributes: use local $moviesId/$actorsId instead of $data['...']
- testValidateOperators: add missing setupOneToManyRelationship() call
- testSelectQueries: add missing setupOneToManyRelationship() call
- testUniqueIndexDuplicate: define missing $serverHeaders variable
- testListDocuments: change return type from array to void (no callers)

RealtimeConsoleClientTest:
- testAttributesCollectionsAPI: create database/collection before opening
  WebSocket to prevent their events from interfering with attribute events
- testAttributesTablesAPI: same restructuring for TablesDB variant

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:42:41 +13:00
Jake BarnbyandClaude Opus 4.6 acad17f3b8 fix: resolve test failures and reduce excessive timeouts
- DatabasesBase: fix 5 merge corruption issues (missing integers2 attr,
  undefined vars, wrong assertion, wrong setup method)
- WebhooksBase: increase deployment build timeout from 10s to 120s
- RealtimeBase: reduce WebSocket timeout 120s→30s, fix deprecated nullable
- RealtimeConsoleClientTest: reduce assertEventually 120s→30s
- SchemaPolling: reduce all default timeouts 600s→60s
- SitesBase: reduce build timeout 300s→120s, activation 200s→60s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:23:42 +13:00
Jake BarnbyandClaude Opus 4.6 a70e94a67b fix: resolve merge corruption in tests.yml workflow
The e2e_service_test job's command block had corrupted shell syntax from
a bad merge - orphaned elif/else without matching if, and duplicate
if-elif blocks for DB adapter env vars. The set-db-env step already sets
these via GITHUB_ENV, making the inline exports redundant.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:41:08 +13:00
Jake Barnby ec9cb430af CI 2026-02-18 13:34:50 +13:00
Chirag Aggarwal 764f4dc563 ci: add workflow_dispatch GitHub Action for specs generation
Allows manually triggering spec generation from the Actions tab with
version selection and optional push to appwrite/specs repo.
2026-02-17 23:10:30 +05:30
Luke B. SilverandGitHub 93b542db9b Merge pull request #11346 from appwrite/perf/domain-cache
Replace per-worker hostname cache with shared Swoole Table
2026-02-17 17:33:45 +00:00
Luke B. SilverandGitHub bed3ef828b Merge branch '1.8.x' into perf/domain-cache 2026-02-17 16:59:26 +00:00
Chirag Aggarwal b9d7788d38 feat: add git push and PR support to specs task, add examples-only mode to SDKs task
- Specs task now supports --git, --message, and --branch params to push
  generated specs and SDK examples to the appwrite/specs repo and create a PR
- SDKs task now supports --mode=examples to only generate and copy examples
  without git push or releases
- Specs task invokes SDKs in examples mode to regenerate examples before
  including them in the specs PR
2026-02-17 22:01:40 +05:30
HemachandarandGitHub a1fb492292 Change CNAME for functions custom domains (#11348)
* Change CNAME for functions custom domains

* fix test
2026-02-17 22:00:26 +05:30
Jake BarnbyandClaude Opus 4.6 9e628072eb fix: resolve additional merge corruptions in test files
- DatabasesBase.php: fix array indentation for 'library' key inside 'data' array
- SitesBase.php: fix corrupted while-loop/assertEventually merge in
  activation check
- DatabasesStringTypesTest.php: remove return $data from void methods,
  convert @depends chain to use setupDatabaseAndCollection()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 04:11:37 +13:00
HemachandarandGitHub 6850ae9be6 Add array support for DNS A records (#11343)
* Add array support for DNS A records

* feedback
2026-02-17 20:36:42 +05:30
Jake BarnbyandClaude Opus 4.6 6c29f4e285 fix: resolve merge corruptions in DatabasesBase.php from feat-db-tests merge
- Replace all hardcoded Legacy-style URLs with API-agnostic helpers
  (getContainerUrl, getSchemaUrl, getRecordUrl, getIndexUrl)
- Replace hardcoded param keys (collectionId, documentSecurity,
  relatedCollectionId, attributes) with helper methods
- Replace hardcoded response keys ($collectionId, relatedCollection)
  with getContainerIdResponseKey() and getRelatedResourceKey()
- Fix structural merge corruptions where code from different methods
  got interleaved (testCreateAttributes, testCreateIndexes,
  testGetDocumentWithQueries, testOperators, testUniqueIndexDuplicate)
- Remove orphaned code fragments and stale return statements
- Fix void methods incorrectly returning $data
- Add proper setup calls in relationship test methods
- Update composer.lock to match composer.json

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 03:55:39 +13:00
Jake Barnby 64a368ba3d Merge remote-tracking branch 'origin/feat-db-tests' into feat-mongodb
# Conflicts:
#	.github/workflows/tests.yml
#	src/Appwrite/Utopia/Response.php
#	src/Appwrite/Utopia/Response/Model/AttributeList.php
#	tests/e2e/Client.php
#	tests/e2e/Scopes/ProjectCustom.php
#	tests/e2e/Services/Databases/DatabasesBase.php
#	tests/e2e/Services/Databases/Legacy/DatabasesCustomClientTest.php
#	tests/e2e/Services/Databases/Legacy/DatabasesCustomServerTest.php
#	tests/e2e/Services/Databases/Legacy/DatabasesStringTypesTest.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesCustomClientTest.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesCustomServerTest.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesStringTypesTest.php
#	tests/e2e/Services/Databases/Transactions/TransactionsBase.php
#	tests/e2e/Services/GraphQL/Legacy/DatabaseServerTest.php
#	tests/e2e/Services/GraphQL/TablesDB/DatabaseServerTest.php
#	tests/e2e/Services/Messaging/MessagingBase.php
#	tests/e2e/Services/Sites/SitesBase.php
#	tests/e2e/Services/Sites/SitesCustomServerTest.php
2026-02-18 03:27:23 +13:00
Luke B. SilverandGitHub 6f80419d65 Merge branch '1.8.x' into perf/domain-cache 2026-02-17 13:32:24 +00:00
loks0nandClaude Opus 4.6 f1501d139b Rename Swoole Tables: domains -> riskyDomains, hostnames -> certifiedDomains
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:22:07 +00:00
loks0nandClaude Opus 4.6 b83e3ef36e Make Swoole Tables injectable Http resources
Register both `domains` and `hostnames` tables as Http resources so they
can be injected via the framework instead of relying on closures or globals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:15:25 +00:00
Chirag AggarwalandGitHub 7c67540871 Merge pull request #11347 from appwrite/fix/web-rn-sdk-patch-release
Bump Web SDK to 22.3.1 and React Native SDK to 0.23.1
2026-02-17 18:28:35 +05:30
Chirag Aggarwal 634d05ae76 update cli entry too 2026-02-17 18:24:57 +05:30
Chirag Aggarwal 190b866da1 Bump Web SDK to 22.3.1 and React Native SDK to 0.23.1
Add patch changelog entries for removing bignumber.js direct dependency
to fix bundler conflict with Next.js Turbopack, and adding upsert method
to Realtime Channels helper class.
2026-02-17 18:20:35 +05:30
loks0nandClaude Opus 4.6 56cbcba2b1 Resize domains Swoole Table from 1M to 100K rows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:37:59 +00:00
Luke B. SilverandGitHub 1f78506952 Merge branch '1.8.x' into perf/domain-cache 2026-02-17 12:22:42 +00:00
loks0nandClaude Opus 4.6 b9258df955 Replace per-worker Config cache with shared Swoole Table for hostname cert tracking
The hostname certificate cache was using Config::getParam/setParam which stores a plain PHP array local to each worker. This meant every worker independently hit the DB for the same hostnames. Replace with a Swoole Table shared across all workers via shared memory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:19:53 +00:00
Luke B. SilverandGitHub 6a08dcba1a Merge pull request #11345 from appwrite/perf/mem-usage
Load static files before Swoole fork for CoW memory sharing
2026-02-17 12:18:07 +00:00
Jake Barnby 10d21bbed6 Cycle lock 2026-02-18 00:45:30 +13:00
loks0nandClaude Opus 4.6 08848e4c5c Load static files before Swoole fork for copy-on-write memory sharing
Move Files::load() from EVENT_WORKER_START (per-worker) to before the
Swoole server starts. This allows forked workers to share the loaded
file data via OS copy-on-write instead of each worker allocating its
own copy (~22MB per worker).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:31:25 +00:00
Jake Barnby 4529786cc1 Update lock 2026-02-17 23:09:06 +13:00
Jake BarnbyandGitHub 51af714ea8 Merge branch '1.8.x' into feat-mongodb 2026-02-17 08:38:34 +00:00
Atharva DeosthaleandGitHub c7c8349434 Merge pull request #11342 from appwrite/add-status-response
Add status to response model for projects
2026-02-17 14:02:15 +05:30
Chirag AggarwalandGitHub da5a669e99 Merge pull request #11340 from appwrite/bump-storage-lib-to-remove-deprecation-warnings
chore: bump storage lib to remove deprecation warnings
2026-02-17 13:26:44 +05:30
Damodar LohaniandGitHub ee9850b642 Merge pull request #11282 from appwrite/chore-tests
Chore: tests
2026-02-17 12:43:08 +05:45
Jake BarnbyandGitHub 42c3f242c2 Merge pull request #11341 from appwrite/feat-migrations-filters
Allow resourceId/resourceType filtering
2026-02-17 06:56:43 +00:00
Atharva Deosthale 0844af9c9d add tests 2026-02-17 11:54:22 +05:30
Atharva Deosthale bfecddcc9a Add status to response model 2026-02-17 11:38:03 +05:30
Jake Barnby f262b46580 Update lock 2026-02-17 19:07:04 +13:00
Jake Barnby 9b4eefc724 Allow resourceId/resourceType filtering 2026-02-17 19:00:26 +13:00
Chirag Aggarwal 8639e70ce9 use stable 2026-02-17 11:25:27 +05:30
Chirag Aggarwal cc0d63bf03 chore: bump storage lib to remove deprecation warnings 2026-02-17 10:55:37 +05:30
Jake Barnby 459a5617d6 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2026-02-17 16:32:46 +13:00
Luke B. SilverandGitHub c7170ea9e2 Merge pull request #11338 from appwrite/fix/response-model-key
fix: add missing string type models to AttributeList and Collection
2026-02-16 20:40:12 +00:00
loks0nandClaude Opus 4.6 953c0cd4b4 fix: add missing string type models to AttributeList and Collection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:51:49 +00:00
loks0nandClaude Opus 4.6 d8bf3acaed test: add e2e tests for listing string type attributes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:51:49 +00:00
Matej BačoandGitHub 3e2e317e48 Merge pull request #11339 from appwrite/fix-org-keys
fix: org keys auth
2026-02-16 18:22:12 +01:00
Matej Bačo 9572201863 AI review fixes 2026-02-16 18:08:52 +01:00
Matej Bačo 343bed9b9d PR review fixes 2026-02-16 17:59:44 +01:00
Matej Bačo 180ac93871 Fix accoutn keys permissions 2026-02-16 17:48:26 +01:00
Matej Bačo 46ed91fe48 Fix migratons with api keys 2026-02-16 17:39:12 +01:00
Matej Bačo bb26a9f583 improve devkey test for oauth 2026-02-16 17:18:58 +01:00
Matej Bačo 13edcbaf6f fix abuse test; fix mail-related tests 2026-02-16 17:06:11 +01:00
Matej Bačo 57127d40da Fix failing tests 2026-02-16 16:47:19 +01:00
Matej Bačo 4b08484920 Fix tests 2026-02-16 16:24:33 +01:00
Matej Bačo c7bbf6a987 fix org keys auth 2026-02-16 16:14:43 +01:00
Chirag AggarwalandGitHub 1a2238afaa Merge pull request #11337 from appwrite/fix/mails-worker-project-context
Set project on queueForMails for span log context
2026-02-16 19:58:36 +05:30
Luke B. SilverandGitHub 89bbc42eec Merge pull request #11308 from appwrite/check-has-model
Check response has model
2026-02-16 13:29:54 +00:00
Matej BačoandGitHub 50bc2a2356 Merge pull request #11336 from appwrite/fix-race-condition-builds-worker
Fix: race condition
2026-02-16 14:20:09 +01:00
Chirag Aggarwal 79a0b33b92 Set project on queueForMails so span logs include project context
The Mails worker span logs were missing project.id, project.sequence,
project.region, and project.database because setProject was never
called on queueForMails. This adds setProject in the shared API
controller and in workers (Webhooks, Migrations) that trigger mails.
Also injects project into the Mails worker action.
2026-02-16 18:46:55 +05:30
Jake BarnbyandGitHub 1740ce59c0 Merge branch '1.8.x' into feat-mongodb 2026-02-16 13:16:45 +00:00
Jake BarnbyandClaude Opus 4.6 bf68bb2f71 fix: resolve MongoDB-specific E2E test failures and $sequence type bug
- Fix $sequence always cast to string (was incorrectly cast to int for numeric values) in Document.php and Row.php
- Add supportForMultipleFulltextIndexes, supportForAttributeResizing, supportForSchemas console variables for MongoDB adapter
- Fix testCreateIndexes to use getSupportForMultipleFulltextIndexes() instead of getSupportForRelationships() for fulltext index error branching
- Fix testAttributeRowWidthLimit/testColumnRowWidthLimit to skip on databases without schema support (MongoDB)
- Fix testAttributeUpdateStringResize/testColumnUpdateStringResize to skip on databases without attribute resizing support (MongoDB)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 01:43:28 +13:00
Matej Bačo 7bcc27ed07 Fix linter 2026-02-16 13:31:36 +01:00
Matej Bačo 0eb00934f6 Fix race condition 2026-02-16 13:28:40 +01:00
Jake BarnbyandGitHub 4e6313e471 Merge pull request #11334 from appwrite/copilot/add-encrypt-param-to-types
Add `encrypt` param to varchar, text, mediumtext, longtext attribute/column create routes
2026-02-16 11:38:39 +00:00
Shmuel FogelandGitHub 2e8358c47b Merge pull request #11330 from appwrite/migration-text-types
Migration attribute text types
2026-02-16 13:06:54 +02:00
Jake BarnbyandGitHub f034fd437d Merge branch '1.8.x' into copilot/add-encrypt-param-to-types 2026-02-16 10:54:22 +00:00
Jake Barnby 9dc11c1715 Update specs 2026-02-16 23:53:55 +13:00
fogelito 3796f55e0d varchar size 2026-02-16 12:23:49 +02:00
fogelito 2ce1717d39 varchar migration test 2026-02-16 12:18:19 +02:00
fogelito 8717ea1cdd Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-text-types 2026-02-16 12:13:07 +02:00
fogelito cd3dc0c4e4 Update migrations 2026-02-16 12:03:10 +02:00
copilot-swe-agent[bot]andabnegate b2f48547b9 Add encrypt parameter tests for varchar, text, mediumtext, longtext attribute and column types
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-02-16 09:38:25 +00:00
Jake BarnbyandGitHub 436ced3f1f Merge branch '1.8.x' into feat-mongodb 2026-02-16 09:13:34 +00:00
Chirag AggarwalandGitHub 6cfed2a303 Merge pull request #11333 from appwrite/fix-agent-skills-readme
chore: fix readme in agent skills sdk
2026-02-16 14:30:14 +05:30
copilot-swe-agent[bot]andabnegate ef826ca122 Fix error messages to not use 'string' in non-string type routes
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-02-16 08:38:53 +00:00
copilot-swe-agent[bot]andabnegate b58ebdbd15 Add encrypt param to varchar, text, mediumtext, longtext attribute and column create routes
- Add encrypt parameter to Varchar, Text, Mediumtext, Longtext attribute create routes
- Add encrypt parameter to Varchar, Text, Mediumtext, Longtext column create routes
- Add encrypt rule to AttributeVarchar, AttributeText, AttributeMediumtext, AttributeLongtext response models
- Add encrypt rule to ColumnVarchar, ColumnText, ColumnMediumtext, ColumnLongtext response models
- Add plan injection and validation for encrypt feature in all routes
- Add size validation for encrypt on varchar route (variable size)
- Add encrypt filter handling in all routes

Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-02-16 08:38:00 +00:00
copilot-swe-agent[bot] 05fd8197b9 Initial plan 2026-02-16 08:27:35 +00:00
Chirag Aggarwal 9d83d39b16 chore: fix readme in agent skills sdk 2026-02-16 13:11:33 +05:30
Damodar LohaniandGitHub 53fa7992f5 Merge pull request #11318 from appwrite/fix-ping
Fix: cast redi ping response to boolean
2026-02-16 06:20:41 +05:45
fogelito a67aaa6a53 Update 2026-02-15 16:27:26 +02:00
fogelito 4b705d5505 lock 2026-02-15 15:21:05 +02:00
fogelito 52c4eb419a typo longtext 2026-02-15 13:49:45 +02:00
fogelito 3a1f4f439a lines 2026-02-15 13:48:50 +02:00
fogelito 38a816bb58 Remove var_dump 2026-02-15 13:47:15 +02:00
fogelito d754b8a561 lock 2026-02-15 13:44:13 +02:00
fogelito 3a07a4b133 attributes types 2026-02-15 13:40:42 +02:00
Luke B. SilverandGitHub a39489c4cf Merge pull request #11323 from appwrite/ci/remove-stave-state
ci: upgrade docker/login-action from v2 to v3
2026-02-14 10:09:24 +00:00
Jake Barnby b025ad0e8c Update lock 2026-02-14 18:33:29 +13:00
Jake Barnby 82dada5732 Cast if num 2026-02-14 18:04:28 +13:00
Jake BarnbyandGitHub caafe2678b Merge branch '1.8.x' into feat-mongodb 2026-02-14 04:50:00 +00:00
Luke B. SilverandGitHub a151959903 Merge branch '1.8.x' into ci/remove-stave-state 2026-02-13 20:54:56 +00:00
loks0nandClaude Opus 4.6 baa6599cef ci: upgrade docker/login-action from v2 to v3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:53:56 +00:00
Luke B. SilverandGitHub 5dcac20086 Merge pull request #11322 from appwrite/feat-enable-logging
Replace region check with project ID check for execution logging
2026-02-13 19:27:36 +00:00
loks0nandClaude Opus 4.6 9dc000d0c5 Replace region check with project ID check for execution logging
Switch from checking _APP_REGION !== 'nyc' to checking project ID
to disable execution logging for a specific project.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:47:07 +00:00
Luke B. SilverandGitHub feabee38e7 Merge pull request #11320 from appwrite/feat-spans
feat: spans
2026-02-13 14:46:12 +00:00
loks0nandClaude Opus 4.6 a44a22ce04 Update utopia-php/span to 1.1.* with pretty exporter and instrument HTTP lifecycle
- Add utopia-php/span 1.1.* direct dependency, bump utopia-php/dns to 1.6.*
- Create shared app/init/span.php for span storage and pretty exporter setup
- Instrument HTTP request lifecycle with spans (method, path, response code)
- Add database.setup and http.server.start spans
- Replace old Console error logs with Span::error() in general controller

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:56:59 +00:00
Jake BarnbyandClaude Opus 4.6 ab19a73b33 fix: adjust messaging scheduledAt timings for CI reliability
Set initial schedule to 20s and reschedule to 10s to balance between:
- Not being picked up by scheduler before reschedule (3-4s interval)
- Providing enough margin (6s) after scheduledAt for processing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 02:00:09 +13:00
Damodar Lohani 5d5fd370c6 fix: cast Redis ping response to boolean 2026-02-13 11:32:46 +00:00
Jake BarnbyandClaude Opus 4.6 ecf0b4a1dd fix: change $sequence to string type to support MongoDB UUID7 values
The Document and Row response models were casting $sequence to (int),
which destroyed UUID7 values on MongoDB. On MongoDB, $sequence is the
internal _id field which is a UUID7 string, not an auto-increment integer.
The (int) cast converted UUID7 values like "019c56a9-df6d-73fa-8d48-..."
to 19, making $sequence queries fail validation with 400.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 00:29:38 +13:00
Jake BarnbyandClaude Opus 4.6 7708f13ebd fix: revert database package, add debug output for $sequence query failures
- Revert utopia-php/database to 5.1.2 (the Sequence validator fix
  incorrectly assumed $sequence is always integer, but on MongoDB
  internal collections it uses UUID7)
- Revert Base.php change
- Add detailed error messages to testGetDocumentWithQueries and
  testGetRowWithQueries to capture actual $sequence values and API
  error responses for debugging
- Keep Messaging scheduledAt fix (30s initial, 15s rescheduled)
- Keep Functions auth retry improvement (10 retries with project refresh)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 00:09:31 +13:00
Jake BarnbyandClaude Opus 4.6 f7ba5e39b7 fix: update Sequence validator, fix messaging race condition, improve auth retry
- Update utopia-php/database to fix Sequence validator rejecting integer
  $sequence values on MongoDB (VAR_UUID7) adapters
- Fix Base.php Filter constructor passing APP_DATABASE_QUERY_MAX_VALUES
  as $idAttributeType instead of the correct Database::VAR_INTEGER
- Fix Messaging testUpdateScheduledAt race condition by increasing
  initial scheduledAt from 3s to 30s so scheduler doesn't fire before
  the PATCH update processes
- Improve Functions callWithAuthRetry to refresh project credentials
  after 4 consecutive 401 failures and increase max retries to 10

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 23:54:39 +13:00
Matej BačoandGitHub b4421e6709 Merge pull request #11313 from appwrite/chore-customizable-screenshot-router
Chore: configurable _APP_WORKER_SCREENSHOTS_ROUTER
2026-02-13 10:09:02 +01:00
Jake BarnbyandClaude Opus 4.6 5cf272b21a fix: add $sequence to SELECT query in testGetDocumentWithQueries
The SELECT query didn't include $sequence, so accessing
$response['body']['$sequence'] returned null. The subsequent
Query::equal('$sequence', [null.'']) produced an empty string
which is invalid for the integer $sequence field, causing 400.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:02:09 +13:00
Jake BarnbyandClaude Opus 4.6 991af09fdf fix: improve auth retry resilience for MongoDB CI stability
- Increase callWithAuthRetry from 5 to 8 retries with capped delay (50s total)
- Increase ProjectCustom retries from 3 to 5 with 1s delays
- Fix swapped assertEquals parameters in FunctionsBase for clearer errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:46:24 +13:00
Damodar LohaniandGitHub 265c5143b0 Merge branch '1.8.x' into chore-tests 2026-02-13 13:14:56 +05:45
Jake BarnbyandGitHub b7ce686d73 Merge branch '1.8.x' into feat-mongodb 2026-02-13 07:18:26 +00:00
Jake BarnbyandClaude Opus 4.6 5df786b5ad fix: add retry logic for 401 errors and explicit site deployment activation
- Add retry logic with delays for transient 401 auth errors during project
  setup in ProjectCustom::getProject() (cherry-pick from feat-db-tests)
- Replace 10-minute activation polling in SitesBase with 30-second auto-activation
  wait followed by explicit PATCH /sites/:siteId/deployment fallback to prevent
  test suite timeouts when the build worker is slow to auto-activate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 20:05:49 +13:00
Jake BarnbyandGitHub 77fd2c1f24 Merge pull request #11311 from appwrite/check-client-queries-strings 2026-02-13 06:29:10 +00:00
fogelito 17ae01c70c Merge branch '1.8.x' of https://github.com/appwrite/appwrite into check-client-queries-strings 2026-02-13 07:55:10 +02:00
Jake Barnby 57e7f57056 Revert "Revert removals"
This reverts commit 005a3f4775.
2026-02-13 18:00:10 +13:00
Jake Barnby 005a3f4775 Revert removals 2026-02-13 17:52:50 +13:00
Jake BarnbyandGitHub 75ac4e4447 Merge branch '1.8.x' into feat-db-tests 2026-02-13 04:00:43 +00:00
Jake Barnby dbf3b52d4c Update lock 2026-02-13 16:12:43 +13:00
Jake BarnbyandGitHub 9c40d0c6f8 Merge pull request #11317 from appwrite/copilot/sub-pr-11312 2026-02-13 03:02:25 +00:00
Jake BarnbyandGitHub 2b536078bb Merge branch '1.8.x' into feat-mongodb 2026-02-13 02:19:37 +00:00
copilot-swe-agent[bot]andabnegate 3d58ed10dc Use explicit empty strings for environment variables
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-02-13 02:06:37 +00:00
copilot-swe-agent[bot]andabnegate 0a79370e1c Use GitHub Actions env config instead of sed commands
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-02-13 02:05:30 +00:00
copilot-swe-agent[bot] 2ee38ff45d Initial plan 2026-02-13 02:01:54 +00:00
Luke B. SilverandGitHub 16537996e8 Merge pull request #11315 from appwrite/refactor-ci
refactor: ci
2026-02-13 01:44:31 +00:00
Jake Barnby 3b8ab19fa0 Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2026-02-13 14:42:47 +13:00
Jake Barnby af7862bbbd Remove invalid patch 2026-02-13 14:42:37 +13:00
Jake BarnbyandGitHub 1dcee3edbf Fxx variables 2026-02-13 01:40:37 +00:00
Jake BarnbyandGitHub 1274d56234 Update src/Appwrite/Auth/OAuth2/Mock.php 2026-02-13 14:34:31 +13:00
Jake BarnbyandGitHub c8db0c6dcc Apply suggestions from code review 2026-02-13 14:34:02 +13:00
loks0nandClaude Opus 4.6 78e63085cf Update PHPStan 1.8→1.12, pin composer images to 2.8
PHPStan 1.8 triggers deprecation warnings on the PHP version shipped
with composer:2.8. Upgrading to 1.12 resolves the compatibility issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:16:35 +00:00
loks0nandClaude Opus 4.6 4326600751 Refactor CI workflows: add COMPOSE_FILE env, add build targets, bump action versions, pin composer
- Add COMPOSE_FILE=docker-compose.yml to tests, benchmark, and sdk-preview to prevent loading overrides in CI
- Add target: development to tests/benchmark builds, target: production to pr-scan/nightly builds
- Bump actions/checkout v4→v6, docker/build-push-action v4/v5→v6, actions/upload-artifact v4→v6, actions/github-script v7→v8
- Pin composer images to 2.8 in linter and static-analysis workflows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:56:03 +00:00
Jake BarnbyandClaude Opus 4.6 52606f352c fix: handle 401 in assertEventually and increase curl timeout to 30s
- setupDeployment's assertEventually callbacks now handle 401 responses
  gracefully instead of crashing with "Undefined array key"
- Increase Client curl timeout from 15s to 30s for slow CI runners
  (testDeleteScheduledExecution and testGetScreenshotWithPermissions
  were hitting the 15s limit)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:37:07 +13:00
Jake BarnbyandClaude Opus 4.6 37b857903a fix: add callWithAuthRetry to FunctionsBase for transient 401s
Extract retry logic into a reusable callWithAuthRetry helper with
exponential backoff (5 retries, 2/4/6/8s delays). Apply to both
setupFunction and setupDeployment.

Previous fix only retried setupFunction, but 401 can hit any API call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:07:26 +13:00
Jake BarnbyandClaude Opus 4.6 efb523dab4 fix: add retry logic to setupFunction for flaky 401 auth errors
All 15 FunctionsCustomServerTest failures originate from setupFunction()
getting a transient 401 when the API key lookup fails under CI load.
Retry up to 3 times with a 2s delay on 401 responses.

Remove the per-method #[Retry] on testScopes since the root fix is now
in setupFunction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:53:14 +13:00
Jake BarnbyandClaude Opus 4.6 aa369dc371 fix: increase Sites activation timeout to 600s and add retry to testScopes
MongoDB CI builds take longer to process the deployment queue, causing
testSiteDomainReclaiming to timeout at 400s. Increase to 600s.

testScopes has an intermittent 401 auth failure - add #[Retry(count: 3)]
for resilience.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 09:16:27 +13:00
Jake BarnbyandClaude Opus 4.6 a13b9c0a88 fix: Increase Sites deployment activation timeouts and fix race condition
- Increase activation timeout in SitesBase setupDeployment from 200s to 400s
- Add assertEventually for deploymentId check in testCreateDeployment to handle
  the race condition where build worker sets deployment status to 'ready' before
  setting site.deploymentId
- Increase build ready timeouts from 50s to 300s in testCreateDeployment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 08:37:14 +13:00
Jake BarnbyandClaude Opus 4.6 8b822cd97c fix: Add missing _APP_DB_ADAPTER env var to worker-executions, worker-screenshots, and task-interval
The default for _APP_DB_ADAPTER was changed from 'mariadb' to 'mongodb' in
registers.php. Services without this env var default to the MongoDB adapter,
causing MariaDB/PostgreSQL function executions to get stuck in 'waiting'
status because the worker-executions service cannot connect to the database.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:53:16 +13:00
Jake BarnbyandClaude Opus 4.6 f0e6105ba0 fix: Use Docker Compose profiles to isolate database containers in CI
- Add profiles to database services (mariadb, mongodb, postgresql) so only
  the needed database starts per CI job, freeing resources for the executor
- Increase Sites deployment activation timeouts from 50-100s to 200s for
  MongoDB compatibility
- Increase SSR logs polling timeout from 30s to 120s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:27:21 +13:00
Jake BarnbyandClaude Opus 4.6 25a9aa1805 fix: Fix Sites test SSR logs timing and PostgreSQL search stop word
- Add polling for SSR execution logs instead of immediate access
- Change testListSites framework from 'other' to 'analog' because
  PostgreSQL treats 'other' as a fulltext stop word

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 06:36:51 +13:00
Jake BarnbyandClaude Opus 4.6 6f56c9c2ee fix: Gate spatial index null tests on adapter capability
PostgreSQL supports spatial indexes on nullable columns and required
spatial attributes on existing data, unlike MariaDB. Expose
supportForSpatialIndexNull console variable and condition test
assertions accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 06:22:53 +13:00
Jake BarnbyandClaude Opus 4.6 e3a39499f2 fix: Patch PostgreSQL boolean type mismatch in batch inserts
The SQL adapter's createDocuments() unconditionally casts boolean values to
integers (line 2518 in SQL.php), but PostgreSQL rejects int values for native
BOOLEAN columns. The single-document path already has an instanceof check to
preserve booleans for Postgres, but createDocuments() was missed.

This patch applies the same fix via a PHP script run during Docker build.
Fixes 26 test failures across PostgreSQL Legacy, TablesDB, and GraphQL suites.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 05:44:58 +13:00
Jake BarnbyandClaude Opus 4.6 e3c58a8c05 fix: Correct test capability gates and GraphQL dependencies
- Change spatial test gates from getSupportForRelationships() to
  getSupportForSpatials() in both Legacy and TablesDB DatabasesBase
- Add both relationship AND spatial gates for spatial relationship tests
- Add missing @depends for float, email, and datetime attributes/columns
  in GraphQL Server tests to ensure schema is complete before document/row
  creation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 05:06:48 +13:00
Jake BarnbyandClaude Opus 4.6 74b4c44bde fix: Gate relationship test on adapter support in TablesDB
MongoDB doesn't support relationships, so testInvalidRelationshipDocumentId
returns 400 instead of 202. Skip the test when the adapter lacks support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:59:00 +13:00
Jake BarnbyandClaude Opus 4.6 9b2dd958b5 fix: Use correct capability check for partial fulltext search in Users test
PostgreSQL's ts_vector/ts_query doesn't support partial word matching
(searching "man" won't find "manchester"), unlike MariaDB's LIKE-based
search. The test used getSupportForRelationships() as a proxy for this
capability, which was wrong for PostgreSQL (supports relationships but
not partial fulltext search).

Add supportForFulltextWildcard to console variables endpoint and use
it in the Users test instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:56:39 +13:00
Jake BarnbyandClaude Opus 4.6 b952bf7978 fix: Use custom PostgreSQL image with required extensions (PostGIS, pgvector)
The Postgres adapter in utopia-php/database requires PostGIS, pgvector,
and pg_trgm extensions. The plain postgres:18 image lacked these, causing
"collation utf8_ci_ai does not exist" errors (CREATE EXTENSION failed
before the collation could be created).

Switch to postgres:17 with a custom Dockerfile that installs the required
extensions, matching the approach used by utopia-php/database's own tests.
Also reverts the volume mount to /var/lib/postgresql/data (correct for v17).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:25:35 +13:00
Jake BarnbyandClaude Opus 4.6 490b9f844f fix: Update PostgreSQL volume mount for postgres:18 compatibility
PostgreSQL 18+ stores data in major-version-specific subdirectories under
/var/lib/postgresql instead of directly in /var/lib/postgresql/data. The
old mount path caused the container to crash immediately on startup with
a migration error, which was the actual root cause of all PostgreSQL CI
failures (the container was dead so Docker DNS couldn't resolve its name).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:14:45 +13:00
Jake BarnbyandClaude Opus 4.6 eaff193055 fix: Resolve PostgreSQL DNS failure by routing through Docker's embedded DNS
The appwrite container's `dns: 172.16.238.100` (CoreDNS) bypassed Docker's
embedded DNS, preventing resolution of service names like `postgresql`.
CoreDNS only handles custom test domains and forwards unknown queries to
Cloudflare, which can't resolve Docker service names.

Fix: Add 127.0.0.11 (Docker embedded DNS) as primary resolver and configure
CoreDNS to forward unknown queries to Docker DNS with Cloudflare as fallback.
Bind CoreDNS to its static IP to avoid port conflict with Docker's DNS proxy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:02:31 +13:00
fogelito b2aa2cc247 typo 2026-02-12 16:36:37 +02:00
Jake BarnbyandClaude Opus 4.6 61e69027a3 debug: Include error message in database connection retry log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:34:22 +13:00
Jake BarnbyandClaude Opus 4.6 fc893e1c7e fix: Add connect_timeout to PostgreSQL DSN and add server logs to CI
PDO ATTR_TIMEOUT does not control connection timeout for the pgsql driver.
Without connect_timeout in the DSN, the PDO constructor blocks indefinitely
if PostgreSQL isn't ready, which blocks the Swoole master process event loop
(since coroutine hooks are not enabled in http.php) and prevents all HTTP
request dispatching.

Also add appwrite server logs to CI failure output for debugging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:17:48 +13:00
fogelito 5756b58d4d $tableId 2026-02-12 15:59:34 +02:00
fogelito 2cb98a87c8 tablesdb 2026-02-12 15:58:39 +02:00
fogelito ecd575aec3 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into check-client-queries-strings 2026-02-12 15:55:12 +02:00
Jake BarnbyandClaude Opus 4.6 9b5695a21b fix: Use simple list form for worker-executions depends_on
Docker Compose doesn't support variable interpolation in depends_on map
keys (expanded form with condition). Use simple list form like all other
services.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 02:53:32 +13:00
fogelito db6a3342c0 fix tests 2026-02-12 15:52:39 +02:00
Jake BarnbyandClaude Opus 4.6 c9aa80473d fix: Correct import ordering for WhiteList in teams controller
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 02:47:45 +13:00
Jake BarnbyandClaude Opus 4.6 462ce71512 fix: Replace hardcoded mariadb dependencies with dynamic DB host in docker-compose
Four services (worker-screenshots, worker-executions, task-maintenance,
task-interval) had hardcoded `depends_on: mariadb` instead of using
`${_APP_DB_HOST:-mongodb}` like all other services. This caused ALL
PostgreSQL E2E tests to fail because those services couldn't start.

Also fix Storage test assertion that incorrectly used
getSupportForRelationships() as proxy for max UID length - the UID
validator always limits to 36 chars regardless of adapter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 02:44:49 +13:00
Jake BarnbyandClaude Opus 4.6 0e6fa7f300 fix: Add missing WhiteList import in teams controller
The WhiteList validator was used at lines 486 and 1090 but never imported,
causing a "Class not found" error and 500 response instead of proper validation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 02:36:29 +13:00
Jake BarnbyandGitHub cee77d0564 Merge branch '1.8.x' into feat-mongodb 2026-02-12 12:42:54 +00:00
Jake BarnbyandClaude Opus 4.6 2869d057f9 fix: Populate console variables with actual database adapter capabilities
The console variables endpoint was using model defaults (all true) for
supportForRelationships, supportForOperators, supportForSpatials, and
maxIndexLength instead of reading from the actual database adapter.
This caused tests to run unsupported operations on MongoDB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:41:03 +13:00
Chirag AggarwalandGitHub afbad9db0f Merge pull request #11285 from appwrite/release-agent-skills
feat: appwrite agent skills
2026-02-12 18:00:48 +05:30
Chirag Aggarwal eb5d7875e4 composer 2026-02-12 17:39:44 +05:30
Chirag Aggarwal 8645a17323 Merge branch '1.8.x' into release-agent-skills 2026-02-12 17:39:33 +05:30
Jake BarnbyandClaude Opus 4.6 f13f80b2a3 fix: Handle unlimited attribute limit for MongoDB in subQueryAttributes filter
MongoDB adapter returns 0 from getLimitForAttributes() meaning unlimited,
but Query::limit(0) fails validation since minimum valid limit is 1.
Fall back to APP_LIMIT_SUBQUERY (1000) when adapter reports unlimited.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:55:05 +13:00
Chirag Aggarwal efaf44c677 changes 2026-02-12 17:24:16 +05:30
Matej Bačo 54b2d2fe22 Merge branch '1.8.x' into chore-customizable-screenshot-router 2026-02-12 12:50:59 +01:00
Matej Bačo 2ec259d433 Introduce _APP_WORKER_SCREENSHOTS_ROUTER 2026-02-12 12:50:39 +01:00
fogelito fc03476246 fix to String 2026-02-12 13:50:22 +02:00
Jake Barnby ccb8b9eb6f Revert "fix: Set MariaDB adapter for non-adapter-specific CI tests"
This reverts commit 17d9a72922.
2026-02-13 00:35:56 +13:00
Jake BarnbyandClaude Opus 4.6 17d9a72922 fix: Set MariaDB adapter for non-adapter-specific CI tests
The .env defaults were changed to mongodb, but tests that don't
explicitly set a DB adapter (general, shared mode, abuse, screenshots)
were implicitly using the default. These tests need MariaDB since
shared tables mode is not supported with MongoDB yet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:34:38 +13:00
fogelito c7965e931f fix testConsoleAvailabilityEndpoint 2026-02-12 13:13:05 +02:00
fogelito 536f09e5b8 fix rules 2026-02-12 13:10:53 +02:00
Jake BarnbyandClaude Opus 4.6 d3e6c48a59 fix: Add missing Authorization parameter to Columns XList action
The TablesDB Columns XList::action() method was missing the
Authorization $authorization parameter that exists in the parent
Attributes XList class, causing a PHP fatal error that prevented
the appwrite service from starting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 23:57:51 +13:00
Jake Barnby 638778413d Fix workflows 2026-02-12 23:44:45 +13:00
Jake Barnby 6a005c06b1 Format 2026-02-12 23:40:51 +13:00
Jake Barnby 5590f0bcd0 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	.env
#	.github/workflows/tests.yml
#	app/controllers/api/projects.php
#	app/controllers/api/teams.php
#	app/init/registers.php
#	app/views/install/compose.phtml
#	composer.json
#	composer.lock
#	docker-compose.yml
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Create.php
#	src/Appwrite/Platform/Tasks/Install.php
#	src/Appwrite/Platform/Tasks/Upgrade.php
#	tests/e2e/Services/Databases/Legacy/DatabasesBase.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2026-02-12 23:35:21 +13:00
fogelito baa97e199e Merge branch '1.8.x' of https://github.com/appwrite/appwrite into check-client-queries-strings 2026-02-12 12:20:41 +02:00
fogelito 4ef8222294 Check strings 2026-02-12 12:18:03 +02:00
Chirag AggarwalandGitHub a4a062afb4 Merge pull request #11307 from appwrite/sync-specs-and-release-sdks
chore: release sdks to fix createMembership roles param
2026-02-12 15:33:21 +05:30
Jake BarnbyandGitHub 408f65bf64 Merge branch '1.8.x' into feat-db-tests 2026-02-12 09:14:57 +00:00
Matej BačoandGitHub 6944fa7520 Merge pull request #11302 from appwrite/feat-team-sequence
Feat: team sequence
2026-02-12 10:14:36 +01:00
Chirag AggarwalandGitHub 2bad5d8918 Merge pull request #11309 from appwrite/fix/static-files-worker-init
Fix static asset 404s by initializing Files per worker
2026-02-12 13:42:29 +05:30
Chirag AggarwalandGitHub 886528bb29 Merge pull request #11306 from appwrite/feat/messaging-spans 2026-02-12 13:13:35 +05:30
Chirag Aggarwal 086cf07c9c avoid tasks 2026-02-12 12:57:40 +05:30
Chirag Aggarwal 96ceab1a52 Fix static file loading by initializing Files per worker 2026-02-12 12:33:58 +05:30
Jake BarnbyandClaude Opus 4.6 aa8324f7b9 fix: increase Proxy deployment activation timeout to 5 minutes
Under heavy parallel CI load, VCS deployments take longer to build
and activate. Increased from 200s to 300s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:25:08 +13:00
Jake BarnbyandGitHub d931003453 Merge pull request #11291 from appwrite/feat-project-status 2026-02-12 06:08:16 +00:00
Jake BarnbyandGitHub 7361b01a7d Merge pull request #11255 from appwrite/feat-update-base 2026-02-12 06:05:54 +00:00
fogelito 2db6f7e72f check $ruleType 2026-02-12 07:54:30 +02:00
Jake BarnbyandClaude Opus 4.6 6efb20f44c fix: increase all schema polling default timeouts to 10 minutes
Under parallel CI load with MariaDB, attribute processing frequently
exceeds the previous 5-minute default timeout. Increased all polling
defaults (waitForAttribute, waitForAttributes, waitForAttributeCount,
waitForAllAttributes, waitForIndex, waitForAllIndexes) to 10 minutes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:50:32 +13:00
Chirag Aggarwal df20c12f6e chore: release sdks to fix createMembership roles param 2026-02-12 11:12:51 +05:30
Jake BarnbyandClaude Opus 4.6 663b75bc03 fix: increase waitForAllAttributes timeout for movies collection setup
The 'integers' attribute was getting stuck in 'processing' status under
MariaDB parallel CI load, exceeding the default 5-minute timeout.
Increased to 10 minutes, matching the spatial test timeout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:36:36 +13:00
Jake BarnbyandClaude Opus 4.6 006867617b Fix parallel test assertions and graceful runtime cleanup
- Fix testListProjectKey: use dynamic key counts instead of hardcoded 5
  (parallel workers don't share state from testCreateProjectKey)
- Fix testGetProjectKey: expect 'Key Test' from setupProjectWithKey(),
  not 'Key Custom' from a previously-dependent test
- Handle 404 in Executor::deleteRuntime() (runtime already gone)
- Make cancel deployment cleanup best-effort (status already updated)
- Apply same fix to Sites cancel endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:23:55 +13:00
Jake BarnbyandClaude Opus 4.6 fa7ebbffa8 Fix void return in testListProjectKey and increase spatial test timeout
- Remove `return $data` from testListProjectKey() which is declared void,
  causing fatal PHP error that crashed Projects and Abuse test suites
- Increase waitForAllAttributes timeout to 10min for spatial column test
  to handle MariaDB slowness under parallel CI load

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:12:54 +13:00
loks0nandChirag Aggarwal a486085322 feat: messaging spans 2026-02-12 09:36:58 +05:30
Jake Barnby d2e77aa5cd Fix indents 2026-02-12 16:35:36 +13:00
Jake Barnby 7d5f6c9bf3 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	.github/workflows/tests.yml
#	composer.lock
#	tests/e2e/Services/Projects/ProjectsConsoleClientTest.php
#	tests/e2e/Services/Teams/TeamsCustomClientTest.php
2026-02-12 12:34:42 +13:00
Jake Barnby 40b8b539e8 Update lock 2026-02-12 12:26:19 +13:00
Jake Barnby ce4e99d643 Merge remote-tracking branch 'origin/1.8.x' into feat-update-base
# Conflicts:
#	composer.json
2026-02-12 12:20:04 +13:00
Matej Bačo b625bdb189 Formatting fix 2026-02-11 17:25:44 +01:00
Matej Bačo 5ac58e7723 Implement team sequence 2026-02-11 17:25:17 +01:00
Damodar Lohani efc1a5376b Merge remote-tracking branch 'origin/1.8.x' into feat-project-status 2026-02-11 13:34:57 +00:00
Damodar Lohani 565237df7d Merge remote-tracking branch 'origin/1.8.x' into chore-tests 2026-02-11 13:34:31 +00:00
Chirag AggarwalandGitHub 435af97db1 Merge pull request #11297 from appwrite/fix/origin-validator-type-error
fix: Fix TypeError in Origin validator when array is passed
2026-02-11 18:20:32 +05:30
Chirag AggarwalandGitHub 781512cf88 Merge pull request #11295 from appwrite/release-cli-13.3.2
chore: release cli 13.3.2
2026-02-11 18:11:59 +05:30
Chirag Aggarwal 1a966741f4 (fix): Fix TypeError in Origin validator when array is passed
Move type check before assignment to prevent TypeError when non-string
value (like array) is passed to Origin::isValid(). The property
\$this->origin is typed as string, so assigning an array before
the is_string() check caused the error.
2026-02-11 18:01:18 +05:30
Chirag Aggarwal bb56c9a91e Merge branch '1.8.x' into release-cli-13.3.2 2026-02-11 17:24:38 +05:30
Chirag AggarwalandGitHub 942b90cb2a Merge pull request #11283 from appwrite/fix/cli-static-setresource
Upgrade utopia-php dependencies and fix namespace changes
2026-02-11 17:16:54 +05:30
Chirag AggarwalandGitHub 351cd569cf Merge pull request #11296 from appwrite/chore/add-php-retry-tests-workflow
chore(ci): add php-retry for all tests in tests workflow
2026-02-11 16:57:00 +05:30
Chirag Aggarwal b243404a71 chore(ci): add PR comment permissions to retry jobs 2026-02-11 16:53:25 +05:30
Chirag Aggarwal dcb759e3fe chore(ci): restore retry job metadata inputs 2026-02-11 16:49:59 +05:30
Chirag Aggarwal 5371aa6820 chore(ci): add php-retry to tests workflow 2026-02-11 16:30:29 +05:30
Chirag Aggarwal f7f97cdb33 chore: release cli 13.3.2 2026-02-11 16:16:59 +05:30
Chirag Aggarwal 61c5374134 remove orchestration 2026-02-11 16:04:20 +05:30
Chirag Aggarwal 45f4b1e8ad Merge branch '1.8.x' into fix/cli-static-setresource 2026-02-11 16:04:14 +05:30
Jake BarnbyandGitHub 465d21badd Merge pull request #11293 from appwrite/feat-pg-adapter 2026-02-11 10:15:58 +00:00
Chirag Aggarwal a2dc62d4e5 fix 2026-02-11 15:20:30 +05:30
Jake BarnbyandGitHub 686a6f9474 Merge branch '1.8.x' into feat-update-base 2026-02-11 08:35:50 +00:00
Jake BarnbyandGitHub 308609a0a2 Merge branch '1.8.x' into feat-pg-adapter 2026-02-11 08:34:45 +00:00
Jake BarnbyandGitHub f631fba124 Merge pull request #11270 from appwrite/fix-invalid-chunktotal 2026-02-11 08:21:31 +00:00
Jake BarnbyandClaude Opus 4.6 bc69154024 fix: add retry logic to helperGetLatestCommit for GitHub API rate limits
The testCreateSiteFromTemplateCommit test fails intermittently when the
unauthenticated GitHub API call gets rate limited, returning null. Added
3 retries with 5s delay to handle transient failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:39:21 +13:00
Jake BarnbyandGitHub 2d76fcced1 Merge pull request #11272 from appwrite/realtime-query-reserved-channels 2026-02-11 07:09:28 +00:00
Jake BarnbyandClaude Opus 4.6 32c617a149 fix: remove invalid YAML condition syntax in docker-compose.yml
The appwrite-worker-functions depends_on section mixed list format
(- redis) with mapping format (condition: service_healthy), causing
a YAML parse error at line 696 that prevented docker compose from
starting, failing all CI checks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:02:36 +13:00
Jake BarnbyandGitHub 8861a489ec Merge pull request #9772 from ArnabChatterjee20k/pg-adapter 2026-02-11 06:41:59 +00:00
Chirag AggarwalandGitHub b2f4c4227e Merge branch '1.8.x' into fix/cli-static-setresource 2026-02-11 12:10:35 +05:30
Chirag Aggarwal 33cb992934 bump all to stable 2026-02-11 12:07:36 +05:30
Jake BarnbyandGitHub 2fc7074908 Merge branch '1.8.x' into pg-adapter 2026-02-11 06:35:14 +00:00
Jake BarnbyandGitHub 00fdf76d71 Update docker-compose.yml 2026-02-11 19:34:59 +13:00
Jake BarnbyandGitHub 1dec34cc2d Update docker-compose.yml 2026-02-11 19:34:49 +13:00
Jake BarnbyandGitHub b08e0ad8ac Update app/config/variables.php 2026-02-11 19:34:38 +13:00
Chirag Aggarwal fed9af7568 remove console dev branch 2026-02-11 12:03:12 +05:30
Chirag AggarwalandGitHub 64fff8f26b Merge pull request #11292 from appwrite/fix/oauth-redirect-custom-scheme
Fix OAuth redirect for custom scheme state
2026-02-11 12:00:37 +05:30
Jake BarnbyandGitHub efaf23d1a3 Merge pull request #11261 from appwrite/export-stats-revert 2026-02-11 06:27:35 +00:00
Chirag Aggarwal 17d3abb287 feat: appwrite agent skills 2026-02-11 11:20:00 +05:30
Chirag Aggarwal 161b971f53 Fix oauth redirect custom scheme state 2026-02-11 10:11:04 +05:30
Damodar Lohani 6b8b11e167 no longer ignore 2026-02-11 02:00:38 +00:00
Damodar Lohani ac35e7c7ad update test to use the config 2026-02-11 01:59:09 +00:00
Damodar Lohani fb595ced55 Feat: Restore project status attribute in project creation 2026-02-11 01:26:17 +00:00
Damodar Lohani c03bb5a4e6 format 2026-02-11 01:25:04 +00:00
Damodar Lohani ead7d03c6c Feat: Add project status attribute
Add project status attribute to platform collections and set default status in project creation
2026-02-11 01:18:21 +00:00
HemachandarandGitHub 1822ede19e Fix GitHub error file path (#11289)
* Fix error file path in GitHub APIs

* const
2026-02-10 21:21:48 +05:30
Chirag Aggarwal 7c5fc442f1 retry 2026-02-10 17:38:52 +05:30
Matej BačoandGitHub 51f036491a Merge pull request #11278 from appwrite/feat-list-api-keys-queries
Feat: queries param on list api keys
2026-02-10 12:47:00 +01:00
Matej Bačo 4df0934023 Comment fix 2026-02-10 12:01:38 +01:00
Luke B. SilverandGitHub 5e974713b7 Merge pull request #11281 from appwrite/feat/worker-executions
feat: worker executions
2026-02-10 10:56:30 +00:00
Chirag Aggarwal d74704e10b composer 2026-02-10 16:26:26 +05:30
Damodar Lohani bb76becf81 Add CORS configuration and refactor CORS resource handling 2026-02-10 10:52:53 +00:00
Matej Bačo e2071bd5dd add backwards compatibility 2026-02-10 11:48:29 +01:00
Matej Bačo 0621a32aa6 Fix tests; speed up tests; fix 5xx error 2026-02-10 11:43:22 +01:00
Matej Bačo e1cbbe3943 Merge branch '1.8.x' into feat-list-api-keys-queries 2026-02-10 10:46:56 +01:00
Matej BačoandGitHub 226e36db95 Merge pull request #11277 from appwrite/feat-api-key-custom-id
Feat: custom ID for API keys
2026-02-10 10:46:00 +01:00
Matej BačoandGitHub faedf49488 Merge pull request #11276 from appwrite/fix-rule-oauth
Fix: rule oauth flow
2026-02-10 10:27:25 +01:00
Chirag Aggarwal 99d8eefdcf fix class issue 2026-02-10 12:41:59 +05:30
Chirag Aggarwal 73b19b9028 ordering 2026-02-10 12:19:47 +05:30
Chirag AggarwalandGitHub c7d4314498 Merge branch '1.8.x' into fix/cli-static-setresource 2026-02-10 12:19:31 +05:30
Chirag Aggarwal 0fd93f4097 chore try fix console execute 2026-02-10 12:17:49 +05:30
Chirag Aggarwal a80209ddbd fix cookie parsing 2026-02-10 11:45:10 +05:30
Chirag Aggarwal 63a6714e31 fix import 2026-02-10 10:56:13 +05:30
Chirag Aggarwal 2d05d608f4 Upgrade utopia-php dependencies and fix namespace changes
- Upgrade utopia-php/cli from 0.15 to 0.22
- Upgrade utopia-php/analytics from 0.10 to 0.15
- Upgrade utopia-php/orchestration from 0.9 to 0.19
- Use dev branches for utopia-php/framework and utopia-php/platform
- Remove utopia-php/swoole dependency (merged into framework)
- Migrate Utopia\CLI\Console to Utopia\Console across all files
- Migrate Utopia\Http to Utopia\Http\Http namespace
- Migrate Utopia\Swoole\Files to Utopia\Http\Files (now instance-based)
- Convert static CLI::setResource() calls to instance-based Dependency API
- Fix StatsResources task named parameter mismatch
2026-02-10 10:34:24 +05:30
Chirag Aggarwal c551fda8d8 Fix CLI setResource() static calls and named parameter mismatch
CLI::setResource() is no longer static in the updated utopia-php/cli
library. Moved platform/CLI initialization before resource setup and
converted all static CLI::setResource() calls to use Dependency-based
instance method via a helper closure. Also renamed $queue to
$queueForStatsResources in StatsResources task to match the injected
resource name, fixing PHP 8 named parameter resolution.
2026-02-10 10:33:14 +05:30
Damodar Lohani f8fb2e8c2d Chore: test group 2026-02-10 00:01:40 +00:00
Jake BarnbyandGitHub 50193ebeeb Merge branch '1.8.x' into feat-update-base 2026-02-09 23:31:00 +00:00
Jake BarnbyandGitHub 00525a5a02 Merge branch '1.8.x' into feat-db-tests 2026-02-09 22:58:10 +00:00
loks0n b432918385 feat: worker executions 2026-02-09 20:20:44 +00:00
Matej Bačo a87263a571 Fix failing test 2026-02-09 20:07:33 +01:00
Matej Bačo dafa97879c AI review fixes 2026-02-09 17:12:30 +01:00
Matej Bačo a263afeff1 AI quality fixes 2026-02-09 17:10:00 +01:00
Matej Bačo 29915ddd3b Manual fixes of agent code 2026-02-09 16:58:44 +01:00
Matej Bačo c0f5fa90cb Fix AI review 2026-02-09 16:53:18 +01:00
Matej Bačo e666dc9504 AI review fixes 2026-02-09 16:42:14 +01:00
Matej Bačo 3dc69ba62a Revert unwanted push 2026-02-09 15:55:49 +01:00
Matej Bačo 7bf5f2d360 Fix bug 5xx error 2026-02-09 15:55:35 +01:00
Matej Bačo 6df5556473 Implement queries param to list api keys 2026-02-09 14:58:36 +01:00
Matej Bačo 96e85c0bab AI pr review 2026-02-09 14:35:47 +01:00
Matej Bačo 40ab50ec9d formatting fix 2026-02-09 14:34:52 +01:00
Matej Bačo 9b762dde40 formatting fix 2026-02-09 14:34:36 +01:00
Matej Bačo 615aff0714 Allow custom ID for API keys 2026-02-09 14:34:05 +01:00
Matej BačoandGitHub 994850c5a6 Merge pull request #11275 from appwrite/fix-vcs-template-flow
Fix VCS template flow
2026-02-09 14:00:39 +01:00
Matej Bačo 525b929e54 Fix implementation, add tests 2026-02-09 13:57:19 +01:00
Matej Bačo 074ffad826 Improve origin unit tests 2026-02-09 13:46:15 +01:00
Matej Bačo 36c87d109a Fix rule oauth flow 2026-02-09 13:45:18 +01:00
Matej Bačo e09dd98f36 Fix site vcs deployment bug too 2026-02-09 13:30:46 +01:00
Matej Bačo 96e1221a5f Fix implementation 2026-02-09 13:27:31 +01:00
Matej Bačo e13f4c8545 Fix VCS template flow 2026-02-09 13:26:33 +01:00
HemachandarandGitHub 353b7f2a49 Move VCS auth & callback APIs to Modules (#11274)
* Move VCS auth & callback APIs to Modules

* lint

* rename
2026-02-09 15:55:37 +05:30
HemachandarandGitHub f7ab8e46d3 Improve certificate dns failure logs (#11268)
* Better logs for DNS failures

* some more

* appwrite exception

* type

* refactor

* tiny

* better logs
2026-02-09 15:45:41 +05:30
Jake BarnbyandClaude Opus 4.6 39b6aad959 fix: Use 'columns' instead of 'attributes' for TablesDB index creation
The TablesDB index creation API requires 'columns' parameter, not
'attributes' (which is the collections API parameter). This caused
testDeleteIndexTablesAPI to always fail because the index was never
actually created.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 22:11:18 +13:00
ArnabChatterjee20kandGitHub efd6951764 Merge branch '1.8.x' into pg-adapter 2026-02-09 14:16:06 +05:30
Chirag AggarwalandGitHub bec6725900 Merge pull request #11273 from appwrite/release-cli-13.3.1
chore: release cli 13.3.1
2026-02-09 13:59:31 +05:30
Jake BarnbyandClaude Opus 4.6 7bfae7c2c3 fix: Add diagnostic assertions to Realtime test helpers
Add response status checks on all creation calls (database, table,
column, index) to catch silent failures early and provide diagnostic
info instead of mysterious 404s during polling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:26:16 +13:00
ArnabChatterjee20kandGitHub f13cda7e9f Merge branch '1.8.x' into export-stats-revert 2026-02-09 13:47:02 +05:30
Jake BarnbyandClaude Opus 4.6 4412be13f0 fix: Increase Proxy deployment activation timeout from 100s to 200s
Same issue as Sites - under CI parallel load the deployment builds
successfully but activation propagation takes longer than 100s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:03:56 +13:00
Chirag Aggarwal 494ce5fc6a chore: release cli 13.3.1 2026-02-09 13:14:28 +05:30
Jake BarnbyandClaude Opus 4.6 b597fb9956 fix: Replace sleep(5) with proper polling and increase timeouts in Realtime tests
The Realtime test helpers used fragile sleep(5) for attribute/index
creation and had short polling timeouts (30s/60s) that fail under CI
parallel load. Replaced with assertEventually polling and increased
all timeouts to 120s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 20:42:15 +13:00
ArnabChatterjee20k 6afb5ccf10 updated the comments 2026-02-09 13:08:02 +05:30
ArnabChatterjee20k 4b3c4323ee Enhance reserved parameter handling in Realtime adapter and update related tests 2026-02-09 13:07:11 +05:30
Jake BarnbyandClaude Opus 4.6 6a1fa1d608 fix: Increase schema polling timeouts from 3min to 5min for CI stability
Under parallel load in CI, attribute/index workers can take longer than
3 minutes to process. Increase all polling timeouts to 5 minutes to
reduce flaky failures from worker queue congestion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:54:01 +13:00
ArnabChatterjee20k ecea1a580d updated channels 2026-02-09 12:02:01 +05:30
ArnabChatterjee20k 842c274d02 updated tests 2026-02-09 11:55:39 +05:30
ArnabChatterjee20k 81f4d10ad6 Enhance Realtime channel handling for project queries and improve test coverage 2026-02-09 11:48:04 +05:30
Jake BarnbyandClaude Opus 4.6 2a41fc6f23 fix: Move server-side check before setupCollection in testConsoleProject
Prevents risky test warning where setupCollection makes assertions
before expectNotToPerformAssertions is called for server-side tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:15:35 +13:00
Jake BarnbyandClaude Opus 4.6 a55a784f07 fix: Use fresh magic URL token in testCreateSessionWithMagicUrl
The cached token from setupMagicUrl may have been consumed by
setupMagicUrlSession in a previous test method in the same process,
causing a 401 when the test tries to create a session with it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 18:20:36 +13:00
Jake BarnbyandClaude Opus 4.6 64d6efd098 fix: Add missing attribute types to Collection/AttributeList models and fix parallel test issues
- Add MODEL_ATTRIBUTE_VARCHAR/TEXT/MEDIUMTEXT/LONGTEXT to Collection and
  AttributeList models, fixing TypeError in Response::hasModel() that
  caused 4974 server crashes when serializing collections with new
  string attribute types
- Initialize $ruleType to null in Response::output() to prevent
  undefined variable when no model condition matches
- Isolate testUniqueIndexDuplicate with its own collection to prevent
  duplicate title interference from parallel tests in the same process
- Add retry mechanism to phone session creation for OTP token issues
- Increase GraphQL function build timeout from 30s to 120s
- Increase Sites deployment activation timeout from 100s to 200s
- Relax GraphQL bulk update row count assertion for parallel safety

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:53:21 +13:00
Jake BarnbyandClaude Opus 4.6 b3eecac6f9 fix: Add error details to assertions and handle 409 in relationship setup
- Add response body to assertion messages for debugging 400/409 errors
- Re-add 409 handling for relationship creation (race condition in parallel mode)
- Use explicit fullName: null instead of empty data for null person documents

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:56:08 +13:00
Jake BarnbyandClaude Opus 4.6 d617f89642 fix: Fix parallel test failures across Databases, GraphQL, Realtime, and Account
- DatabasesBase: Wait for twoWayKey attribute on library collection in
  setupOneToManyRelationship; use server API key headers for document creation
- DatabasesStringTypesTest: Add delays between attribute creation batches to
  avoid overwhelming the database worker
- SchemaPolling: Improve waitForAllAttributes error messaging
- GraphQL UsersTest: Use fresh user in testDeleteUserSession to avoid
  session conflicts
- Realtime: Increase WebSocket timeout to 120s and index polling to 60s
- Account: Add better error reporting for phone session creation failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:08:55 +13:00
Damodar Lohani 3c78f78ea9 Fix: chunk upload handling for single chunk uploads 2026-02-09 02:54:40 +00:00
Jake BarnbyandClaude Opus 4.6 e319feb1d4 fix: Fix relationship twoWayKey, hardcoded IDs, and datetime format issues
- Set explicit twoWayKey in testOneToOneRelationship to avoid auto-generated ID
- Replace hardcoded person10/library10/11 IDs with ID::unique() in setupOneToManyRelationship
- Fix remaining datetime format comparison in testUpdateScheduledAt
- Use assertStringContainsString for Projects mock numbers excess items test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 15:28:38 +13:00
Jake BarnbyandClaude Opus 4.6 1b9d0ca1c6 fix: Fix remaining parallel-safety issues from CI iteration 2
- Fix DB relationship tests: use ID::unique() for person/library collections
- Fix DB StringTypesTest: use waitForAllAttributes instead of sleep(3)
- Fix DB permissions tests: update expected counts for parallel mode
- Fix Account OAuth tests: clean up shared mock OAuth email before use
- Fix Account phone tests: ensure phone auth enabled, unique phone numbers
- Fix Messaging: compare datetime via timestamps, accept processing state
- Fix GraphQL testGetColumn: call setupStringColumn instead of setupTable
- Fix Projects: update mock numbers error message assertion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:55:41 +13:00
Jake BarnbyandClaude Opus 4.6 161e4e53d4 fix: Address remaining parallel-safety failures across all test suites
- Fix Legacy DatabasesStringTypesTest with project-keyed setup cache
- Fix Account OTP test with unique email, phone session re-login
- Fix GraphQL setup methods with sleep, 409 handling, missing columns
- Fix Databases list/pagination tests with document ID filtering
- Fix Permissions tests with assertGreaterThanOrEqual for counts
- Fix Messaging scheduled tests to not depend on scheduler timing
- Increase Realtime WebSocket timeout to 60s and assertEventually to 30s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:20:42 +13:00
Jake BarnbyandClaude Opus 4.6 2da4211f69 fix: Make E2E tests parallel-safe for functional mode
- Fix missing return statement in DatabasesBase::testListDocuments
- Rewrite DatabasesStringTypesTest with project-keyed setup cache
- Use assertGreaterThanOrEqual in Functions testListDeployments
- Clean up OIDC provider after Account OAuth2 test
- Key all GraphQL static caches by project ID with unique IDs
- Replace sleep() with assertEventually in Realtime tests
- Increase Messaging scheduled message timeout to 180s
- Increase Sites deployment timeouts to 120s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:25:19 +13:00
Matej BačoandGitHub bae7b92dd9 Merge pull request #11269 from appwrite/fix-oauth-for-rules
Fix redirect url approval for oauth flow
2026-02-08 15:08:30 +01:00
Matej Bačo 801707c407 Linter fix 2026-02-08 14:47:47 +01:00
Matej Bačo 94581adfcb Improve dev key tests 2026-02-08 14:44:21 +01:00
Matej Bačo fd323feae8 Simplify diff 2026-02-08 14:37:35 +01:00
Matej Bačo 3a0dc60a4c Add test; fix implementation; pr reviews 2026-02-08 14:36:34 +01:00
Matej Bačo bed46a6bef Fix redirect url approval for oauth flow 2026-02-08 14:12:23 +01:00
Chirag AggarwalandGitHub ba5273872b Merge pull request #11267 from appwrite/fix/disable-execution-writes-nyc-api
fix: disable execution document writes for nyc region in API
2026-02-07 21:45:07 +05:30
Chirag Aggarwal f1639e0b67 fix: disable execution document writes for nyc region in API
Temporarily skip execution createDocument calls in the Executions
Create handler when _APP_REGION is set to 'nyc' to reduce database
load. Marked with TODO comments for removal.
2026-02-07 21:42:10 +05:30
Chirag AggarwalandGitHub e8fe9222b2 Merge pull request #11266 from appwrite/fix/disable-execution-writes-nyc
fix: disable execution document writes for nyc region
2026-02-07 21:20:58 +05:30
Chirag Aggarwal a520a67da8 fix: disable execution document writes for nyc region
Temporarily skip all execution createDocument and updateDocument calls
in the Functions worker when _APP_REGION is set to 'nyc' to reduce
database load. Marked with TODO comments for removal.
2026-02-07 21:19:00 +05:30
Luke B. SilverandGitHub 9c03c5fab3 Merge pull request #11265 from appwrite/chore/upgrade-traefik
chore: upgrade traefik
2026-02-06 20:14:38 +00:00
loks0n d864a61f93 chore: upgrade traefik 2026-02-06 19:16:37 +00:00
Chirag AggarwalandGitHub fb1cbdca6c Merge pull request #11263 from appwrite/upgrade-spomky-labs/otphp
chore: upgrade spomky-labs/otphp to latest
2026-02-06 20:14:26 +05:30
ArnabChatterjee20k 7faf14769f added metric documents 2026-02-06 19:10:00 +05:30
ArnabChatterjee20k 96532b9725 linting 2026-02-06 18:47:22 +05:30
Chirag Aggarwal ab35806372 update system lib 2026-02-06 15:43:59 +05:30
Luke B. SilverandGitHub 9612ed338f Merge pull request #11262 from appwrite/chore-remove-auth-skip-from-workers
chore: remove auth skip from workers
2026-02-06 10:13:11 +00:00
Chirag Aggarwal 1219391c76 update composer 2026-02-06 15:27:42 +05:30
HemachandarandGitHub da7f5b7336 Move VCS repository APIs to Modules (#11259)
* Move VCS repository APIs to Modules

* add to http

* lint

* strategy fix

* rename to detections
2026-02-06 15:22:44 +05:30
loks0n ec418e60b7 chore: remove auth skip from workers 2026-02-06 09:44:10 +00:00
Chirag Aggarwal 455004a536 chore: upgrade spomky-labs/otphp to latest 2026-02-06 15:12:37 +05:30
Jake BarnbyandClaude Opus 4.5 c5ec632709 fix: Make Functions execution tests parallel-safe
- testListExecutions: Don't assume position in results list
- Use assertContains with array_column instead of position[0]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:59:51 +13:00
Jake BarnbyandClaude Opus 4.5 870ccc9a1b fix: Fix webhook tests for parallel mode
- testDeleteUser: User is created with status=true, so assert that
- testUpdateUserStatus: Use probe to find correct webhook event

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:58:53 +13:00
Jake BarnbyandClaude Opus 4.5 0737ba1329 fix: Make more tests parallel-safe for functional mode
- Account: Use unique emails/phone numbers to avoid collisions
- Functions: Use flexible assertions for counts and search results
- GraphQL: Add better error handling and use unique IDs
- Projects: Use assertGreaterThanOrEqual for list counts
- Webhooks: Use probe to find specific delete webhook event

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:48:55 +13:00
Matej BačoandGitHub 2ad0135890 Merge pull request #11249 from appwrite/ser-1092-v2
Create rule in SSL task
2026-02-06 09:34:26 +01:00
Jake BarnbyandClaude Opus 4.5 627def5993 fix: Make Functions testListDeployments parallel-safe
- Use foreach loop to check all deployments instead of hardcoded indices
- Fix offset test to not assume exactly 1 function exists

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:25:10 +13:00
Jake BarnbyandClaude Opus 4.5 6e103393b8 fix: Fix undefined $data variables in Webhooks tests
- testCreateAttributes: Use $actorsId instead of undefined $data['actorsId']
- testCreateColumns: Use $actorsId instead of undefined $data['actorsId']
- testCreateAccountSession: Add assertion for account creation success

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:23:44 +13:00
Jake BarnbyandClaude Opus 4.5 a4cca146d3 fix: Remove undefined $totalUsers and use parallel-safe assertions
The testListUsers function was using $totalUsers which was removed when
the test was refactored for parallel execution. Now uses $minUsers and
flexible assertions instead of position-based assertions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:22:14 +13:00
Jake BarnbyandClaude Opus 4.5 e605848541 perf: Enable --functional mode for true method-level parallelism
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:19:38 +13:00
Jake BarnbyandClaude Opus 4.5 9f9d195daf fix: Add retry logic and defensive checks for Teams owner downgrade test
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:16:41 +13:00
Jake BarnbyandClaude Opus 4.5 a79f33a3a1 fix: Remove incorrect json_decode in setupUser
The client body is already decoded as array, not JSON string.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:13:23 +13:00
Jake BarnbyandClaude Opus 4.5 6be719c9d4 fix: Add retry logic for 401 errors in ProjectCustom::getProject
Under high parallel load, authentication can transiently fail with 401.
Add retry logic with delays to handle these transient failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 21:07:00 +13:00
Jake BarnbyandClaude Opus 4.5 ce200d20d4 fix: Make webhook account tests self-sufficient
Update account name before testing to ensure webhook data has
expected 'New Name' value, regardless of test execution order.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:59:58 +13:00
Jake BarnbyandClaude Opus 4.5 8627251ae4 fix: Make testDeleteStorageBucket self-sufficient
Update bucket name before deleting to ensure webhook data has
expected name, regardless of whether testUpdateStorageBucket ran.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:59:16 +13:00
Jake BarnbyandClaude Opus 4.5 1f17dca7c9 fix: Handle 409 conflicts in GraphQL TablesDB tests
- setupDatabase() now fetches existing database on conflict
- setupTable() now fetches existing tables on conflict
- Enables parallel test execution with fixed resource IDs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:56:45 +13:00
Jake BarnbyandClaude Opus 4.5 0e828f3fcc fix: Handle 409 conflicts in GraphQL Legacy tests
- setupDatabase() now fetches existing database on conflict
- setupCollections() now fetches existing collections on conflict
- Enables parallel test execution with fixed resource IDs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:55:59 +13:00
Jake BarnbyandClaude Opus 4.5 d4020686f2 fix: Make testListUsers parallel-safe
- Use assertGreaterThanOrEqual instead of exact count
- Find users by ID instead of assuming position
- Document expected minimum user count for isolated execution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:53:42 +13:00
Jake BarnbyandClaude Opus 4.5 de8915b416 fix: Make testListBucket self-sufficient for parallel execution
Create bucket1 within testListBucket instead of relying on
testCreateBucket running first. Accept 409 if bucket already exists.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:47:29 +13:00
Jake BarnbyandClaude Opus 4.5 fd8e8fc736 fix: Make Storage cursorAfter test parallel-safe
Use assertGreaterThanOrEqual and find bucket by ID instead of
assuming exact count and position after cursor query.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:42:43 +13:00
Jake BarnbyandClaude Opus 4.5 07c9a274b1 fix: Use assertGreaterThanOrEqual for fileSecurity bucket count
In parallel execution, there may be more buckets with fileSecurity=true

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:36:21 +13:00
Jake BarnbyandClaude Opus 4.5 40ed0da8b3 fix: Fix testUpdateAccountNameSearch for parallel execution
Use assertGreaterThanOrEqual and find user by ID instead of assuming position

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:27:47 +13:00
Jake BarnbyandClaude Opus 4.5 a2ae55dcbe fix: Improve parallel test isolation for Account, Storage, Messaging
- Account: Add createFreshAccountWithSession() for predictable session/log counts
- Account: Update testGetAccountSessions and testGetAccountLogs to use fresh accounts
- Storage: Fix testListBucket to find bucket by ID instead of assuming first position
- Messaging: Fix testListSubscribers to find subscriber by ID instead of assuming first position

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:24:28 +13:00
Jake BarnbyandGitHub 6414c0ebda Merge pull request #11201 from appwrite/get-cursor-queries
Get cursor queries
2026-02-06 07:15:35 +00:00
Jake BarnbyandArnabChatterjee20k a3574032e3 Update src/Appwrite/Platform/Workers/Migrations.php 2026-02-06 12:27:10 +05:30
ArnabChatterjee20k 6c38c566d9 optimised the memory usage by resource aggregation 2026-02-06 12:27:09 +05:30
ArnabChatterjee20k 7997763532 linting 2026-02-06 12:26:35 +05:30
ArnabChatterjee20k bf84144201 updated reset of the stats usage worker to reset metrics 2026-02-06 12:25:59 +05:30
ArnabChatterjee20k 532ec364d2 updated migration version 2026-02-06 12:25:53 +05:30
ArnabChatterjee20k b517e502a9 lint 2026-02-06 12:25:38 +05:30
ArnabChatterjee20k 4396a0ef7e added processing of migration resource stats 2026-02-06 12:24:41 +05:30
ArnabChatterjee20k 6eaebaec1b updated compose 2026-02-06 11:49:41 +05:30
ArnabChatterjee20k 88e2d5c496 updated compose 2026-02-06 11:44:44 +05:30
ArnabChatterjee20k e3aaac7f9f Merge remote-tracking branch 'origin/1.8.x' into pg-adapter 2026-02-06 11:35:38 +05:30
Jake BarnbyandGitHub 801befeacd Merge branch '1.8.x' into get-cursor-queries 2026-02-06 05:59:48 +00:00
Jake BarnbyandClaude Opus 4.5 3b025fa12a fix: Make testCreateAttributes and testCreateIndexes parallel-safe
These tests were creating resources directly in the shared collections,
which conflicts with setupAttributes() and setupIndexes() when tests
run in parallel. Now each test creates its own dedicated collection
to avoid conflicts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:50:36 +13:00
Jake BarnbyandGitHub 941d40e704 Merge pull request #11260 from appwrite/localhost-endpoint
Localhost endpoint CSV
2026-02-06 05:49:55 +00:00
fogelito 093bc7bf3d Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-06 07:14:07 +02:00
fogelito 90f10ce685 Use https 2026-02-06 07:13:39 +02:00
Jake BarnbyandClaude Opus 4.5 945eb43558 fix: Use more entropy for email generation in parallel tests
Adding process ID and random bytes to uniqid() to avoid email
collisions when running tests in parallel with functional mode.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:00:27 +13:00
Jake BarnbyandClaude Opus 4.5 62e0598008 fix: Remove more invalid returns from void test methods
Removed return statements from testManyToOneRelationship and
testManyToManyRelationship which were declared as void. These
cause PHP fatal errors in PHP 8.4+.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 17:46:42 +13:00
Jake BarnbyandClaude Opus 4.5 fd0a4a0e88 fix: Remove invalid return from void testUpdateDocument method
The testUpdateDocument method was declared as void but returned [].
This causes a PHP fatal error in PHP 8.4.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 17:36:20 +13:00
Jake BarnbyandClaude Opus 4.5 2a4ef06355 fix: Make Sites tests parallel-safe for --functional mode
Add search filters to isolate test data in testListSites to prevent
count assertions from failing when other test methods create sites
during parallel execution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 17:24:57 +13:00
Jake BarnbyandClaude Opus 4.5 2d160747ca perf: Remove @depends from Migrations, Projects, and Tokens tests
Added helper methods with static caching for independent test execution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 12:13:54 +13:00
Jake BarnbyandClaude Opus 4.5 2a3e2d8be5 perf: Remove @depends from all GraphQL tests
Added helper methods with static caching for:
- Legacy/DatabaseClientTest.php
- Legacy/DatabaseServerTest.php
- TablesDB/DatabaseClientTest.php
- TablesDB/DatabaseServerTest.php

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 12:01:31 +13:00
Jake BarnbyandClaude Opus 4.5 e976617869 perf: Remove @depends from Databases permissions and partial GraphQL tests
- Added setupDatabase() helper with caching to all permission test files
- Removed @depends from LegacyPermissionsMemberTest, LegacyPermissionsTeamTest
- Removed @depends from TablesDBPermissionsMemberTest, TablesDBPermissionsTeamTest
- Partial GraphQL test updates from agents

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 11:56:58 +13:00
Jake BarnbyandClaude Opus 4.5 f624646480 perf: Remove @depends from Account, Functions, Storage, Users, VCS, Messaging tests
Added helper methods with static caching to enable parallel test execution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 11:54:14 +13:00
Hemachandar 45e74d7b3d rule 2026-02-06 00:14:15 +05:30
Jake BarnbyandClaude Opus 4.5 f5f60ab85b perf: Remove @depends from Database Transactions tests
Enables parallel test execution for Transactions tests.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:47:23 +13:00
Jake BarnbyandClaude Opus 4.5 b1257cc40a perf: Remove @depends from Webhooks and Teams tests
Enables --functional mode for parallel test execution by:
- Adding helper methods for independent test setup
- Removing all #[Depends] annotations
- Using static caching for shared resources

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:47:12 +13:00
Jake BarnbyandClaude Opus 4.5 02240fd14f fix: Correct TablesDB API paths in Realtime test helpers
- Use /databases endpoint instead of /tablesdb for database creation
- Use /columns/string instead of /attributes/string for table columns
- Fix testAttributesCollectionsAPI return type from array to void

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:46:59 +13:00
Jake Barnby 24f8275f52 Revert "fix: run Databases and FunctionsSchedule tests sequentially"
This reverts commit 8dadcfeebe.
2026-02-06 04:36:55 +13:00
Jake BarnbyandClaude Opus 4.5 2e9c1b4745 fix: Remove @depends chains from Realtime tests for parallel execution
- Add helper methods createCollectionWithAttribute(), createTableWithAttribute(),
  createCollectionWithIndex(), createTableWithIndex() to RealtimeConsoleClientTest
- Add createTeam() helper to RealtimeCustomClientTest
- Replace all @depends annotations with direct helper method calls
- Enable tests to run in parallel with --functional flag

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:28:12 +13:00
Jake BarnbyandClaude Opus 4.5 8dadcfeebe fix: run Databases and FunctionsSchedule tests sequentially
Parallel test execution with paratest overwhelms the single databases
worker when many tests create attributes simultaneously. Run these
specific services sequentially with PHPUnit to ensure the worker
can keep up with attribute processing jobs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:15:56 +13:00
Jake BarnbyandClaude Opus 4.5 2c5dee0fdd fix: resolve test failures in Databases, Functions, Messaging, Storage
- Fix typo CLient -> Client in DatabasesBase.php:4568
- Fix typo CLient -> Client in StorageCustomClientTest.php:428
- Fix cleanupFunction() call with extra parameter in FunctionsScheduleTest.php:175
- Increase message scheduling test timeouts from 30s to 180s for CI stability

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 04:03:40 +13:00
Jake BarnbyandClaude Opus 4.5 4631a2a75f Revert test changes (back to original state)
The --functional flag cannot be used because tests rely on static
properties to share state between test methods (e.g., $databaseId
set in testCreateDatabase is used by testCreateTable). With --functional,
each test method runs in a separate process so these properties are not
initialized.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 03:42:32 +13:00
Jake BarnbyandClaude Opus 4.5 1ef96627d3 fix: scale databases worker to handle parallel test load
The root cause of flaky attribute processing tests is that a single
appwrite-worker-databases container cannot keep up with attribute
creation jobs when tests run in parallel via paratest.

This fix:
- Scales the databases worker to 4 instances during E2E service tests
- Reverts timeout increases that masked the underlying issue

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 03:04:22 +13:00
Jake BarnbyandClaude Opus 4.5 fb2dc89041 fix: increase SchemaPolling timeout to 10 minutes for CI stability
Increase all default timeouts in SchemaPolling trait from 5 minutes to
10 minutes. With tests running in parallel via paratest, the attribute
processing worker can become backlogged under heavy CI load, requiring
longer wait times for attributes to transition from 'processing' to
'available' status.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 02:59:38 +13:00
Jake BarnbyandClaude Opus 4.5 8bc859bc70 Update utopia-php/websocket to 1.0.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 02:42:30 +13:00
Jake BarnbyandClaude Opus 4.5 262425fdb6 fix: increase SchemaPolling timeout to 5 minutes for CI stability
Increase all default timeouts in SchemaPolling trait from 3 minutes to
5 minutes to handle slower attribute processing when running tests in
parallel under heavy CI load.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 02:41:55 +13:00
Jake BarnbyandClaude Opus 4.5 1abc707285 Remove strict file size assertions from avatar tests
The PNG file size varies depending on ImageMagick version and
compression settings. The meaningful validations (dimensions,
format, content-type) are already being tested.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 02:07:46 +13:00
Jake BarnbyandClaude Opus 4.5 741e1fb296 Update utopia-php/websocket to fix compression flag issue
Temporarily use dev branch (fix-conditional-compression) that only
applies SWOOLE_WEBSOCKET_FLAG_COMPRESS when compression is enabled.

This fixes websocket compatibility issues with Swoole 6.1.6.

See: https://github.com/utopia-php/websocket/pull/28

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 01:52:03 +13:00
Jake BarnbyandClaude Opus 4.5 d57659c37e Fix header handling for Swoole 6.1.6 compatibility
- Update utopia-php/migration to 1.5.1 (fixes duplicate header issue)
- Fix content-length header override to replace instead of append
  - Single-value headers (content-length, content-type) must replace existing values
  - Multi-value headers continue to use array semantics

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 01:40:59 +13:00
Jake Barnby c8d2cc090e Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	tests/e2e/Services/Databases/DatabasesBase.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2026-02-06 01:29:44 +13:00
Chirag AggarwalandGitHub 4090ce853e Merge pull request #11256 from appwrite/release-cli-13.3.0
release cli sdk 13.3.0
2026-02-05 17:52:36 +05:30
Chirag Aggarwal af5c0da1d9 release cli sdk 13.3.0 2026-02-05 17:05:22 +05:30
Jake BarnbyandGitHub b5bb4c2e07 Merge pull request #11254 from appwrite/feat-collection-size
Expose row bytes used/bytes free on table/collection
2026-02-05 11:25:02 +00:00
Shmuel FogelandGitHub c492cfe9ab Merge pull request #11229 from appwrite/localhost-endpoint
Localhost endpoint
2026-02-05 13:00:00 +02:00
Jake Barnby a866f0a69f Gen specs 2026-02-05 23:50:16 +13:00
Jake Barnby 3b2c05eb8d Update desc 2026-02-05 23:50:10 +13:00
fogelito e28ba64dbf Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-05 12:36:25 +02:00
Jake BarnbyandGitHub 747b400616 Merge pull request #11251 from appwrite/fix-realtime-performance
Realtime query performance improvements
2026-02-05 10:15:58 +00:00
fogelito cb58da7279 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-05 12:13:02 +02:00
Matej BačoandGitHub 106458a79d Merge pull request #11208 from appwrite/ser-539-modules
Move project create & update APIs to Modules
2026-02-05 11:11:09 +01:00
fogelito d40b1707ba Remove var_dump 2026-02-05 12:09:54 +02:00
fogelito 8600d0e64f Remove var_dump 2026-02-05 12:04:57 +02:00
Jake Barnby 1e22a40d98 Update docker base 2026-02-05 22:57:21 +13:00
Jake BarnbyandGitHub 2bc8d80273 Merge branch '1.8.x' into feat-collection-size 2026-02-05 09:55:23 +00:00
Jake BarnbyandGitHub 1d94e60a37 Merge branch '1.8.x' into fix-realtime-performance 2026-02-05 09:54:42 +00:00
Jake Barnby 4f7337759f Expose row bytes used/bytes free on table/collection 2026-02-05 22:53:04 +13:00
Hemachandar 657f16031b lint 2026-02-05 15:11:17 +05:30
Jake BarnbyandGitHub fed8354c52 Merge pull request #11237 from appwrite/realtime-query-subscriptions
Realtime query subscriptions
2026-02-05 09:36:54 +00:00
Hemachandar cbfef909ee reset permissions 2026-02-05 15:03:27 +05:30
Hemachandar 107fadfe37 Merge branch '1.8.x' into ser-539-modules 2026-02-05 15:00:52 +05:30
Jake BarnbyandClaude Opus 4.5 e21614088f fix: Address CodeRabbit review comments
- Fix OR precheck bug: skip attribute existence check when OR conditions
  exist, since OR can match with partial attributes present
- Remove dead code in app/realtime.php (unused $names and $channels variables)
- Add tests for OR queries with missing attributes in one branch

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 22:24:26 +13:00
HemachandarandGitHub 1c6880a78e Improve certificate sync logs (#11243)
* Add friendly message for async certificate generation

* better msg

* simplify

* remove escaping

* set certificateId
2026-02-05 14:48:37 +05:30
Jake BarnbyandClaude Opus 4.5 18125156d2 fix: Update compileAndFilter return type to nullable array
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 22:14:41 +13:00
Jake BarnbyandClaude Opus 4.5 765d334674 fix: Return null instead of empty array for non-matching queries
RuntimeQuery::filter() now returns null when the query doesn't match,
instead of an empty array. This distinguishes between "no match" and
"match with empty payload", fixing the issue where subscriptions with
empty payloads weren't being delivered.

Updated Realtime::getSubscribers() to check for null instead of using
!empty(), and updated all tests to expect null for non-matches.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 22:08:43 +13:00
Matej BačoandGitHub a46fa50c51 Merge pull request #11252 from appwrite/ser-1103-installations
Move VCS installation APIs to Modules
2026-02-05 10:07:35 +01:00
Matej BačoandGitHub cb81939604 Merge pull request #11253 from appwrite/ser-1033
Cleanup functions & sites attribute when installation is deleted
2026-02-05 10:04:38 +01:00
Jake BarnbyandClaude Opus 4.5 3e31094e1e fix: Fix unit test failures for RuntimeQuery and Messaging tests
- Add missing isSelectAll() method to RuntimeQuery class
- Update RuntimeQueryTest to use compile() before filter() since filter()
  expects pre-compiled query arrays, not Query objects
- Remove incorrect break statement in Realtime::getSubscribers() that was
  stopping iteration after the first matching channel, causing subscribers
  to not be found for subsequent channels
- Use local variable $subscriptionsByChannel to avoid unused variable warning

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 21:57:00 +13:00
fogelito 074470c2c2 check _APP_MIGRATION_HOST 2026-02-05 10:35:35 +02:00
ArnabChatterjee20k f8f2f9ca25 removed reduntant test 2026-02-05 14:03:26 +05:30
fogelito aff180c517 docker-compose.yml 2026-02-05 10:30:21 +02:00
fogelito 5d1b63fd35 docker-compose.yml 2026-02-05 10:29:45 +02:00
Hemachandar aa30db2136 refactor 2026-02-05 13:51:32 +05:30
fogelito 64f8b9195b _APP_MIGRATION_HOST 2026-02-05 10:12:55 +02:00
fogelito 12b7f94c1f _APP_MIGRATION_HOST 2026-02-05 10:06:11 +02:00
Hemachandar 4aaa3bfd9f Cleanup functions & sites attribute when installation is deleted 2026-02-05 13:27:06 +05:30
HemachandarandGitHub 6dd928b73c Merge branch '1.8.x' into ser-1103-installations 2026-02-05 13:23:19 +05:30
Jake Barnby e490f375ee Batch groups 2026-02-05 20:48:40 +13:00
ArnabChatterjee20kandGitHub 96ea3391d3 Merge branch '1.8.x' into realtime-query-subscriptions 2026-02-05 13:01:28 +05:30
Hemachandar 7f824785d5 lint 2026-02-05 12:55:34 +05:30
Hemachandar 8c191fca92 wire module 2026-02-05 12:44:19 +05:30
fogelito 85ea4c8904 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-05 08:54:50 +02:00
fogelito 7e385fe87f localhosts 2026-02-05 08:52:12 +02:00
Jake BarnbyandClaude Opus 4.5 3ea4810d3a fix: increase SchemaPolling default timeout to 3 minutes for CI
Increase all default timeouts in SchemaPolling trait from 2 minutes to
3 minutes to handle slower attribute processing in CI environments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:57:36 +13:00
Jake Barnby d06759e33e Cleanup 2026-02-05 18:47:54 +13:00
Jake Barnby ecf0a1ec67 Avoid closures on hot path 2026-02-05 18:47:49 +13:00
Jake Barnby ead2afb9d4 Early exit on select all 2026-02-05 18:47:27 +13:00
Jake BarnbyandClaude Opus 4.5 20f7af49b1 fix: increase FunctionsSchedule test timeout for CI stability
Remove explicit sleep and increase assertEventually timeout from 60s to
180s to account for slower deployment and scheduling in CI. Also use
assertGreaterThanOrEqual to handle cases where multiple executions
may have run.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:45:30 +13:00
Jake BarnbyandClaude Opus 4.5 a9b55f4c74 fix: improve test stability for CI failures
- Skip FunctionsCustomServerTest::testCreateFunctionAndDeploymentFromTemplateCommit when GitHub API is rate-limited or unavailable
- Increase waitForAllAttributes timeout to 3 minutes for testBulkDeleteMatchingUpdatedDocuments to handle slow attribute processing in CI

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:31:26 +13:00
Jake BarnbyandGitHub 4a2e3b7b22 Merge branch '1.8.x' into feat-db-tests 2026-02-05 03:12:24 +00:00
Hemachandar 26b0447657 add to http 2026-02-04 20:41:46 +05:30
Matej BačoandGitHub f7f6b5187c Merge pull request #11248 from appwrite/feat-trusted-console-projects
Feat: Support trusted console projects
2026-02-04 16:10:36 +01:00
Hemachandar c3fbb83ed6 Move VCS installation APIs to Modules 2026-02-04 20:03:52 +05:30
Matej Bačo a860975b0e update docs 2026-02-04 15:23:10 +01:00
Matej Bačo ce99d80c2f ai review fixes 2026-02-04 15:09:02 +01:00
Hemachandar a30f12cd66 tiny 2026-02-04 19:31:00 +05:30
Hemachandar 0003443c77 Create rule in SSL task 2026-02-04 19:23:27 +05:30
Matej Bačo 227d61e194 Support trusted console projects 2026-02-04 14:45:38 +01:00
Jake BarnbyandClaude Opus 4.5 6850d7ae9e fix: add sleep for async attribute deletion verification
Attribute deletion is asynchronous - add sleep to wait for deletion
to complete before verifying the attribute no longer exists.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 02:01:01 +13:00
Jake BarnbyandClaude Opus 4.5 45a3793cc0 fix: correct expected default values and attribute name in tests
- Update expected default values to match the actual defaults (update
  tests are skipped, so original defaults apply)
- Fix varchar_max -> varchar_min (varchar_max was never created)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 01:48:36 +13:00
Jake BarnbyandClaude Opus 4.5 2e061e2f2b fix: make testCreatePhoneVerification self-contained
Remove @depends annotation and set up phone number within the test
to ensure it works with PHPUnit 12 and paratest parallel execution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 01:33:01 +13:00
Jake BarnbyandClaude Opus 4.5 6f6ea94a19 fix: make testUpdateWithExistingRelationships self-contained
Remove @depends annotation and create a new database within the test
to fix compatibility with PHPUnit 12 and paratest parallel execution.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 01:30:52 +13:00
Jake BarnbyandClaude Opus 4.5 0aff01793b fix: remove @depends annotations from DatabasesStringTypesTest
Replace @depends annotations with static property assertions to fix
compatibility issues with PHPUnit 12 and paratest parallel execution.

Tests now use self::$databaseId and self::$collectionId/self::$tableId
directly instead of passing data between dependent tests.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 01:18:16 +13:00
Jake Barnby e70739a3c0 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	Dockerfile
#	app/controllers/api/account.php
#	app/controllers/api/avatars.php
#	app/controllers/api/console.php
#	app/controllers/api/projects.php
#	app/controllers/api/storage.php
#	app/controllers/api/teams.php
#	app/http.php
#	app/init/database/filters.php
#	app/init/registers.php
#	app/init/resources.php
#	app/views/install/compose.phtml
#	composer.json
#	composer.lock
#	docker-compose.yml
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Integer/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Bulk/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Integer/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Update.php
#	src/Appwrite/Platform/Modules/Functions/Http/Deployments/XList.php
#	src/Appwrite/Platform/Tasks/Install.php
#	tests/e2e/Services/Projects/ProjectsConsoleClientTest.php
2026-02-05 01:01:03 +13:00
fogelito 4cf6f4e066 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-04 13:58:22 +02:00
Jake BarnbyandClaude Opus 4.5 f34983f056 fix: update composer image to 2.x for PHP 8.3+ compatibility
PHPUnit 12 requires PHP 8.3+ and uses PHP enums like
CodeCoverageInitializationStatus. The old composer:2.0 image used
PHP 8.0.6 which doesn't support enums, causing autoloader issues.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 00:41:50 +13:00
Jake Barnby 4933cdda10 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests 2026-02-05 00:16:15 +13:00
Jake Barnby b704378bf1 Revert platform downgrade 2026-02-05 00:16:08 +13:00
Jake Barnby cfa4c0876b Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.lock
#	src/Appwrite/Messaging/Adapter/Realtime.php
2026-02-04 23:47:08 +13:00
Jake Barnby 936adce15b Update phpunit 2026-02-04 23:45:46 +13:00
Chirag AggarwalandGitHub b1409e5e8e Merge pull request #11246 from appwrite/fix/phpunit-bootstrap-global-register 2026-02-04 16:11:24 +05:30
Chirag Aggarwal a744cb0843 fix: add global scope declaration for $register in registers.php
PHPUnit's FileLoader::load() includes bootstrap files inside a function
scope. Without the global declaration, $register is created in local
scope and isn't accessible when other files (like resources.php) use
global $register to reference it.
2026-02-04 16:05:13 +05:30
Jake BarnbyandClaude Opus 4.5 0a492fb1e2 fix: pin utopia-php/platform to 0.7.14 for framework compatibility
Platform 0.7.15 introduced a breaking change that requires Utopia\Http
instead of Utopia\App, but framework 0.33.x still uses Utopia\App.
This pins platform to 0.7.14 which is compatible with the current
framework version.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 23:30:23 +13:00
fogelito 186ed5b61f fix graphQL 2026-02-04 12:29:20 +02:00
fogelito 522c9d3272 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-04 12:16:24 +02:00
Chirag AggarwalandGitHub 720ceabbbc Merge pull request #11244 from appwrite/simplify-messaging-span-country-codes 2026-02-04 15:45:14 +05:30
fogelito 5ff31e92d7 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint
# Conflicts:
#	composer.lock
2026-02-04 12:03:28 +02:00
Chirag Aggarwal 4ef43aacd9 Simplify country code span logging for internal SMS messages
Internal SMS always has a single recipient, so remove the unnecessary
count-based tracking and simplify to just log the country code directly.
2026-02-04 15:28:27 +05:30
Chirag AggarwalandGitHub ce49b8ecb8 Merge pull request #11239 from appwrite/upgrade-utopia-queue 2026-02-04 15:25:56 +05:30
fogelito 1db42c6fc7 revert lock 2026-02-04 11:43:56 +02:00
Chirag Aggarwal 9bd2966222 fix: versioning 2026-02-04 14:53:56 +05:30
Chirag Aggarwal 579f07f8bb fix unit test 2026-02-04 14:30:24 +05:30
fogelito febb7dc10a Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-04 10:53:26 +02:00
Chirag Aggarwal 4b02bf1aa8 use stable 2026-02-04 14:21:52 +05:30
Jake BarnbyandGitHub d45893d123 Merge pull request #11241 from appwrite/fix-leaks
Fix leaks
2026-02-04 08:31:27 +00:00
fogelito ffd568aecd Update 1.8.x 2026-02-04 10:05:54 +02:00
fogelito d811d1c534 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint
# Conflicts:
#	composer.lock
2026-02-04 10:04:52 +02:00
fogelito c2b87cff66 $this->webEndpoint, 2026-02-04 09:53:37 +02:00
fogelito ca03176ad6 $this->webEndpoint, 2026-02-04 09:53:19 +02:00
Chirag Aggarwal 946a1c8f34 try fix 2026-02-04 12:49:44 +05:30
Chirag Aggarwal 91c1572318 log 2026-02-04 12:23:55 +05:30
Jake Barnby cdcee01015 Update lock 2026-02-04 19:53:28 +13:00
Chirag AggarwalandGitHub 05a3417297 Merge branch '1.8.x' into upgrade-utopia-queue 2026-02-04 12:23:18 +05:30
Jake Barnby d4694ff8af Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.json
#	composer.lock
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
#	tests/e2e/Services/Projects/ProjectsConsoleClientTest.php
#	tests/e2e/Services/Realtime/RealtimeCustomClientTest.php
2026-02-04 19:49:09 +13:00
Jake BarnbyandGitHub 5e495aa2da Merge pull request #11240 from appwrite/fix-sites-domains
CLI update
2026-02-04 06:28:14 +00:00
Jake Barnby cdd2be175f Pre-parse queries 2026-02-04 19:27:57 +13:00
Jake Barnby 2f5e5d384f Array push on hot loop 2026-02-04 19:27:18 +13:00
Jake Barnby 2c790ecd84 Fix potential depth leak 2026-02-04 19:22:00 +13:00
Jake Barnby 5733972218 Fix webhook leak 2026-02-04 19:20:42 +13:00
Jake Barnby 2416eef4a7 Fix stats leak 2026-02-04 19:20:19 +13:00
Chirag AggarwalandGitHub 49195e5d6f Merge branch '1.8.x' into upgrade-utopia-queue 2026-02-04 11:22:23 +05:30
Chirag Aggarwal 1eaf5d5ffa replace app usage with http 2026-02-04 11:22:04 +05:30
Jake BarnbyandGitHub 17fc91aa19 Merge pull request #11238 from appwrite/fix-span-country-codes-logql
fix: use individual span attributes for country codes
2026-02-04 05:16:15 +00:00
Chirag Aggarwal 94d733ee63 use stable branch 2026-02-04 10:44:18 +05:30
Jake Barnby 17be0eb634 CLI sites domain fix 2026-02-04 18:04:48 +13:00
Chirag Aggarwal a419501ea7 chore: upgrade utopia queue 2026-02-04 10:28:16 +05:30
Chirag Aggarwal b89f474cb5 fix skill 2026-02-04 10:20:31 +05:30
Chirag Aggarwal 345d8f2db5 fix: use individual span attributes for country codes
Replace stringified JSON countryCodes attribute with individual
countryCode_{code} attributes to improve LogQL query compatibility.
2026-02-04 10:15:36 +05:30
fogelito 9bafa90ac8 _APP_HOSTNAMES 2026-02-03 17:39:29 +02:00
fogelito 736b72164e ci cd 2026-02-03 16:14:00 +02:00
ArnabChatterjee20k f82662e84e added dot escaping fix for channel names 2026-02-03 18:33:35 +05:30
Chirag AggarwalandGitHub 5537fe210e Merge pull request #11236 from appwrite/safeguard-span-finish 2026-02-03 18:32:32 +05:30
Chirag Aggarwal 4c08cb36a8 chore: safeguard span finish 2026-02-03 18:30:51 +05:30
Chirag AggarwalandGitHub 1ee3f993d0 Merge pull request #11234 from appwrite/update-cli-changelog 2026-02-03 17:36:43 +05:30
Jake BarnbyandGitHub 952f209a44 Merge pull request #11202 from appwrite/realtime-query-subscriptions 2026-02-03 11:44:13 +00:00
fogelito 7d193d9c36 force localhost 2026-02-03 13:41:02 +02:00
Jake BarnbyandGitHub c04353bd38 Merge pull request #11230 from appwrite/fix-responses 2026-02-03 11:37:09 +00:00
Chirag Aggarwal 69cfde440a chore: fix cli release + add changelog 2026-02-03 17:00:22 +05:30
Chirag AggarwalandGitHub 739b36b0c9 Merge pull request #11233 from appwrite/wrap-markdown-docs 2026-02-03 16:17:18 +05:30
fogelito 8b4f4d2fea localhost 2026-02-03 12:43:37 +02:00
Jake Barnby d2eb3f6684 Update database 2026-02-03 23:34:13 +13:00
Chirag Aggarwal 31b5a1cb36 chore: wrap all markdown docs with language fences 2026-02-03 15:48:48 +05:30
Chirag AggarwalandGitHub 727c29ec0c Merge pull request #11232 from appwrite/chore-add-pr-workflow-skill 2026-02-03 15:29:20 +05:30
fogelito 3da3b6a324 pull changes 2026-02-03 11:49:53 +02:00
fogelito 20e209038d Merge branch '1.8.x' of https://github.com/appwrite/appwrite into localhost-endpoint 2026-02-03 11:49:17 +02:00
fogelito c0cbf991ab Run tests 2026-02-03 11:48:48 +02:00
fogelito 91f3bf0244 Run tests 2026-02-03 11:47:21 +02:00
Chirag Aggarwal fab0c7ce7c Add PR workflow skill for AI agents
Documents that PRs should target version branches (e.g., 1.8.x)
instead of main, helping AI agents follow the correct workflow.
2026-02-03 15:12:47 +05:30
Jake Barnby 413a91bd0a Lint 2026-02-03 22:33:51 +13:00
Jake Barnby 23c3496a63 Add missing model map 2026-02-03 22:30:02 +13:00
ArnabChatterjee20k 0528c0d693 updated the case for select all and empty payload 2026-02-03 14:29:34 +05:30
ArnabChatterjee20k 4319612358 updated unit tests 2026-02-03 14:16:35 +05:30
Chirag AggarwalandGitHub b7df5cfcc1 Merge pull request #11228 from appwrite/feat-span-messaging-worker 2026-02-03 14:15:07 +05:30
ArnabChatterjee20k a10fbc64c7 updated subscription after permission change 2026-02-03 13:46:05 +05:30
fogelito f1a2e869a2 localhost setUp 2026-02-03 10:11:03 +02:00
Jake BarnbyandGitHub def3ce056f Merge pull request #11220 from appwrite/chore-upgrade-cache 2026-02-03 07:19:12 +00:00
Chirag Aggarwal ae720c3462 Fix country code extraction using locale config
Use the existing locale-phones config to accurately extract country
codes from phone numbers. Sorts codes by length descending to match
longer codes first (e.g., 1868 Trinidad before 1 USA).
2026-02-03 12:36:46 +05:30
Chirag Aggarwal e14a026415 Add country code extraction for external SMS messages
Extract country codes from target identifiers for external SMS
messages to match the behavior of internal SMS messages.
2026-02-03 12:32:21 +05:30
Chirag Aggarwal 52cb8a9c56 Improve span data with detailed metrics
Add richer span data for better observability:
- External messages: messageId, topic/user/target counts, recipient total,
  provider details, delivery stats (delivered/errors), final status
- Internal SMS: recipient count, country codes extracted from phone numbers,
  sender number, delivery status and count
2026-02-03 12:27:27 +05:30
Chirag Aggarwal 787e7aed43 Add Span tracing to Messaging worker
Replace Console logging with Span tracing in the Messaging worker
for better observability. Initialize Span storage and exporter in
worker.php to enable tracing in all workers.
2026-02-03 11:59:49 +05:30
ArnabChatterjee20k d18d4d8263 updated subscription process 2026-02-03 11:43:23 +05:30
premtsd-codeandGitHub b4e98bd950 Merge branch '1.8.x' into chore-upgrade-cache 2026-02-03 05:58:33 +00:00
Chirag AggarwalandGitHub 92d2310a53 Merge pull request #11227 from appwrite/fix-deprecation-warnings 2026-02-03 11:19:23 +05:30
ArnabChatterjee20kandGitHub 29b6adf407 Merge branch '1.8.x' into realtime-query-subscriptions 2026-02-03 10:46:34 +05:30
ArnabChatterjee20k 10e971aded updated tests and empty subscriptionsid issue 2026-02-03 10:46:01 +05:30
premtsd-codeandGitHub ca464f8a71 Merge branch '1.8.x' into chore-upgrade-cache 2026-02-03 04:44:12 +00:00
Chirag Aggarwal 6c4394947f Fix Safe PHP deprecation warnings 2026-02-03 10:11:12 +05:30
Chirag AggarwalandGitHub 2a15c91768 Merge pull request #11226 from appwrite/feat-functions-queue-job-ttl 2026-02-03 10:09:25 +05:30
Chirag Aggarwal f15e9eb356 Add 7-day job TTL for functions queue
Set jobTTL to 7 days for FUNCTIONS_QUEUE_NAME using a match expression
for easy extensibility to other queues in the future.
2026-02-03 09:24:32 +05:30
Prem Palanisamy cbe7ce7269 fix merge conflict in composer.lock 2026-02-02 21:48:20 +00:00
premtsd-codeandGitHub f2cfa4465f Merge branch '1.8.x' into chore-upgrade-cache 2026-02-02 21:03:45 +00:00
HemachandarandGitHub f648d82c8c Remove cleanup-stale-executions from Interval task (#11224) 2026-02-03 01:18:34 +05:30
Prem Palanisamy 8117ab9542 simplify CacheTest to match other Health tests 2026-02-02 19:07:50 +00:00
Prem Palanisamy 255098ed9c use env vars for cache reconnection tests 2026-02-02 18:36:16 +00:00
Prem Palanisamy 914be48e25 fix: add null check for cache adapter 2026-02-02 18:25:41 +00:00
premtsd-codeandGitHub 47e406baa0 Merge branch '1.8.x' into chore-upgrade-cache 2026-02-02 18:22:02 +00:00
ArnabChatterjee20k 3c2f0cc982 updated to new slot based filtering for realtime 2026-02-02 21:50:23 +05:30
Matej BačoandGitHub a967ee9b1b Merge pull request #11213 from appwrite/feat-array-domains-env
Feat: Array domain variables
2026-02-02 17:06:55 +01:00
ArnabChatterjee20k 6e576b5140 added realtime query new channel and channel wise filters 2026-02-02 19:45:21 +05:30
premtsd-codeandGitHub ab689af94b Merge branch '1.8.x' into chore-upgrade-cache 2026-02-02 13:21:22 +00:00
Prem Palanisamy e7b4f03227 improve cache reconnection tests 2026-02-02 13:19:41 +00:00
HemachandarandGitHub 630d3376a6 Use Swoole timers in Interval task (#11205)
* Use Swoole timers in `Interval` task

* refactor

* block coroutine from exiting

* nit

* Add span

* cleanup unused var

* camelCase
2026-02-02 18:47:54 +05:30
Jake BarnbyandGitHub a25977c6b8 Merge pull request #11222 from appwrite/release-array-param-enums 2026-02-02 13:08:51 +00:00
Chirag Aggarwal 19bfda541f Merge branch '1.8.x' into release-array-param-enums 2026-02-02 18:35:20 +05:30
Chirag Aggarwal 2ac265baea update composer 2026-02-02 18:34:24 +05:30
Prem Palanisamy a52f7f2485 fix: ensure Redis restart in cache reconnection tests 2026-02-02 12:57:40 +00:00
Prem Palanisamy 6876828750 add cache reconnection support 2026-02-02 12:49:58 +00:00
Chirag Aggarwal 02c92d95b7 examples and changelog 2026-02-02 18:04:02 +05:30
Chirag Aggarwal eb97a0e9b2 changelog changes 2026-02-02 17:57:50 +05:30
Chirag Aggarwal ae6a81bd12 update specs 2026-02-02 17:54:57 +05:30
premtsd-codeandGitHub 6f7da6d622 Merge branch '1.8.x' into chore-upgrade-cache 2026-02-02 12:23:42 +00:00
Prem Palanisamy e79dc39d5d chore: update composer.lock 2026-02-02 12:21:08 +00:00
Chirag Aggarwal 4d062b818d update examples 2026-02-02 17:26:20 +05:30
Prem Palanisamy a1dad882e4 chore: update composer.lock 2026-02-02 11:02:42 +00:00
Prem Palanisamy abb546d099 chore: replace dev dependencies with stable versions 2026-02-02 11:00:20 +00:00
Jake BarnbyandGitHub dfdbcf015c Merge pull request #11207 from appwrite/migration-endpoint 2026-02-02 10:34:04 +00:00
Chirag AggarwalandGitHub 29ab9ef9d2 Merge pull request #11223 from appwrite/update-message-logging 2026-02-02 15:46:43 +05:30
Chirag Aggarwal 52174816b2 chore: update messaging worker logging 2026-02-02 15:39:12 +05:30
Chirag Aggarwal 9ee318de3c feat: release array param enums support to all sdks 2026-02-02 15:34:32 +05:30
fogelito 2e5b232e2b line 2026-02-02 11:34:57 +02:00
fogelito 53b8886729 Remove env variable 2026-02-02 11:29:38 +02:00
fogelito e9e51d5334 lock 2026-02-02 11:27:50 +02:00
fogelito c1161ff27c check isset 2026-02-02 08:13:24 +02:00
Prem Palanisamy 1854d01e6e chore: upgrade utopia-php dependencies for cache reconnection support 2026-02-02 06:13:00 +00:00
fogelito f530ec3db5 Remove dbg 2026-02-01 15:57:30 +02:00
fogelito 3502cad4a5 formatting 2026-02-01 15:53:41 +02:00
fogelito 05e1bb242f stopOnFailure false 2026-02-01 15:52:29 +02:00
fogelito e760a1386b Use credentials 2026-02-01 15:51:41 +02:00
fogelito 644dcb8fb1 empty $credentials 2026-02-01 15:11:29 +02:00
fogelito 40dede6503 Use apiHostname 2026-02-01 14:54:42 +02:00
fogelito d19eec9849 var dump 2026-02-01 12:31:17 +02:00
fogelito 88044eaa71 check key 2026-02-01 12:15:32 +02:00
fogelito 6011a7c66d http 2026-02-01 12:00:04 +02:00
fogelito 771dd92a14 https 2026-02-01 11:55:01 +02:00
fogelito e1f8d0bbbc remove extra vars 2026-02-01 10:38:04 +02:00
fogelito 7da2bdf4da remove extra vars 2026-02-01 10:36:38 +02:00
fogelito d89539b56a Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-endpoint 2026-02-01 08:49:01 +02:00
fogelito 23f08ef144 formatting 2026-02-01 08:46:39 +02:00
Matej Bačo ce1bb3fd29 ai review fixes 2026-01-30 22:23:36 +01:00
Matej Bačo fea4994ef0 ai review fixes 2026-01-30 21:30:00 +01:00
Matej Bačo 4807dcf529 Array support for all functions domain usecases 2026-01-30 16:48:40 +01:00
Matej Bačo 817475a251 Add tests 2026-01-30 16:24:41 +01:00
Matej Bačo 150c9033cc Support arrays in domains env variables 2026-01-30 16:20:46 +01:00
Matej BačoandGitHub 8938dcf8f4 Merge pull request #11212 from appwrite/chore-preview-domain-under-platform
Chore: Platform to defien preview domain
2026-01-30 14:29:17 +01:00
Matej Bačo edbec1ef41 AI review fixes 2026-01-30 13:29:28 +01:00
Matej Bačo edceb3e0db move preview domain under platform for future customizability 2026-01-30 13:23:37 +01:00
Jake BarnbyandGitHub d3974776be Merge pull request #11210 from appwrite/fix-events 2026-01-30 10:05:18 +00:00
HemachandarandGitHub 1110fdb719 Add appendVariables method to Mail event (#11166)
* Add `addVariable` method to Mail event

* append variables

* Update template
2026-01-30 15:20:53 +05:30
Jake Barnby 252dc6b993 Fix test 2026-01-30 22:44:19 +13:00
Hemachandar a987195f6f more lint 2026-01-30 14:47:55 +05:30
Hemachandar 2144f27059 lint + feedback 2026-01-30 14:36:38 +05:30
Jake Barnby 67e43cc1a5 Push vs merge 2026-01-30 21:48:36 +13:00
Jake Barnby d4b0ea64ad Fix event caching 2026-01-30 21:41:01 +13:00
Hemachandar cb0f2299fb Upgrade DB 2026-01-30 13:58:18 +05:30
fogelito a38b6cc78d lock 2026-01-30 10:05:11 +02:00
fogelito 9d7bc04089 throw 2026-01-30 10:04:09 +02:00
fogelito 5c61f7232a _APP_MIGRATION_ENDPOINT 2026-01-29 18:22:56 +02:00
Hemachandar 01cc9bcd1f Move project create & update APIs to Modules 2026-01-29 21:35:42 +05:30
fogelito 6e6081f693 set credentials 2026-01-29 17:33:37 +02:00
fogelito ddb72c7546 set credentials 2026-01-29 17:32:28 +02:00
fogelito 1b82d32436 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-endpoint
# Conflicts:
#	.env
2026-01-29 17:15:05 +02:00
fogelito e8d40a48dc endpoint 2026-01-29 17:13:01 +02:00
Jake BarnbyandGitHub 6ccc8b9261 Merge pull request #11174 from appwrite/feat-string-types 2026-01-29 14:39:06 +00:00
Jake Barnby 0d79ab0fd3 Update specs 2026-01-30 02:21:32 +13:00
Jake Barnby c9aac86a6b Merge remote-tracking branch 'origin/1.8.x' into feat-string-types
# Conflicts:
#	composer.lock
2026-01-30 02:07:33 +13:00
Matej BačoandGitHub 8c626ea2ca Merge pull request #11206 from appwrite/chore-upgrade-templates
Chore: Upgrade templates version
2026-01-29 13:53:32 +01:00
Jake BarnbyandGitHub 9d953f898d Merge pull request #11007 from appwrite/new-pool-adapter 2026-01-29 12:44:13 +00:00
Matej BačoandGitHub c466ffcf7e Merge branch '1.8.x' into chore-upgrade-templates 2026-01-29 12:54:58 +01:00
Matej BačoandGitHub 366e578cf8 Merge pull request #11189 from appwrite/chore-usecases-enums
Chore: Proper quality to template usecases enums
2026-01-29 12:49:38 +01:00
Matej Bačo 63ceea7aca Fix wrong ref versions 2026-01-29 12:30:47 +01:00
Matej BačoandGitHub 1df09c652d Merge branch '1.8.x' into chore-usecases-enums 2026-01-29 12:12:17 +01:00
ArnabChatterjee20k 6b9f48aa76 updated lock 2026-01-29 16:32:49 +05:30
ArnabChatterjee20k c8c5fbaca2 updated lock 2026-01-29 16:18:23 +05:30
Matej Bačo 1131e4ed18 Revert "Upgrade template versions"
This reverts commit a2d920195d.
2026-01-29 11:46:05 +01:00
Matej Bačo a2d920195d Upgrade template versions 2026-01-29 11:39:42 +01:00
ArnabChatterjee20k 5753c7694d updated lock 2026-01-29 14:52:16 +05:30
ArnabChatterjee20k 0d057390ab updated composer and docker compose 2026-01-29 14:34:20 +05:30
ArnabChatterjee20k e82345be40 updated tests 2026-01-29 14:22:08 +05:30
ArnabChatterjee20k 077068e9fc updated tests 2026-01-29 14:20:05 +05:30
ArnabChatterjee20k 64392c1520 fixed failing tests 2026-01-29 11:38:20 +05:30
ArnabChatterjee20kandGitHub 7973824321 Merge branch '1.8.x' into new-pool-adapter 2026-01-29 11:20:02 +05:30
Jake BarnbyandGitHub b1ca73a041 Merge pull request #11193 from premtsd-code/fix-10612-validate-relationship-document-id 2026-01-29 04:56:47 +00:00
premtsd-codeandGitHub 845aa5c363 Merge branch '1.8.x' into fix-10612-validate-relationship-document-id 2026-01-28 18:45:53 +00:00
Prem Palanisamy 23dae85d2f Sync composer.lock with 1.8.x 2026-01-28 18:45:11 +00:00
Luke B. SilverandGitHub 7bf02811f2 Merge pull request #11198 from appwrite/refactor-remove-magic-class-strings
refactor: remove magic class strings
2026-01-28 16:56:31 +00:00
premtsd-codeandGitHub 23c1f8fd5a Merge branch '1.8.x' into fix-10612-validate-relationship-document-id 2026-01-28 15:21:40 +00:00
Matej BačoandGitHub b9cb81496d Merge pull request #11203 from appwrite/chore-deprecate-project-attributes
Chore: Remove unnessessary attributes
2026-01-28 15:58:58 +01:00
Matej Bačo e22e8d6a5f Upgrade phpunit for vuln 2026-01-28 14:55:13 +01:00
ArnabChatterjee20kandGitHub 24385355a0 Merge branch '1.8.x' into new-pool-adapter 2026-01-28 19:24:59 +05:30
ArnabChatterjee20k 44b52b5a00 updated swoole and pools 2026-01-28 19:24:33 +05:30
ArnabChatterjee20k 6c29dd055c updated php unit 2026-01-28 19:21:01 +05:30
Matej Bačo 14a96a2b56 Remove unnessessary attributes 2026-01-28 14:50:17 +01:00
Matej BačoandGitHub 273364114a Merge pull request #10988 from appwrite/chore-php-types
Feat: CE support for Platform API
2026-01-28 14:45:42 +01:00
ArnabChatterjee20kandGitHub 72db0c721b Merge branch '1.8.x' into realtime-query-subscriptions 2026-01-28 19:06:30 +05:30
ArnabChatterjee20k cbe13d71f1 removed redundant key 2026-01-28 19:04:42 +05:30
fogelito 95ce53b66e Exception 2026-01-28 15:15:33 +02:00
ArnabChatterjee20k b785dea7ac added query per subscription and queryKeys along with the messages 2026-01-28 18:40:30 +05:30
fogelito f35aad0816 Remove extra line 2026-01-28 14:55:09 +02:00
fogelito 69e6c0afc0 getCursorQueries 2026-01-28 14:53:24 +02:00
Prem Palanisamy 2f3fa9e0d3 sync CONTRIBUTING.md with 1.8.x 2026-01-28 11:42:51 +00:00
premtsd-codeandGitHub 71670f8169 Merge branch '1.8.x' into fix-10612-validate-relationship-document-id 2026-01-28 11:17:50 +00:00
Matej BačoandGitHub a4a589c535 Merge branch '1.8.x' into chore-php-types 2026-01-28 11:44:51 +01:00
Prem Palanisamy cbe2d2383d chore: update phpunit to 9.6.34 (security fix) 2026-01-28 10:24:11 +00:00
Prem Palanisamy aef7b8df38 fix: use RELATIONSHIP_VALUE_INVALID exception for validation errors 2026-01-28 08:41:10 +00:00
ArnabChatterjee20k 125394166a updated docker appwrite image base 2026-01-28 12:04:26 +05:30
ArnabChatterjee20k 68cb03d22c updated to swoole 6 2026-01-27 19:16:57 +05:30
Prem Palanisamy 7f3ea98924 refactor: use array_is_list() and assertEventually helper 2026-01-27 13:00:29 +00:00
loks0n cb66e50612 refactor: remove magic class strings 2026-01-27 11:58:34 +00:00
ArnabChatterjee20k 87db62b018 updated env 2026-01-27 16:39:08 +05:30
ArnabChatterjee20k 5fe5445283 Merge remote-tracking branch 'origin/1.8.x' into new-pool-adapter 2026-01-27 16:37:58 +05:30
ArnabChatterjee20k 303fca0fd5 updated pools 2026-01-27 16:36:28 +05:30
HemachandarandGitHub 99dc31062d Fix rule status check (#11195) 2026-01-27 15:36:50 +05:30
Prem Palanisamy d182c85330 fix: reject unsupported relationship value types 2026-01-27 09:35:45 +00:00
Prem Palanisamy d792d3bbea refactor: use getId() instead of getAttribute('$id') 2026-01-27 09:25:39 +00:00
Prem Palanisamy 00d091513d refactor: simplify relationship validation code 2026-01-27 06:59:53 +00:00
Prem Palanisamy 63e6a51af1 test: add assertion for relationship column polling 2026-01-26 15:45:42 +00:00
Prem Palanisamy 1ee2539ce0 fix: generate unique ID before validation per coderabbit suggestion 2026-01-26 15:45:42 +00:00
premtsd-codeandGitHub cb32dc40ec Merge branch 'main' into fix-10612-validate-relationship-document-id 2026-01-26 14:06:44 +00:00
Prem Palanisamy f66e0c2ff5 refactor: separate validation from normalization in validateRelationship 2026-01-26 14:05:56 +00:00
Prem Palanisamy aed9816d1e fix: validate relationship document ID 2026-01-26 13:48:32 +00:00
Chirag AggarwalandGitHub 6514a992a1 Merge pull request #11078 from appwrite/feat-sdk-for-md 2026-01-26 13:06:10 +05:30
Chirag Aggarwal 1167654c6a Merge branch '1.8.x' into feat-sdk-for-md 2026-01-26 13:03:02 +05:30
Chirag AggarwalandGitHub 28c5df074d Merge pull request #11169 from appwrite/release-cli-13.1.0 2026-01-26 12:59:35 +05:30
Chirag Aggarwal 785efa3355 stable release 2026-01-26 10:40:29 +05:30
Chirag Aggarwal 329b7e1856 Merge branch '1.8.x' into feat-sdk-for-md 2026-01-26 10:25:28 +05:30
Matej Bačo 752731050e Proper quality to template usecases enums 2026-01-25 21:55:52 +01:00
Jake Barnby 368113ade5 Merge branch 'feat-string-types' of github.com:appwrite/appwrite into feat-string-types
# Conflicts:
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/String/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/String/Update.php
2026-01-24 16:24:35 +13:00
Jake Barnby f1d1c5a737 Merge remote-tracking branch 'origin/1.8.x' into feat-string-types
# Conflicts:
#	composer.lock
2026-01-24 16:23:39 +13:00
Jake Barnby 5815008994 Update deprecation 2026-01-24 16:23:05 +13:00
Jake BarnbyandGitHub ac83d417aa Merge pull request #11183 from appwrite/copilot/sub-pr-11174 2026-01-24 14:47:34 +13:00
copilot-swe-agent[bot]andabnegate 9993c15fb8 chore: revert String attribute routes deprecation to 1.8.0
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-01-24 01:15:15 +00:00
copilot-swe-agent[bot]andabnegate 11aecdf33f chore: mark TablesDB String column routes as deprecated
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-01-24 01:11:03 +00:00
copilot-swe-agent[bot]andabnegate a088e85a24 chore: update String attribute deprecation to 1.9.0
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-01-24 01:01:49 +00:00
copilot-swe-agent[bot]andabnegate 1fd687b6b7 chore: update composer.lock after reverting to 4.*
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-01-24 00:30:56 +00:00
copilot-swe-agent[bot]andabnegate aa26823549 chore: revert utopia-php/database to 4.*
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
2026-01-24 00:26:11 +00:00
copilot-swe-agent[bot] 109e16362d Initial plan 2026-01-24 00:23:12 +00:00
Jake BarnbyandGitHub 294518d014 Merge branch '1.8.x' into feat-string-types 2026-01-24 13:21:30 +13:00
Jake BarnbyandClaude Opus 4.5 046a7cd90e test: skip update tests pending utopia-php/database fix
The updateAttribute method in utopia-php/database does not yet support
VARCHAR, TEXT, MEDIUMTEXT, and LONGTEXT types. These tests are skipped
until the upstream library adds support for updating these attribute types.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 06:15:21 +13:00
Jake BarnbyandClaude Opus 4.5 fea210c9ed chore: use utopia-php/database dev-feat-string-types branch
The string types feature requires the dev-feat-string-types branch of
utopia-php/database which includes support for VARCHAR, TEXT, MEDIUMTEXT,
and LONGTEXT types in the updateAttribute method.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 05:51:28 +13:00
Jake BarnbyandClaude Opus 4.5 760f065711 fix: reduce longtext size to fit within INT column limit
The size field in the attributes collection is stored as a signed 32-bit
integer (VAR_INTEGER). The longtext size of 4294967295 (2^32-1) exceeds
the maximum value of 2147483647 (2^31-1), causing attribute creation to
fail with a 400 error (document_invalid_structure).

Changed the longtext size to 2147483647 which is the maximum value that
fits within the signed 32-bit integer constraint of the schema.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 05:24:26 +13:00
Jake BarnbyandClaude Opus 4.5 c42fbc49f5 fix: remove max-size varchar test that exceeds row width limit
The test tried to create multiple VARCHAR attributes in the same
collection, including a 16381-character varchar. The cumulative
row width exceeded MariaDB's 65535 byte row limit, causing the
test to fail with a 400 error.

Calculation: 1067 (base) + 1021 (255*4+1) + 401 (100*4+1) + 201
(50*4+1) + 20 (array) + 65526 (16381*4+2) = 68236 bytes > 65535

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 04:25:06 +13:00
Chirag AggarwalandGitHub 0dd2f29a7e Merge pull request #11182 from appwrite/chore-make-update-name-optional 2026-01-23 20:51:36 +05:30
Jake BarnbyandClaude Opus 4.5 e20851e7a8 fix: reorder imports to satisfy linter
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 03:53:42 +13:00
Chirag Aggarwal 67e2104e98 chore: make name update optional in databases and tables 2026-01-23 19:55:06 +05:30
HemachandarandGitHub a2ff833efe Upgrade utopia-php/domains (#11181)
* Upgrade utopia-php/domains

* update
2026-01-23 15:31:20 +05:30
Chirag Aggarwal e894eca201 add rc3 2026-01-23 15:25:05 +05:30
Chirag AggarwalandGitHub 7573e0fee9 Merge branch '1.8.x' into release-cli-13.1.0 2026-01-23 13:42:30 +05:30
Chirag AggarwalandGitHub 46be2d0e49 Merge pull request #11179 from appwrite/fix-deployment-enum 2026-01-23 11:03:54 +05:30
Chirag AggarwalandGitHub 700ed9f882 Merge pull request #11180 from appwrite/chore-update-executor-healthcheck 2026-01-23 11:03:41 +05:30
Chirag Aggarwal 440be52405 chore: update executor healthcheck to improve flakiness 2026-01-23 09:47:54 +05:30
Chirag Aggarwal 7643196d97 fix: deploymentstatus enum missing canceled value 2026-01-23 09:22:18 +05:30
Chirag Aggarwal 7e994f8db5 release cli sdk 13.1.0 2026-01-23 09:15:13 +05:30
Jake Barnby 1b7cc0b5f9 Add docs 2026-01-23 01:51:58 +13:00
Jake Barnby 60a0b663b9 Add tests 2026-01-23 01:51:52 +13:00
Jake Barnby e6496ec453 Add routes 2026-01-23 01:51:43 +13:00
Jake Barnby 07204d748d Add response models 2026-01-23 01:51:24 +13:00
Matej Bačo b317f85fb6 Fix depricated schema 2026-01-21 16:27:09 +01:00
Matej Bačo 8e98c08a23 Fix failing tests 2026-01-21 16:05:43 +01:00
Matej Bačo 6ebc36d0f3 Fix merge conflict 2026-01-21 14:47:18 +01:00
Matej Bačo e5ed7c835a Merge branch '1.8.x' into chore-php-types 2026-01-21 14:43:22 +01:00
Damodar LohaniandGitHub cbb5963b29 Merge pull request #11172 from appwrite/fix-missing-doc
Fix: missing doc
2026-01-21 19:07:42 +05:45
Damodar Lohani f376db7b26 docs: add get-queue-audits reference documentation 2026-01-21 13:14:28 +00:00
Chirag Aggarwal bfd34b3b15 fix validation 2026-01-21 14:01:16 +05:30
Chirag Aggarwal a66551863a update composer 2026-01-21 13:46:46 +05:30
Chirag Aggarwal 33abd7f0ed Merge branch '1.8.x' into feat-sdk-for-md 2026-01-21 13:46:33 +05:30
Chirag AggarwalandGitHub 633e290bb4 Merge pull request #11171 from appwrite/fix-compression-enabled-env 2026-01-21 11:00:59 +05:30
Chirag Aggarwal 9b14a8f08d Add _APP_COMPRESSION_ENABLED env variable to .env and docker-compose
The _APP_COMPRESSION_ENABLED environment variable is used in http.php
but was missing from .env and docker-compose.yml, preventing it from
being configured in containerized deployments.
2026-01-21 10:41:29 +05:30
Chirag AggarwalandGitHub ddbddafbf9 Merge pull request #11161 from appwrite/release-cli-13.0.1 2026-01-19 18:00:59 +05:30
Chirag Aggarwal 86a4bfa74e chore: release cli 13.0.1 2026-01-19 17:58:43 +05:30
Jake BarnbyandGitHub afe800197b Update .github/workflows/tests.yml 2026-01-19 23:39:53 +13:00
Jake BarnbyandGitHub 8124b07860 Merge pull request #11033 from appwrite/add-webhooks-and-functions-events 2026-01-19 22:02:49 +13:00
Jake BarnbyandGitHub a7898b3d5b Merge pull request #11159 from appwrite/feat-graphql-introspection 2026-01-19 21:58:56 +13:00
Jake Barnby 5d24b51421 Allow separately enabling graphql introspection 2026-01-19 19:26:17 +13:00
Jake Barnby 8335e43eaa Merge branch '1.8.x' into feat-db-tests 2026-01-19 18:34:35 +13:00
ArnabChatterjee20k d095f25a94 updated composer 2026-01-19 11:04:24 +05:30
ArnabChatterjee20k 069e4c6001 Merge remote-tracking branch 'origin/1.8.x' into new-pool-adapter 2026-01-19 11:03:32 +05:30
shimon 0203323b4a Remove 'authorization' injection from Bulk Delete, Update, and Upsert classes 2026-01-18 14:01:35 +02:00
shimon 94e29cff53 Fix typo in Authorization parameter in API action definition 2026-01-18 13:11:05 +02:00
shimon 72def3b2fb Refactor API action parameters to include Authorization dependency 2026-01-18 13:05:43 +02:00
shimon d015a75e81 linter 2026-01-18 12:48:36 +02:00
shimon 1306c85eb5 merge with 1.8x 2026-01-18 11:03:06 +02:00
shimon c3ea66b37a Merge branch '1.8.x' of github.com:appwrite/appwrite into add-webhooks-and-functions-events
# Conflicts:
#	app/controllers/shared/api.php
#	app/init/resources.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Transactions/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Transactions/Update.php
2026-01-18 11:01:40 +02:00
Damodar LohaniandGitHub 72ce068714 Merge pull request #11057 from appwrite/feat-health-module
Feat: Health module
2026-01-18 07:27:19 +05:45
Chirag AggarwalandGitHub ea76213dd2 Merge pull request #11146 from appwrite/feat-cleanup-stale-executions 2026-01-17 12:44:15 +05:30
Matej BačoandGitHub 12b79363d1 Merge pull request #11148 from appwrite/feat-new-schema-dualwriting
Feat: Support dual-writing for new schema features
2026-01-16 15:38:23 +01:00
Jake BarnbyandGitHub 0723101397 Merge pull request #11005 from appwrite/dat-969 2026-01-17 03:31:50 +13:00
Matej BačoandGitHub d56a3c1534 Apply suggestion from @Meldiron 2026-01-16 14:53:05 +01:00
DarshanandGitHub b86d7ac3fa Merge pull request #11149 from appwrite/clean-on-async 2026-01-16 19:07:17 +05:30
ArnabChatterjee20k b1fab79dc4 updated query logic in array to be of and format 2026-01-16 19:06:55 +05:30
Darshan 2f066a6ba8 add: check. 2026-01-16 18:41:22 +05:30
Darshan e8ca0610ee fix: type 2026-01-16 18:40:37 +05:30
Darshan 15caa27977 lint. 2026-01-16 18:38:40 +05:30
Darshan 5f22022527 fix: async being missed. 2026-01-16 18:33:27 +05:30
ArnabChatterjee20k b9c7c172ad updated query conversion for nested query 2026-01-16 18:18:24 +05:30
Jake Barnby a425c460c2 CI 2026-01-17 01:25:50 +13:00
Matej Bačo c2bf1e8040 Merge branch '1.8.x' into feat-new-schema-dualwriting 2026-01-16 13:24:02 +01:00
Matej Bačo cda03f63ab Support dual-writing for new schema features 2026-01-16 13:23:46 +01:00
ArnabChatterjee20k fc04e17a69 updated env 2026-01-16 17:37:56 +05:30
Jake Barnby 9331ae1cbb CI 2026-01-17 01:02:25 +13:00
Chirag Aggarwal f5a61fb4d6 feat: add cleanup for stale function executions
Adds a new interval task that marks executions stuck in 'processing'
status for more than 30 minutes as 'failed' with a timeout error.
2026-01-16 17:21:05 +05:30
DarshanandGitHub 429f73eb85 Merge pull request #11147 from appwrite/executions-cleanup 2026-01-16 16:33:39 +05:30
ArnabChatterjee20k da871635d9 Fix namespace import for RuntimeQuery class and update test file accordingly 2026-01-16 16:16:03 +05:30
Darshan ccaea5d010 add: constant. 2026-01-16 16:11:38 +05:30
Darshan b5e9c1786a fix: maintenance logic. 2026-01-16 16:04:54 +05:30
Darshan 79e150b7b2 fix: type. 2026-01-16 16:00:59 +05:30
Darshan beee5e721e upate: run on maintenance as well. 2026-01-16 15:55:45 +05:30
Darshan 0ef4bf21cc address comments. 2026-01-16 15:48:21 +05:30
ArnabChatterjee20k b2486fcb6c Merge remote-tracking branch 'upstream/1.8.x' into dat-969 2026-01-16 15:47:25 +05:30
ArnabChatterjee20k a7b729b9a7 updated deps 2026-01-16 15:33:18 +05:30
Jake Barnby 0cc3db6095 Fix flaky test timing issues
- Increase SchemaPolling default timeout from 60s to 120s
- Replace hardcoded sleep() with assertEventually() for message status polling in Messaging tests
2026-01-16 22:57:05 +13:00
Darshan c67b77bca0 update: implement proper logs cleanup! 2026-01-16 15:06:35 +05:30
Jake Barnby 36c4228de6 Remove debug code 2026-01-16 22:31:35 +13:00
Jake Barnby 34810ca5bb Debug: dump response body on failure 2026-01-16 21:44:28 +13:00
Jake Barnby 392619284e Fix perms tests 2026-01-16 21:09:46 +13:00
Jake Barnby 2dae0ece5d Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests 2026-01-16 20:50:00 +13:00
ArnabChatterjee20k a19705a46f Merge remote-tracking branch 'upstream/1.8.x' into new-pool-adapter 2026-01-16 12:31:57 +05:30
Matej Bačo 5d5a14bd77 PR review fixes 2026-01-15 16:16:09 +01:00
Matej Bačo 1308706023 Merge branch '1.8.x' into chore-php-types 2026-01-15 15:52:51 +01:00
Damodar LohaniandGitHub ce91b1a03d Merge pull request #11143 from appwrite/fix-phone-auth-limit
Fix: auth phone limit
2026-01-15 19:43:54 +05:45
Damodar Lohani fbf390c710 Merge remote-tracking branch 'origin/1.8.x' into feat-health-module 2026-01-15 13:55:09 +00:00
Damodar Lohani 991f5ff9fd Catch exception 2026-01-15 13:19:34 +00:00
Damodar Lohani e8d8373922 Fix: phone auth limit 2026-01-15 12:59:30 +00:00
DarshanandGitHub 0fee1f0ffd Merge pull request #11142 from appwrite/bump-libs 2026-01-15 14:45:28 +05:30
Darshan eb07e99225 bump: sdk-gen. 2026-01-15 13:48:50 +05:30
DarshanandGitHub 325968c52a Merge pull request #11141 from appwrite/fix-specs-descriptions 2026-01-15 12:08:35 +05:30
Jake BarnbyandGitHub 39e66711c8 Merge pull request #11140 from appwrite/fix-db-init 2026-01-15 19:36:45 +13:00
DarshanandGitHub 42a1c8da38 Merge branch '1.8.x' into fix-specs-descriptions 2026-01-15 12:05:19 +05:30
Darshan 206bd63620 regen: specs. 2026-01-15 12:04:46 +05:30
Darshan 75696a21bf update: remove excluded keys from descriptions. 2026-01-15 11:56:19 +05:30
Chirag AggarwalandGitHub 48866acdb7 Merge pull request #11112 from appwrite/release-cli-13.0.0.rc3 2026-01-15 11:53:00 +05:30
Jake BarnbyandClaude Opus 4.5 b1171c661e Add setDatabase() to all project database instances
This completes the fix for utopia-php/database 4.5.2 which removed
the automatic USE database statement. All Database instances that
create or query project databases now have explicit setDatabase()
calls.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 19:08:25 +13:00
Jake BarnbyandClaude Opus 4.5 63b3365ce9 Fix PHPUnit 11 migration test issues
- Add missing @depends testCreateDatabase to testUpdateWithExistingRelationships in DatabasesBase.php
- Fix data provider keys in LegacyPermissionsMemberTest and TablesDBPermissionsMemberTest to match parameter names (any->anyCount, users->usersCount, doconly->docOnlyCount)
- Convert provideCustomExecutions data provider to positional arrays to avoid PHPUnit 11 named argument conflicts with @depends
- Restore @depends testUpdateAccountPhone for testCreatePhoneVerification in GraphQL AccountTest

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 18:59:53 +13:00
Jake Barnby a0e4e89621 Update lock 2026-01-15 18:45:18 +13:00
Jake BarnbyandClaude Opus 4.5 728ed57df0 Fix database initialization after utopia-php/database 4.5.2 update
The 4.5.2 update removed the automatic USE database statement on init,
requiring explicit setDatabase() calls on all database resources.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 18:43:28 +13:00
Chirag AggarwalandGitHub 629479d275 Merge branch '1.8.x' into release-cli-13.0.0.rc3 2026-01-15 10:59:11 +05:30
Jake BarnbyandClaude Opus 4.5 4adc4f65ad Add missing PHPUnit #[Depends] to GraphQL Functions tests
Fixed missing #[Depends] attributes:
- FunctionsClientTest: 4 methods (testCreateDeployment, testCreateExecution,
  testGetExecutions, testGetExecution)
- FunctionsServerTest: 11 methods (all test methods with parameters)
- Legacy/DatabaseServerTest: Fixed testCreateIndex dependency
  (was depending on void-returning testUpdateURLAttribute)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 18:28:38 +13:00
Jake BarnbyandClaude Opus 4.5 7498c330eb Add missing PHPUnit #[Depends] to Functions, Messaging, Webhooks tests
Fixed missing #[Depends] attributes:
- FunctionsCustomServerTest: testCancelDeploymentBuild → testCreateDeployment
- MessagingBase: testDeleteMessage → testSendEmail
- WebhooksBase: testDeleteDocument → testUpdateDocument, testDeleteRow → testUpdateRow
- WebhooksCustomClientTest: testUpdateAccountName → testDeleteAccountSessions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 18:18:55 +13:00
Jake BarnbyandClaude Opus 4.5 1d03af22e4 Add missing PHPUnit #[Depends] attributes to GraphQL tests
PHPUnit 11 requires explicit #[Depends] attributes. The migration removed
@depends annotations but didn't add all corresponding #[Depends] attributes.

Fixed in:
- GraphQL/Legacy/DatabaseClientTest: 5 methods
- GraphQL/StorageClientTest: 7 methods
- GraphQL/StorageServerTest: 10 methods
- GraphQL/TeamsServerTest: 3 methods
- GraphQL/TeamsClientTest: 2 methods
- GraphQL/TablesDB/DatabaseServerTest: ~40 methods
- GraphQL/TablesDB/DatabaseClientTest: 5 methods

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 18:10:30 +13:00
Jake BarnbyandClaude Opus 4.5 7d6ac8f7a2 Add missing PHPUnit #[Depends] attributes
PHPUnit 11 requires explicit #[Depends] attributes instead of the old
@depends annotations. Several test methods were missing these attributes,
causing "Too few arguments" errors when PHPUnit tried to run the tests.

Fixed in:
- AccountCustomClientTest: testUpdateAccountPassword, testUpdateAccountRecovery, testCreateSession
- GraphQL/Legacy/DatabaseServerTest: Added 36 missing #[Depends] attributes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 17:51:31 +13:00
Jake BarnbyandClaude Opus 4.5 c5c2c44755 Fix PHPUnit --exclude-group deprecation warning
PHPUnit 11+ warns when using comma-separated values with --exclude-group.
This warning causes the tests to return exit code 1 despite all tests passing.

Fix by using separate --exclude-group flags for each group.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 17:33:51 +13:00
Jake BarnbyandGitHub 5c922f89fe Merge pull request #11139 from appwrite/feat-pool-resilience 2026-01-15 17:30:13 +13:00
Jake Barnby 46f3fadc5d Fix hooks 2026-01-15 17:21:05 +13:00
Jake BarnbyandGitHub 6e292349b9 Merge pull request #11138 from appwrite/fix-general-unknown 2026-01-15 16:57:50 +13:00
Jake Barnby 7b940e3a17 Increase + parameterise ppolmax reconnect + sleep 2026-01-15 16:47:19 +13:00
Jake Barnby 7ab3debb10 Format 2026-01-15 16:37:09 +13:00
Jake Barnby c083e1ce74 Throw AppwriteException so handler can unwrap 2026-01-15 16:31:37 +13:00
Jake Barnby 714b8d7ea6 Migrate to PHPUnit 11 2026-01-15 16:14:53 +13:00
Jake Barnby 84f9485049 Fix tests 2026-01-15 14:04:39 +13:00
Jake Barnby d7a6a7b5d8 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.lock
#	tests/e2e/Services/Databases/Legacy/Permissions/DatabasesPermissionsGuestTest.php
#	tests/e2e/Services/Databases/TablesDB/Permissions/DatabasesPermissionsGuestTest.php
2026-01-15 12:43:26 +13:00
Jake BarnbyandGitHub 61e886eed4 Merge pull request #11137 from appwrite/feat-auth-instance 2026-01-15 12:28:02 +13:00
Chirag Aggarwal 71ac9c7264 use stable 2026-01-14 21:37:00 +05:30
Chirag Aggarwal f78d5523ce mMerge branch '1.8.x' into release-cli-13.0.0.rc3 2026-01-14 21:34:40 +05:30
Chirag Aggarwal 955e1bcbe9 use stable 2026-01-14 21:29:58 +05:30
Jake Barnby 09a337aa1b Fix validators 2026-01-15 04:10:57 +13:00
Jake Barnby 2cfb5ecfd9 Reapply "Merge pull request #11130 from appwrite/feat-auth-instance"
This reverts commit 38687bc24e.
2026-01-15 04:08:00 +13:00
Jake Barnby 38687bc24e Revert "Merge pull request #11130 from appwrite/feat-auth-instance"
This reverts commit c12cad80bb, reversing
changes made to 2a17429226.

# Conflicts:
#	composer.lock
2026-01-15 03:48:42 +13:00
Jake BarnbyandGitHub 77b2a57968 Merge pull request #11136 from appwrite/fix-versions 2026-01-15 03:16:37 +13:00
Jake Barnby 223bb7f08a Update lock 2026-01-15 03:07:26 +13:00
Matej BačoandGitHub b73abf69d0 Merge pull request #11135 from appwrite/feat-new-file-params
Feat: Add more file params
2026-01-14 14:17:37 +01:00
Matej BačoandGitHub e76ed98590 Merge branch '1.8.x' into feat-new-file-params 2026-01-14 14:17:27 +01:00
Matej Bačo 7b10fe1371 typo fix 2026-01-14 14:17:12 +01:00
Matej Bačo e4abc0e0da Add more file params (encryption, compression) 2026-01-14 13:16:50 +01:00
Chirag AggarwalandGitHub 6478499f1c Merge pull request #11134 from appwrite/fix-execution-status-update 2026-01-14 17:45:30 +05:30
DarshanandGitHub 3bbfbdb063 Merge pull request #11132 from appwrite/fix-sdk-handling 2026-01-14 17:18:59 +05:30
Darshan bc6ecbd22c address comments. 2026-01-14 17:15:33 +05:30
Darshan 4d2f631393 update: exclude the mocks.
update: nice group based blacklisting.
2026-01-14 17:07:33 +05:30
Darshan 479a583ff5 exclude the mocks. 2026-01-14 16:55:47 +05:30
Darshan 08cd610823 exclude the mocks. 2026-01-14 16:47:21 +05:30
Darshan 6cd19bf330 address comment for key values on enums. 2026-01-14 16:42:30 +05:30
Darshan d6d8729983 bump: sdk generator. 2026-01-14 16:36:44 +05:30
Chirag Aggarwal 6c866be9f3 Fix execution status not updating if usage stats trigger fails
Move the execution document update inside the finally block and wrap
it in try-catch to ensure the execution record is always updated,
even if queueForStatsUsage->trigger() throws an exception.
2026-01-14 16:12:51 +05:30
Darshan 0ec515779e update: address comments.
regen: specs.
2026-01-14 15:29:30 +05:30
Darshan 91240e0ca7 update: address comments.
regen: specs.
2026-01-14 15:10:42 +05:30
Darshan e3ae7daab4 regen: specs. 2026-01-14 14:58:42 +05:30
Darshan f482e6de68 update: specs generation to exclude mock auth providers. 2026-01-14 14:58:22 +05:30
Jake BarnbyandGitHub c12cad80bb Merge pull request #11130 from appwrite/feat-auth-instance 2026-01-14 20:21:59 +13:00
Jake Barnby feab8a26e5 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.lock
#	tests/e2e/Services/Databases/Legacy/Permissions/DatabasesPermissionsGuestTest.php
#	tests/e2e/Services/Databases/TablesDB/Permissions/DatabasesPermissionsGuestTest.php
2026-01-14 19:59:36 +13:00
Chirag AggarwalandGitHub 2a17429226 Merge pull request #11123 from appwrite/feat-integer-format-int64 2026-01-14 12:15:20 +05:30
Jake Barnby e2627d784b Fix router param 2026-01-14 19:27:51 +13:00
Jake Barnby 5c915ef92f Reapply "Merge pull request #11099 from appwrite/feat-auth-instance"
This reverts commit 321fc8ee70.
2026-01-14 19:07:49 +13:00
Chirag AggarwalandGitHub 5697d983d0 Merge branch '1.8.x' into feat-integer-format-int64 2026-01-14 09:54:19 +05:30
Damodar LohaniandGitHub a5fb10c61d Merge pull request #11129 from appwrite/feat-deployment-success
After deployment success hook
2026-01-14 07:15:50 +05:45
Damodar Lohani 5469b78367 feat: add afterDeploymentSuccess hook to handle post-deployment actions 2026-01-14 00:59:22 +00:00
Damodar Lohani e887859cc0 feat: implement afterDeploymentSuccess hook in builds worker and invoke it post-deployment 2026-01-14 00:57:40 +00:00
Chirag Aggarwal 942cfc4591 Merge branch '1.8.x' into feat-integer-format-int64 2026-01-13 21:26:57 +05:30
Jake Barnby 321fc8ee70 Revert "Merge pull request #11099 from appwrite/feat-auth-instance"
This reverts commit a4734a5de7, reversing
changes made to 15922fb88c.

# Conflicts:
#	composer.lock
2026-01-14 02:37:17 +13:00
Jake Barnby 962626a4fb Update lock 2026-01-14 01:56:02 +13:00
DarshanandGitHub 568ac54d3d Merge pull request #11122 from appwrite/bump-flutter-dart 2026-01-13 18:09:08 +05:30
Darshan 432e86ec07 regen specs. 2026-01-13 18:04:14 +05:30
Jake Barnby 0f953e4a52 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.lock
2026-01-14 01:33:22 +13:00
Jake Barnby bb09abc087 Update CTA check 2026-01-14 01:23:48 +13:00
Chirag AggarwalandGitHub fef1b5b5e5 Merge pull request #11125 from appwrite/update-domains-lib 2026-01-13 17:35:29 +05:30
Chirag Aggarwal bfac0f92af chore: update domains lib 2026-01-13 17:11:29 +05:30
Chirag Aggarwal ae6df78020 Add int64 format support for integer attributes
This change adds int64 format specification to integer attribute min/max values in the API response models and updates all OpenAPI/Swagger specifications accordingly. This ensures proper type handling for large integer values that exceed int32 range in client SDKs.

Changes:
- Add 'format: int64' to min/max fields in AttributeInteger and ColumnInteger models
- Regenerate OpenAPI 3.x and Swagger 2.x specs for all platforms (client, console, server)
- Update composer dependencies
2026-01-13 17:00:20 +05:30
Jake Barnby 0b27d92509 Update lock 2026-01-13 22:09:05 +13:00
Jake Barnby 5153617f04 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests
# Conflicts:
#	composer.lock
#	tests/e2e/Services/Databases/Legacy/Permissions/DatabasesPermissionsGuestTest.php
#	tests/e2e/Services/Databases/TablesDB/Permissions/DatabasesPermissionsGuestTest.php
2026-01-13 22:04:36 +13:00
Jake Barnby a34fa1ceb6 Fix abuse 2026-01-13 22:01:22 +13:00
Jake Barnby cd21140572 Fix request fetching 2026-01-13 22:01:16 +13:00
Darshan 23d84cf29f update: dart sdk. 2026-01-13 14:21:09 +05:30
Darshan c79019f960 regen: specs. 2026-01-13 13:58:57 +05:30
Chirag AggarwalandGitHub dd78b6dbce Merge branch '1.8.x' into release-cli-13.0.0.rc3 2026-01-13 13:39:27 +05:30
Chirag Aggarwal 81e64afe7a changelog 2026-01-13 13:38:44 +05:30
Chirag Aggarwal 5ef675bcdd release cli sdk 13.0.0 rc5 2026-01-13 13:38:32 +05:30
Jake BarnbyandGitHub a4734a5de7 Merge pull request #11099 from appwrite/feat-auth-instance 2026-01-13 20:35:22 +13:00
Jake Barnby 03812cf7bf Lint 2026-01-13 18:59:55 +13:00
Jake Barnby 515a34c180 Set health adapter auth 2026-01-13 18:52:16 +13:00
Jake Barnby 8e688bad4d Revert ping 2026-01-13 18:36:38 +13:00
Damodar Lohani 4905f7cc48 Merge remote-tracking branch 'origin/1.8.x' into feat-health-module 2026-01-13 05:19:00 +00:00
Jake Barnby 3d27b76051 Fix avatars 2026-01-13 18:05:46 +13:00
Jake Barnby 2d6348bf5d Fix health 2026-01-13 17:22:05 +13:00
Jake Barnby 2131a0cea1 Sync auth 2026-01-13 16:21:43 +13:00
Jake Barnby 9379e4d6c8 Merge remote-tracking branch 'origin/1.8.x' into feat-auth-instance
# Conflicts:
#	app/controllers/api/avatars.php
#	composer.lock
#	src/Appwrite/Platform/Modules/Functions/Workers/Builds.php
2026-01-13 15:46:23 +13:00
Jake BarnbyandGitHub 15922fb88c Merge pull request #11103 from appwrite/avatars-module 2026-01-12 21:28:56 +13:00
Jake BarnbyandGitHub ba9526cce0 Merge pull request #11118 from appwrite/bump-http 2026-01-12 21:16:15 +13:00
Darshan 6dbed494e3 bump: swoole and framework. 2026-01-12 13:29:50 +05:30
Darshan 4eb1e7ae45 Merge branch '1.8.x' into avatars-module 2026-01-12 12:04:56 +05:30
Darshan bdd53212a0 Merge branch '1.8.x' into avatars-module 2026-01-12 12:04:41 +05:30
Darshan 1a69d9d236 remove: avatars controller. 2026-01-12 12:03:58 +05:30
Jake BarnbyandGitHub a860c33969 Merge pull request #11115 from appwrite/delete-subscribers 2026-01-12 18:50:59 +13:00
shimon ffd73dc70f Merge remote-tracking branch 'origin/add-webhooks-and-functions-events' into add-webhooks-and-functions-events 2026-01-11 14:12:22 +02:00
shimon 362a7bef0e Merge branch '1.8.x' of github.com:appwrite/appwrite into add-webhooks-and-functions-events 2026-01-11 14:11:51 +02:00
fogelito d08a6f572c message 2026-01-11 08:30:52 +02:00
fogelito 893c1aa669 formatting 2026-01-11 08:21:30 +02:00
fogelito c34873a8b0 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into delete-subscribers 2026-01-11 08:17:40 +02:00
fogelito 17f60b611b catch 2026-01-11 08:13:39 +02:00
Matej Bačo cd0d609229 quality improv 2026-01-10 17:01:31 +01:00
Matej Bačo 497e5f8d00 tests fixes 2026-01-10 16:57:23 +01:00
Matej Bačo 60e1efb8cb Merge conflict fix 2026-01-10 16:42:45 +01:00
Matej Bačo 3d4b29e0f1 Merge branch '1.8.x' into chore-php-types 2026-01-10 16:42:38 +01:00
Matej Bačo dad21a912e PR review changes 2026-01-10 16:35:09 +01:00
Jake Barnby 8eb09a98fe Fix otp user 2026-01-11 02:49:28 +13:00
Jake Barnby 879a599bed Fix parallel cases 2026-01-11 02:33:20 +13:00
Jake Barnby 1a22c281f5 Parallelise 2026-01-10 21:25:06 +13:00
Jake Barnby f797ae3ac6 Remove sleeps 2026-01-10 14:53:29 +13:00
Jake Barnby 658308a447 Merge remote-tracking branch 'origin/1.8.x' into feat-db-tests 2026-01-10 03:21:38 +13:00
Jake Barnby 9498a8ba5d Consolidate, remove depends, add fixtures 2026-01-10 03:21:31 +13:00
Matej BačoandGitHub 445d7495a3 Merge pull request #11110 from appwrite/feat-async-screenshots
Feat: Async screenshots
2026-01-09 14:35:20 +01:00
Matej Bačo aebbe91c34 formatting fix 2026-01-09 11:25:47 +01:00
Matej Bačo 2a9f9f6851 Fix race condition with screenshot worker updating dpeloyment 2026-01-09 11:25:39 +01:00
Matej Bačo eec023aab3 Simplify screenshot failures 2026-01-09 11:25:25 +01:00
Matej Bačo 71f389e1c0 AI PR review 2026-01-09 10:41:58 +01:00
Matej Bačo d71b289025 Implement screenshot worker 2026-01-08 16:51:04 +01:00
Damodar Lohani f4da9b54e7 improve get certificate 2026-01-08 06:34:11 +00:00
Damodar LohaniandGitHub df84b94df0 Merge branch '1.8.x' into feat-health-module 2026-01-08 12:08:57 +05:45
Damodar Lohani 42bf515c8a Fix typos 2026-01-08 06:21:57 +00:00
Jake BarnbyandGitHub a7d39b5ef7 Merge pull request #11105 from appwrite/bump-migrations 2026-01-08 19:15:29 +13:00
Jake Barnby 4c1417944d Fix bucket stats auth 2026-01-08 18:54:52 +13:00
Damodar LohaniandGitHub 27aee1fb88 Merge pull request #11054 from appwrite/feat-file-create-after-success-hook
Feat: add after success hook for file creation endpoint
2026-01-08 11:31:14 +05:45
Darshan 4319c16584 bump: migrations. 2026-01-08 11:13:16 +05:30
Damodar LohaniandGitHub d68fc9a22e Merge branch '1.8.x' into feat-health-module 2026-01-08 11:26:56 +05:45
Jake Barnby e3d6fc123f Update lock 2026-01-08 18:11:37 +13:00
Jake Barnby e6505b9cf9 Merge remote-tracking branch 'origin/1.8.x' into feat-auth-instance
# Conflicts:
#	composer.lock
2026-01-08 17:48:37 +13:00
Jake Barnby c1ab9da740 Update migrations 2026-01-08 17:48:20 +13:00
Jake Barnby b567cd5341 Update storage module for auth instance 2026-01-08 15:01:30 +13:00
Luke B. SilverandGitHub f2ac01bccf Merge pull request #11104 from appwrite/feat-graceful-workers
feat: graceful workers
2026-01-07 23:23:44 +00:00
loks0n eecfba2a72 feat: graceful workers 2026-01-07 16:50:53 +00:00
shimon 2cfaa2223e feat: inject EventProcessor into Update transaction for enhanced event handling 2026-01-07 18:19:20 +02:00
shimon 1a87bde88e removing blank lines 2026-01-07 17:25:12 +02:00
shimon 4b92e3781f removing blank lines 2026-01-07 17:24:53 +02:00
shimon 65bb8946f6 Merge branch '1.8.x' of github.com:appwrite/appwrite into add-webhooks-and-functions-events 2026-01-07 16:58:23 +02:00
shimon db4dcd164e refactor: integrate EventProcessor for handling function and webhook events; streamline event triggering in database actions 2026-01-07 16:57:57 +02:00
Darshan 384c47f436 Merge remote-tracking branch 'origin/avatars-module' into avatars-module 2026-01-07 19:42:56 +05:30
Darshan dcc926402d fix: path error. 2026-01-07 19:42:50 +05:30
Darshan 6969e446d5 Merge branch '1.8.x' into avatars-module 2026-01-07 19:41:49 +05:30
DarshanandGitHub c8bb939357 Merge branch '1.8.x' into avatars-module 2026-01-07 19:37:28 +05:30
Darshan 02488c853d fix: paths error. 2026-01-07 19:28:44 +05:30
Darshan 92f26c1b5a update: move avatars controller to module structure. 2026-01-07 19:09:56 +05:30
DarshanandGitHub ded06d7435 Merge pull request #11102 from appwrite/add-xlist-totalsize 2026-01-07 18:53:53 +05:30
Matej BačoandGitHub 6c59cef8f4 Merge pull request #11090 from appwrite/fix-project-search
Fix: Allows query search on project
2026-01-07 14:09:56 +01:00
Darshan 46072bb95e fix: test. 2026-01-07 18:32:03 +05:30
Darshan 904b7312d6 address comments. 2026-01-07 18:22:36 +05:30
DarshanandGitHub 68fc6b0600 Merge branch '1.8.x' into add-xlist-totalsize 2026-01-07 18:08:59 +05:30
Darshan 47ea8699d1 add: tests. 2026-01-07 18:05:33 +05:30
Darshan 9ba3f6dfe8 add: totalsize on xlist. 2026-01-07 18:00:04 +05:30
HemachandarandGitHub 3483daef0d Stop publishing rule verification errors to Sentry (#11101) 2026-01-07 17:33:00 +05:30
DarshanandGitHub 9943305640 Merge pull request #11100 from appwrite/fix-dat-1019 2026-01-07 16:40:58 +05:30
DarshanandGitHub 8bb6f01e22 Merge pull request #11069 from appwrite/storage-size 2026-01-07 16:36:06 +05:30
Darshan 2cc7bbc0a4 update: address comment, inline method. 2026-01-07 16:00:52 +05:30
Jake Barnby e9366ac2e6 Merge remote-tracking branch 'origin/1.8.x' into feat-auth-instance
# Conflicts:
#	composer.json
#	composer.lock
#	src/Appwrite/Platform/Workers/Migrations.php
2026-01-07 23:26:41 +13:00
Jake Barnby 22f8a3eab9 Sync merge 2026-01-07 23:24:49 +13:00
Darshan 896e5a517a lint. 2026-01-07 15:42:51 +05:30
Darshan 281dcfc64a add queries to logging. 2026-01-07 15:37:56 +05:30
DarshanandGitHub 457cd53475 Merge branch '1.8.x' into storage-size 2026-01-07 14:00:36 +05:30
Darshan 93e7dc772d Merge remote-tracking branch 'origin/storage-size' into storage-size 2026-01-07 13:57:59 +05:30
Darshan 228d095ee5 address comment and fix tests. 2026-01-07 13:57:41 +05:30
Jake BarnbyandGitHub 43189f8940 Merge pull request #11086 from appwrite/migrations-cleanup 2026-01-07 21:15:38 +13:00
DarshanandGitHub b615e4b901 Merge branch '1.8.x' into storage-size 2026-01-07 13:43:48 +05:30
Darshan ebd6457361 address comment. 2026-01-07 13:39:51 +05:30
fogelito 0d3bcc9b3a message todo 2026-01-07 09:52:23 +02:00
fogelito 61e98a501a composer migration 1.3.* 2026-01-07 09:43:13 +02:00
fogelito 502012ddf7 composer migration 1.3.* 2026-01-07 09:42:21 +02:00
fogelito a6eb479c93 composer migration 2026-01-07 09:38:58 +02:00
fogelito e0d7b418dc Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migrations-cleanup
# Conflicts:
#	composer.lock
2026-01-07 09:37:48 +02:00
Jake Barnby ea97072479 Merge remote-tracking branch 'origin/1.8.x' into feat-auth-instance
# Conflicts:
#	composer.lock
2026-01-07 20:10:26 +13:00
Jake Barnby 7573ee75a2 Use authorization instance 2026-01-07 20:04:28 +13:00
Damodar LohaniandGitHub 0dc00eb2c5 Merge pull request #11095 from appwrite/lohanidamodar-patch-2
Fix deleteAuditLogs function call parameters
2026-01-07 12:41:43 +05:45
Jake BarnbyandGitHub b8ccc3b846 Merge pull request #11096 from appwrite/bump-migrations-lib 2026-01-07 19:18:52 +13:00
Damodar LohaniandGitHub 6f1cac7d76 Merge branch '1.8.x' into feat-health-module 2026-01-07 11:53:34 +05:45
Darshan 5f3384b821 bump. 2026-01-07 11:24:15 +05:30
Darshan 71cb462f49 Merge branch '1.8.x' into 'bump-migrations-lib'. 2026-01-07 11:20:00 +05:30
Darshan 27e859030d use: vcs for now. 2026-01-07 11:15:28 +05:30
Damodar LohaniandGitHub e7a82e4d31 Fix deleteAuditLogs function call parameters 2026-01-07 11:08:26 +05:45
Jake BarnbyandGitHub 6dc836307e Merge pull request #11088 from appwrite/delete-project-skip-validations 2026-01-07 18:10:44 +13:00
shimon 0582cdf394 refactor: clean up whitespace and remove commented-out abuse handling code in api.php 2026-01-06 18:41:06 +02:00
shimon 573d8423a3 refactor: remove unused purgeFunctionEventsCache method and clean up whitespace in Update class 2026-01-06 18:40:17 +02:00
shimon 3fa3318346 Merge branch '1.8.x' of github.com:appwrite/appwrite into add-webhooks-and-functions-events 2026-01-06 18:32:00 +02:00
shimon 23dfb23a3b fix: revert Traefik image version to 2.11; implement caching for function events and webhooks; add cache purging on function create/update/delete events 2026-01-06 18:28:37 +02:00
HemachandarandGitHub fc5ea06821 Bump utopia-php/fetch version (#10997)
* Bump utopia-php/fetch version

* fix timeouts
2026-01-06 21:30:25 +05:30
fogelito 5642983f91 Pull main 2026-01-06 17:26:30 +02:00
fogelito b208e5c066 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migrations-cleanup
# Conflicts:
#	composer.json
#	composer.lock
2026-01-06 17:26:08 +02:00
Matej BačoandGitHub aa135d5cd4 Merge pull request #11085 from appwrite/feat-success-abuse-reset
Feat: Abuse reset on success
2026-01-06 15:56:36 +01:00
fogelito 6756ee31b6 migration can not be empty 2026-01-06 16:55:36 +02:00
fogelito 89c988d73c finally try catch 2026-01-06 16:36:34 +02:00
Matej Bačo 6d85d1567e Update composer.lock 2026-01-06 15:33:21 +01:00
Matej Bačo 7567639996 grammar fix 2026-01-06 15:18:44 +01:00
Matej Bačo 057bff2140 Merge branch '1.8.x' into feat-success-abuse-reset 2026-01-06 15:18:25 +01:00
Matej Bačo d7bb234072 PR reviews 2026-01-06 15:18:22 +01:00
Matej Bačo c0f8dee4d4 Allows query search on project 2026-01-06 15:03:43 +01:00
fogelito eb10996517 Add try finally 2026-01-06 15:36:08 +02:00
fogelito 31803f0eb9 message 2026-01-06 15:30:19 +02:00
fogelito ac9214f3c4 revert 2026-01-06 14:57:54 +02:00
fogelito 14347d86a8 try disableValidation 2026-01-06 14:49:19 +02:00
fogelito 1b855d2d41 disables validations 2026-01-06 14:37:46 +02:00
HemachandarandGitHub 3b5b15d1a6 Remove dual read for keys (#11083)
* Remove dual read for `keys`

* write to mock

* remove dual writes

* Revert "remove dual writes"

This reverts commit ce9a48423b.

* add todo
2026-01-06 17:49:32 +05:30
Shmuel FogelandGitHub 2c5bc32f7e Merge pull request #11072 from appwrite/platform-rules-collections
Sync platform rules + common targets tables
2026-01-06 13:59:41 +02:00
fogelito 59b41c4b52 lock 2026-01-06 11:16:34 +02:00
fogelito b6e8b55994 Throw 2026-01-06 11:01:38 +02:00
fogelito 3a4fb5dd14 throws 2026-01-06 10:56:33 +02:00
fogelito 2a679ead32 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migrations-cleanup 2026-01-06 10:45:19 +02:00
fogelito 7da9d480d0 cleanUp 2026-01-06 10:43:16 +02:00
Matej Bačo a37aa2dd68 Generic abuse test group 2026-01-05 22:51:11 +01:00
Matej Bačo b29f70a0af Add new tests 2026-01-05 22:51:03 +01:00
Matej Bačo 2fc5e56a61 WIP: Abuse reset on success 2026-01-05 22:05:00 +01:00
Matej BačoandGitHub b1373c02bc Merge pull request #11056 from appwrite/feat-project-labels
Feat: Project labels
2026-01-05 17:15:30 +01:00
Matej Bačo 1db12e78ef AI code review 2026-01-05 14:42:03 +01:00
Matej Bačo a25c8004e4 Merge branch '1.8.x' into feat-project-labels 2026-01-05 14:32:26 +01:00
Chirag AggarwalandGitHub 547d59d95e Merge pull request #11079 from appwrite/validate-smtp-connection 2026-01-05 17:36:58 +05:30
Chirag Aggarwal 4e0477af32 add timeout to mailer 2026-01-05 17:25:12 +05:30
Luke B. SilverandGitHub 1659bc3ffa Merge pull request #11080 from appwrite/fix-audit-delete
Fix audit delete
2026-01-05 10:53:52 +00:00
fogelito 84e9c8243c fix param order 2026-01-05 09:30:47 +02:00
Chirag Aggarwal 001d38caf5 feat: sdk for md 2026-01-05 12:53:35 +05:30
fogelito 020d7bb801 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into platform-rules-collections 2026-01-04 12:26:49 +02:00
fogelito b6aeaffe8b Remove region index 2026-01-04 12:20:22 +02:00
fogelito 65883122e3 rules changes 2026-01-04 12:16:59 +02:00
shimon cd651dbdb8 chore: update dependencies and fix formatting issues in composer files; change Traefik image version in docker-compose; add debug output in Action.php 2026-01-04 11:35:20 +02:00
shimon 2dfb386b12 Merge branch '1.8.x' of github.com:appwrite/appwrite into add-webhooks-and-functions-events 2026-01-04 10:39:35 +02:00
shimon e9dac6710f Refactor: Remove unused webhook and function event filters, implement caching for function events retrieval 2026-01-04 09:53:29 +02:00
DarshanandGitHub d4660a70c3 Merge pull request #11071 from appwrite/fix-missing-dbId 2026-01-04 12:37:54 +05:30
Darshan 16f9c35850 update: tests. 2026-01-04 12:09:11 +05:30
Darshan 49511ebdd9 fix: missing database id in response. 2026-01-04 12:05:55 +05:30
Luke B. SilverandGitHub 63511c56ae Merge pull request #11067 from appwrite/fix-memory-leak
fix: memory leak
2026-01-03 23:02:31 +00:00
loks0n 445ada0226 fix: memory leak 2026-01-03 22:38:17 +00:00
Darshan a5d4f69c6c bump: specs 2026-01-03 15:43:54 +05:30
Darshan f788fc8f8a add: tests. 2026-01-03 15:42:55 +05:30
Darshan 67ef2ab552 add: return bucket actual size. 2026-01-03 15:13:34 +05:30
Steven NguyenandGitHub f0191202a0 Merge pull request #10342 from tejas-raskar/doc-10339-fix-inconsistent-dir-structure-in-contribution-docs
docs: update the directory structure in CONTRIBUTING.md
2026-01-02 15:59:24 -08:00
Steven NguyenandGitHub 68b4a49e9d Merge pull request #10896 from appwrite/feat-1.8.1-release-prep
Prepare 1.8.1 release
2026-01-02 15:38:50 -08:00
DarshanandGitHub 28a09d7aaa Merge pull request #11065 from appwrite/add-logging-tests 2026-01-02 17:20:10 +05:30
Darshan ee3b2d75ae add: missing test at console level. 2026-01-02 17:01:03 +05:30
Chirag AggarwalandGitHub ffe1fd89a7 Merge pull request #11064 from appwrite/chore-cookie-console 2026-01-02 16:29:39 +05:30
Chirag Aggarwal 06c4ba81e9 chore: sync specs + allow cookie auth in console platform 2026-01-02 15:20:45 +05:30
Chirag AggarwalandGitHub f2772cea6b Merge pull request #11063 from appwrite/fix-remove-production-attribute 2026-01-02 12:22:42 +05:30
Chirag Aggarwal b76a4bdd2f fix: remove production attribute when releasing sdks 2026-01-02 12:16:50 +05:30
Shmuel FogelandGitHub 1c94381830 Merge pull request #11058 from appwrite/cli-previous-errors
Cli previous errors
2026-01-01 17:36:24 +02:00
fogelito 0209d40a38 Cli previous errors 2026-01-01 12:17:20 +02:00
Damodar Lohani 297fae8f81 refactor tests 2026-01-01 09:54:13 +00:00
Damodar Lohani 3e403194e4 Fix tests 2026-01-01 09:37:10 +00:00
Damodar Lohani 0305790e69 Fix: update health status model to use HEALTH_STATUS_LIST 2026-01-01 07:59:06 +00:00
Damodar Lohani 25435aaa11 Error handling 2026-01-01 07:58:18 +00:00
Damodar Lohani 19895e54e3 Fix: health status returning ping in incorrect unit 2026-01-01 07:37:09 +00:00
Damodar Lohani 4b3fe0b6fe Fix missing brace 2026-01-01 07:35:28 +00:00
Damodar LohaniGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
4ef906b836 Update src/Appwrite/Platform/Modules/Health/Http/Health/Certificate/Get.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-01 13:15:28 +05:45
Damodar Lohani 28aa4e8a8d refactor and new endpoint test 2026-01-01 05:49:20 +00:00
Damodar Lohani 9c6a6c265a format 2026-01-01 05:45:14 +00:00
Damodar Lohani dc0eb5f7a7 Feat: Health module 2026-01-01 05:45:06 +00:00
Steven NguyenandGitHub 06367eca69 Merge pull request #10954 from appwrite/optional-assistant
Optional assistant
2025-12-31 17:14:37 -08:00
Matej Bačo 8d1acef95d Implement project labels 2025-12-31 15:44:18 +01:00
Matej BačoandGitHub 55343379f2 Merge pull request #11046 from appwrite/chore-module-docs
Chore: Add module docs
2025-12-31 15:19:23 +01:00
DarshanandGitHub a66b565150 Merge branch '1.8.x' into optional-assistant 2025-12-31 19:21:37 +05:30
Darshan ff160871ae update: check assistant status on upgrade as well. 2025-12-31 19:21:19 +05:30
Darshan 92a3eca194 Merge branch '1.8.x' into optional-assistant 2025-12-31 19:09:54 +05:30
Damodar Lohani 03ccca2c35 Add after create success hook in file creation process 2025-12-31 13:05:41 +00:00
Shmuel FogelandGitHub 07135956df Merge pull request #11053 from appwrite/skip-migrations-shutdown
skip migration shutdown
2025-12-31 14:27:41 +02:00
fogelito b5a363a2a7 skip shutdown 2025-12-31 14:01:56 +02:00
Matej BačoandGitHub 31dc9ff873 Merge pull request #11052 from appwrite/chore-upgrade-vcs-version
Chore: Upgrade VCS lib with getCommit fix
2025-12-31 12:22:11 +01:00
Matej Bačo 408f9c2d39 Upgrade VCS with getCommit fix 2025-12-31 11:54:22 +01:00
Matej Bačo 910bd69b16 Ai review fixes 2025-12-31 10:57:10 +01:00
DarshanandGitHub dfd5965d25 Merge pull request #11051 from appwrite/fix-resources 2025-12-31 15:25:55 +05:30
Darshan 2a38eedc98 fix: flaky test!
fix: get resource report what we want.
2025-12-31 15:00:23 +05:30
DarshanandGitHub f875b965be Merge pull request #11049 from appwrite/console-module 2025-12-31 13:20:24 +05:30
Darshan 2e57e5a868 fix: url. 2025-12-31 11:59:01 +05:30
Darshan 69ce99d1b4 feat: console module. 2025-12-31 11:52:41 +05:30
Chirag AggarwalandGitHub 6b881d4aaf Merge pull request #11045 from appwrite/reduce-sdk-release-steps 2025-12-31 10:01:11 +05:30
Damodar LohaniandGitHub aad7d6dbca Merge pull request #10953 from appwrite/feat-audits-upgrade
Feat: Audits  upgrade
2025-12-31 06:55:34 +05:45
Matej Bačo 33ffe4aca7 AI suggestions 2025-12-30 15:13:22 +01:00
Matej Bačo 77eb3d4bcd Update AGENTS.md 2025-12-30 15:12:57 +01:00
Matej Bačo 49989f38f7 Update AGENTS.md 2025-12-30 15:09:47 +01:00
Matej Bačo 18a49ccc44 Update grammar 2025-12-30 15:07:54 +01:00
Matej Bačo 73173a7f8c Add module docs 2025-12-30 15:04:26 +01:00
Chirag Aggarwal e3412bc554 chore: reduce sdk release steps 2025-12-30 18:25:11 +05:30
HemachandarandGitHub c1e50c7abd Write to new resource attributes in keys (#11003)
* Write to new resource attributes in `keys`

* temp for tests

* list keys

* add subqueries

* lint
2025-12-30 17:09:59 +05:30
Luke B. SilverandGitHub 6499f436ca Merge pull request #11040 from appwrite/fix-task-subprocesses
fix: task subprocesses
2025-12-30 09:37:49 +00:00
loks0n 55fbd77bf1 fix: task subprocesses 2025-12-30 09:13:26 +00:00
Luke B. SilverandGitHub 4046829fc6 Merge pull request #11039 from appwrite/chore-remove-proxy-containaer
chore: remove proxy containaer
2025-12-30 08:46:27 +00:00
Chirag AggarwalandGitHub 57e218266f Merge pull request #11043 from appwrite/fix-include-services 2025-12-30 14:09:19 +05:30
Chirag AggarwalandGitHub 188dd5c423 Merge branch '1.8.x' into fix-include-services 2025-12-30 13:51:15 +05:30
Chirag Aggarwal d8d3f22883 fix: remove storage service from include_once 2025-12-30 13:42:39 +05:30
ArnabChatterjee20kandGitHub f338a819e1 Merge branch '1.8.x' into new-pool-adapter 2025-12-30 13:23:01 +05:30
ArnabChatterjee20k 2e82f0c2ec fix: update coroutine pool handling and configuration 2025-12-30 13:03:59 +05:30
Damodar LohaniandGitHub 15dc316535 Merge branch '1.8.x' into feat-audits-upgrade 2025-12-30 07:44:10 +05:45
loks0n 7581019e76 chore: remove proxy container 2025-12-29 18:51:37 +00:00
Matej Bačo 00b5236dea simplify diff 2025-12-29 18:41:35 +01:00
Damodar LohaniandGitHub c4fcec0a8a Merge pull request #11035 from appwrite/feat-storage-module
Feat: storage module
2025-12-29 19:34:15 +05:45
Damodar Lohani ca877fa71d Catch query parse exceptions 2025-12-29 13:24:24 +00:00
Damodar LohaniandGitHub 425dd9639c Merge branch '1.8.x' into feat-storage-module 2025-12-29 18:17:15 +05:45
Matej Bačo df57b59786 Merge branch '1.8.x' into chore-php-types 2025-12-29 13:24:50 +01:00
Matej Bačo eda189dbf1 AI review improvements 2025-12-29 13:24:26 +01:00
Chirag AggarwalandGitHub e60391bdb3 Merge pull request #11037 from appwrite/more-sdk-config 2025-12-29 17:45:11 +05:30
ArnabChatterjee20k 74dcfc28c7 removed duplicate postgresql from pool 2025-12-29 17:17:04 +05:30
ArnabChatterjee20k ee35322db6 Merge remote-tracking branch 'upstream/1.8.x' into pg-adapter 2025-12-29 16:56:02 +05:30
ArnabChatterjee20k b5200ca840 Merge remote-tracking branch 'origin/pg-adapter' into pg-adapter 2025-12-29 16:52:40 +05:30
Chirag Aggarwal 57157a71b4 chore: more sdk config flexibility 2025-12-29 16:44:19 +05:30
Shmuel FogelandGitHub 8a52975048 Merge pull request #11036 from appwrite/functions-skip-subqueiry
Functions skip variables subquery
2025-12-29 13:08:00 +02:00
HemachandarandGitHub 45e3267930 Merge pull request #10985 from appwrite/ser-331
Support for sync-ing certificate generation status
2025-12-29 16:20:50 +05:30
Hemachandar 2b96d60c1e copilot - code quality 2025-12-29 16:01:19 +05:30
Matej Bačo ee911e3df6 Finalize unit key tests 2025-12-29 11:21:49 +01:00
fogelito 417bb22790 use Query::contains 2025-12-29 11:55:21 +02:00
Matej Bačo eb2c616089 Improve key unit tests 2025-12-29 10:47:27 +01:00
Hemachandar 1b70bc812b keep certificate renewal in maintenance worker 2025-12-29 14:51:59 +05:30
HemachandarandGitHub e7e429142f Merge branch '1.8.x' into ser-331 2025-12-29 14:20:20 +05:30
Damodar Lohani 80bb9a1f33 fixe endpoints 2025-12-29 08:41:38 +00:00
fogelito 774e3af61c skip variables subquery 2025-12-29 10:20:32 +02:00
Matej Bačo 5f5d9b4fcb Add async key cleanup 2025-12-29 09:04:47 +01:00
Matej Bačo 7c56a76feb self PR review fixes 2025-12-29 08:59:07 +01:00
Damodar Lohani 30373980f1 fix update endpoint 2025-12-29 07:56:46 +00:00
Damodar Lohani 8cf12f685a remove controller 2025-12-29 07:44:08 +00:00
Damodar Lohani f99cb20d05 Initialize storage module and remove storage and fix remaining endpoints 2025-12-29 07:44:03 +00:00
Damodar LohaniandGitHub a7724028b3 Merge branch '1.8.x' into feat-audits-upgrade 2025-12-29 13:23:20 +05:45
ArnabChatterjee20kandGitHub 7026052e04 Merge branch '1.8.x' into new-pool-adapter 2025-12-29 11:58:36 +05:30
Chirag AggarwalandGitHub a0514d2aac Merge pull request #11032 from appwrite/more-sdk-fixes 2025-12-29 11:52:04 +05:30
Chirag AggarwalandGitHub ac137cee3d Merge pull request #11027 from appwrite/lohanidamodar-patch-2 2025-12-29 11:51:00 +05:30
Damodar Lohani f4f4ad9c7d format 2025-12-29 01:51:07 +00:00
Damodar Lohani da7738edaa Feat: Storage module 2025-12-29 01:50:39 +00:00
shimon 6c1f967509 add functionsEvents and webhooksEvents 2025-12-28 18:10:44 +02:00
Chirag Aggarwal 58e091099f fix grammar 2025-12-28 21:17:43 +05:30
Chirag Aggarwal 6410a245eb fix: sdk configuration options 2025-12-28 20:59:46 +05:30
fogelito 670edd845e Merge branch '1.8.x' of https://github.com/appwrite/appwrite into lohanidamodar-patch-2 2025-12-28 17:23:10 +02:00
Chirag AggarwalandGitHub 834c18f9fa Merge pull request #11031 from appwrite/fix-default-namespace-in-sdks 2025-12-28 20:50:35 +05:30
Chirag Aggarwal 77930a0cec fix: default namespace in sdks 2025-12-28 20:46:23 +05:30
fogelito 5d9201466b functions + databases 2025-12-28 16:54:38 +02:00
fogelito d583b5e228 All again 2025-12-28 15:33:00 +02:00
fogelito c463a9a662 Only functions 2025-12-28 15:14:56 +02:00
fogelito bd9f02b689 Only functions 2025-12-28 15:01:29 +02:00
fogelito 472e2c282d skip specific filters 2025-12-28 14:31:46 +02:00
fogelito 7a89779827 revert 2025-12-28 14:17:48 +02:00
fogelito 126de78ce2 skip functions 2025-12-28 14:13:56 +02:00
fogelito e919896eef Merge remote-tracking branch 'origin/lohanidamodar-patch-2' into lohanidamodar-patch-2 2025-12-28 13:49:05 +02:00
fogelito fd3475f945 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into lohanidamodar-patch-2 2025-12-28 13:47:29 +02:00
Damodar Lohani 9c8f565211 use the helper method instead 2025-12-28 10:33:12 +00:00
Damodar Lohani 08f30224b6 Use disable instead of skip agin 2025-12-28 10:26:21 +00:00
Damodar LohaniandGitHub 6d02554f2a Merge pull request #11026 from appwrite/fix-file-permissions
Fix: Document/File set user permission only if not privileged user
2025-12-28 15:43:35 +05:45
Damodar Lohani 61c619f373 remove disables 2025-12-28 09:27:21 +00:00
Damodar LohaniandGitHub 419d56b4b1 Merge branch '1.8.x' into feat-audits-upgrade 2025-12-28 14:58:36 +05:45
Damodar Lohani b32dd316e1 Fix: use skip filters instead 2025-12-28 09:09:11 +00:00
Matej Bačo 04f660e44b Dedicate project test 2025-12-28 10:06:29 +01:00
Damodar Lohani d2cda9770b Use get audit resource for audit cleanup. 2025-12-28 09:01:37 +00:00
Damodar LohaniandGitHub 22042b4749 Merge branch '1.8.x' into fix-file-permissions 2025-12-28 14:23:31 +05:45
Damodar LohaniandGitHub aa17eeb6e3 Disable filters for platform and project databases - Stat resources
- Disable filters for platform and project databases - Stat resources
2025-12-28 14:19:28 +05:45
Shimon NewmanandGitHub 1529357821 Merge pull request #11022 from appwrite/fix-bulk-insert-webhook-validation
add webhook exist validation in bulkTrigger()
2025-12-28 09:31:13 +02:00
Damodar Lohani 3a98361736 add test 2025-12-28 02:02:34 +00:00
Damodar Lohani 0c425dbac3 Fix: assign user permission to files/documents only if not a previleged user 2025-12-28 01:48:23 +00:00
Matej Bačo b4c1b96d43 Fix General tests 2025-12-27 19:28:08 +01:00
Matej Bačo 44d8c66e95 Merge branch '1.8.x' into chore-php-types 2025-12-27 19:18:45 +01:00
Matej Bačo 6774de4eef add todo 2025-12-27 19:18:25 +01:00
Matej Bačo ee0f15eed6 QA bug fixing 2025-12-27 19:08:12 +01:00
Matej Bačo c54d1d29a5 Update stats of all key ypes 2025-12-27 18:44:01 +01:00
Chirag AggarwalandGitHub 69b861cd87 Merge pull request #11025 from appwrite/fix-specs-generation 2025-12-27 21:45:56 +05:30
Chirag Aggarwal 0599d23cc5 fix: specs generation getPlatforms method 2025-12-27 20:48:33 +05:30
Chirag AggarwalandGitHub a37b4a40d9 Merge pull request #11024 from appwrite/turnoff-warning-logs 2025-12-27 20:21:07 +05:30
Chirag Aggarwal 7e37046959 chore: remove warning logs when skipping ssl certificate generation 2025-12-27 20:19:27 +05:30
shimon f9efdfd98e fix: use nullsafe operator for project attribute retrieval in Action class 2025-12-25 19:07:51 +02:00
shimon d53090647b Merge branch '1.8.x' of github.com:appwrite/appwrite into fix-bulk-insert-webhook-validation 2025-12-25 18:56:30 +02:00
shimon e8b8a8fe52 add webhook exist validation in balkTrigger() 2025-12-25 18:52:57 +02:00
ArnabChatterjee20k 3b4196735a refactor: simplify query handling in Realtime adapter and enhance error messaging for unsupported queries 2025-12-24 21:02:03 +05:30
ArnabChatterjee20k 7e315f79cc refactor: improve query handling in Realtime adapter and update RuntimeQuery filter logic 2025-12-24 20:50:05 +05:30
ArnabChatterjee20k 336bd44826 fixed payload in adapter 2025-12-24 20:10:00 +05:30
ArnabChatterjee20k 881d96a653 linting 2025-12-24 19:06:34 +05:30
ArnabChatterjee20k 874e5f61f0 Merge remote-tracking branch 'upstream/1.8.x' into dat-969 2025-12-24 19:01:13 +05:30
ArnabChatterjee20k 39cf207df9 re 2025-12-24 18:57:58 +05:30
ArnabChatterjee20k 11f23d99fb Revert "temp-check: force purging cache"
This reverts commit 00e00ff166.
2025-12-24 17:09:01 +05:30
ArnabChatterjee20k 00e00ff166 temp-check: force purging cache 2025-12-24 16:55:13 +05:30
ArnabChatterjee20kandGitHub 57c80d5967 Merge branch '1.8.x' into new-pool-adapter 2025-12-24 16:48:25 +05:30
ArnabChatterjee20k f36dd2748c fixed tests 2025-12-24 16:22:02 +05:30
Damodar Lohani 69430154e6 update autit to rc version 2025-12-24 10:24:51 +00:00
Damodar LohaniandGitHub 0601305545 Merge branch '1.8.x' into feat-audits-upgrade 2025-12-24 15:21:49 +05:45
Chirag AggarwalandGitHub 73d3d15ed8 Merge pull request #11017 from appwrite/fix-getscreenshot-use-image-format 2025-12-24 14:42:54 +05:30
ArnabChatterjee20k 2baa33351d fix tests 2025-12-24 14:38:43 +05:30
ArnabChatterjee20k f7668e0411 * added concurrent traffic load tests for realtime
* added assert eventual case for project console
* linting
2025-12-24 13:41:31 +05:30
Chirag Aggarwal b78be65376 fix: make getScreenshot output param to use ImageFormat enum 2025-12-24 13:39:51 +05:30
Damodar Lohani 5519086c29 Use db 3.x audit 2025-12-24 01:30:02 +00:00
Damodar Lohani 33b9f33f44 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into feat-audits-upgrade 2025-12-24 01:26:49 +00:00
Luke B. SilverandGitHub 0e75793bef Merge pull request #11013 from appwrite/fix-tests-jwt
Fix JWT test
2025-12-23 17:23:36 +00:00
Matej Bačo 2f4a362e1b Merge branch '1.8.x' into fix-tests-jwt 2025-12-23 16:31:32 +01:00
Matej Bačo cda843d8f6 Fix JWT test 2025-12-23 16:31:17 +01:00
ArnabChatterjee20k 62e881b7e9 reverted the use retry mechanism of the pools 2025-12-23 20:34:59 +05:30
Matej BačoandGitHub d6a40a35ee Merge pull request #11012 from appwrite/chore-increase-jwt-abuse
Increase JWT abuse limit
2025-12-23 15:48:00 +01:00
Matej Bačo e111b4cc18 Increase JWT abuse limit 2025-12-23 15:42:14 +01:00
Matej Bačo c08acedf6a Fix key test 2025-12-23 15:12:41 +01:00
ArnabChatterjee20k c03cd258ce changed the pool size distribution 2025-12-23 18:30:53 +05:30
Matej Bačo 9477a5d980 Fix extensability of collections 2025-12-23 13:30:43 +01:00
ArnabChatterjee20k 7e4d404549 updated composer json 2025-12-23 17:38:52 +05:30
Matej Bačo c0c1d693c2 DB schema update for keys 2025-12-23 13:06:25 +01:00
Matej Bačo 6e47fb6c70 Implement auth for organization and account keys 2025-12-23 13:06:19 +01:00
ArnabChatterjee20k 8df22db3eb added swoole based pools for realtime 2025-12-23 17:33:34 +05:30
Chirag AggarwalandGitHub cdbd80ceda Merge pull request #11010 from appwrite/update-schedule-functions 2025-12-23 17:26:09 +05:30
Hemachandar 58751bbdf1 lint 2025-12-23 16:49:35 +05:30
Matej Bačo cca49f8f6a Improve docs 2025-12-23 12:11:01 +01:00
Matej Bačo b0bd9e5b78 Fix security requirement 2025-12-23 12:09:07 +01:00
HemachandarandGitHub 21334ecdff Merge branch '1.8.x' into ser-331 2025-12-23 16:37:22 +05:30
Matej Bačo 6f7cca7d68 Allow key header for account keys 2025-12-23 12:06:30 +01:00
Hemachandar 47ea2893c3 rename task to Interval 2025-12-23 16:32:43 +05:30
Matej Bačo bce3ce85d5 account key support 2025-12-23 11:59:38 +01:00
Chirag Aggarwal bbeca28026 refactor use env variables for queue and class names 2025-12-23 16:09:42 +05:30
Chirag Aggarwal 9ab9f6d709 chore: update schedule functions task 2025-12-23 15:06:29 +05:30
Chirag AggarwalandGitHub 309fde38f7 Merge pull request #11001 from appwrite/update-sdks-console 2025-12-23 13:48:02 +05:30
Chirag Aggarwal 3310d271bf fix import 2025-12-23 12:35:48 +05:30
Chirag Aggarwal 4e12b6236e Merge branch '1.8.x' into update-sdks-console 2025-12-23 12:34:23 +05:30
Torsten DittmannandGitHub 4df8157d74 Merge pull request #11009 from appwrite/feat-allow-custom-jwt-duration 2025-12-22 21:50:45 +04:00
Torsten Dittmann 37e76e52f6 Make JWT expiry configurable for account JWTs 2025-12-22 21:27:29 +04:00
Torsten Dittmann cd824faf64 Add test for JWT with custom duration 2025-12-22 21:19:50 +04:00
Torsten Dittmann 96b11b02e6 feat: allow custom jwt duration 2025-12-22 21:08:48 +04:00
ArnabChatterjee20k b7e2606b9f Enhance Realtime functionality with query support and improve tests
- Updated Realtime adapter to handle queries during subscription.
- Added query filtering capabilities in RuntimeQuery class.
- Modified RealtimeBase and RealtimeCustomClientTest to support query parameters in WebSocket connections.
- Improved test coverage for account and database channels with queries.
2025-12-22 18:01:00 +05:30
Matej Bačo 09d71e73af keys list to be public as its reused for more types of keys 2025-12-22 11:37:38 +01:00
Matej Bačo 465912822f Mark reused key response public 2025-12-22 11:32:45 +01:00
Chirag Aggarwal 9f24cb4aa3 trigger ci 2025-12-22 12:48:23 +05:30
Chirag Aggarwal 9e4e23ad3f chore: update sdks script console log 2025-12-21 22:03:30 +05:30
Matej Bačo ca43281fa9 Simplify PR 2025-12-20 09:20:39 +01:00
Matej Bačo c69382f29f Fix invalid index 2025-12-19 16:11:43 +01:00
Matej Bačo d45d27b780 Merge branch '1.8.x' into chore-php-types 2025-12-19 16:06:46 +01:00
Jake BarnbyandGitHub 3e96f9c2f1 Merge pull request #10990 from appwrite/project-queries
Allow queries on projects xlist
2025-12-19 14:39:47 +00:00
Jake BarnbyandGitHub dd9f6ed820 Merge pull request #10996 from appwrite/revert-10872-refactor-auth-single-instance
Revert "Refactor auth single instance"
2025-12-19 14:37:41 +00:00
Darshan f7f1bc8352 Merge remote-tracking branch 'origin/project-queries' into project-queries 2025-12-19 19:36:17 +05:30
Darshan bf50fbeb6c bump: order for easier review. 2025-12-19 19:36:05 +05:30
DarshanandGitHub 1f7bfb3352 Merge branch '1.8.x' into project-queries 2025-12-19 19:33:22 +05:30
Darshan 406181e887 revert: to method call 2025-12-19 19:31:05 +05:30
Jake BarnbyandGitHub a7b243aff9 Merge pull request #10992 from appwrite/update-header-name
Update: Header name.
2025-12-19 13:56:00 +00:00
Jake BarnbyandGitHub dc85d44647 Revert "Refactor auth single instance" 2025-12-20 02:54:50 +13:00
Jake BarnbyandGitHub 71621f4ccf Merge pull request #10995 from appwrite/revert-10987-fix-auth
Revert "Fix auth calls"
2025-12-19 13:54:38 +00:00
Jake BarnbyandGitHub 68deee4a56 Revert "Fix auth calls" 2025-12-20 02:54:21 +13:00
Matej BačoandGitHub a20392d13a Merge pull request #10993 from appwrite/feat-agents-md
Feat: Create AGENTS.md
2025-12-19 14:11:14 +01:00
Matej BačoandGitHub 859d146e85 Apply suggestions from code review 2025-12-19 13:41:18 +01:00
Matej Bačo 69d5ce0f55 Switch over to resource-based key DB structure 2025-12-19 13:40:32 +01:00
Darshan e43292052c ci: empty commit 2025-12-19 18:02:07 +05:30
Matej Bačo ee7103c4b0 Typo fix 2025-12-19 13:20:57 +01:00
Matej Bačo 1b1ef80b10 Create AGENTS.md 2025-12-19 13:09:48 +01:00
Matej Bačo 0a3877a900 New DB schema 2025-12-19 13:09:34 +01:00
Darshan 33f90fcf6a re-add headers. 2025-12-19 17:02:55 +05:30
Matej Bačo 31b9ff4f05 Merge branch '1.8.x' into chore-php-types 2025-12-19 12:26:51 +01:00
Matej Bačo 1c3f778da9 PR review fix 2025-12-19 12:26:15 +01:00
Darshan 2f1eee390b update: header name. 2025-12-19 16:23:22 +05:30
Darshan 35bf13cfab update: variable name :D 2025-12-19 16:19:15 +05:30
Darshan f814fd980b update: address comments. 2025-12-19 16:16:56 +05:30
Darshan 3ddfd9c3b0 update: address comment. 2025-12-19 15:52:19 +05:30
DarshanandGitHub 75d8110ad9 Merge branch '1.8.x' into project-queries 2025-12-19 14:23:25 +05:30
Darshan c958f3f1cb update: allow queries on projects xlist. 2025-12-19 14:13:52 +05:30
Steven NguyenandGitHub 06e3a144a3 Merge pull request #10939 from appwrite/fix-smtp-auth-check
Fix smtp auth check
2025-12-18 17:55:43 -08:00
Steven Nguyen 36519c13a8 Merge branch '1.8.x' into fix-smtp-auth-check 2025-12-18 17:21:03 -08:00
Steven NguyenandGitHub 44ec8de6bf Merge pull request #10946 from appwrite/1.8.x
Sync 1.8.x into main
2025-12-18 17:06:43 -08:00
Matej BačoandGitHub 9fb1aaadaf Merge pull request #10984 from appwrite/fix-devkey-scopes
Fix: Add scopes for devkeys
2025-12-18 17:26:15 +01:00
Torsten DittmannandGitHub d9ac4f2f2d Merge pull request #10986 from appwrite/fix-oauth-verified-emails 2025-12-18 19:04:56 +04:00
Matej Bačo 6f16b56f31 Allow Key extensions 2025-12-18 15:55:11 +01:00
e61f3c7a42 Update phpunit.xml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-18 18:03:02 +04:00
Jake BarnbyandGitHub 1b6d51a116 Merge pull request #10987 from appwrite/fix-auth
Fix auth calls
2025-12-18 12:56:58 +00:00
Jake Barnby 0058e88217 Fix auth calls 2025-12-19 01:53:05 +13:00
Torsten Dittmann 81b4065921 Fix identity connecting
- Add MockUnverified OAuth2 provider config
- Add /v1/mock/tests/general/oauth2/user-unverified endpoint
- Add MockUnverified class for unverified OAuth2 flow
- Update Mock::isEmailVerified to respect user['verified'] flag
- Add end-to-end tests for linking unverified and verified OAuth2 users
- Enable stopOnFailure in phpunit.xml
2025-12-18 16:44:04 +04:00
Matej Bačo 59f178d634 Improve PHP types for extensability 2025-12-18 13:37:50 +01:00
Torsten Dittmann d094d6a081 Remove OAuth email verification comments 2025-12-18 16:00:41 +04:00
Hemachandar cf90653deb lint 2025-12-18 17:30:08 +05:30
Torsten Dittmann bae194e866 Link account by email during OAuth 2025-12-18 15:59:33 +04:00
Torsten Dittmann 144e88452e Use general bad request for unverified OAuth email 2025-12-18 15:49:59 +04:00
Torsten Dittmann 89980b1f0e Enforce email verification when linking OAuth2 2025-12-18 15:46:03 +04:00
Hemachandar 16fb25ce5a tiny 2025-12-18 17:10:02 +05:30
Matej Bačo 7dea3f19a9 Add scopes for devkeys 2025-12-18 12:31:00 +01:00
Hemachandar e78887001a spacing 2025-12-18 16:18:23 +05:30
Hemachandar aa4ecdf138 emit events 2025-12-18 16:09:48 +05:30
Jake BarnbyandGitHub 9bda83104d Merge pull request #10983 from appwrite/chore-specs
Chore specs
2025-12-18 09:53:31 +00:00
Hemachandar 3783378288 add action to payload 2025-12-18 15:14:30 +05:30
Jake BarnbyandGitHub 937cac454a Merge branch '1.8.x' into chore-specs 2025-12-18 09:32:37 +00:00
Jake BarnbyandGitHub 36eb28dc22 Merge pull request #10872 from appwrite/refactor-auth-single-instance
Refactor auth single instance
2025-12-18 09:05:14 +00:00
Hemachandar 5aff78a619 Merge branch '1.8.x' into ser-331 2025-12-18 14:33:34 +05:30
Jake Barnby e6781cb4c3 Release SDKs 2025-12-18 21:41:50 +13:00
Hemachandar 62b391ef68 certificate status exception 2025-12-18 13:46:56 +05:30
Hemachandar 6f1d2d094a rename task 2025-12-18 13:00:49 +05:30
Jake Barnby 36690229c5 Update lock 2025-12-18 20:23:49 +13:00
Jake Barnby fe5d9cc662 Update changelog 2025-12-18 20:23:42 +13:00
Jake Barnby f46ec96040 Fix merge 2025-12-18 20:11:52 +13:00
Hemachandar 88bd35ce98 periodic task for rule verification & certificate generation 2025-12-18 12:40:24 +05:30
Jake Barnby 2dc813342a Fix merge 2025-12-18 19:30:43 +13:00
Jake Barnby fd08f7dd36 Update lock 2025-12-18 18:43:07 +13:00
Jake Barnby 13f4aa9a80 Merge remote-tracking branch 'origin/1.8.x' into refactor-auth-single-instance
# Conflicts:
#	app/controllers/api/account.php
#	app/controllers/api/vcs.php
#	app/controllers/general.php
#	app/controllers/shared/api.php
#	app/init/resources.php
#	composer.lock
#	src/Appwrite/Platform/Modules/Console/Http/Resources/Get.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Transactions/Update.php
#	src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php
#	src/Appwrite/Platform/Workers/Migrations.php
2025-12-18 18:17:41 +13:00
Luke B. SilverandGitHub 22fba9defc Merge pull request #10979 from appwrite/fix-credentials
Fix entrypoint
2025-12-17 19:38:36 +00:00
fogelito fcbb073bcc endpoint revert 2025-12-17 20:53:22 +02:00
Hemachandar db0dbeb27b simplify 2025-12-17 21:04:15 +05:30
Hemachandar 0e27088e2a change function signature 2025-12-17 20:54:18 +05:30
Hemachandar 70a7deaa38 Refactor certificate generation in worker 2025-12-17 20:46:54 +05:30
Luke B. SilverandGitHub 514934649e Merge pull request #10977 from appwrite/fix-sync-updated-schedules
Fix sync updated schedules
2025-12-17 14:57:39 +00:00
loks0n ee8e7333d8 fix: sync updated schedules 2025-12-17 14:19:04 +00:00
DarshanandGitHub 8d94b6585e Merge pull request #10976 from appwrite/platforms-in-migrations 2025-12-17 18:14:25 +05:30
DarshanandGitHub 9fd92ca5ac Merge pull request #10974 from appwrite/update-template 2025-12-17 18:02:31 +05:30
Darshan 6d9a6051bf add: platform support on migrations. 2025-12-17 17:41:14 +05:30
Darshan 461c5895a4 fix: missing cases. 2025-12-17 17:27:18 +05:30
DarshanandGitHub 94fc0416e6 Merge branch '1.8.x' into update-template 2025-12-17 17:08:16 +05:30
Darshan ad54a8c334 fix: missing cases. 2025-12-17 17:05:08 +05:30
Chirag AggarwalandGitHub e2b72e1f58 Merge pull request #10975 from appwrite/sync-sdks 2025-12-17 16:57:14 +05:30
Darshan e1a9eb4994 fix: missed injections. 2025-12-17 16:04:29 +05:30
Darshan b0c3ab71c4 add: header in tests. 2025-12-17 16:02:06 +05:30
Chirag Aggarwal ce8f72bee9 data examples update 2025-12-17 15:58:04 +05:30
Darshan ee4f3e2df4 update: project name on MFA. 2025-12-17 15:54:49 +05:30
Darshan 930db2bcc4 add: platform injection on MFA endpoint as well. 2025-12-17 15:50:34 +05:30
Chirag Aggarwal fadcb39765 chore: sync sdk examples after spec changes 2025-12-17 15:48:49 +05:30
Darshan 5034597750 add: sender name as well. 2025-12-17 15:43:10 +05:30
Darshan f73b48d4ca add: profile mode for console sdk. 2025-12-17 15:19:07 +05:30
Darshan 0a7f31333d fix: key, lol. 2025-12-17 14:46:24 +05:30
Darshan 8964fbc821 fix: projectName. 2025-12-17 14:33:49 +05:30
Damodar Lohani 8baa5cb659 Merge remote-tracking branch 'origin/1.8.x' into feat-audits-upgrade 2025-12-17 08:59:05 +00:00
Darshan 2e5bea1aee update: email template to be platform agnostic. 2025-12-17 14:26:45 +05:30
Jake BarnbyandGitHub 759792c447 Merge pull request #10972 from appwrite/max-query-values-worker
Max query values worker
2025-12-17 08:05:08 +00:00
fogelito 86deab8f6c increase APP_DATABASE_QUERY_MAX_VALUES_WORKER 2025-12-17 09:32:59 +02:00
Jake Barnby 3cf8f151c4 Update versions 2025-12-17 19:19:05 +13:00
Jake Barnby 4e0945d0ed Update specs 2025-12-17 19:18:57 +13:00
Jake Barnby 29dd4e23e2 Update console 2025-12-17 18:36:30 +13:00
Jake Barnby 58470bfa7f Update upgrade/install flows 2025-12-17 18:36:23 +13:00
Jake Barnby 4fb43c6e69 Fix install flow 2025-12-17 16:14:20 +13:00
Luke B. SilverandGitHub 052c8d4ead Merge pull request #10971 from appwrite/fix-fallback-platfor
fix: fallback platform
2025-12-16 23:23:03 +00:00
loks0n 3c3aa6d416 fix: fallback platform 2025-12-16 22:56:11 +00:00
Luke B. SilverandGitHub eabe06d981 Merge pull request #10969 from appwrite/fix-scheduler-base
Scheduler base patch chunks
2025-12-16 15:36:54 +00:00
fogelito 8d4c6a8218 patch $batchSize 2025-12-16 17:17:03 +02:00
Luke B. SilverandGitHub 1a09913a27 Merge pull request #10967 from appwrite/fix-oauth-custom-domains
fix: oauth custom domains
2025-12-16 14:31:31 +00:00
loks0n e8e47746ea fix: oauth custom domains 2025-12-16 14:14:57 +00:00
Matej BačoandGitHub 546cd6596a Merge pull request #10966 from appwrite/fix-empty-template
Fix CSV template build flow (empty source)
2025-12-16 13:39:32 +01:00
HemachandarandGitHub 58be8f411a Merge pull request #10962 from appwrite/ser-721
Improve rule verification flow & add logs
2025-12-16 16:43:14 +05:30
Hemachandar 990209b624 feedback 2025-12-16 16:17:15 +05:30
Matej Bačo 850a834211 Fix CSV template build flow (empty source) 2025-12-16 11:23:44 +01:00
Jake BarnbyandGitHub dfccbd0e16 Merge pull request #10965 from appwrite/fix-deletes-bug
Fix: deletes bug
2025-12-16 09:57:26 +00:00
Jake BarnbyandGitHub cda5b73600 Merge pull request #10964 from appwrite/1.8.x-bump-v1
Bump 1.8.x
2025-12-16 09:57:02 +00:00
Matej Bačo 1f4534d674 Fix deletes bug 2025-12-16 10:44:02 +01:00
Luke B. SilverandGitHub 9ba970b3c1 Merge pull request #10950 from appwrite/refactor-specs-task-methods
Refactor Specs task for better code organization
2025-12-16 09:40:55 +00:00
fogelito ef54603367 bump 2025-12-16 11:35:34 +02:00
Jake BarnbyandGitHub 2c855427aa Merge pull request #10963 from appwrite/worker-error-add-previous
Worker error add previous errors
2025-12-16 09:24:16 +00:00
Jake BarnbyandGitHub 9b62d341d2 Merge pull request #10955 from appwrite/migration-cleanup
Migration cleanup
2025-12-16 09:23:18 +00:00
fogelito d3e0050739 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into worker-error-add-previous 2025-12-16 10:44:41 +02:00
fogelito af8a27c559 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-cleanup 2025-12-16 10:42:12 +02:00
Jake BarnbyandGitHub b986cd806c Merge pull request #10913 from appwrite/refactor-functions-schedule
Refactor schedule base
2025-12-16 08:33:09 +00:00
fogelito 5ba7501842 revert previous errors 2025-12-16 10:30:31 +02:00
fogelito 421696a26e Previous errors 2025-12-16 10:27:28 +02:00
fogelito c6214ef4a8 Camel case 2025-12-16 10:23:05 +02:00
fogelito b0b9c412fc Add previous messages 2025-12-16 10:13:08 +02:00
fogelito 1c165b8c8d endpoint fallback 2025-12-16 09:49:35 +02:00
fogelito 6fbacb484b Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-cleanup
# Conflicts:
#	src/Appwrite/Platform/Workers/Migrations.php
2025-12-16 09:31:58 +02:00
fogelito 91a3ee0c9d Add File info 2025-12-16 09:24:47 +02:00
HemachandarandGitHub 49b1c3db79 Merge branch '1.8.x' into ser-721 2025-12-16 12:41:44 +05:30
Hemachandar dfb53895eb tiny 2025-12-16 12:40:42 +05:30
Jake Barnby 7cdb7af07c Remove early return to ensure cycle timestamp is updated 2025-12-16 20:06:38 +13:00
Hemachandar 109967953e feedback + tests 2025-12-16 12:20:59 +05:30
Jake BarnbyandGitHub e3e7f56bb8 Merge pull request #10961 from appwrite/refactor-messaging-and-queue
chore: lazy init sms adapter + late static binding
2025-12-16 06:25:15 +00:00
Jake BarnbyandGitHub 80057383e1 Merge pull request #10952 from appwrite/issue-tableid
Tableid and Collectionid in increment and decrement routes
2025-12-16 06:05:11 +00:00
Jake Barnby c7fda6cc3f Merge remote-tracking branch 'origin/1.8.x' into refactor-functions-schedule
# Conflicts:
#	composer.lock
2025-12-16 18:35:40 +13:00
Hemachandar 5ae148f026 Add logs to rules 2025-12-16 10:59:16 +05:30
Chirag AggarwalandGitHub c744354973 Merge branch '1.8.x' into refactor-specs-task-methods 2025-12-16 10:51:28 +05:30
Chirag AggarwalandGitHub ddb0d5db26 Merge branch '1.8.x' into fix-smtp-auth-check 2025-12-16 10:51:01 +05:30
Chirag Aggarwal c7fd31285d chore: lazy init sms adapter + late static binding 2025-12-16 10:46:40 +05:30
Luke B. SilverandGitHub 8cd000c42d Merge pull request #10958 from appwrite/revert-backups-endpoints
Revert backups endpoints
2025-12-15 18:16:34 +00:00
loks0n e931938b78 revert: backups endpoints 2025-12-15 18:01:30 +00:00
loks0n 4b58e1a85e revert: backups endpoints 2025-12-15 16:55:48 +00:00
Chirag Aggarwal c6b6b7cdac fix: edit field 2025-12-15 21:41:17 +05:30
Luke B. SilverandGitHub 2a61cacdf9 Merge pull request #10957 from appwrite/fix-platform-defaults
fix: platform defaults
2025-12-15 15:17:05 +00:00
Levi van NoortandGitHub f4bca74a59 Merge pull request #10941 from appwrite/CLO-3704-utopia-request-extend
feat: improved reference client ip through _APP_TRUSTED_HEADERS
2025-12-15 16:15:18 +01:00
loks0n 7e6846f8f8 fix: platform defaults 2025-12-15 15:01:26 +00:00
Levi van Noort 03a19cc83c chore: set _APP_TRUSTED_HEADERS to x-forwarded-for 2025-12-15 15:49:21 +01:00
Levi van Noort 8a35762843 chore: update utopia-php/swoole version constraint to 0.8.* 2025-12-15 15:36:24 +01:00
Levi van NoortandGitHub 3869269e0c Merge branch '1.8.x' into CLO-3704-utopia-request-extend 2025-12-15 15:32:51 +01:00
Levi van Noort 0d7eb88a45 chore: update utopia-php/swoole to version 0.8.5 2025-12-15 15:08:23 +01:00
Levi van Noort cd90974e15 chore: changes to test to validate default behaviour instead 2025-12-15 13:22:29 +01:00
fogelito 54ba59da64 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into migration-cleanup 2025-12-15 09:43:06 +02:00
fogelito f837e6be03 cleanups 2025-12-15 09:42:26 +02:00
Damodar LohaniandGitHub cec5cd7bdc Merge branch '1.8.x' into feat-audits-upgrade 2025-12-15 09:44:52 +05:45
Damodar Lohani 63c2d72b2e Fix logs 2025-12-15 03:58:00 +00:00
Jake BarnbyandGitHub e9d9aa653f Merge pull request #10956 from appwrite/fix-cors-wildcard
fix: cors wildcard
2025-12-15 03:54:55 +00:00
Damodar Lohani 801219374c Fix queries 2025-12-15 02:50:21 +00:00
Damodar Lohani dc3459edd0 remove dump 2025-12-15 02:43:27 +00:00
Damodar Lohani ace9d86744 fix attribute 2025-12-15 02:41:56 +00:00
Damodar Lohani 2d3e34fd5a fix namespace 2025-12-15 02:20:10 +00:00
Damodar Lohani 69ad4ae930 Fix format 2025-12-15 02:15:45 +00:00
Damodar Lohani 0037305e16 Fix: failing tests 2025-12-15 02:12:35 +00:00
loks0n da0b2a7517 fix: cors wildcard 2025-12-14 22:41:15 +00:00
fogelito 6aafe2dd12 cleanup 2025-12-14 19:41:33 +02:00
Damodar Lohani 1a205c3f3b upgrade audit 2025-12-14 08:50:39 +00:00
Damodar Lohani 99966b5a24 upgrade audit 2025-12-14 08:35:40 +00:00
Damodar Lohani 2437d2be77 Upgrade audit and fix 2025-12-14 08:30:22 +00:00
Damodar Lohani 2043470bd0 fix typo 2025-12-14 08:00:31 +00:00
Damodar Lohani 667285d536 fix tyupe 2025-12-14 07:58:16 +00:00
Damodar Lohani 1199c1fc52 fix typo 2025-12-14 07:57:37 +00:00
Damodar Lohani f270e47b48 more fixes to audit queries 2025-12-14 07:50:21 +00:00
Darshan 5678860d13 add: optional support for assistant. 2025-12-14 13:07:26 +05:30
Damodar Lohani b83125a41e Fix audits creation 2025-12-14 07:22:39 +00:00
Chirag Aggarwal 5daacb7161 Refactor Specs task for better code organization
- Extract platform, auth counts, and keys into separate methods
- Add getPlatforms(), getAuthCounts(), and getKeys() methods
- Extract SDK platform logic into getSDKPlatformsForRouteSecurity()
- Add PHPDoc comments with proper type hints
- Move constructor to top of class for better readability
2025-12-14 11:21:44 +05:30
Damodar Lohani 2dcb131778 fix collection name 2025-12-14 02:34:33 +00:00
Damodar Lohani 30083598c6 fix audit 2025-12-14 02:33:17 +00:00
Damodar Lohani a0599d2658 Upgrade audit 2025-12-14 02:31:24 +00:00
Damodar Lohani c50db111d6 format 2025-12-14 02:19:53 +00:00
Damodar Lohani 9441295510 Feat: Audits upgrade 2025-12-14 01:43:35 +00:00
ArnabChatterjee20k e4e6c84362 linting 2025-12-13 23:45:57 +05:30
ArnabChatterjee20k 70395cfacc added tableid and collectionid in increment and decrement 2025-12-13 23:43:51 +05:30
DarshanandGitHub 7d2a95c573 Merge pull request #10947 from appwrite/optimize-dockerfile 2025-12-13 19:20:46 +05:30
Darshan f3f3ac80f8 fix: tests. 2025-12-13 18:59:12 +05:30
Darshan 45d5f14b83 add: targets. 2025-12-13 16:43:19 +05:30
Levi van Noort ce9a54fd4b chore: change implementation for trustedip 2025-12-12 15:31:42 +01:00
DarshanandGitHub 8e434b710b Merge pull request #10945 from appwrite/allow-custom-sender 2025-12-12 18:32:37 +05:30
Darshan 37b43b0ce0 address comment. 2025-12-12 17:49:48 +05:30
Darshan 2052496635 add: support for replyTo* and simplify variables. 2025-12-12 17:41:00 +05:30
Darshan 1cc6c9c0f1 Merge branch '1.8.x' into allow-custom-sender 2025-12-12 17:29:45 +05:30
Luke B. SilverandGitHub bbc76ffe37 Merge pull request #10943 from appwrite/fix-preflight-requests
fix preflight requests
2025-12-12 10:11:53 +00:00
Levi van Noort 6589c6a786 chore: bump utopia-php/framework to version 0.33.35 2025-12-12 10:54:09 +01:00
loks0n 2cb86c57ef fix: preflight requests 2025-12-12 09:49:04 +00:00
Levi van Noort 90fb5b6321 feat: improved reference client ip through _APP_TRUSTED_HEADERS 2025-12-12 08:42:49 +01:00
Steven NguyenandGitHub d4517384dc fix: update project tests to reflect changes in project count and names 2025-12-12 07:16:49 +00:00
Darshan 6787b0c7f1 Merge branch '1.8.x' into allow-custom-sender 2025-12-12 12:17:45 +05:30
Steven NguyenandGitHub a94ccdb4f5 fix: enhance SMTP authentication by using env vars 2025-12-12 06:02:17 +00:00
Steven NguyenandGitHub 9518764cae Merge branch '1.8.x' into fix-smtp-auth-check 2025-12-12 05:24:33 +00:00
Steven NguyenandGitHub d174233cd6 fix: update SMTP configuration and enhance validation checks 2025-12-12 04:58:59 +00:00
Steven NguyenandGitHub 278679ab10 Merge pull request #10938 from appwrite/chore-sync-main
Sync main into 1.8.x
2025-12-11 20:06:52 -08:00
Steven NguyenandGitHub 72ae883587 Merge branch 'main' into chore-sync-main 2025-12-11 22:40:23 +00:00
Steven NguyenandGitHub 3d0aa74ffe Merge pull request #10863 from VijaykumarPujar-tech/new_branch
Fix: Implement mandatory authentication check for Custom SMTP configuration
2025-12-11 13:51:27 -08:00
Luke B. SilverandGitHub e4a7b1b103 Merge pull request #10937 from appwrite/fix-imagine-hostnames-2
Fix imagine hostnames 2
2025-12-11 19:05:12 +00:00
loks0n c6ffa181a2 fix: imagine hostnames 2 2025-12-11 18:53:58 +00:00
Matej BačoandGitHub cd8e93db60 Merge pull request #10031 from appwrite/chore-add-new-site-templates
Add formspree and react-admin templates to sites
2025-12-11 16:56:03 +01:00
Aditya Oberai ceb2108012 shift db seeding command to build command 2025-12-11 15:00:59 +00:00
Aditya Oberai 383f0c1ef1 remove unnecessary images 2025-12-11 15:00:04 +00:00
Matej Bačo 52ccbfcdf7 AI code quality fixes 2025-12-11 15:52:44 +01:00
Steven NguyenandGitHub 35fe622548 Merge pull request #10925 from Ujjwaljain16/fix-10740-mfa-recovery-code-validation
fix: resolve MFA recovery code validation in 1.8.0
2025-12-11 06:28:06 -08:00
Aditya OberaiandGitHub d502ab0cd5 Merge branch '1.8.x' into chore-add-new-site-templates 2025-12-11 18:35:52 +05:30
DarshanandGitHub 72f86ce5ef Merge pull request #10934 from appwrite/database-errors 2025-12-11 16:58:35 +05:30
DarshanandGitHub 062233cdbc Merge branch '1.8.x' into database-errors 2025-12-11 16:10:00 +05:30
Darshan 102d3fd245 fix: tests. 2025-12-11 16:08:13 +05:30
Darshan cb9705f0a2 update: better signature. 2025-12-11 15:59:24 +05:30
Luke B. SilverandGitHub 61d1546d14 Merge pull request #10911 from appwrite/feat-multiple-app-domains
feat: multiple app domains
2025-12-11 10:09:33 +00:00
DarshanandGitHub 2e4ac091d1 Merge branch '1.8.x' into database-errors 2025-12-11 15:27:42 +05:30
Darshan ef5f0ed6b4 update: to use placeholders. 2025-12-11 15:26:45 +05:30
22a1a5a452 Update app/controllers/general.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-11 09:41:31 +00:00
Matej Bačo e738bae523 Fix screenshot script; auto-fill API key, custom required env vars
Tag is correct fallback: https://github.com/appwrite/appwrite/blob/decf2c7a1bc5d2d989434fb0adc6a6fb44a77db2/src/Appwrite/Utopia/Request/Filters/V21.php#L28
2025-12-11 10:31:05 +01:00
loks0n f765eb92e7 feat: cors service 2025-12-11 09:01:31 +00:00
loks0n 50c6a35079 feat: multiple app domains 2025-12-11 09:01:31 +00:00
Chirag AggarwalandGitHub f8c39c8f06 Merge pull request #10933 from appwrite/hide-deprecated-methods-from-docs 2025-12-11 14:23:21 +05:30
Chirag Aggarwal aa12ef6569 Add public visibility control for deprecated methods
- Add 'public' parameter to SDK Method class to control documentation visibility
- Mark deprecated methods as non-public (public: false) to hide them from docs
- Update OpenAPI and Swagger specs to reflect visibility changes
- Affected endpoints: account verification, messaging providers, and MFA authenticators
2025-12-11 13:53:34 +05:30
Steven NguyenandGitHub 5912a4c4a0 Merge pull request #10931 from appwrite/main
Sync main into 1.8.x
2025-12-10 22:50:12 -08:00
Damodar LohaniandGitHub e85079a42f Merge pull request #10928 from appwrite/fix-remove-temp-fix
Fix: remove temp queries
2025-12-11 04:58:41 +05:45
Damodar Lohani 4c9a94f5e2 Fix format 2025-12-10 22:48:07 +00:00
Ujjwaljain16 7fc8c6ae43 Simplify testMFARecoveryCodeChallenge to use existing session 2025-12-11 01:50:52 +05:30
Jake Barnby c5dadc787d Block operator tests 2025-12-11 00:23:46 +13:00
Damodar Lohani 61067bd8d3 Fix: remove temp queries 2025-12-10 10:32:51 +00:00
Ujjwaljain16 fb3b3ae51e fix: add missing empty body array parameter to recovery codes API call 2025-12-10 15:40:40 +05:30
Darshan 39aa4c4a9a add: setfrom. 2025-12-10 15:14:55 +05:30
Jake Barnby 587a0facf7 Fix teams test 2025-12-10 22:33:30 +13:00
Darshan b03aa8d632 add: custom senders for cloud. 2025-12-10 14:32:04 +05:30
Jake Barnby a8cf0a6176 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	app/controllers/api/teams.php
#	app/init/resources.php
#	composer.lock
#	tests/e2e/Services/Databases/Legacy/DatabasesBase.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2025-12-10 20:12:27 +13:00
Ujjwaljain16 0215577bc7 fix: MFA recovery code validation and test status code
- Fixed HTTP status code: POST /v1/account/mfa/recovery-codes now returns 201 (CREATED) instead of 200
- Updated testMFARecoveryCodeChallenge to expect 201 status code
- Added array_merge with origin header to all API calls in test for proper CORS validation
- Removed trailing whitespace for PSR-12 compliance

Fixes #10740
2025-12-10 05:37:43 +05:30
Ujjwaljain16 768d293cf5 reuse session from testCreateAccountSession instead of creating new session
remove unnecessary 'origin' headers to match other tests
set status code to 201 for MFA challenge creation endpoint
2025-12-10 01:58:47 +05:30
Steven NguyenandGitHub bdfb9e305e Merge pull request #10924 from appwrite/chore-bump-docker-base
chore: bump base docker image version to 0.10.6 to fix vulnerabilities
2025-12-09 12:15:39 -08:00
Steven NguyenandGitHub 6c1cbfddea Merge pull request #10922 from appwrite/copilot/fix-delayed-executions-trigger
Fix: Prevent job loss on container shutdown for delayed executions
2025-12-09 10:26:20 -08:00
VijaykumarPujar-tech e0a937912c Added Validation check for username and password 2025-12-09 23:46:44 +05:30
VijaykumarPujar-tech 8951a8465c Added the projects.php changes back 2025-12-09 23:30:34 +05:30
VijaykumarPujar-tech 2fa95b52a0 Reverted some added changes 2025-12-09 22:40:51 +05:30
Ujjwaljain16 676d53b18e fix: resolve MFA recovery code validation in 1.8.0
Remove strtolower() from recovery code type comparison (line 4945)
Remove strtolower() from match statement (line 4967)
Add comprehensive test for recovery code challenge validation
Fixes issue where recovery codes fail with 'Invalid token' error

Fixes #10740
2025-12-09 02:18:40 +05:30
Steven NguyenandGitHub 3a3c92140b Merge pull request #10916 from appwrite/copilot/fix-schedule-executions-bug
Fix ScheduleExecutions: inverted comparison prevented execution scheduling
2025-12-08 12:22:55 -08:00
Steven NguyenandGitHub cb3b22c9f9 chore: bump base docker image version to 0.10.6 to fix vulnerabilities
Our security scans reported several packages we used were out of date and required updates to patch security vulnerabilities.
2025-12-08 20:19:17 +00:00
copilot-swe-agent[bot]andstnguyen90 e4ebf755e4 Fix: Move schedule deletion inside coroutine to prevent job loss
Move the schedule document deletion and unset operation inside the coroutine, after the function is triggered. This ensures the schedule is only deleted after the job is successfully queued, preventing job loss if the container shuts down between coroutine start and completion.

This follows the same pattern used in ScheduleMessages.php.

Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-08 19:50:32 +00:00
copilot-swe-agent[bot] 6a712e236d Initial plan 2025-12-08 19:46:13 +00:00
Steven NguyenandGitHub 1cf8b103a8 chore: only sleep if delay is greater than 0 seconds
This prevents the warning:

Swoole\Coroutine::sleep(): Timer must be greater than or equal to 0.001
2025-12-08 19:23:35 +00:00
shimon 3ca9468b11 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-functions-schedule 2025-12-08 17:50:06 +02:00
shimon 6156b97ea0 Refactor error handling in ScheduleBase class to improve project and resource validation. 2025-12-08 17:49:10 +02:00
Vijaykumar PujarandGitHub 0f84f21bb4 Merge branch 'main' into new_branch 2025-12-08 20:31:25 +05:30
VijaykumarPujar-tech a14d5c584e Fix: robust SMTP validation and added regression test 2025-12-08 20:22:18 +05:30
Jake BarnbyandGitHub 689e61c84f Merge pull request #10917 from appwrite/fix-array-index
Block array indexes
2025-12-08 10:51:06 +00:00
Jake Barnby aec7f27ce4 Fix tests 2025-12-08 23:20:40 +13:00
Luke B. SilverandGitHub c7bdf2a99d Merge pull request #10907 from appwrite/ser-650-2
Update utopia-php/dns version
2025-12-08 09:27:18 +00:00
Jake BarnbyandGitHub 6320721f51 Merge pull request #10919 from appwrite/bump-lib-1.8.x
Bump migration lib 1.3.9
2025-12-08 09:23:26 +00:00
fogelito 77917c8b46 utopia-php/migration 1.3.9 2025-12-08 10:47:22 +02:00
fogelito d1b47a7916 utopia-php/migration 1.3.8 2025-12-08 09:39:51 +02:00
shimon b79ff7fbff sync with 1.8.x 2025-12-08 09:31:49 +02:00
shimon 0a0cf26269 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Create.php
2025-12-08 09:26:38 +02:00
fogelito 5df786be4b utopia-php/migration (1.3.6 => 1.3.7) 2025-12-08 08:49:28 +02:00
Jake BarnbyandGitHub 65bd9a41d5 Merge pull request #10894 from appwrite/feat-multi-create
Feat multi create
2025-12-08 05:55:52 +00:00
Jake Barnby 425bd514c2 Block array indexes 2025-12-08 18:54:46 +13:00
copilot-swe-agent[bot]andstnguyen90 be5f066dc3 Fix ScheduleExecutions bug: correct comparison operator to properly execute scheduled tasks
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-07 21:53:18 +00:00
copilot-swe-agent[bot] b2155acc56 Initial plan 2025-12-07 21:48:09 +00:00
Shimon NewmanGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
a241eab792 Update src/Appwrite/Platform/Tasks/ScheduleBase.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-07 18:26:14 +02:00
shimon 8ed4fa6ff1 composer 2025-12-07 17:03:18 +02:00
shimon 4289215620 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-functions-schedule 2025-12-07 16:59:28 +02:00
shimon 7462b7ae17 Refactor ScheduleBase class to enhance schedule loading and project management. 2025-12-07 16:57:30 +02:00
Aditya Oberai decf2c7a1b add new site templates for CRM dashboard and job applications form 2025-12-05 18:51:22 +00:00
Aditya Oberai 43d57bbe4e Merge remote-tracking branch 'origin/1.8.x' into chore-add-new-site-templates 2025-12-05 16:19:08 +00:00
Hemachandar a26efc7aa5 Update utopia-php/dns version 2025-12-05 17:48:10 +05:30
Jake BarnbyandGitHub 549570a29e Merge pull request #10895 from appwrite/dat-957
Refactor: use Coroutine context for database and cache functions
2025-12-05 09:59:29 +00:00
Jake Barnby 3c9548bc9d Update specs 2025-12-05 21:47:30 +13:00
Luke B. SilverandGitHub 3459133fd4 Merge pull request #10547 from appwrite/ser-409
fix: Send deployment ready event after updating associated resource
2025-12-05 08:27:47 +00:00
Luke B. SilverandGitHub 1d91ecd9fb Merge pull request #10759 from appwrite/ser-359
fix: Use supported runtimes from env config
2025-12-05 08:27:20 +00:00
Jake Barnby 48038512b9 Fix index validation 2025-12-05 21:05:14 +13:00
Hemachandar b62a1d8b5c fix test 2025-12-05 12:40:35 +05:30
Hemachandar 4ebc67c235 Merge branch '1.8.x' into ser-409 2025-12-05 12:15:08 +05:30
Hemachandar ed80450bd5 fix tanstack 2025-12-05 12:07:47 +05:30
Hemachandar 104368966d Merge branch '1.8.x' into ser-359 2025-12-05 12:01:34 +05:30
Hemachandar 07be361c7c trim space 2025-12-05 11:54:28 +05:30
Jake BarnbyandGitHub bc508353db Merge pull request #10882 from appwrite/release-sdks-4
chore: release sdks for adding getScreenshot method to Avatars service
2025-12-05 04:46:30 +00:00
ArnabChatterjee20k da1285bb22 updated time limit key, cached resource 2025-12-05 09:25:34 +05:30
Chirag Aggarwal b06b33016c fix: format for int32 2025-12-05 08:41:10 +05:30
Steven NguyenandGitHub bd288ce650 Merge pull request #10898 from appwrite/copilot/update-changes-md-for-1-8-1
Add CHANGES.md section for version 1.8.1
2025-12-04 17:36:59 -08:00
copilot-swe-agent[bot]andstnguyen90 9f2105b294 Address additional review feedback on CHANGES.md
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-05 00:48:50 +00:00
Steven NguyenandGitHub b3944c678c Merge pull request #10903 from appwrite/copilot/add-migration-version-for-1-8-1
Complete V23 migration for 1.8.1: add user email attributes and fix fall-through bug
2025-12-04 16:34:33 -08:00
copilot-swe-agent[bot]andstnguyen90 31c8c09060 Address review feedback on CHANGES.md categorization
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-05 00:28:49 +00:00
copilot-swe-agent[bot]andstnguyen90 4283671d49 Add user email attributes migration and fix missing break statement in V23
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-04 22:15:50 +00:00
copilot-swe-agent[bot] c3a3717bde Initial plan 2025-12-04 22:02:02 +00:00
Aditya OberaiandGitHub 27ede0079f Merge branch '1.7.x' into chore-add-new-site-templates 2025-12-05 02:58:06 +05:30
Torsten DittmannandGitHub a0cf7315fc Merge pull request #10900 from appwrite/fix-use-oauth-classnames-from-config 2025-12-04 20:58:05 +04:00
Torsten Dittmann fad29ee3cd Use configured OAuth2 provider class from config 2025-12-04 20:37:16 +04:00
Jake Barnby 121f94676d Fix test 2025-12-05 01:03:43 +13:00
Jake Barnby df94765cf3 Update validation 2025-12-04 23:25:15 +13:00
Jake Barnby c6ccbfaae1 Remove redundant validation 2025-12-04 21:23:08 +13:00
copilot-swe-agent[bot]andstnguyen90 5cdb59142f Add CHANGES.md section for version 1.8.1
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-12-03 22:11:54 +00:00
copilot-swe-agent[bot] bf6f784826 Initial plan 2025-12-03 22:03:16 +00:00
Steven NguyenandGitHub 33f7fd259b Merge pull request #10897 from appwrite/chore-bump-console-7.5.7
Bump console to version 7.5.7
2025-12-03 13:53:35 -08:00
Steven Nguyen bc99e04b57 feat: bump console to version 7.5.7 2025-12-03 13:26:06 -08:00
Steven Nguyen 10b8f97e96 chore: bump appwrite version to 1.8.1 2025-12-03 13:22:39 -08:00
shimon 4713ae5baa composer format 2025-12-03 21:39:59 +02:00
shimon e47802d1e1 Refactor Realtime message handling to improve authorization preservation and simplify error handling 2025-12-03 21:37:41 +02:00
ArnabChatterjee20k c4cc8595d6 removed redundant static realtime 2025-12-03 22:08:05 +05:30
shimon 77face0f2d Update utopia-php/storage to version 0.18.16 and clean up whitespace in realtime.php 2025-12-03 18:27:56 +02:00
ArnabChatterjee20k 5878a82b8a add user class 2025-12-03 21:54:45 +05:30
shimon d483fbd43b Update composer.lock and refactor ScheduleBase class for improved schedule processing 2025-12-03 18:22:46 +02:00
ArnabChatterjee20k 0353b826ac Refactor: use Coroutine context for database and cache functions 2025-12-03 21:32:22 +05:30
Jake Barnby 331e294ef5 Improve min/max validation 2025-12-04 00:03:12 +13:00
Jake Barnby e00dacf9a2 Fix test 2025-12-03 23:24:05 +13:00
Jake Barnby 252a4e12ff Validate format on non-strings 2025-12-03 22:38:37 +13:00
Jake Barnby dce4c6e9f1 Add more tests 2025-12-03 22:15:44 +13:00
Jake Barnby 4de4b475a1 Add more validation cases 2025-12-03 22:07:34 +13:00
Jake Barnby 7d26131019 Validate other relationship options 2025-12-03 21:19:53 +13:00
Jake Barnby 8b4657ff8a Cleanup on create failures 2025-12-03 21:17:38 +13:00
Jake Barnby c09c2848af Merge remote-tracking branch 'origin/1.8.x' into feat-multi-create 2025-12-03 20:49:36 +13:00
Chirag Aggarwal 68ffa5258c fix: roles enum 2025-12-03 12:04:30 +05:30
Chirag Aggarwal 91a1e4cfd0 fix format 2025-12-03 12:02:00 +05:30
Chirag AggarwalandGitHub 7aceae05d5 Merge branch '1.8.x' into release-sdks-4 2025-12-03 12:01:03 +05:30
Chirag Aggarwal 0c114b8d66 fix: enum example 2025-12-03 09:30:43 +05:30
Chirag Aggarwal 8fe1ec48d0 chore: browser permissions enum 2025-12-03 09:28:39 +05:30
Jake BarnbyandGitHub 379b85bb7b Merge pull request #10891 from appwrite/fix-duplicate-document-error
Fix: Duplicate document error while creating file
2025-12-03 01:46:06 +00:00
Damodar LohaniandGitHub 97038c9d05 Merge branch '1.8.x' into fix-duplicate-document-error 2025-12-03 05:17:24 +05:45
shimon 13f886f07f Add authorization handling in Realtime connection management 2025-12-02 22:02:46 +02:00
Steven NguyenandGitHub c65e551697 Merge pull request #10797 from appwrite/update-readme-nov-2025
Update README files to match new tagline
2025-12-02 10:54:00 -08:00
Aditya OberaiandGitHub b4f9d97a81 Merge branch 'main' into update-readme-nov-2025 2025-12-02 23:30:39 +05:30
shimon 7041cae48c Refactor health check logic to simplify database failure handling 2025-12-02 12:58:55 +02:00
shimon b5537bb714 Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-12-02 12:57:15 +02:00
shimon 7392f6aeff Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	app/controllers/api/vcs.php
2025-12-02 12:49:15 +02:00
shimon c34649cb50 remove debug prints 2025-12-02 12:46:59 +02:00
shimon fde30b6216 Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-12-02 12:44:05 +02:00
shimon e0e9b2ba6f Remove debug output from RealtimeConsoleClientTest 2025-12-02 10:56:32 +02:00
shimon 250a7da1ee debug 2025-12-02 09:39:16 +02:00
shimon f208aa206d Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-12-02 09:29:29 +02:00
shimon d472978c1a debug 2025-12-02 09:29:24 +02:00
Jake BarnbyandGitHub 5cc6845a44 Merge pull request #10888 from appwrite/fix-query-call
Fix invalid query
2025-12-02 06:48:28 +00:00
Damodar LohaniandGitHub 0386fde126 Merge pull request #10890 from appwrite/feat-update-geodb
Update GeoDB database
2025-12-02 11:48:20 +05:45
Damodar Lohani 866bd5ebc8 Fix: update test IP 2025-12-02 05:25:25 +00:00
Damodar Lohani d0b1f5f529 Fix: Catch duplicate exception while creating file document 2025-12-02 02:09:29 +00:00
Damodar Lohani 98dbb03155 Feat: update GeoDB database 2025-12-02 01:40:44 +00:00
Jake BarnbyandGitHub 088359c257 Merge pull request #10889 from appwrite/fix-error-setting-user-password
Fix: error setting user password
2025-12-02 01:23:48 +00:00
Damodar Lohani e114d49789 Fix: add test 2025-12-02 01:04:51 +00:00
Damodar Lohani 1df5b71e32 Simplify 2025-12-02 00:59:39 +00:00
Damodar Lohani a166ae5a03 Fix: error setting user password
Fixes Update Password Bug
Fixes #10878
2025-12-02 00:59:19 +00:00
shimon 1d0c522fad Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-12-01 16:52:45 +02:00
Luke B. SilverandGitHub c5b2b67361 Merge pull request #10887 from appwrite/chore-bump-assistant-0.8.4
chore: bump assistant 0.8.4
2025-12-01 14:40:22 +00:00
Darshan 4c62ecbc95 fix: query call. 2025-12-01 19:59:07 +05:30
loks0n 1a4adc50b2 chore: bump assistant 0.8.4 2025-12-01 14:20:41 +00:00
Chirag Aggarwal aaafdaae52 chore: better examples 2025-12-01 19:21:49 +05:30
shimon beea3abfc7 remove debug prints 2025-12-01 15:50:15 +02:00
shimon 2dfa7d9542 Enhance health check logic to allow partial database failures without throwing an error, improving resilience in environments with multiple databases. 2025-12-01 13:40:34 +02:00
shimon 22c90ca7ad debug 2025-12-01 13:23:58 +02:00
shimon 2563a8f967 health api fix 2025-12-01 13:11:17 +02:00
shimon eb1c119c21 debug 2025-12-01 12:01:27 +02:00
shimon 27d88a421e debug 2025-12-01 11:59:21 +02:00
shimon e4755c624f debug 2025-12-01 11:45:01 +02:00
shimon 21ef33ea45 debug 2025-12-01 11:34:09 +02:00
shimon 5b2fdf7e5b tmp debug health db api 2025-12-01 11:19:25 +02:00
Jake Barnby 38af4b83c0 Merge remote-tracking branch 'origin/1.8.x' into feat-multi-create 2025-12-01 21:44:41 +13:00
Jake Barnby cc50ba6b7d Add custom server test 2025-12-01 21:43:50 +13:00
shimon cf6605746d Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-30 14:26:52 +02:00
shimon b061f95f6d Refactor: Add missing Query import in Compute module and fix code formatting in V20 filter 2025-11-29 20:43:59 +02:00
shimon c5a45aaded Refactor: Remove unused parameters and clean up code in TablesDB and Sites modules 2025-11-29 19:13:18 +02:00
Eldad A. FuxandGitHub adc0d3dbd0 Merge pull request #10884 from appwrite/fix-totp
Fix wrong path
2025-11-29 13:47:21 +01:00
Darshan 27b8b23c07 fix: wrong path. 2025-11-29 17:49:52 +05:30
Chirag Aggarwal 6aa054bc7c chore: release sdks for adding getScreenshot method to Avatars service 2025-11-29 00:56:04 +05:30
shimon d3fac8ae07 Refactor: Clean up code formatting in Compute, Functions, and Sites modules 2025-11-28 18:13:52 +02:00
shimon 013e961c37 Refactor: Remove unused authorization parameter from redeployVcsFunction calls and related methods 2025-11-28 18:13:03 +02:00
shimon b899e13763 Refactor: Update database authorization handling in realtime.php and regenerate composer.lock 2025-11-28 16:22:59 +02:00
shimon 5b3659af7c Remove unused Auth import in storage controller and fix formatting in UserTest class 2025-11-28 16:11:48 +02:00
Shimon NewmanandGitHub 95e29d1046 Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-28 16:10:26 +02:00
Matej BačoandGitHub 64dbb28612 Merge pull request #10880 from appwrite/ser-504
Support query limit and offset in list repos API
2025-11-28 11:49:45 +01:00
Hemachandar 0b5d67a77a update vcs version 2025-11-28 15:43:31 +05:30
Hemachandar e204419b8b handle invalid offset 2025-11-28 15:33:32 +05:30
HemachandarandGitHub 851fb58645 Merge branch '1.8.x' into ser-504 2025-11-28 13:13:06 +05:30
Hemachandar 128478ed00 coderabbit feedback 2025-11-28 12:54:34 +05:30
Hemachandar 6f0c4d6c4e fix limit & offset computation 2025-11-28 12:41:04 +05:30
shimon aed0079cad Fix: Correct role retrieval method call and update project test assertions for accuracy 2025-11-28 08:57:12 +02:00
shimon 67311fe5d6 Refactor: Update role retrieval to use authorization object in multiple files 2025-11-27 18:56:33 +02:00
shimon 5da1f791a5 sync with 1.8.x 2025-11-27 18:17:04 +02:00
Matej BačoandGitHub c4366c9de1 Merge pull request #10877 from appwrite/ser-648
Fix file token expiry
2025-11-27 15:54:31 +01:00
Hemachandar d517ca8444 Merge branch '1.8.x' into ser-504 2025-11-27 20:12:58 +05:30
Hemachandar 67ae0b088a update composer.lock 2025-11-27 20:12:22 +05:30
Hemachandar adc5426ce9 feedback 2025-11-27 20:02:39 +05:30
Hemachandar c09f7d5cf9 Fix file token expiry 2025-11-27 19:40:09 +05:30
shimon f216ea5d65 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	app/controllers/api/account.php
#	app/controllers/api/graphql.php
#	app/controllers/api/storage.php
#	app/controllers/api/teams.php
#	app/controllers/general.php
#	app/controllers/shared/api.php
#	app/controllers/shared/api/auth.php
#	app/init/resources.php
#	app/realtime.php
#	app/worker.php
#	composer.lock
#	src/Appwrite/Auth/Auth.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Attribute/Decrement.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Attribute/Increment.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Get.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/XList.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Transactions/Operations/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Transactions/Update.php
#	src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php
#	src/Appwrite/Platform/Modules/Functions/Http/Executions/Get.php
#	src/Appwrite/Platform/Modules/Functions/Http/Executions/XList.php
#	src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Action.php
#	src/Appwrite/Utopia/Request.php
#	src/Appwrite/Utopia/Response.php
#	tests/unit/Auth/AuthTest.php
#	tests/unit/Messaging/MessagingChannelsTest.php
2025-11-27 15:50:37 +02:00
Jake Barnby 2a88341edc Add attributes + indexes params 2025-11-28 02:33:13 +13:00
Damodar LohaniandGitHub 95abe61bab Merge pull request #10875 from appwrite/fix-wrong-user-type
Add teamId to project array in e2e test
2025-11-27 17:39:33 +05:45
Damodar Lohani 2fdfbf6e61 Fix type 2025-11-27 11:48:32 +00:00
Matej BačoandGitHub c2585e16b1 Merge pull request #10874 from appwrite/revert-10820-ser-550
Revert "Update deploymentId in sites rule for first deployment"
2025-11-27 12:28:55 +01:00
HemachandarandGitHub fd466dfcea Revert "Update deploymentId in sites rule for first deployment" 2025-11-27 16:31:14 +05:30
shimon fb95a05599 teams update 2025-11-27 12:13:07 +02:00
shimon b76f01b144 Merge remote-tracking branch 'origin/refactor-auth-single-instance' into refactor-auth-single-instance 2025-11-27 11:54:36 +02:00
shimon 35e3294dc4 teams update 2025-11-27 11:51:53 +02:00
shimon 81c2ff501b Refactor: Adjust parameter order in getUserGitHub function calls for consistency 2025-11-27 11:26:53 +02:00
Damodar LohaniandGitHub 2bd308c236 Merge pull request #10758 from appwrite/feat-appwrite-auth
Feat: utopia auth
2025-11-27 15:11:20 +05:45
Jake BarnbyandGitHub 885a48b598 Merge pull request #10871 from appwrite/feat-custom-realtime-logger
Add realtime logger
2025-11-27 08:51:07 +00:00
Jake Barnby 63652cc155 Add realtime env on config 2025-11-27 17:28:10 +13:00
Damodar Lohani 06c876906c AI suggested fixes 2025-11-27 00:58:32 +00:00
Damodar Lohani ef8d7a45f9 composer update 2025-11-27 00:29:15 +00:00
shimon 1bfd413040 Remove unnecessary authorization injection from StatsResources class 2025-11-26 22:32:30 +02:00
shimon c2ea1b5877 Add referenceType and reference parameters to Create deployment template 2025-11-26 19:52:17 +02:00
shimon 4dc4cc2c11 Update PHPUnit configuration to disable stopOnFailure 2025-11-26 17:39:31 +02:00
shimon 830eda7460 Refactor: Update functions to include Authorization parameter and enable stopOnFailure in PHPUnit configuration 2025-11-26 17:34:44 +02:00
shimon b69bf3d269 Revert previous revert of the merge for auth single instance refactor 2025-11-26 15:44:19 +02:00
Jake Barnby 04dd0f807d Add realtime logger 2025-11-27 00:25:04 +13:00
Damodar Lohani 5dd3f9c574 Format 2025-11-26 11:08:13 +00:00
Damodar Lohani cbc8b2ca0d Fix: validator not working 2025-11-26 11:02:00 +00:00
Damodar Lohani f6b04ae63e Fix type 2025-11-26 10:56:56 +00:00
Damodar Lohani 4fd0af509e composer update 2025-11-26 10:53:44 +00:00
Jake Barnby 2139a4d742 Format 2025-11-26 23:49:21 +13:00
Damodar Lohani d539186808 Merge remote-tracking branch 'origin/1.8.x' into feat-appwrite-auth 2025-11-26 10:42:55 +00:00
shimon cee9906073 reverting the revert 2025-11-26 12:27:57 +02:00
shimon 4ad249f918 Revert "Revert "Merge pull request #10682 from appwrite/refactor-auth-single-instance""
This reverts commit 8765d5650a.
2025-11-26 12:05:12 +02:00
Jake Barnby b9ca0e5dc2 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2025-11-26 22:50:15 +13:00
Jake Barnby cdb331a704 Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2025-11-26 22:49:50 +13:00
Jake Barnby 092f623373 Fix tests 2025-11-26 22:49:39 +13:00
Hemachandar 1ed3cf0e59 Support query limit and offset in list repos API 2025-11-25 19:24:30 +05:30
Matej BačoandGitHub 11b8742a73 Merge pull request #10869 from appwrite/add-logs
Add logs for migrations sources
2025-11-25 13:09:22 +01:00
Darshan 7e9d74e141 bump: migrations for logs 2025-11-25 17:15:13 +05:30
Matej BačoandGitHub aa98fbb2dc Merge pull request #10855 from appwrite/update-sdk-examples-docs
Update SDK generator and regenerate Java/Kotlin documentation examples
2025-11-25 12:26:46 +01:00
Chirag Aggarwal 8f1b3a8e30 Merge branch '1.8.x' into update-sdk-examples-docs 2025-11-25 14:45:54 +05:30
Matej BačoandGitHub 3d8cee4676 Merge pull request #10820 from appwrite/ser-550
Update deploymentId in sites rule for first deployment
2025-11-25 09:50:16 +01:00
Matej BačoandGitHub 7efbae4310 Merge pull request #10793 from appwrite/feat-SER-448-improve-MFA-docs-endpoint-order
refactor(account): move MFA endpoints to module actions
2025-11-25 09:40:39 +01:00
Jake BarnbyandGitHub 1c9fd39fd6 Merge pull request #10850 from appwrite/browser-bump
Bump: browser version for tests.
2025-11-25 08:28:52 +00:00
Jake BarnbyandGitHub bd124aad2a Merge branch '1.8.x' into feat-mongodb 2025-11-25 08:26:00 +00:00
Jake Barnby 2776925540 Tests via console features 2025-11-25 21:11:01 +13:00
Darshan 8c854b7d07 remove: screenshots uploader for comparison. 2025-11-25 13:26:33 +05:30
HemachandarandGitHub c713357131 Merge branch '1.8.x' into ser-550 2025-11-25 13:23:09 +05:30
Darshan fe9ecb6fcb simplify: index. 2025-11-25 13:22:19 +05:30
Darshan ab1541808b Merge remote-tracking branch 'origin/browser-bump' into browser-bump 2025-11-25 12:39:37 +05:30
Darshan 623a8a747d temp: compare the screenshots. 2025-11-25 12:39:31 +05:30
DarshanandGitHub 21237f8e02 Merge branch '1.8.x' into browser-bump 2025-11-25 12:22:51 +05:30
Harsh Mahajan f0ed75f585 update MFA challenge examples to use plural path 2025-11-25 06:08:10 +00:00
Harsh MahajanandGitHub 34ce5099e2 Merge branch '1.8.x' into feat-SER-448-improve-MFA-docs-endpoint-order 2025-11-25 11:30:25 +05:30
Chirag Aggarwal 10171c80da Update SDK generator and regenerate Java/Kotlin documentation examples
Updated SDK generator to fix Java examples Kotlin syntax issues and regenerated all affected documentation examples across multiple SDK versions.
2025-11-25 11:08:11 +05:30
Jake BarnbyandGitHub c6e4afdb49 Merge pull request #10867 from appwrite/feat-jwt-disposition
Custom disposition
2025-11-25 03:25:15 +00:00
Jake Barnby 448e60479d Downgrade migrations 2025-11-25 16:04:46 +13:00
Jake Barnby 8fe7de7ff9 Custom disposition 2025-11-25 15:19:16 +13:00
Matej BačoandGitHub 8e70a5239d Merge pull request #10860 from appwrite/fix-tanstack-nitro-default
Update TanStack root directory
2025-11-24 19:39:49 +01:00
Matej Bačo 28beb27759 Upgrade detection lib 2025-11-24 19:08:09 +01:00
Harsh MahajanGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
b1f5b6946a Update src/Appwrite/Platform/Modules/Account/Http/Account/MFA/Authenticators/Create.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-24 17:44:25 +05:30
Harsh MahajanGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
9ac594c537 Update src/Appwrite/Platform/Modules/Account/Http/Account/MFA/Challenges/Create.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-24 17:44:03 +05:30
Matej Bačo 6547637c96 upgrade lib 2025-11-24 12:58:47 +01:00
Matej Bačo 13a7ead598 Fix TanStack Start default output directory 2025-11-24 12:08:55 +01:00
Harsh MahajanandGitHub d40e793137 Merge branch '1.8.x' into feat-SER-448-improve-MFA-docs-endpoint-order 2025-11-24 14:57:50 +05:30
Damodar Lohani 149fee503f Format 2025-11-23 07:01:11 +00:00
Damodar Lohani 5a1c257a37 composer update 2025-11-23 06:46:15 +00:00
Damodar Lohani 94ba8ee5f2 Merge remote-tracking branch 'origin/1.8.x' into feat-appwrite-auth 2025-11-23 06:43:52 +00:00
Darshan e5fa23ef6c add: 1:1 comparison tests. 2025-11-21 20:05:31 +05:30
DarshanandGitHub 053665eef9 Merge branch '1.8.x' into browser-bump 2025-11-21 13:51:27 +05:30
Jake BarnbyandGitHub 66afd1064d Merge pull request #10853 from appwrite/release-cli-12.0.0
chore: release cli 12.0.0
2025-11-21 08:16:30 +00:00
Harsh Mahajan e2758691af removed singular folder 2025-11-21 06:49:09 +00:00
DarshanandGitHub 9a8a42f479 Merge branch '1.8.x' into browser-bump 2025-11-21 12:10:21 +05:30
Darshan 3347573f17 bump: browser version for tests. 2025-11-21 12:09:33 +05:30
Harsh MahajanandGitHub cceb108fd3 Merge branch '1.8.x' into feat-SER-448-improve-MFA-docs-endpoint-order 2025-11-21 11:59:26 +05:30
Chirag Aggarwal b905686c0e fix typo 2025-11-21 10:28:02 +05:30
Chirag Aggarwal ad43be5dab fix version 2025-11-21 10:26:38 +05:30
Chirag Aggarwal ceb11e039f chore: release cli 12.0.0 2025-11-21 10:25:14 +05:30
Jake BarnbyandGitHub 63e06750cf Merge pull request #10851 from appwrite/chore-index-scope-description
chore: update index descriptions to reflect table terminology
2025-11-21 04:52:38 +00:00
Jake BarnbyandGitHub a4f7cf9f73 Merge pull request #10852 from appwrite/vcs-reference-type
chore: change VCSDeploymentType enum to VCSReferenceType
2025-11-21 04:51:46 +00:00
Chirag Aggarwal ba10bed271 chore: change VCSDeploymentType enum to VCSReferenceType 2025-11-21 09:56:26 +05:30
Steven NguyenandGitHub e2979410da chore: update index descriptions to reflect table terminology
Updated descriptions for indexes to refer to tables instead of collections.
2025-11-20 18:34:45 -08:00
Darshan 9b68b54743 bump: browser version for tests. 2025-11-20 20:18:54 +05:30
Matej BačoandGitHub 0fbdbb386f Merge pull request #10848 from appwrite/template-type-enum-override
fix: override template deployment type enum name
2025-11-20 11:54:40 +01:00
Matej BačoandGitHub b484dd8806 Merge pull request #10843 from appwrite/pla-3693
feat: docker-compose maildev update, traefik localhost domains
2025-11-20 11:37:08 +01:00
Chirag AggarwalandGitHub 50f26e8702 Merge branch '1.8.x' into template-type-enum-override 2025-11-20 16:07:07 +05:30
Levi van Noort 57758296f5 chore: include redis-insights auto-configuration 2025-11-20 11:00:58 +01:00
Chirag Aggarwal a2463f8cc3 fix naming 2025-11-20 15:23:16 +05:30
Levi van Noort a0a1cda2e5 chore: change to include adminir auto-login 2025-11-20 10:51:09 +01:00
Jake Barnby 188f8f3ecd Fix missing param 2025-11-20 20:20:58 +13:00
Jake Barnby e12d463fe0 Fix merge 2025-11-20 19:13:14 +13:00
Jake BarnbyandGitHub 0cdabbf959 Merge pull request #10847 from appwrite/feat-csv-export
Set downloadUrl on realtime event
2025-11-20 06:01:06 +00:00
Chirag Aggarwal 4b752c15e8 functions too 2025-11-20 10:42:13 +05:30
Chirag Aggarwal fcce6f8d34 fix: override template deployment type enum name 2025-11-20 10:32:56 +05:30
Jake Barnby d8d970e03e Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	app/controllers/api/account.php
#	app/controllers/api/messaging.php
#	app/controllers/api/projects.php
#	app/controllers/api/storage.php
#	app/controllers/api/teams.php
#	app/controllers/api/users.php
#	composer.lock
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Boolean/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Datetime/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Email/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Enum/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Float/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/IP/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Integer/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Line/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Point/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Polygon/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Relationship/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Relationship/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/String/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/URL/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Attribute/Decrement.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Attribute/Increment.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Bulk/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Bulk/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Bulk/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Get.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/XList.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Boolean/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Datetime/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Email/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Enum/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Float/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/IP/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Integer/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Line/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Point/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Polygon/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Relationship/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/Relationship/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/String/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Columns/URL/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Bulk/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Column/Decrement.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Column/Increment.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Get.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Upsert.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/XList.php
#	src/Appwrite/Platform/Modules/Functions/Http/Deployments/Create.php
#	src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php
#	src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Buckets/Files/Create.php
#	src/Appwrite/Platform/Modules/Tokens/Http/Tokens/Update.php
2025-11-20 17:46:19 +13:00
Jake Barnby 2443266ac5 Set downloadUrl on realtime event 2025-11-20 17:10:47 +13:00
Levi van Noort 26f506b7ba feat: provider locahost domain host for mail, redis and mysql 2025-11-19 17:25:28 +01:00
Levi van Noort 536537553b chore: change version mailcatcher to updated maildev 2.2.1 2025-11-19 17:04:01 +01:00
Matej BačoandGitHub 4616a2e95d Merge pull request #10838 from appwrite/release-flutter-20.3.2
chore: release flutter 20.3.2
2025-11-19 11:42:24 +01:00
Matej BačoandGitHub 9a0e1c1840 Merge pull request #10833 from appwrite/chore-config-for-env
Use config library for dotenv adapter
2025-11-19 11:40:09 +01:00
Matej Bačo bdbe94b56f Improce codeQL 2025-11-19 11:02:29 +01:00
Matej Bačo 0974e1335f Cleanup 2025-11-19 10:38:32 +01:00
Chirag Aggarwal 61f8c99da7 chore: release flutter 20.3.2 2025-11-19 14:11:40 +05:30
Matej Bačo 150d09f656 Update composer.lock 2025-11-19 09:27:53 +01:00
Matej Bačo bfce804f79 Merge branch '1.8.x' into chore-config-for-env 2025-11-19 09:27:42 +01:00
Jake BarnbyandGitHub a479ce63fc Merge pull request #10837 from appwrite/revert-refactor-auth-single-instance
Revert "Merge pull request #10682 from appwrite/refactor-auth-single-…
2025-11-19 04:16:57 +00:00
Jake Barnby 8765d5650a Revert "Merge pull request #10682 from appwrite/refactor-auth-single-instance"
This reverts commit 919b01a1b1, reversing
changes made to deb5039352.
2025-11-19 16:21:06 +13:00
Matej Bačo e3ee724178 Fix during QA 2025-11-18 16:42:57 +01:00
Matej Bačo ce2f2d0ebc Use config library for dotenv adapter 2025-11-18 16:35:02 +01:00
Hemachandar 9f7e3146a4 feedback 2025-11-18 20:08:43 +05:30
Matej BačoandGitHub e6039cf65e Merge pull request #10830 from appwrite/chore-formatinstance
chore: custom format instance in specs
2025-11-18 13:29:27 +01:00
Chirag AggarwalandGitHub 7b3bceeb7d Merge branch '1.8.x' into chore-formatinstance 2025-11-18 15:34:42 +05:30
Jake BarnbyandGitHub 90ef76ad82 Merge pull request #10828 from appwrite/fix-enum-examples
fix: a lot of enum examples generated
2025-11-18 08:10:39 +00:00
Chirag Aggarwal 5a8a900b18 format 2025-11-18 12:50:22 +05:30
Chirag Aggarwal c2645be4e1 chore: custom format instance in specs 2025-11-18 12:47:39 +05:30
Chirag Aggarwal 20221cd6b6 sync composer 2025-11-18 11:43:27 +05:30
Jake BarnbyandGitHub 275ff3dbf2 Merge pull request #10722 from appwrite/feat-per-bucket-image-transformations
feat: per bucket image transformations flag
2025-11-18 06:10:00 +00:00
Chirag Aggarwal b6fbddad81 fix: a lot of enum examples generated 2025-11-18 11:07:50 +05:30
Chirag Aggarwal 39c5b6c4d0 regenerate sdk examples 2025-11-18 09:53:55 +05:30
Chirag Aggarwal f9274dad3f regenerate specs 2025-11-18 09:53:13 +05:30
Chirag Aggarwal 3568af54b3 consistent naming 2025-11-18 09:51:20 +05:30
Chirag Aggarwal 71b6ac0364 Merge branch '1.8.x' into feat-per-bucket-image-transformations 2025-11-18 09:50:02 +05:30
Jake BarnbyandGitHub 919b01a1b1 Merge pull request #10682 from appwrite/refactor-auth-single-instance
Refactor authorization handling across multiple modules to use the ne…
2025-11-18 03:25:48 +00:00
Hemachandar 3d69998f9c another test fix 2025-11-17 18:41:28 +05:30
Hemachandar d2000ee9d8 test fix 2025-11-17 17:58:15 +05:30
Hemachandar 0718f90405 test failures due to merge 2025-11-17 15:51:36 +05:30
Hemachandar 73f5b4227d nit 2025-11-17 14:58:04 +05:30
Hemachandar 52766cfdba Merge branch '1.8.x' into ser-550 2025-11-17 14:57:00 +05:30
Hemachandar ba542554ce functions and more tests 2025-11-17 14:53:26 +05:30
Matej BačoandGitHub deb5039352 Merge pull request #10795 from appwrite/feat-suggested-env-vars
Feat:  Git env variables suggestion
2025-11-14 20:43:26 +01:00
Matej Bačo 793057c823 Update composer.lock 2025-11-14 18:06:20 +01:00
Matej Bačo 4a86b2d5b1 Merge branch '1.8.x' into feat-suggested-env-vars 2025-11-14 18:05:21 +01:00
Hemachandar d36e42377b include VCS 2025-11-14 20:49:06 +05:30
Hemachandar d9522ac6b8 Update deploymentId in sites rule for first deployment 2025-11-14 20:44:48 +05:30
Matej Bačo db1b87ecbb Add env var value detection 2025-11-14 15:49:19 +01:00
Luke B. SilverandGitHub 99d16dfc60 Merge pull request #10819 from appwrite/fix-missing-nullable
fix: missing nullable in datetime
2025-11-14 10:00:06 +00:00
Luke B. SilverandGitHub 725870b1b1 Merge pull request #10817 from appwrite/update-release-sdks
fix: release sdks doc
2025-11-14 09:40:40 +00:00
Chirag Aggarwal cc7b5b7dcf fix: missing nullable in datetime 2025-11-14 15:05:32 +05:30
Chirag Aggarwal 38ef0ad399 fix: release sdks doc 2025-11-14 12:39:37 +05:30
Jake BarnbyandGitHub a1dff370a4 Merge pull request #10815 from appwrite/fix-response-models-multi-methods
fix: generation of all response models in case of multi method endpoints
2025-11-14 06:40:50 +00:00
Jake Barnby c961316f46 Fix params 2025-11-14 19:08:33 +13:00
Jake Barnby 2349401a86 Fix merge 2025-11-14 18:49:26 +13:00
Jake BarnbyandGitHub 6274d5a3e4 Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-14 05:21:40 +00:00
Jake BarnbyandGitHub d0057ec404 Merge pull request #10800 from appwrite/feat-operators
Fix operators in transactions
2025-11-14 05:13:52 +00:00
Jake Barnby ab90563989 Fix tests 2025-11-14 17:31:17 +13:00
Jake BarnbyandGitHub e783f4c234 Merge pull request #10813 from appwrite/feat-csv-export
Feat csv export
2025-11-14 04:16:31 +00:00
Jake Barnby 83b9815644 Merge remote-tracking branch 'origin/1.8.x' into refactor-auth-single-instance 2025-11-14 16:45:57 +13:00
Jake Barnby afb0fcbc6f Update DB 2025-11-14 16:45:21 +13:00
Jake Barnby 082afcec19 Merge branch 'feat-operators' of github.com:appwrite/appwrite into feat-operators 2025-11-14 16:40:24 +13:00
Jake Barnby 2ab36f4cd6 Use helper for tests 2025-11-14 16:40:00 +13:00
Jake Barnby 72c71785a6 Fix doc 2025-11-14 16:35:10 +13:00
Jake BarnbyandGitHub 463eb0e66a Merge pull request #10785 from appwrite/dat-810
Added error message for the backups route
2025-11-14 03:30:35 +00:00
Jake Barnby 0588fb405d Fix keys 2025-11-14 16:16:06 +13:00
Jake Barnby b9211d7141 Add delete old CSV job for maintenance 2025-11-14 15:55:41 +13:00
Jake Barnby a11cf6b002 Merge remote-tracking branch 'origin/1.8.x' into feat-csv-export 2025-11-14 15:34:36 +13:00
Ebenezer DonandGitHub 521a72f448 Merge branch 'main' into update-readme-nov-2025 2025-11-13 17:20:32 +00:00
Ebenezer Don d41746f29a update banner 2025-11-13 17:20:08 +00:00
Luke B. SilverandGitHub a2799b16f8 Merge pull request #10778 from appwrite/fix-nullable-validation
fix: null validation for optional params
2025-11-13 11:39:23 +00:00
Jake BarnbyandGitHub 298e6f9260 Merge branch '1.8.x' into feat-operators 2025-11-13 11:29:05 +00:00
Jake Barnby 3df2efb7ae Fix file reads 2025-11-14 00:15:18 +13:00
Jake BarnbyandGitHub b0a0454c55 Merge pull request #10738 from appwrite/fix-webp-library
Fix webp upload and previews
2025-11-13 11:01:10 +00:00
Jake Barnby b2d228e102 Update specs 2025-11-13 23:42:13 +13:00
Chirag Aggarwal b695ddc7e3 Merge branch '1.8.x' into fix-nullable-validation 2025-11-13 16:06:33 +05:30
Chirag Aggarwal 3bbd87ecb2 fix: openapi too 2025-11-13 16:05:27 +05:30
Chirag Aggarwal fe8c4cb479 fix: generation of all response models in case of multi method endpoints 2025-11-13 15:59:12 +05:30
Matej BačoandGitHub 5e4c74d501 Merge pull request #10486 from appwrite/feat-add-branch-deployments
Add branch-only deployments to Sites without ref tags
2025-11-13 10:33:46 +01:00
shimon 1da4736d5d composer.lock 2025-11-13 11:23:26 +02:00
Jake Barnby c78da61304 Merge remote-tracking branch 'origin/1.8.x' into feat-csv-export 2025-11-13 22:14:10 +13:00
shimon 5722241ff8 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	composer.lock
2025-11-13 11:10:40 +02:00
Matej BačoandGitHub fe8593fecc Merge pull request #10751 from appwrite/ser-279
fix: Throw error when file token expiry is in the past
2025-11-13 09:34:46 +01:00
Damodar LohaniandGitHub b07674ccd3 Merge pull request #10812 from appwrite/fix-upgrade-utopia-database
Upgrade utopia-php database
2025-11-13 13:31:29 +05:45
Damodar Lohani aa5e3bf9a9 Merge remote-tracking branch 'origin/1.8.x' into fix-upgrade-utopia-database 2025-11-13 07:00:45 +00:00
Damodar Lohani c1b50e9941 Upgrade utopia-php database 2025-11-13 06:59:03 +00:00
Jake BarnbyandGitHub 3a76249d80 Merge pull request #10811 from appwrite/release-flutter-dart-add-screenshot-examples
release flutter + dart and add screenshot api docs
2025-11-13 06:58:32 +00:00
Chirag Aggarwal b2991709dc update version 2025-11-13 11:38:50 +05:30
Chirag Aggarwal fcc07533e1 update changelog 2025-11-13 11:34:35 +05:30
Chirag Aggarwal 3a6d907b42 release flutter + dart and add screenshot api docs 2025-11-13 11:29:38 +05:30
Steven NguyenandGitHub b793a11cc8 Merge pull request #10775 from appwrite/fix/issue-triage-batch-mode
fix: Enable batch mode for issue triage safe-outputs
2025-11-12 17:27:56 -08:00
Ebenezer Don 9cda4d8928 update dashboard image 2025-11-12 23:14:14 +00:00
Ebenezer Don 6f351284e6 update banner 2025-11-12 23:11:08 +00:00
Steven Nguyen babddf2d1e fix: clarify bold formatting in triage instructions 2025-11-12 11:49:58 -08:00
Steven Nguyen 73d8fbfebc feat: update issue-triage to process comments for AI spam 2025-11-12 10:56:33 -08:00
Atharva Deosthale d411b741b3 address comments 2025-11-12 23:06:18 +05:30
Hemachandar bc19e66775 fix tests 2025-11-12 20:27:42 +05:30
Hemachandar 08c9db7c60 use inline validator 2025-11-12 19:23:57 +05:30
Jake Barnby e8f2e78ac4 Use internal bucket 2025-11-12 22:18:25 +13:00
Jake Barnby 37f16ef0bb Fix array conversion 2025-11-12 21:54:37 +13:00
Jake Barnby 46d785bbb8 Fix tests 2025-11-12 21:04:17 +13:00
Damodar LohaniandGitHub a9c9f602ec Merge pull request #10807 from appwrite/feat-update-flutter-default-build-runtime
Update Flutter framework default build runtime version to 3.35
2025-11-12 13:16:20 +05:45
Damodar LohaniandGitHub d90b4c2f19 update framework config 2025-11-12 12:43:34 +05:45
Damodar LohaniandGitHub 79d733486c Update Flutter framework default build runtime version to 3.35 2025-11-12 12:35:31 +05:45
Damodar LohaniandGitHub d862245090 Merge pull request #10806 from appwrite/lohanidamodar-patch-2
Fix: add default fallback to Flutter framework
2025-11-12 12:30:11 +05:45
Damodar LohaniandGitHub aacaadcce0 Fix: add default fallback to Flutter framework 2025-11-12 12:17:15 +05:45
Damodar LohaniandGitHub 69ee6e0659 Merge pull request #10805 from appwrite/lohanidamodar-patch-2
Feat: enable Flutter 3.35 and Dart 3.9 for sites
2025-11-12 10:51:00 +05:45
Jake Barnby e564793089 Merge remote-tracking branch 'origin/1.8.x' into feat-operators
# Conflicts:
#	composer.lock
2025-11-12 17:02:58 +13:00
Jake Barnby 37910a4c5c Fix space 2025-11-12 16:59:50 +13:00
Jake Barnby 0c7551b0c1 Merge remote-tracking branch 'origin/1.8.x' into refactor-auth-single-instance
# Conflicts:
#	app/controllers/api/teams.php
#	composer.lock
2025-11-12 16:51:21 +13:00
Jake Barnby c9582978ed Fix operator parsing on txn ops 2025-11-12 16:48:42 +13:00
Jake Barnby ae21fadf0d Fix event firing on txn ops 2025-11-12 16:48:26 +13:00
Damodar LohaniandGitHub cfd62cf0a1 Update template-runtimes.php 2025-11-12 09:32:12 +05:45
Damodar LohaniandGitHub 279682941a enable dart 2025-11-12 09:31:04 +05:45
Damodar LohaniandGitHub eae26d90af Feat: enable Flutter 3.35 for sites 2025-11-12 09:25:35 +05:45
Jake BarnbyandGitHub b46ebb95a3 Merge pull request #10688 from appwrite/users-add-attributes
Users add new email attributes
2025-11-12 03:19:24 +00:00
Damodar LohaniandGitHub ffcb6a4677 Merge pull request #10804 from appwrite/feat-upgrade-runtimes
Feat: upgrade runtime
2025-11-12 07:26:17 +05:45
Damodar LohaniandGitHub 142e359dba Merge branch '1.8.x' into feat-upgrade-runtimes 2025-11-12 07:16:09 +05:45
Jake BarnbyandGitHub 4130983210 Merge pull request #10407 from appwrite/dat-647
updated migration error attribute size
2025-11-12 01:05:13 +00:00
Damodar Lohani e01ac65ce8 Feat: upgrade runtime 2025-11-12 00:26:27 +00:00
fogelito 97454c0768 EmailValidator chnage to email 2025-11-11 15:33:16 +02:00
fogelito 8b4a56cd9b $emailCanonical 2025-11-11 15:25:10 +02:00
fogelito da0a6b167f EmailValidator 2025-11-11 15:00:09 +02:00
fogelito 27d0c511ac patch users email 2025-11-11 12:09:40 +02:00
fogelito 8a58f7b6d7 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into users-add-attributes 2025-11-11 11:36:01 +02:00
fogelito cc97d78b5a Add try catch 2025-11-11 11:35:18 +02:00
Luke B. SilverandGitHub 91c24b671b Merge pull request #10791 from appwrite/release-cli-php
chore: release cli and php
2025-11-11 09:22:57 +00:00
fogelito b28e536967 Add try catch 2025-11-11 10:35:39 +02:00
Jake Barnby ab5aac00c4 Format 2025-11-11 21:25:21 +13:00
Chirag AggarwalandGitHub 653ac184e1 Merge branch '1.8.x' into feat-per-bucket-image-transformations 2025-11-11 13:53:29 +05:30
Jake Barnby 353e84bb74 Fix keys 2025-11-11 21:10:11 +13:00
Jake Barnby 94614d32d0 Handle deep nested ops 2025-11-11 21:09:12 +13:00
Harsh Mahajan b20c493fa6 changes 2025-11-11 07:50:42 +00:00
Jake Barnby 1efe9fa693 Merge remote-tracking branch 'origin/1.8.x' into feat-operators
# Conflicts:
#	composer.lock
2025-11-11 20:21:15 +13:00
Jake Barnby 74ff9a955b Fix transactions + operators 2025-11-11 20:20:08 +13:00
fogelito ce7f40dd34 Revert response model 2025-11-11 08:16:09 +02:00
fogelito 49318b5dac Merge branch '1.8.x' of https://github.com/appwrite/appwrite into users-add-attributes 2025-11-11 08:09:11 +02:00
Chirag AggarwalandGitHub da736631b2 Merge branch '1.8.x' into release-cli-php 2025-11-11 10:55:52 +05:30
Ebenezer Don 7d568af9cc Update README files to match new tagline and remove no-longer-needed stuff 2025-11-10 21:15:40 +00:00
Harsh MahajanandGitHub b91268b3cd Merge branch '1.8.x' into feat-SER-448-improve-MFA-docs-endpoint-order 2025-11-11 00:13:52 +05:30
Matej BačoandGitHub 9db6f9cb75 Merge pull request #10782 from appwrite/add-elevenlabs-site-template
Add ElevenLabs text-to-speech sites template
2025-11-10 16:35:26 +01:00
fogelito 6096c42ff9 More updates 2025-11-10 17:30:40 +02:00
Matej Bačo 831a261c04 Sync unit tests with DNS lib validator 2025-11-10 16:29:34 +01:00
Matej Bačo c784cf950b Add variables suggestion 2025-11-10 16:20:48 +01:00
Aditya Oberai b06354b99a update tanstack starter and elevenlabs template scores 2025-11-10 15:12:20 +00:00
Aditya OberaiandGitHub a797951bec Merge branch '1.8.x' into add-elevenlabs-site-template 2025-11-10 20:38:21 +05:30
bb0007a1e8 Update app/config/templates/site.php
Co-authored-by: Matej Bačo <matejbacocom@gmail.com>
2025-11-10 20:38:07 +05:30
Aditya Oberai 507717fdf7 generate screenshots from docker command 2025-11-10 14:49:44 +00:00
fogelito 5afae248ae Test Update 2025-11-10 15:00:18 +02:00
fogelito 98255fe628 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into users-add-attributes
# Conflicts:
#	composer.lock
2025-11-10 14:52:25 +02:00
Chirag Aggarwal 057397197b update to 18.0.1 2025-11-10 18:20:31 +05:30
Aditya Oberai c398d5fba9 Add default value for ELEVENLABS_API_KEY env variable 2025-11-10 12:17:29 +00:00
Harsh Mahajan 64b4ea9551 refactor(account): move MFA endpoints to module actions 2025-11-10 11:56:08 +00:00
Damodar Lohani 47b653fd64 Use correct hashing algorithm for oauth2 token 2025-11-10 11:38:47 +00:00
Chirag Aggarwal 4dc700927e fix: examples 2025-11-10 15:39:54 +05:30
Chirag Aggarwal 4a148e6ef9 remove broken execute 2025-11-10 15:06:22 +05:30
Chirag Aggarwal 2ff0ae61c8 update php 2025-11-10 15:00:09 +05:30
Damodar Lohani c8e6fcc090 fix token verify 2025-11-10 09:01:12 +00:00
Damodar Lohani b3df65cf33 remove unused var 2025-11-10 09:01:09 +00:00
Chirag Aggarwal b06460b562 chore: release cli and php 2025-11-10 14:19:26 +05:30
Chirag Aggarwal 74492ded44 update description 2025-11-10 11:35:25 +05:30
Chirag AggarwalandGitHub 9ecffbf4e9 Merge branch '1.8.x' into fix-nullable-validation 2025-11-10 10:19:13 +05:30
Chirag Aggarwal 0ed4b5dbe7 fix imports + add spec changes 2025-11-10 10:16:58 +05:30
Chirag Aggarwal eb17ffd5d2 wrap all optional values with default null with nullable 2025-11-10 10:15:49 +05:30
Jake BarnbyandGitHub 0bf8cead51 Merge pull request #10789 from appwrite/sync-specs
chore: sync specs
2025-11-10 04:33:40 +00:00
Damodar LohaniandGitHub add1142d1f Merge pull request #10786 from appwrite/feat-function-sites-stats
Feat: stats sites and functions runtimes and frameworks
2025-11-10 09:52:36 +05:45
Chirag Aggarwal 86896a6d3c chore: sync specs 2025-11-10 08:51:56 +05:30
Damodar Lohani 4fd4af312d Fix array wrong reference 2025-11-09 08:18:37 +00:00
shimon 3ef6154ebe Update composer.lock to reflect package version upgrades and dependency changes, including Symfony components and Utopia PHP libraries. 2025-11-09 10:10:22 +02:00
Shimon NewmanandGitHub a96ba5499e Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-09 10:06:03 +02:00
shimon 599aa1dcca Merge branch 'main' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-09 10:04:37 +02:00
Damodar Lohani 4b7a7496ff Feat: stats sites and functions runtimes and frameworks
- Sites frameworks count
- Functions runtimes count
2025-11-09 07:17:40 +00:00
ArnabChatterjee20k eb0e42b79c added error message for the backups route 2025-11-09 12:13:08 +05:30
Damodar LohaniandGitHub 62e5f54fcb Merge branch '1.8.x' into feat-appwrite-auth 2025-11-09 08:36:27 +05:45
Steven Nguyen 09933ce658 refactor: Simplify issue retrieval - use single since query
The list_issues tool's 'since' parameter already filters by updated_at,
which captures both newly created issues AND recently commented issues in
a single query. Removed redundant second query.
2025-11-07 12:28:14 -08:00
Steven Nguyen b225503dc5 feat: Enhance issue triage with updated criteria
- Include issues updated in last 24 hours (with new comments), not just newly created
- Add non-English content check: detect and request English translation respectfully
- Add multi-topic detection: ask users to split issues with multiple unrelated topics
- Improve spam detection with clear guidance
- Enhanced with empathetic approach for language and topic guidance
- Add parameter hints for list_label tool usage
- Clarify good first issue label application criteria
- Update summary message to reflect new triage scope
2025-11-07 12:26:13 -08:00
Steven Nguyen a77a279539 fix: update issue-triage workflow
- look for duplicate issues across the org
- fix deprecated timeout_minutes
2025-11-07 12:17:51 -08:00
Steven Nguyen b1e65725b5 fix: increase safe-outputs limits (labels=100, comments=10) and extend workflow stop-time 2025-11-07 12:01:42 -08:00
Aditya OberaiandGitHub 0c93e7d545 Update app/config/templates/site.php 2025-11-07 23:29:36 +05:30
Aditya Oberai 469d0859fc Add ElevenLabs text-to-speech sites template 2025-11-07 17:07:25 +00:00
ArnabChatterjee20k 7c408d675e pr followups 2025-11-07 14:30:22 +05:30
Luke B. SilverandGitHub 4a96d89ee6 Merge pull request #10765 from appwrite/feat-sdk-release-runtime-config
Set configs for SDK release at runtime
2025-11-07 08:57:43 +00:00
ArnabChatterjee20k 4d47bc2ebf Merge remote-tracking branch 'upstream/1.8.x' into dat-647 2025-11-07 13:48:59 +05:30
ArnabChatterjee20k 119d6c1789 Merge remote-tracking branch 'upstream/1.8.x' into dat-647 2025-11-07 13:19:28 +05:30
Steven NguyenandGitHub 2aa2b8df91 chore: set GITHUB_TOKEN and git email at runtime 2025-11-07 00:06:01 +00:00
Steven Nguyen 84ebbc6993 fix: Enable labels toolset in GitHub MCP server
- Add github tool configuration with 'default' and 'labels' toolsets
- The labels toolset was not enabled by default, causing the agent
  to fall back to bash commands like 'gh label list'
- Now list_label MCP tool will be available to the agent
2025-11-06 15:43:31 -08:00
Steven NguyenandGitHub 4f1940ac0c Merge pull request #10739 from appwrite/copilot/sub-pr-10738
Add test coverage for webp upload and preview functionality
2025-11-06 15:07:52 -08:00
Steven Nguyen 94db75fd6c fix: Correct GitHub MCP tool name from list_labels to list_label
The correct tool name in GitHub MCP server is 'list_label' (singular), not 'list_labels' (plural). This was causing the agent to fall back to bash commands like 'gh label list' instead of using the proper MCP tool.
2025-11-06 15:05:45 -08:00
Steven Nguyen 2e4397a951 fix: Use GitHub MCP list_labels tool instead of bash gh command
- Replace 'gh label list' bash command instruction with 'list_labels' GitHub MCP tool
- GitHub MCP tools are already enabled and authenticated, no additional config needed
- Fixes permission denied errors when agent tried to use gh CLI
2025-11-06 14:33:24 -08:00
Steven Nguyen 2f255ce01c fix: Enable batch mode for issue triage safe-outputs
- Add target: "*" to safe-outputs configuration for add-labels and add-comment
- This allows the workflow to apply comments and labels to multiple issues
  when running in scheduled/manual trigger mode (batch processing)
- Previously, safe-outputs jobs were skipped because they required
  github.event.issue.number which only exists in event-triggered runs
- With target: "*", the workflow now reads issue numbers from the agent
  output and applies changes to each issue individually
2025-11-06 11:50:38 -08:00
Steven NguyenandGitHub ef938a1c39 Merge pull request #10732 from appwrite/copilot/fix-google-token-disappears
Fix Google OAuth2 refresh token support
2025-11-06 10:28:02 -08:00
Steven NguyenandGitHub ebee879855 Merge pull request #10748 from appwrite/copilot/update-issue-triage-workflow
Migrate issue-triage workflow from event-based to scheduled batch processing with duplicate detection
2025-11-06 08:14:25 -08:00
shimon ae2ffd259c Remove debug output from HealthCustomServerTest 2025-11-06 17:54:44 +02:00
shimon 3d471bae56 health db debug 2025-11-06 17:37:31 +02:00
shimon d0f2293755 debug health db 2025-11-06 16:42:58 +02:00
shimon d6bd26da43 Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-06 16:12:02 +02:00
shimon 16d6c9e5e3 debug dbHelth 2025-11-06 16:11:57 +02:00
Matej BačoandGitHub e342009c9e Merge pull request #10771 from appwrite/Update-facts-on-Github-sites-and-functions
feat: Add new tips to Comment class
2025-11-06 13:50:27 +01:00
Matej BačoandGitHub 41d89f1b7a Merge pull request #10773 from appwrite/chore-remove-locale-cache
Chore: remove locale cache
2025-11-06 13:49:32 +01:00
Matej Bačo ad6aff6af2 remove locale cache 2025-11-06 13:24:17 +01:00
Harsh MahajanandGitHub 9b52f6f8f6 Add new tips to Comment class 2025-11-06 14:17:31 +05:30
Matej BačoandGitHub ad46d057d5 Merge pull request #10593 from appwrite/feat-SER-193-Update-facts-on-github-sites-and-functions
Feat: update facts on GitHub sites and functions
2025-11-06 09:35:53 +01:00
Damodar Lohani 9ef6fa9b4c Merge remote-tracking branch 'origin/1.8.x' into feat-appwrite-auth 2025-11-06 05:58:51 +00:00
Damodar Lohani 9fe74bdd22 update database library 2025-11-06 05:57:36 +00:00
Damodar Lohani fa2b46c7e7 Fix: dev dependency 2025-11-06 02:26:47 +00:00
Damodar Lohani 13f9900802 fix version 2025-11-06 02:12:00 +00:00
Damodar Lohani 3c93004cde Fix: switch database version 2025-11-06 02:05:18 +00:00
Damodar Lohani 631fd2ea4c Merge remote-tracking branch 'origin/1.8.x' into feat-appwrite-auth 2025-11-06 02:04:38 +00:00
copilot-swe-agent[bot]andstnguyen90 8a9d0a3f33 Rename logo-after.webp to image.webp
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-11-05 19:30:21 +00:00
fogelito 1f0e3e0f51 lock file 2025-11-05 13:21:52 +02:00
shimon 26d3cef528 Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-05 11:33:07 +02:00
shimon fb7691be3b Merge branch 'main' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-05 11:27:25 +02:00
Damodar Lohani eb7be569eb format 2025-11-05 07:10:47 +00:00
Damodar Lohani 88cbc36a02 remove Appwrite\Auth\Auth 2025-11-05 07:09:18 +00:00
Damodar Lohani 6a60b7d25b format 2025-11-05 05:33:22 +00:00
Damodar Lohani 343d443903 Fix realtime 2025-11-05 05:31:17 +00:00
Damodar Lohani 12c27edaf9 Fix user test 2025-11-05 05:23:32 +00:00
Damodar Lohani 0f9b13e251 use argon default 2025-11-05 05:09:36 +00:00
Damodar Lohani 965c4738e7 fix user's attributes 2025-11-05 05:06:40 +00:00
Damodar Lohani 4679eff4b8 use argon 2 default 2025-11-05 03:34:52 +00:00
Damodar Lohani 3cfb5d695f Fix list identities 2025-11-05 03:33:02 +00:00
Jake BarnbyandGitHub 501cba216b Update app/init/resources.php 2025-11-05 16:09:20 +13:00
Damodar Lohani 7ef5a7edaf Fix teams 2025-11-05 02:39:03 +00:00
Damodar Lohani 8adeb40c1d fix team get membership 2025-11-05 02:33:22 +00:00
Damodar Lohani ae105165ab fix team logs endpoint 2025-11-05 02:28:56 +00:00
Damodar Lohani 5dfee10369 Fix logs endpoint 2025-11-05 02:16:37 +00:00
Damodar Lohani 44b5ed90d5 composer update 2025-11-05 02:06:14 +00:00
Damodar Lohani e70d5c46b6 Merge branch 'feat-appwrite-auth' of https://github.com/appwrite/appwrite into feat-appwrite-auth 2025-11-05 02:05:25 +00:00
Damodar Lohani c9d66c52b4 composer update 2025-11-05 02:04:39 +00:00
Damodar Lohani 4d22f4252f Merge remote-tracking branch 'origin/1.8.x' into feat-appwrite-auth 2025-11-05 01:59:42 +00:00
Damodar Lohani 9130a7102e Fix use correct user type 2025-11-05 01:41:15 +00:00
Damodar Lohani 2a7d89ea7b Fix missing auth vars 2025-11-05 01:14:36 +00:00
Steven NguyenandGitHub c910c98b32 chore: install ssh and gh commands for dev
This will allow creating github releases for SDKs
2025-11-04 16:18:49 +00:00
fogelito fe9d49c346 Response Model 2025-11-04 17:13:53 +02:00
shimon f3fd2fd191 composer.lock 2025-11-04 17:11:45 +02:00
Shimon NewmanandGitHub a970969c4d Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-04 17:06:53 +02:00
Matej BačoandGitHub 6c1e4434a6 Merge pull request #10763 from appwrite/update-readme-file
Update README.md
2025-11-04 15:52:25 +01:00
shimon f0e4c9184d Update composer.json and composer.lock to reflect new version constraints for utopia-php/audit and utopia-php/database, ensuring compatibility with the latest releases. Adjusted versioning for utopia-php/migration and appwrite/sdk-generator to their respective latest versions. 2025-11-04 16:44:09 +02:00
VeereshandGitHub ba6e389f81 Update README.md 2025-11-04 19:33:30 +05:30
Chirag AggarwalandGitHub decad9ff9d Merge branch '1.8.x' into feat-per-bucket-image-transformations 2025-11-04 14:31:04 +05:30
Damodar LohaniandGitHub e264ef53f4 Merge branch '1.8.x' into feat-appwrite-auth 2025-11-04 14:08:15 +05:45
Damodar Lohani 31ffc9ea92 format 2025-11-04 08:12:46 +00:00
Damodar Lohani 81480f4492 remove deprecated methods 2025-11-04 07:53:14 +00:00
Damodar Lohani 4b15fec1d7 Remove further auth static methods 2025-11-04 07:51:03 +00:00
Damodar Lohani 918ad4a545 remove auth test and add user test 2025-11-04 07:41:42 +00:00
Damodar Lohani dff7aa6ce0 format 2025-11-04 07:12:42 +00:00
Damodar Lohani 5ef717d0fd More replacement for auth checks 2025-11-04 07:12:34 +00:00
Hemachandar 3739ee26d8 fix: Use supported runtimes from env config 2025-11-04 12:09:42 +05:30
copilot-swe-agent[bot]andstnguyen90 2d332264c6 Replace with simple webp image for testing
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-11-04 06:16:41 +00:00
Damodar Lohani 437d914e90 More refactor and fixes 2025-11-04 06:08:35 +00:00
Damodar Lohani 897f512b47 Refactor remove moved to utopia auth 2025-11-04 05:37:45 +00:00
Damodar Lohani df1f14c853 Refactor realtime 2025-11-04 05:25:20 +00:00
Damodar Lohani 68cce71527 refactor realtime 2025-11-04 05:22:18 +00:00
Damodar Lohani 2ae474971d use new session verify 2025-11-04 03:48:57 +00:00
Damodar Lohani 617c1aaee3 update db with custom types support 2025-11-04 02:34:07 +00:00
copilot-swe-agent[bot]andstnguyen90 2f843153da Add duplicate/related issues detection and listing to triage workflow
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-11-03 20:02:03 +00:00
copilot-swe-agent[bot]andstnguyen90 df8fb23e75 Fix test assertion for file count with offset
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-11-03 18:13:21 +00:00
Hemachandar 60e57eb9c5 lint 2025-11-03 17:29:48 +05:30
Hemachandar 10a9845898 fix: Throw error when file token expiry is in the past 2025-11-03 16:55:13 +05:30
shimon dc43b5977f Inject authorization dependency into the Update class to enhance authorization handling for string column updates. 2025-11-03 12:58:22 +02:00
shimon e1fbaf14eb Inject authorization dependency into the Update class for improved authorization handling in relationship updates. 2025-11-03 12:51:21 +02:00
shimon d721425cfe composer.lock 2025-11-03 12:33:07 +02:00
shimon 02dd275be4 Update composer.lock with new reference for utopia-php/database and modify Upsert action method to remove unused Authorization parameter and enhance document validation. This improves code clarity and maintainability. 2025-11-03 11:54:50 +02:00
Damodar Lohani 50cd6a737d Update resources 2025-11-03 09:39:52 +00:00
Damodar Lohani a575c07468 Fix user resource 2025-11-03 09:32:56 +00:00
Damodar Lohani 071ec671e0 Feat: utopia auth 2025-11-03 09:13:08 +00:00
shimon 3391563829 Remove unused Authorization import from Bulk Delete.php to clean up code and improve maintainability. 2025-11-03 11:07:17 +02:00
shimon 5709265f6c linter 2025-11-03 11:02:30 +02:00
shimon 89d5a28c28 Refactor authorization handling to consistently utilize the Authorization class across multiple controllers and functions. Update method signatures to include Authorization as a parameter, ensuring cleaner and more maintainable code. This change enhances the overall structure and readability of the authorization logic. 2025-11-03 10:37:05 +02:00
shimon f613a06d19 composer.lock 2025-11-03 10:04:01 +02:00
Shimon NewmanandGitHub 30f4b846d2 Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-03 09:21:13 +02:00
shimon a3742bc65e compose.lock 2025-11-03 09:13:04 +02:00
shimon cd1b2b6c05 Refactor authorization handling by replacing method calls with direct class references, ensuring consistent usage of the Authorization class across various modules. Update method signatures to include Authorization as a parameter where necessary, and remove unnecessary injections. Additionally, correct the documentation in CHANGES.md for clarity. 2025-11-03 09:07:44 +02:00
shimon c13aed651a Refactor storage file retrieval to use queries directly for counting, improving consistency in authorization handling. Update Action class to remove unnecessary authorization skip, and include authorization in Email/Create class constructor for better dependency management. 2025-11-02 21:24:11 +02:00
shimon dbccb16784 linter 2025-11-02 19:01:59 +02:00
shimon c0be333c0f Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-11-02 18:58:51 +02:00
shimon d96c7eb3e9 Enhance TransactionState to utilize Authorization class for improved transaction management. Updated method signatures and resource initialization to include authorization, ensuring consistent handling across the application. 2025-11-02 18:58:41 +02:00
Shimon NewmanandGitHub 4fca374fe9 Merge branch '1.8.x' into refactor-auth-single-instance 2025-11-02 18:15:26 +02:00
shimon 9b82dd0411 Update composer.lock to reflect version upgrades for utopia-php/detector (0.2.1 to 0.2.2) and appwrite/sdk-generator (1.4.16 to 1.5.0), including updated references and source URLs. 2025-11-02 18:14:31 +02:00
shimon 0904881de8 Refactor authorization handling to ensure consistent usage of the Authorization class across various modules, enhancing code maintainability and clarity. Update method signatures to include authorization as a parameter where necessary. 2025-11-02 18:11:56 +02:00
fogelito 6a41f8b2b9 Remove todos 2025-11-02 11:16:12 +02:00
fogelito 503145734b Move user Document out of try block 2025-11-02 11:06:56 +02:00
fogelito 371cab0658 try catch EmailCanonical 2025-11-02 10:59:28 +02:00
fogelito ca8cb6f260 Add utopia-php/emails 2025-11-02 09:13:55 +02:00
copilot-swe-agent[bot]andstnguyen90 1f9afc8cab Update issue-triage workflow to run daily and process last 24h issues
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-11-01 15:47:43 +00:00
copilot-swe-agent[bot] c5d4551cab Initial plan 2025-11-01 15:39:50 +00:00
copilot-swe-agent[bot]andstnguyen90 d1511d5ba1 Refactor webp tests per review feedback
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-10-30 22:26:30 +00:00
copilot-swe-agent[bot]andstnguyen90 4a8651ab39 Add webp test cases for upload/view and preview
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-10-30 21:58:02 +00:00
copilot-swe-agent[bot]andstnguyen90 de4f473da1 Initial plan for adding webp test cases
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-10-30 21:56:12 +00:00
copilot-swe-agent[bot] ce539972a5 Initial plan 2025-10-30 21:51:50 +00:00
Steven NguyenandGitHub 458100cd69 Upgrade base image to version 0.10.5
Ensure libwebp is installed in the base image when imagemagick is installed so that imagemagick works with webp.
2025-10-30 14:42:18 -07:00
fogelito fea1630909 Remove redundant emailVerification 2025-10-30 18:18:09 +02:00
fogelito e40e88c322 Update emails attributes 2025-10-30 18:09:36 +02:00
copilot-swe-agent[bot]andstnguyen90 627adb43e0 Add access_type=offline and prompt=consent to Google OAuth2 login URL to enable refresh tokens
Co-authored-by: stnguyen90 <1477010+stnguyen90@users.noreply.github.com>
2025-10-29 23:12:28 +00:00
copilot-swe-agent[bot] 9ad08694ed Initial plan 2025-10-29 23:01:33 +00:00
Shimon NewmanandGitHub d38399dcc0 Merge branch '1.8.x' into refactor-auth-single-instance 2025-10-29 20:38:04 +02:00
shimon 68b0fe8c70 linter 2025-10-29 20:33:36 +02:00
shimon 7c2a1ade1f Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-10-29 20:22:00 +02:00
shimon 5c2828bc78 Refactor authorization handling across multiple modules to use a single instance of the Authorization class. 2025-10-29 20:21:41 +02:00
111b2abeeb Update app/cli.php
Co-authored-by: Jake Barnby <jakeb994@gmail.com>
2025-10-29 20:19:49 +02:00
Shimon NewmanGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
9503507011 Update src/Appwrite/Utopia/Response.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-29 11:20:49 +02:00
shimon a6d1f46133 addressing comments 2025-10-29 10:38:09 +02:00
shimon 145b884628 compose.lock 2025-10-28 15:07:26 +02:00
shimon 0e22b06f0a linter 2025-10-28 15:01:08 +02:00
shimon 9e79d883a0 Refactor authorization retrieval in realtime and update imports in migration files; clean up whitespace in tests 2025-10-28 14:16:26 +02:00
Chirag AggarwalandGitHub 02e8a7b429 Merge branch '1.8.x' into feat-per-bucket-image-transformations 2025-10-28 15:12:35 +05:30
Chirag Aggarwal ca861119f9 keep in same 2025-10-28 15:10:51 +05:30
Chirag Aggarwal 0bfbae4cdd add to both dbs 2025-10-28 15:09:11 +05:30
shimon 61de3b9e08 Merge branch 'refactor-auth-single-instance' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-10-28 11:38:08 +02:00
Chirag Aggarwal 7b1e163c77 move to check 2025-10-28 15:07:24 +05:30
Chirag Aggarwal 3f710ddc70 fix: test 2025-10-28 15:06:43 +05:30
Chirag Aggarwal 1546add5d5 add to both dbs 2025-10-28 15:05:14 +05:30
Shimon NewmanandGitHub 734c44c1da Merge branch '1.8.x' into refactor-auth-single-instance 2025-10-28 11:30:43 +02:00
shimon 68524067cf migrations tests fix 2025-10-28 11:29:14 +02:00
shimon cc6319a2c7 singletone fix 2025-10-28 11:09:20 +02:00
Chirag Aggarwal 4aaaa460b2 feat: per bucket image transformations flag 2025-10-28 14:13:38 +05:30
Shimon NewmanandGitHub dee3d375db Merge branch '1.8.x' into refactor-auth-single-instance 2025-10-28 10:01:33 +02:00
shimon 462634d311 Update dependencies in composer.json and composer.lock; upgrade utopia-php/detector to version 0.2.*, and utopia-php/migration to version 1.3.3. Modify exception messages in storage API for better clarity on authorization failures. Adjust test assertions to reflect updated error messages. 2025-10-28 09:09:54 +02:00
shimon e769cf4e48 Remove vendor path for utopia-php/database in docker-compose.yml 2025-10-27 21:23:03 +02:00
shimon fbaffa980a linter 2025-10-27 20:46:58 +02:00
shimon 26f61c1855 add back registers.php 2025-10-27 19:34:49 +02:00
shimon dae62d863a Merge remote-tracking branch 'origin/refactor-auth-single-instance' into refactor-auth-single-instance 2025-10-27 19:27:33 +02:00
shimon 681fa198c9 composer.lock 2025-10-27 19:27:16 +02:00
shimon e7b8e6c90d Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	composer.json
#	composer.lock
2025-10-27 19:26:53 +02:00
shimon d7cc3895cb Update composer.lock to reflect version changes for utopia-php/detector, remove unused registers.php file, and clean up whitespace in cli.php and worker.php. Refactor database resource initialization in resources.php for consistency. 2025-10-27 19:23:55 +02:00
Shimon NewmanandGitHub a0b21a0bd4 Merge branch '1.8.x' into refactor-auth-single-instance 2025-10-27 16:24:08 +02:00
shimon 65e99ff0de Merge remote-tracking branch 'origin/refactor-auth-single-instance' into refactor-auth-single-instance 2025-10-27 16:20:28 +02:00
shimon ecd6880fe0 composer.lock 2025-10-27 16:20:07 +02:00
shimon e20adbba61 Merge branch 'main' of github.com:appwrite/appwrite into refactor-auth-single-instance 2025-10-27 16:18:50 +02:00
shimon 30d58e6371 Update composer dependencies for utopia-php/audit and utopia-php/database, reflecting new versioning and aliases. Refactor document validation in Create operation to utilize the new authorization method for better security handling. 2025-10-27 16:14:04 +02:00
fogelito 037d60633b Add emailCanonical 2025-10-27 15:59:20 +02:00
fogelito 218bb4c537 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into users-add-attributes 2025-10-27 13:37:33 +02:00
shimon 6ed2000478 Update composer.lock and refactor authorization handling in CLI and worker modules. Adjust Docker configuration to include database source path. Modify error handling in general controller and enhance permission setting in document creation. Fix privileged user role retrieval in function execution. Ensure consistent authorization usage across various resources. 2025-10-27 12:09:23 +02:00
Harsh MahajanandGitHub 1468231de7 Update Comment.php 2025-10-23 20:20:16 +05:30
Jake Barnby 1e1df1ce2d Fix skips 2025-10-24 00:06:58 +13:00
Jake Barnby bae759957c Fix graphql test 2025-10-23 23:57:11 +13:00
Jake Barnby 9aba82630a Fix console test 2025-10-23 23:57:00 +13:00
Jake Barnby 3f473f2790 Fix checks 2025-10-23 23:40:27 +13:00
Jake Barnby b79439a730 Default to mariadb for existing installs 2025-10-23 23:02:41 +13:00
Jake Barnby 861684883f Add DB adapter console var 2025-10-23 23:02:29 +13:00
fogelito c13a70e226 Add users attributes 2025-10-23 12:38:18 +03:00
Jake Barnby 337503ed47 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	composer.lock
2025-10-23 17:15:57 +13:00
shimon 25403ea35e composer.lock 2025-10-22 16:43:49 +03:00
shimon 815c75fa9a Merge branch '1.8.x' of github.com:appwrite/appwrite into refactor-auth-single-instance
# Conflicts:
#	composer.lock
2025-10-22 16:42:11 +03:00
shimon 8b3b07a710 linter 2025-10-22 16:40:00 +03:00
shimon 33f88fa5e0 Refactor authorization handling across multiple modules to use the new getAuthorization() method. Update CHANGES.md to reflect the change in usage worker authorization. Adjust composer.json to specify the correct version for utopia-php/database. Update plugin-api-version in composer.lock. 2025-10-22 16:35:48 +03:00
Harsh MahajanandGitHub 32dae9ad7c Update Comment.php 2025-10-22 10:05:18 +05:30
Harsh MahajanandGitHub be5c5f9420 Merge branch 'main' into feat-SER-193-Update-facts-on-github-sites-and-functions 2025-10-22 09:53:45 +05:30
Jake Barnby 71f52025ec Review fixes 2025-10-22 00:30:00 +13:00
Jake Barnby 505181d749 Update lock 2025-10-21 18:45:27 +13:00
Jake Barnby b12e006014 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	app/init/resources.php
#	composer.lock
2025-10-21 18:43:41 +13:00
Jake Barnby 1e60a01a69 Use db length for project ID 2025-10-21 15:31:46 +13:00
Jake Barnby f1c7af0426 Fix wrong db for UID max length check 2025-10-21 15:04:08 +13:00
Jake Barnby c3d4cf947e Fix unit test 2025-10-21 14:24:32 +13:00
Jake Barnby 0d35af8cfa Fix tests 2025-10-21 14:24:26 +13:00
Jake Barnby 390d1560f4 Fix tests 2025-10-21 14:16:59 +13:00
Jake Barnby 94bf1f6ee0 Add missing imports 2025-10-21 14:15:45 +13:00
Jake Barnby 2870419e1b Update lock 2025-10-21 14:10:32 +13:00
Jake Barnby f9b0455794 Revert "Fix optionality"
This reverts commit 994de06457.

# Conflicts:
#	app/controllers/api/messaging.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Boolean/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Transactions/Update.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Transactions/Update.php
2025-10-21 13:05:54 +13:00
Jake Barnby 6a7b8f0726 Add injection max length on txn 2025-10-21 13:03:24 +13:00
Jake Barnby 994de06457 Fix optionality 2025-10-21 12:36:13 +13:00
Jake Barnby ad9e6afd86 Fix sync 2025-10-21 03:18:29 +13:00
Jake Barnby 3a8e2b080d Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	app/init/resources.php
#	composer.json
#	composer.lock
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Indexes/Create.php
#	tests/e2e/Services/Databases/Legacy/DatabasesBase.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2025-10-21 03:16:21 +13:00
Jake BarnbyGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1f743dfe8c Update src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Attributes/Enum/Create.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-14 22:23:38 +13:00
Jake Barnby a4093067ac Update database 2025-10-14 21:06:32 +13:00
Jake Barnby 72868ed7aa Fix async index delete 2025-10-14 19:39:49 +13:00
Jake Barnby f328a68ec1 Update db for decode fix 2025-10-14 19:39:40 +13:00
Jake Barnby 754537f34b Update lock 2025-10-14 18:16:48 +13:00
Jake Barnby bc4326414b Retry loop on create databases 2025-10-14 18:12:09 +13:00
Jake Barnby 3e7f865f0a Update lock 2025-10-14 17:13:05 +13:00
Jake Barnby e956ad58a9 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	composer.lock
2025-10-14 16:42:40 +13:00
Jake Barnby ddec873f72 Update database 2025-10-14 16:39:44 +13:00
Jake Barnby f78f08bff9 Transaction support 2025-10-13 18:23:43 +13:00
Jake Barnby 38b04566b6 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Create.php
#	src/Appwrite/Platform/Modules/Databases/Http/Databases/Collections/Documents/Delete.php
#	src/Appwrite/Platform/Modules/Databases/Http/TablesDB/Tables/Rows/Delete.php
2025-10-09 17:36:22 +13:00
Jake Barnby c89af1201a Fix tests 2025-10-09 16:37:17 +13:00
Jake Barnby 9f85ca83b4 Fix roles param 2025-10-09 14:33:05 +13:00
Jake Barnby d5d09061e9 Fix index validator params 2025-10-09 13:46:14 +13:00
Jake Barnby 143be8239f Fix inject 2025-10-09 00:41:25 +13:00
Jake Barnby da519046dd Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2025-10-08 00:05:05 +13:00
Jake Barnby 0c5573ab05 Fix list wrapping UID injections 2025-10-08 00:04:52 +13:00
Jake BarnbyandGitHub fa60f03536 Merge branch '1.8.x' into feat-mongodb 2025-10-07 18:52:28 +13:00
Jake Barnby 28392647e0 Pass adapter max ID length to validator 2025-10-07 18:52:05 +13:00
Jake Barnby 4b0eddcc84 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	composer.json
#	composer.lock
2025-10-07 18:16:02 +13:00
Jake Barnby 94e40c0127 Update database 2025-10-04 10:15:13 +13:00
Jake Barnby 498235a2ef Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2025-10-03 23:19:33 +13:00
Jake Barnby 52c9671157 Update deps 2025-10-03 23:19:09 +13:00
Harsh MahajanGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
64c3b7a2ff Update src/Appwrite/Vcs/Comment.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-10-02 23:19:34 +05:30
Harsh Mahajan 61a8f589ac port issue 2025-10-02 17:44:21 +00:00
Harsh Mahajan 92ccb6e4ea feat(vcs): expand GitHub comment tips 2025-10-02 17:43:30 +00:00
Jake Barnby 61a1efd0fe Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2025-10-02 19:25:56 +13:00
Jake Barnby faf837e389 Update db for index validation fix 2025-10-02 15:29:27 +13:00
Jake Barnby 3ecd7e6a95 Fix fts create on array 2025-10-01 22:02:41 +13:00
Jake Barnby 36782650c6 Revert "Add CI debug"
This reverts commit 2d3dea84e3.
2025-10-01 21:36:03 +13:00
Jake Barnby 2f6bc9115f Fix workflows init 2025-10-01 21:35:55 +13:00
Jake Barnby 2d3dea84e3 Add CI debug 2025-10-01 21:10:26 +13:00
Jake Barnby b12f4008eb Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	composer.lock
2025-10-01 20:13:48 +13:00
Jake Barnby 408bca400b Fix spatial tests 2025-10-01 19:33:11 +13:00
Jake Barnby 6bacec52c5 Fix storage test 2025-10-01 17:11:02 +13:00
Jake Barnby 9d70b5cab2 Fix domain test 2025-10-01 17:09:07 +13:00
Jake Barnby d9baf5b628 Fix sites error 2025-10-01 12:31:07 +13:00
Jake Barnby 9e837c2eb9 Fix storage error 2025-10-01 12:31:02 +13:00
Jake Barnby f3460db369 Fix fulltext error 2025-10-01 12:30:48 +13:00
Jake Barnby b57839402f Update DB 2025-10-01 02:14:51 +13:00
Jake Barnby 763158fe81 Fix usage tests 2025-10-01 01:30:18 +13:00
Jake Barnby 766c3293d2 Fix index text checks 2025-10-01 00:47:07 +13:00
Jake Barnby 1226c0834c Fix upsert 2025-10-01 00:13:09 +13:00
Jake Barnby f0983cd9ff Remove mounts 2025-10-01 00:03:07 +13:00
Jake Barnby daeb721995 Fix tests 2025-09-30 23:44:26 +13:00
Jake Barnby 0555a27656 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2025-09-30 22:58:38 +13:00
Jake Barnby da3284ce84 Update deps 2025-09-30 22:58:29 +13:00
Jake Barnby 53f8a3a78b Update DB 2025-09-29 19:39:51 +13:00
Jake Barnby aa77253b14 Fix OSV 2025-09-26 22:17:01 +12:00
Jake Barnby 78c5743e75 Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb
# Conflicts:
#	composer.lock
2025-09-26 22:14:40 +12:00
Jake Barnby 156a944b54 Merge remote-tracking branch 'origin/feat-mongodb-index-validation' into feat-mongodb 2025-09-26 22:05:31 +12:00
Jake Barnby b07fd5afe6 Merge remote-tracking branch 'origin/feat-mongodb-pulls' into feat-mongodb 2025-09-26 22:05:24 +12:00
Khushboo VermaandGitHub 8b663f041a Merge branch '1.8.x' into ser-409 2025-09-25 17:02:30 +05:30
Hemachandar 52d656194c fix: Send deployment ready event after updating associated resource 2025-09-24 18:49:14 +05:30
Atharva Deosthale 5963b2baf7 change request filter to versions below 1.9.0 2025-09-23 18:00:14 +05:30
Jake BarnbyandGitHub a94d33649b Merge pull request #10493 from appwrite/fix-check-1.7.x
Move disable
2025-09-22 19:51:40 +12:00
shimon b828621feb Update composer dependencies and enhance index validation in database module 2025-09-21 19:14:40 +03:00
shimon 3edc055c9d Skip spatial column tests for MongoDB support in DatabasesBase trait 2025-09-21 16:02:36 +03:00
shimon ceda513083 Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb-pulls
# Conflicts:
#	composer.lock
#	src/Appwrite/Platform/Workers/StatsUsage.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2025-09-21 15:55:11 +03:00
Shimon NewmanandGitHub 2d47b88246 Merge pull request #10527 from appwrite/feat-mongodb-pulls
Feat mongodb pulls
2025-09-21 15:46:15 +03:00
shimon b88e74095b Merge remote-tracking branch 'origin/feat-mongodb-pulls' into feat-mongodb-pulls
# Conflicts:
#	composer.json
2025-09-21 15:44:41 +03:00
shimon 4d85c5ca4f composer 2025-09-21 15:42:44 +03:00
shimon c89e649d05 composer 2025-09-21 15:38:35 +03:00
shimon d9bdf01cee db lib ver 2025-09-21 15:30:09 +03:00
shimon 54e3a4b25d db lib ver 2025-09-21 15:27:41 +03:00
Atharva Deosthale 7d4486b9e6 more fixes to tests 2025-09-19 18:42:25 +05:30
Atharva Deosthale 1a19e01d69 attempt to fix tests 2025-09-19 18:30:42 +05:30
Atharva Deosthale 2a145bc284 address reviews regarding tests 2025-09-19 18:18:44 +05:30
Atharva Deosthale 9fe3e94a66 e2e tests 2025-09-18 13:12:46 +05:30
Atharva Deosthale 8e32fb05d1 specs 2025-09-18 12:28:08 +05:30
Atharva Deosthale de8538b622 use request filters for 1.8.0 to convert into and 2025-09-18 12:27:24 +05:30
shimon b1e55702c8 Refactor MongoDB test cases for improved readability and consistency. Adjust whitespace in conditional statements and remove redundant test methods related to spatial columns. Add new tests for spatial distance queries and update existing tests to ensure proper functionality. 2025-09-16 19:14:09 +03:00
shimon f16eba2f9f Update PHPUnit configuration to stop on failure set to false, and clean up whitespace in multiple files for consistency. Adjust comments and ensure proper formatting in test cases and API handling. 2025-09-16 19:13:38 +03:00
shimon 7c0bd1da88 uncomment inversion tests 2025-09-16 17:51:29 +03:00
shimon cc87de8934 Merge branch 'feat-mongodb-pulls' of github.com:appwrite/appwrite into feat-mongodb-pulls
# Conflicts:
#	composer.lock
2025-09-16 17:43:47 +03:00
shimon 5f8dc9998c Refactor database document handling by replacing createOrUpdateDocuments with upsertDocuments in multiple classes. Clean up common.php by removing commented-out index definitions and ensuring proper indexing for MongoDB compatibility. Update UsageTest to correct API endpoint paths for database operations. 2025-09-16 17:39:41 +03:00
shimon cc7778ceea database lib check 2025-09-16 11:10:06 +03:00
shimon f5fc099d87 Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb-pulls
# Conflicts:
#	composer.lock
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2025-09-16 10:26:43 +03:00
Jake Barnby 6d25eb81b6 Move disable 2025-09-15 13:09:08 +12:00
Atharva Deosthale fca2727966 add validation for type 2025-09-14 15:28:25 +05:30
Atharva Deosthale cb03bfe74c specs and sdk 2025-09-14 15:22:51 +05:30
Atharva Deosthale 2b1e3bd947 delete the new route and just do it in template route 2025-09-14 15:15:44 +05:30
Atharva Deosthale 4858317891 fix: format, lints 2025-09-13 18:02:13 +05:30
Atharva Deosthale 6e16340f16 feat: add branch deployments to appwrite 2025-09-13 17:56:19 +05:30
shimon 89d06d00c0 Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb-pulls
# Conflicts:
#	.github/workflows/tests.yml
#	composer.lock
#	tests/e2e/Services/Databases/TablesDB/DatabasesBase.php
2025-09-11 16:54:49 +03:00
shimon 882cd8c83e Merge remote-tracking branch 'origin/feat-mongodb-pulls' into feat-mongodb-pulls
# Conflicts:
#	tests/e2e/Services/Databases/TablesDB/DatabasesCustomClientTest.php
2025-09-11 16:43:39 +03:00
shimon 80cc6a0bb3 DatabasesCustomClientTest.php 2025-09-11 16:42:33 +03:00
shimon fc4ad175dd Update composer.json and composer.lock to reflect new versioning for utopia-php/database and other dependencies. Adjusted package versions for brick/math, open-telemetry/api, and symfony components. Added symfony/polyfill-php83 for compatibility with PHP 8.3 features. Minor formatting changes in MigrationsBase.php for code clarity. 2025-09-11 16:38:41 +03:00
ArnabChatterjee20k ac604b11e3 added migration script 2025-09-01 13:13:52 +05:30
shimon a0def8edf8 Updates 2025-08-31 17:57:58 +03:00
ArnabChatterjee20k f68d49c4d6 updated the migration error size attribute 2025-08-29 18:19:29 +05:30
shimon bdb8204910 Refactor database attribute tests to streamline size validation and add support for additional integer index. Updated size constraints for 'description' and 'tagline' attributes, and introduced a new 'integers2' attribute to accommodate MongoDB limitations. Adjusted assertions to reflect these changes. 2025-08-27 16:32:13 +03:00
shimon 1274614d18 Update composer.json and composer.lock to reflect new versioning for utopia-php/database and other dependencies. Adjusted Docker configuration to set the database adapter to MariaDB. 2025-08-27 13:55:48 +03:00
shimon 4f937ac549 Update composer.json and composer.lock to reflect changes in utopia-php/database versioning, including the removal of the 'with-uuid7' suffix. Updated dependencies for composer/semver, symfony/polyfill packages, and phpunit/phpunit to their latest versions for improved compatibility and performance. 2025-08-27 10:28:17 +03:00
shimon 6910d669de Update composer.json to correct utopia-php/database version reference and modify test to use the correct endpoint for MongoDB operations. 2025-08-27 10:25:23 +03:00
shimon 4fb680350a Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb-pulls
# Conflicts:
#	Dockerfile
#	composer.json
#	composer.lock
#	tests/e2e/Services/Databases/TablesDB/DatabasesCustomClientTest.php
#	tests/e2e/Services/Databases/TablesDB/DatabasesCustomServerTest.php
2025-08-26 14:20:47 +03:00
Shimon NewmanandGitHub ff35dc6114 Merge pull request #10375 from appwrite/feat-mongodb-pulls
Feat mongodb pulls
2025-08-26 13:53:42 +03:00
shimon 38433b9ac1 Remove unnecessary var_dump statement from ProjectsConsoleClientTest for improved code clarity and consistency. 2025-08-26 13:52:05 +03:00
shimon b98be4756c Update composer.json and composer.lock to reflect changes in utopia-php/database versioning and dependencies. Adjusted MongoDB-related test conditions for improved compatibility and clarity. Removed unnecessary var_dump statements in account.php and enhanced logging in various test files for better debugging. 2025-08-26 13:48:01 +03:00
Tejas Raskar 80ad740d36 docs: update the directory structure in CONTRIBUTING.md 2025-08-20 14:34:43 +05:30
shimon ff8418ffb9 Update composer.lock to reflect new references and timestamps for dependencies, including updates for utopia-php/database and phpunit/phpunit. Removed duplicate entries and unnecessary lines for improved clarity. 2025-08-12 18:01:38 +03:00
shimon e151425b95 Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb-pulls 2025-08-12 17:54:55 +03:00
shimon b9f4815c3a Remove unnecessary var_dump statements from api.php and enhance logging in MessagingConsoleClientTest for improved clarity and debugging. This aligns with recent efforts to clean up debugging output across the codebase. 2025-08-12 17:47:11 +03:00
shimon c4fb7ecbc1 Refactor and clean up debugging output across multiple files, including mock.php, account.php, and OAuth2 classes. Removed unnecessary var_dump statements for improved code clarity and consistency. Updated MongoDB condition checks in test cases to ensure case-insensitive comparisons. 2025-08-12 15:20:30 +03:00
shimon 24b7c95514 Merge branch 'feat-mongodb' of github.com:appwrite/appwrite into feat-mongodb 2025-08-11 22:07:11 +03:00
shimon 870125ed84 Refactor MongoDB condition checks in DatabasesCustomClientTest and UsersBase. Improved formatting for consistency and clarity in test assertions, particularly for MongoDB-related tests. 2025-08-11 22:07:05 +03:00
shimon e1475619ba Refactor debugging output across various files, including http.php, mock.php, and OAuth2 classes. Adjusted var_dump statements for improved traceability and consistency. Updated test assertions in ProjectsConsoleClientTest and UsersBase to enhance clarity and functionality. 2025-08-11 22:05:18 +03:00
Matej Bačo ba058a89a3 Merge branch '1.8.x' into feat-mongodb 2025-08-11 13:22:27 +02:00
shimon 236fab4658 Update composer configuration for minimum stability and prefer stable packages. Adjust utopia-php/database version alias and update phpunit and sebastian packages to latest versions. Add debugging output in http.php and uncomment OAuth2 conversion test in AccountCustomClientTest for improved functionality. 2025-08-11 11:56:38 +03:00
shimon 6cfd6d9ac9 Remove debugging var_dump statements from projects API and enhance error handling in XList class. Update test cases to comment out a specific OAuth2 conversion test for clarity. 2025-08-11 11:28:11 +03:00
shimon da706378ea Enhance debugging output in OAuth2 mock endpoints and update MongoDB version in tests. Added var_dump statements for better traceability during OAuth2 flows and adjusted test assertions for user search functionality. 2025-08-11 11:27:45 +03:00
shimon 40e36e23dd Merge remote-tracking branch 'origin/1.8.x' into feat-mongodb 2025-08-10 18:16:03 +03:00
shimon 603980759a composer.lock 2025-08-06 15:49:05 +03:00
shimon d63a218bd8 Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb
# Conflicts:
#	composer.json
#	composer.lock
2025-08-06 15:48:19 +03:00
shimon def3628205 feat: rename tables to grids and update documentation 2025-08-06 15:37:59 +03:00
shimon 779fb7bd20 Update composer dependencies and Docker Compose configuration for MongoDB integration. Change database alias in composer.json, update package versions in composer.lock, and adjust volume mappings in Docker Compose to include MongoDB source directories. Refactor application code to set tenant to null for database connections. 2025-08-06 15:07:04 +03:00
shimon ea1aef1d70 composer.lock 2025-08-03 18:40:45 +03:00
shimon b1cc203eba composer 2025-08-03 18:38:38 +03:00
shimon b3e1a3415a Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongodb
# Conflicts:
#	app/init/resources.php
#	composer.json
#	composer.lock
2025-08-03 18:33:27 +03:00
shimon d48248c9a2 Refactor Docker Compose and application code for MongoDB integration. Remove health check configuration and simplify service dependencies in Docker Compose. Update error logging in application to include context for MongoDB connection issues. 2025-08-03 18:13:16 +03:00
shimon eafca0c431 Add support for multiple database adapters in GitHub Actions workflow, including MARIADB and MONGODB. Set environment variables based on selected adapter for testing. 2025-07-31 18:22:42 +03:00
shimon a92bdfaed0 Update Docker Compose to clarify MongoDB readiness check comment, addressing implications of template substitution limitations. 2025-07-31 17:49:04 +03:00
shimon 46965135a4 Update Docker Compose and application configuration to support MongoDB as the primary database, replacing all instances of MariaDB. Introduce a new environment variable for database selection and adjust database schemes in the application initialization. 2025-07-31 17:17:08 +03:00
shimon 33c5ac83b2 Enhance Docker Compose configuration for MongoDB, add health checks, and update user creation logic in mongo-init.js. Improve database connection handling and fix conditional checks in application code. 2025-07-31 12:47:12 +03:00
shimon 57c08a41f1 Update environment configuration to support MongoDB, enhance Docker Compose for MongoDB integration, and improve database connection handling in the application. 2025-07-29 23:08:00 +03:00
shimon 36e7452f78 Update environment variables, Dockerfile version, and enhance MongoDB connection handling in the application. Add console document creation logic and improve code formatting for better readability. 2025-07-28 17:34:11 +03:00
shimon 469801b862 Update database configuration to use MongoDB, add MongoDB and Mongo Express services to Docker Compose, and adjust related code for MongoDB integration. 2025-07-27 20:38:49 +03:00
Khushboo Verma 8d7c76a434 Add screenshots for 2 templates 2025-06-20 12:53:06 +05:30
Khushboo Verma c927a1f459 Merge branch '1.7.x' into chore-add-new-site-templates 2025-06-20 12:09:34 +05:30
Khushboo Verma 88239a23f9 Update env vars for react-admin 2025-06-20 12:07:24 +05:30
Khushboo Verma 651af6a2c5 Add formspree, clerk and react-admin templates to sites 2025-06-19 21:02:31 +05:30
ArnabChatterjee20k 15a76e5984 updated depends on to the host instead of adapter and changed to the grouping of env vars 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k bf0bb1e2f6 updated tests yml 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k a0c974df42 updated updating database in the installation 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k cce830e103 added _APP_DB_ADAPTER 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k ba3413526d removed trailing comma from the matrix db adapter of the test 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k d0a45d6d1b changed the depends on to scheme 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k c63ae1832a updated local docker for ci test on github actions and tests yml 2025-06-18 18:09:52 +05:30
ArnabChatterjee20k d810fb417a added upgrade limit for db 2025-06-18 18:09:29 +05:30
ArnabChatterjee20k f3d8478312 updated the environment of the services in the docker compose of install 2025-06-18 18:09:29 +05:30
ArnabChatterjee20k 0452ed4605 added changes 2025-06-18 18:09:29 +05:30
ArnabChatterjee20k e6f8055f60 added the callable resource in the pg adapter 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k f18fbc792e used env var in the registers for the pool 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k 3cb0894091 added conditonal for .env for mariadb and psotgres 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k b5a82109f1 linting 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k dee9736c8a updated compose file and installation script 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k 8048a82a5d add postges installtion command 2025-06-18 18:09:11 +05:30
ArnabChatterjee20k be1e52529a updated depends on to the host instead of adapter and changed to the grouping of env vars 2025-05-27 22:07:49 +05:30
ArnabChatterjee20k f1b2ac0d13 updated tests yml 2025-05-21 18:22:16 +05:30
ArnabChatterjee20k e7f51023bf updated updating database in the installation 2025-05-21 18:13:20 +05:30
ArnabChatterjee20k f5c54bb945 added _APP_DB_ADAPTER 2025-05-21 17:36:50 +05:30
ArnabChatterjee20k 58e04b4950 removed trailing comma from the matrix db adapter of the test 2025-05-20 19:01:44 +05:30
ArnabChatterjee20kandGitHub 9ca6527816 Merge branch 'main' into pg-adapter 2025-05-20 16:56:46 +05:30
ArnabChatterjee20k 60be48268c changed the depends on to scheme 2025-05-20 15:35:12 +05:30
ArnabChatterjee20k e45befbdf2 updated local docker for ci test on github actions and tests yml 2025-05-20 14:46:50 +05:30
ArnabChatterjee20k f2ed0346df Merge branch 'main' into pg-adapter 2025-05-19 11:22:14 +05:30
ArnabChatterjee20k e88aebd4ad added upgrade limit for db 2025-05-17 00:05:11 +05:30
ArnabChatterjee20k e1207caee0 updated the environment of the services in the docker compose of install 2025-05-16 23:33:21 +05:30
ArnabChatterjee20k 78de031c74 added changes 2025-05-16 21:07:47 +05:30
ArnabChatterjee20kandGitHub b775a546c8 Merge branch '1.6.x' into pg-adapter 2025-05-16 20:11:18 +05:30
ArnabChatterjee20k 2460f0cb36 updated composer lock 2025-05-16 19:50:42 +05:30
ArnabChatterjee20k 9f22ab4ef5 added the callable resource in the pg adapter 2025-05-16 18:07:17 +05:30
ArnabChatterjee20k 26c3248375 used env var in the registers for the pool 2025-05-16 17:53:44 +05:30
ArnabChatterjee20k 5f7afa25ce added conditonal for .env for mariadb and psotgres 2025-05-16 17:01:18 +05:30
ArnabChatterjee20k f846e417fc linting 2025-05-16 16:19:37 +05:30
ArnabChatterjee20k 083e490cc2 updated compose file and installation script 2025-05-16 16:19:20 +05:30
ArnabChatterjee20k bfdcd13f80 add postges installtion command 2025-05-16 14:11:45 +05:30
50448 changed files with 79778 additions and 1674669 deletions
+31
View File
@@ -0,0 +1,31 @@
# PR Workflow for Appwrite
## Branch Targeting
**Important:** Appwrite does NOT use `main` as the primary development branch.
PRs should target the **current version branch** (e.g., `1.8.x`, `1.9.x`), not `main`.
### How to determine the correct target branch
1. Check which version branch you're currently on: `git branch --show-current`
2. Look for branches matching the pattern `X.Y.x` (e.g., `1.8.x`, `1.9.x`)
3. The current active development branch is typically the highest version number with the `.x` suffix
### When creating PRs
Always use the version branch as the base:
```bash
# Correct - targets the version branch
gh pr create --base 1.8.x --title "Your PR title" --body "..."
# Wrong - do not target main
gh pr create --base main ...
```
### Branch naming convention
- `X.Y.x` branches (e.g., `1.8.x`) - Active development branches for each minor version
- `main` - Not used for regular PRs; reserved for release management
- Feature branches should be created from and merged back into the current version branch
+23 -10
View File
@@ -2,6 +2,7 @@ _APP_ENV=development
_APP_EDITION=self-hosted
_APP_LOCALE=en
_APP_WORKER_PER_CORE=6
_APP_COMPRESSION_ENABLED=enabled
_APP_COMPRESSION_MIN_SIZE_BYTES=1024
_APP_CONSOLE_WHITELIST_ROOT=disabled
_APP_CONSOLE_WHITELIST_EMAILS=
@@ -9,6 +10,8 @@ _APP_CONSOLE_SESSION_ALERTS=enabled
_APP_CONSOLE_WHITELIST_IPS=
_APP_CONSOLE_COUNTRIES_DENYLIST=AQ
_APP_CONSOLE_HOSTNAMES=localhost,appwrite.io,*.appwrite.io
_APP_CONSOLE_SCHEMA=appwriteio
_APP_MIGRATION_HOST=appwrite
_APP_SYSTEM_EMAIL_NAME=Appwrite
_APP_SYSTEM_EMAIL_ADDRESS=noreply@appwrite.io
_APP_SYSTEM_TEAM_EMAIL=team@appwrite.io
@@ -21,13 +24,14 @@ _APP_OPTIONS_ROUTER_PROTECTION=disabled
_APP_OPTIONS_FORCE_HTTPS=disabled
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
_APP_OPENSSL_KEY_V1=your-secret-key
_APP_DNS=8.8.8.8
_APP_DOMAIN=traefik
_APP_DNS=172.16.238.100 # CoreDNS
_APP_DOMAIN=appwrite.test
_APP_CONSOLE_DOMAIN=localhost
_APP_CONSOLE_TRUSTED_PROJECTS=trusted-project,another-trusted-project
_APP_DOMAIN_FUNCTIONS=functions.localhost
_APP_DOMAIN_SITES=sites.localhost
_APP_DOMAIN_TARGET_CNAME=test.localhost
_APP_DOMAIN_TARGET_A=127.0.0.1
_APP_DOMAIN_SITES=sites.localhost,rebranded.localhost
_APP_DOMAIN_TARGET_CNAME=cname.localhost
_APP_DOMAIN_TARGET_A=203.0.0.1
_APP_DOMAIN_TARGET_AAAA=::1
_APP_DOMAIN_TARGET_CAA=digicert.com
_APP_RULES_FORMAT=md5
@@ -35,8 +39,10 @@ _APP_REDIS_HOST=redis
_APP_REDIS_PORT=6379
_APP_REDIS_PASS=
_APP_REDIS_USER=
_APP_DB_HOST=mariadb
_APP_DB_PORT=3306
COMPOSE_PROFILES=mongodb
_APP_DB_ADAPTER=mongodb
_APP_DB_HOST=mongodb
_APP_DB_PORT=27017
_APP_DB_SCHEMA=appwrite
_APP_DB_USER=user
_APP_DB_PASS=password
@@ -69,8 +75,8 @@ _APP_STORAGE_ANTIVIRUS_PORT=3310
_APP_SMTP_HOST=maildev
_APP_SMTP_PORT=1025
_APP_SMTP_SECURE=
_APP_SMTP_USERNAME=
_APP_SMTP_PASSWORD=
_APP_SMTP_USERNAME=user
_APP_SMTP_PASSWORD=password
_APP_SMS_PROVIDER=sms://username:password@mock
_APP_SMS_FROM=+123456789
_APP_SMS_PROJECTS_DENY_LIST=
@@ -101,8 +107,12 @@ _APP_USAGE_AGGREGATION_INTERVAL=30
_APP_STATS_RESOURCES_INTERVAL=30
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000
_APP_MAINTENANCE_RETENTION_SCHEDULES=86400
_APP_INTERVAL_DOMAIN_VERIFICATION=120
_APP_INTERVAL_CLEANUP_STALE_EXECUTIONS=300
_APP_USAGE_STATS=enabled
_APP_LOGGING_CONFIG=
_APP_LOGGING_CONFIG_REALTIME=
_APP_GRAPHQL_INTROSPECTION=enabled
_APP_GRAPHQL_MAX_BATCH_SIZE=10
_APP_GRAPHQL_MAX_COMPLEXITY=250
_APP_GRAPHQL_MAX_DEPTH=4
@@ -123,4 +133,7 @@ _APP_MESSAGE_PUSH_TEST_DSN=
_APP_WEBHOOK_MAX_FAILED_ATTEMPTS=10
_APP_PROJECT_REGIONS=default
_APP_FUNCTIONS_CREATION_ABUSE_LIMIT=5000
_APP_STATS_USAGE_DUAL_WRITING_DBS=database_db_main
_APP_STATS_USAGE_DUAL_WRITING_DBS=database_db_main
_APP_TRUSTED_HEADERS=x-forwarded-for
_APP_POOL_ADAPTER=stack
_APP_WORKER_SCREENSHOTS_ROUTER=http://appwrite
+5 -3
View File
@@ -3,6 +3,7 @@ concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: true
env:
COMPOSE_FILE: docker-compose.yml
IMAGE: appwrite-dev
CACHE_KEY: 'appwrite-dev-${{ github.event.pull_request.head.sha }}'
'on':
@@ -13,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up Docker Buildx
@@ -28,6 +29,7 @@ jobs:
cache-from: type=gha
cache-to: 'type=gha,mode=max'
outputs: 'type=docker,dest=/tmp/${{ env.IMAGE }}.tar'
target: development
build-args: |
DEBUG=false
TESTING=true
@@ -45,7 +47,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
with:
@@ -97,7 +99,7 @@ jobs:
echo "| 200 | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt
echo "| P99 | $(jq -r '.latencyPercentiles.p99' benchmark.json ) | $(jq -r '.latencyPercentiles.p99' benchmark-latest.json ) | " >> benchmark.txt
- name: Save results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
if: '${{ !cancelled() }}'
with:
name: benchmark.json
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Cleanup
run: |
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
+657 -383
View File
File diff suppressed because it is too large Load Diff
+60 -23
View File
@@ -1,44 +1,75 @@
---
on:
issues:
types: [opened, reopened]
schedule:
- cron: '0 0 * * *' # Run daily at midnight UTC
workflow_dispatch: # Enable manual trigger
stop-after: +30d # workflow will no longer trigger after 30 days. Remove this and recompile to run indefinitely
reaction: eyes
permissions: read-all
# Add stricter error-detection patterns so issue text doesn't trigger agent error detection.
# After merging this file run `gh aw compile` to regenerate the lock file.
env:
GH_AW_ERROR_PATTERNS: >-
[
{"id":"gh-action-error","pattern":"^::(error)(?:\\\\s+[^:]*)?::(.+)","level_group":1,"message_group":2,"description":"GitHub Actions workflow command - error"},
{"id":"gh-action-warning","pattern":"^::(warning)(?:\\\\s+[^:]*)?::(.+)","level_group":1,"message_group":2,"description":"GitHub Actions workflow command - warning"},
{"id":"bracketed-level","pattern":"^\\[(ERROR|CRITICAL|WARNING|WARN)\\]\\s+(.+)","level_group":1,"message_group":2,"description":"Bracketed log level at start of line"},
{"id":"timestamped-copilot","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z\\s+\\[(ERROR|WARN|WARNING|CRITICAL)\\]\\s+(.+)","level_group":1,"message_group":3,"description":"Timestamped Copilot CLI messages"}
]
network: defaults
safe-outputs:
add-labels:
max: 5
max: 100
target: "*"
add-comment:
max: 10
target: "*"
tools:
web-fetch:
web-search:
github:
toolsets:
- default
- labels
timeout_minutes: 10
timeout-minutes: 10
source: githubnext/agentics/workflows/issue-triage.md@0837fb7b24c3b84ee77fb7c8cfa8735c48be347a
---
# Agentic Triage
<!-- Note - this file can be customized to your needs. Replace this section directly, or add further instructions here. After editing run 'gh aw compile' -->
You're a triage assistant for GitHub issues. Your task is to analyze issue #${{ github.event.issue.number }} and perform some initial triage tasks related to that issue.
You're a triage assistant for GitHub issues. Your task is to analyze issues that were either created in the last 24 hours or updated (with a new comment) in the last 24 hours, and perform initial triage tasks for each of them.
1. Select appropriate labels for the issue from the provided list.
1. First, use the `list_issues` tool to retrieve all issues created or updated in the last 24 hours. The `since` parameter filters by the issue's `updated_at` timestamp, which includes both newly created issues and recently commented issues. Calculate the timestamp from 24 hours ago (example: 2025-11-06T20:27:14Z for reference) and use it for the `since` parameter.
2. Retrieve the issue content using the `get_issue` tool. If the issue is obviously spam, or generated by bot, or something else that is not an actual issue to be worked on, then add an issue comment to the issue with a one sentence analysis and exit the workflow.
2. For each issue found, perform the following triage tasks:
3. Next, use the GitHub tools to gather additional context about the issue:
3. Use the `get_comments` tool to retrieve all the comments on the issue.
- Fetch the list of labels available in this repository. Use 'gh label list' bash command to fetch the labels. This will give you the labels you can use for triaging issues.
- Fetch any comments on the issue using the `get_issue_comments` tool
- Find similar issues if needed using the `search_issues` tool
- List the issues to see other open issues in the repository using the `list_issues` tool
4. Check for spam and quality issue descriptions and comments first:
- **Non-English Content**: If the issue is primarily written in a non-English language, add a respectful and appreciative comment explaining that while you appreciate their contribution, the majority of the community communicates in English and kindly ask them to repost in English so everyone can follow along and help. Provide a friendly translation of your message in their language if possible.
- **Multiple Topics**: If the issue discusses multiple unrelated topics or problems, add a comment explaining that each issue should focus on one clear topic so the team can effectively solve the right problem. Politely ask them to split it into separate issues.
- **Obvious Spam or Bot-Generated Content**: If the issue/comment is obviously spam, generated by a bot, or something that is not an actual issue to be worked on, add an issue comment with a one-sentence analysis and move to the next issue.
4. Analyze the issue content, considering:
5. Retrieve the issue content using the `get_issue` tool for any issues that pass the spam checks.
6. Next, use the GitHub tools to gather additional context about the issue:
- Fetch the list of labels available in this repository using the `list_label` tool with `owner: "appwrite"` and `repo: "appwrite"` parameters. This will give you the labels you can use for triaging issues.
- Fetch any comments on the issue using the `get_issue_comments` tool to understand recent activity
- **Search for duplicate and related issues (repo first, then org-wide)**:
- First search in this repository using the `search_issues` tool with a query like: `repo:appwrite/appwrite is:issue (is:open OR is:closed) <key terms>`.
- Then perform an org-wide search across the entire Appwrite organization using: `org:appwrite is:issue (is:open OR is:closed) <key terms>`.
- Prefer linking to OPEN issues when identifying potential duplicates; include CLOSED ones as related history when useful.
7. Analyze the issue content, considering:
- The issue title and description
- The type of issue (bug report, feature request, question, etc.)
@@ -47,32 +78,38 @@ You're a triage assistant for GitHub issues. Your task is to analyze issue #${{
- User impact
- Components affected
5. Write notes, ideas, nudges, resource links, debugging strategies and/or reproduction steps for the team to consider relevant to the issue.
8. Write notes, ideas, nudges, resource links, debugging strategies and/or reproduction steps for the team to consider relevant to the issue.
6. Select appropriate labels from the available labels list provided above:
9. Select appropriate labels from the available labels list:
- Choose labels that accurately reflect the issue's nature
- Be specific but comprehensive
- Select priority labels if you can determine urgency (high-priority, med-priority, or low-priority)
- Consider platform labels (android, ios) if applicable
- Search for similar issues, and if you find similar issues consider using a "duplicate" label if appropriate. Only do so if the issue is a duplicate of another OPEN issue.
- Only select labels from the provided list above
- Search for similar issues. If you find a duplicate of another OPEN issue in THIS repository, you may use a "duplicate" label (if available) and reference the canonical issue.
- If the closest match is in another repository within the Appwrite org, do NOT mark as duplicate here; instead, link it in your comment under a "Crossrepo related issues" section.
- Only select labels from the provided list
- Don't apply the `good first issue` or `help wanted` labels
- It's okay to not add any labels if none are clearly applicable
7. Apply the selected labels:
10. Apply the selected labels:
- Use the `update_issue` tool to apply the labels to the issue
- DO NOT communicate directly with users
- If no labels are clearly applicable, do not apply any labels
8. Add an issue comment to the issue with your analysis:
11. Add an issue comment to the issue with your analysis:
- Start with "🎯 Agentic Issue Triage"
- Provide a brief summary of the issue
- **If duplicate or related issues were found**, add sections listing them with links:
- "### 🔗 Potentially Related Issues (this repo)" bullet list of same-repo issues with titles and links
- If applicable: "### 🌐 Cross-repo related issues (org: appwrite)" bullet list including `owner/repo#number` with titles and links
- Mention any relevant details that might help the team understand the issue better
- Include any debugging strategies or reproduction steps if applicable
- Suggest resources or links that might be helpful for resolving the issue or learning skills related to the issue or the particular area of the codebase affected by it
- Mention any nudges or ideas that could help the team in addressing the issue
- If you have possible reproduction steps, include them in the comment
- If you have any debugging strategies, include them in the comment
- If appropriate break the issue down to sub-tasks and write a checklist of things to do.
- Use collapsed-by-default sections in the GitHub markdown to keep the comment tidy. Collapse all sections except the short main summary at the top.
- If appropriate break the issue down to sub-tasks and write a checklist of things to do
- Use collapsed-by-default sections in the GitHub markdown to keep the comment tidy. Collapse all sections except the short main summary at the top. For bolded section titles, wrap the text with `<strong>` and `</strong>` to make it bold.
- Do not indicate/encourage a community member to submit a PR for the issue.
12. After processing all issues, provide a summary of how many issues were triaged (created or updated in the last 24 hours). If no issues matched the criteria, simply note that no issues needed triage.
+3 -3
View File
@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 2
@@ -20,9 +20,9 @@ jobs:
- name: Validate composer.json and composer.lock
run: |
docker run --rm -v $PWD:/app composer sh -c \
docker run --rm -v $PWD:/app composer:2.8 sh -c \
"composer validate"
- name: Run Linter
run: |
docker run --rm -v $PWD:/app composer sh -c \
docker run --rm -v $PWD:/app composer:2.8 sh -c \
"composer install --profile --ignore-platform-reqs && composer lint"
+3 -3
View File
@@ -10,11 +10,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
- name: Build the Docker image
run: docker build . -t appwrite_image:latest
run: DOCKER_BUILDKIT=1 docker build . --target production -t appwrite_image:latest
- name: Run Trivy vulnerability scanner on image
uses: aquasecurity/trivy-action@0.20.0
with:
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Run Trivy vulnerability scanner on filesystem
uses: aquasecurity/trivy-action@0.20.0
with:
+5 -4
View File
@@ -11,19 +11,20 @@ jobs:
pull-requests: write
steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
submodules: 'recursive'
- name: Build the Docker image
uses: docker/build-push-action@v5
with:
uses: docker/build-push-action@v6
with:
context: .
push: false
load: true
tags: pr_image:${{ github.sha }}
target: production
- name: Run Trivy vulnerability scanner on image
uses: aquasecurity/trivy-action@0.20.0
@@ -44,7 +45,7 @@ jobs:
- name: Process Trivy scan results
id: process-results
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
script: |
const fs = require('fs');
+4 -3
View File
@@ -12,7 +12,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 2
submodules: recursive
@@ -24,7 +24,7 @@ jobs:
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -38,10 +38,11 @@ jobs:
type=ref,event=tag
- name: Build & Publish to DockerHub
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
target: production
build-args: |
VERSION=${{ steps.meta.outputs.version }}
VITE_APPWRITE_GROWTH_ENDPOINT=https://growth.appwrite.io/v1
+6 -5
View File
@@ -11,7 +11,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -20,13 +20,13 @@ jobs:
submodules: recursive
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -42,10 +42,11 @@ jobs:
type=semver,pattern={{major}}
- name: Build and push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
target: production
build-args: |
VERSION=${{ steps.meta.outputs.version }}
push: true
+12 -5
View File
@@ -1,9 +1,9 @@
name: "SDK Preview"
env:
COMPOSE_FILE: docker-compose.yml
on:
pull_request:
paths:
- 'app/config/specs/*-latest-console.json'
workflow_dispatch:
inputs:
platform:
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set SDK type
id: set-sdk
@@ -39,6 +39,13 @@ jobs:
run: |
docker compose build
docker compose up -d
- name: Generate Specs
run: |
docker compose exec appwrite specs --version=latest --mode=normal --git=no
- name: Generate SDK
run: |
docker compose exec appwrite sdks --platform=${{ steps.set-sdk.outputs.platform }} --sdk=${{ steps.set-sdk.outputs.sdk_type }} --version=latest --git=no
sudo chown -R $USER:$USER ./app/sdks/${{ steps.set-sdk.outputs.platform }}-${{ steps.set-sdk.outputs.sdk_type }}
@@ -47,7 +54,7 @@ jobs:
node-version: 20
- name: Build and Publish SDK
working-directory: ./app/sdks/console-web
working-directory: ./app/sdks/${{ steps.set-sdk.outputs.platform }}-${{ steps.set-sdk.outputs.sdk_type }}
run: |
npm install
npm run build
+113
View File
@@ -0,0 +1,113 @@
name: "Generate Specs"
env:
COMPOSE_FILE: docker-compose.yml
on:
workflow_dispatch:
inputs:
version:
type: choice
description: "Appwrite version to generate specs for"
required: true
options:
- "1.8.x"
- "1.7.x"
- "1.6.x"
- "1.5.x"
- "latest"
push:
type: boolean
description: "Push specs to appwrite/specs repo and create PR"
default: true
message:
type: string
description: "Commit message for the specs PR"
default: "chore: update API specs and SDK examples"
jobs:
generate:
name: Generate Specs
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
submodules: recursive
- name: Build and start Appwrite
run: |
docker compose build
docker compose up -d
- name: Generate specs
run: |
docker compose exec appwrite specs --version=${{ inputs.version }} --mode=normal --git=no
- name: Generate SDK examples
if: inputs.push
run: |
docker compose exec appwrite sdks --platform=* --sdk=* --version=${{ inputs.version }} --git=no --mode=examples
sudo chown -R $USER:$USER ./docs/examples/
- name: Push to appwrite/specs and create PR
if: inputs.push
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION="${{ inputs.version }}"
MESSAGE="${{ inputs.message }}"
GIT_BRANCH="feat-${VERSION}-specs"
SPECS_DIR="./app/config/specs"
EXAMPLES_DIR="./docs/examples/${VERSION}"
TARGET="/tmp/specs-repo"
sudo chown -R $USER:$USER "${SPECS_DIR}"
# Clone the specs repo
git clone "https://x-access-token:${GH_TOKEN}@github.com/appwrite/specs.git" "${TARGET}"
cd "${TARGET}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# Create or checkout the feature branch
git checkout -b "${GIT_BRANCH}" || git checkout "${GIT_BRANCH}"
# Copy spec files
mkdir -p "specs/${VERSION}"
cp ${GITHUB_WORKSPACE}/${SPECS_DIR}/*${VERSION}*.json "specs/${VERSION}/" 2>/dev/null || true
# Copy latest specs if version is latest
if [ "${VERSION}" = "latest" ]; then
cp ${GITHUB_WORKSPACE}/${SPECS_DIR}/*latest*.json "specs/latest/" 2>/dev/null || true
fi
# Copy SDK examples
if [ -d "${GITHUB_WORKSPACE}/docs/examples/${VERSION}" ]; then
mkdir -p "examples/${VERSION}"
cp -r "${GITHUB_WORKSPACE}/docs/examples/${VERSION}/." "examples/${VERSION}/"
fi
# Commit and push
git add -A
git diff --cached --quiet && echo "No changes to commit" && exit 0
git commit -m "${MESSAGE}"
git push -u origin "${GIT_BRANCH}" --force
# Create or update PR
EXISTING_PR=$(gh pr list --repo appwrite/specs --head "${GIT_BRANCH}" --json number --jq '.[0].number' 2>/dev/null || true)
if [ -n "${EXISTING_PR}" ]; then
echo "PR #${EXISTING_PR} already exists, updated branch"
echo "https://github.com/appwrite/specs/pull/${EXISTING_PR}"
else
gh pr create \
--repo "appwrite/specs" \
--title "feat: API specs update for version ${VERSION}" \
--body "This PR contains API specification updates and SDK examples for version ${VERSION}." \
--base "main" \
--head "${GIT_BRANCH}"
fi
- name: Stop containers
if: always()
run: docker compose down
+2 -2
View File
@@ -8,11 +8,11 @@ jobs:
steps:
- name: Check out the repo
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Run CodeQL
run: |
docker run --rm -v $PWD:/app composer:2.6 sh -c \
docker run --rm -v $PWD:/app composer:2.8 sh -c \
"composer install --profile --ignore-platform-reqs && composer check"
- name: Run Locale check
+297 -127
View File
@@ -5,6 +5,7 @@ concurrency:
cancel-in-progress: true
env:
COMPOSE_FILE: docker-compose.yml
IMAGE: appwrite-dev
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}
@@ -26,7 +27,7 @@ jobs:
database_changed: ${{ steps.check.outputs.database_changed }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Fetch base branch
run: git fetch origin ${{ github.event.pull_request.base.ref }}
@@ -48,7 +49,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
@@ -65,6 +66,7 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=docker,dest=/tmp/${{ env.IMAGE }}.tar
target: development
build-args: |
DEBUG=false
TESTING=true
@@ -80,10 +82,13 @@ jobs:
name: Unit Test
runs-on: ubuntu-latest
needs: setup
permissions:
contents: read
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -93,33 +98,42 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
sleep 10
- name: Logs
run: docker compose logs appwrite
- name: Doctor
run: docker compose exec -T appwrite doctor
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Environment Variables
run: docker compose exec -T appwrite vars
- name: Run Unit Tests
run: |
docker compose exec \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/unit
command: >-
docker compose exec
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}"
appwrite test /usr/src/code/tests/unit
e2e_general_test:
name: E2E General Test
runs-on: ubuntu-latest
needs: setup
permissions:
contents: read
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -129,11 +143,15 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
sleep 10
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
@@ -143,32 +161,45 @@ jobs:
done
- name: Run General Tests
run: |
docker compose exec -T \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/General
command: >-
docker compose exec -T
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}"
appwrite test /usr/src/code/tests/e2e/General --debug
- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
echo "=== Appwrite Logs ==="
docker compose logs
e2e_service_test:
name: E2E Service Test
runs-on: ubuntu-latest
needs: setup
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
db_adapter: [
MARIADB,
POSTGRESQL,
MONGODB
]
service: [
Account,
Avatars,
Console,
Databases/Legacy,
Databases/TablesDB,
Databases,
Functions,
FunctionsSchedule,
GraphQL,
@@ -189,7 +220,7 @@ jobs:
]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -198,12 +229,37 @@ jobs:
path: /tmp/${{ env.IMAGE }}.tar
fail-on-cache-miss: true
- name: Set DB Adapter environment
id: set-db-env
run: |
DB_ADAPTER_LOWER=$(echo "${{ matrix.db_adapter }}" | tr 'A-Z' 'a-z')
echo "COMPOSE_PROFILES=${DB_ADAPTER_LOWER}" >> $GITHUB_ENV
if [ "${{ matrix.db_adapter }}" = "MARIADB" ]; then
echo "_APP_DB_ADAPTER=mariadb" >> $GITHUB_ENV
echo "_APP_DB_HOST=mariadb" >> $GITHUB_ENV
echo "_APP_DB_PORT=3306" >> $GITHUB_ENV
elif [ "${{ matrix.db_adapter }}" = "MONGODB" ]; then
echo "_APP_DB_ADAPTER=mongodb" >> $GITHUB_ENV
echo "_APP_DB_HOST=mongodb" >> $GITHUB_ENV
echo "_APP_DB_PORT=27017" >> $GITHUB_ENV
elif [ "${{ matrix.db_adapter }}" = "POSTGRESQL" ]; then
echo "_APP_DB_ADAPTER=postgresql" >> $GITHUB_ENV
echo "_APP_DB_HOST=postgresql" >> $GITHUB_ENV
echo "_APP_DB_PORT=5432" >> $GITHUB_ENV
fi
- name: Load and Start Appwrite
timeout-minutes: 3
env:
_APP_BROWSER_HOST: http://invalid-browser/v1
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's|^_APP_BROWSER_HOST=.*|_APP_BROWSER_HOST=http://invalid-browser/v1|' .env
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
@@ -214,30 +270,49 @@ jobs:
done
- name: Run ${{ matrix.service }} tests with Project table mode
run: |
echo "Using project tables"
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 20
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/${{ matrix.service }}
command: |
echo "Using project tables"
SERVICE_PATH="/usr/src/code/tests/e2e/Services/${{ matrix.service }}"
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots
# Services that rely on sequential test method execution (shared static state)
FUNCTIONAL_FLAG="--functional"
case "${{ matrix.service }}" in
Databases|Functions|Realtime) FUNCTIONAL_FLAG="" ;;
esac
echo "Running with paratest (parallel) for: ${{ matrix.service }} ${FUNCTIONAL_FLAG:+(functional)}"
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES="" \
-e _APP_DATABASE_SHARED_TABLES_V1="" \
-e _APP_DB_ADAPTER="${{ env._APP_DB_ADAPTER }}" \
-e _APP_DB_HOST="${{ env._APP_DB_HOST }}" \
-e _APP_DB_PORT="${{ env._APP_DB_PORT }}" \
-e _APP_DB_SCHEMA=appwrite \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite vendor/bin/paratest --processes $(nproc) $FUNCTIONAL_FLAG "$SERVICE_PATH" --exclude-group abuseEnabled --exclude-group screenshots --exclude-group ciIgnore --log-junit tests/e2e/Services/${{ matrix.service }}/junit.xml
- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
echo "=== Appwrite Logs ==="
docker compose logs
e2e_shared_mode_test:
name: E2E Shared Mode Service Test
runs-on: ubuntu-latest
needs: [ setup, check_database_changes ]
if: needs.check_database_changes.outputs.database_changed == 'true'
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
@@ -246,8 +321,7 @@ jobs:
Account,
Avatars,
Console,
Databases/Legacy,
Databases/TablesDB,
Databases,
Functions,
FunctionsSchedule,
GraphQL,
@@ -273,7 +347,7 @@ jobs:
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -283,10 +357,14 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
@@ -297,22 +375,38 @@ jobs:
done
- name: Run ${{ matrix.service }} tests with ${{ matrix.tables-mode }} table mode
run: |
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 20
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/${{ matrix.service }}
command: |
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
SERVICE_PATH="/usr/src/code/tests/e2e/Services/${{ matrix.service }}"
# Services that rely on sequential test method execution (shared static state)
FUNCTIONAL_FLAG="--functional"
case "${{ matrix.service }}" in
Databases|Functions|Realtime) FUNCTIONAL_FLAG="" ;;
esac
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite vendor/bin/paratest --processes $(nproc) $FUNCTIONAL_FLAG "$SERVICE_PATH" --exclude-group abuseEnabled --exclude-group screenshots --exclude-group ciIgnore --log-junit tests/e2e/Services/${{ matrix.service }}/junit.xml
- name: Failure Logs
if: failure()
@@ -322,13 +416,16 @@ jobs:
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
e2e_dev_keys:
name: E2E Service Test (Dev Keys)
e2e_abuse_enabled:
name: E2E Service Test (Abuse enabled)
runs-on: ubuntu-latest
needs: setup
permissions:
contents: read
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -338,23 +435,35 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Run Projects tests with dev keys in dedicated table mode
run: |
echo "Using project tables"
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
- name: Run Projects tests in dedicated table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Projects
command: |
echo "Using project tables"
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=abuseEnabled
- name: Failure Logs
if: failure()
@@ -364,11 +473,14 @@ jobs:
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
e2e_dev_keys_shared_mode:
name: E2E Shared Mode Service Test (Dev Keys)
e2e_abuse_enabled_shared_mode:
name: E2E Shared Mode Service Test (Abuse enabled)
runs-on: ubuntu-latest
needs: [ setup, check_database_changes ]
if: needs.check_database_changes.outputs.database_changed == 'true'
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
@@ -378,7 +490,7 @@ jobs:
]
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -388,29 +500,41 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Run Projects tests with dev keys in ${{ matrix.tables-mode }} table mode
run: |
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
- name: Run Projects tests in ${{ matrix.tables-mode }} table mode
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Projects
command: |
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=abuseEnabled
- name: Failure Logs
if: failure()
@@ -420,13 +544,16 @@ jobs:
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
e2e_screenshots_keys:
e2e_screenshots:
name: E2E Service Test (Site Screenshots)
runs-on: ubuntu-latest
needs: setup
permissions:
contents: read
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -436,24 +563,44 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
echo "Waiting for Executor to come online"
sleep 1
done
- name: Run Site tests with browser connected in dedicated table mode
run: |
echo "Keeping original value of _APP_BROWSER_HOST"
echo "Using project tables"
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Sites
command: |
echo "Keeping original value of _APP_BROWSER_HOST"
echo "Using project tables"
export _APP_DATABASE_SHARED_TABLES=
export _APP_DATABASE_SHARED_TABLES_V1=
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
- name: Failure Logs
if: failure()
@@ -468,6 +615,9 @@ jobs:
runs-on: ubuntu-latest
needs: [ setup, check_database_changes ]
if: needs.check_database_changes.outputs.database_changed == 'true'
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
@@ -477,7 +627,7 @@ jobs:
]
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Load Cache
uses: actions/cache@v4
@@ -487,30 +637,50 @@ jobs:
fail-on-cache-miss: true
- name: Load and Start Appwrite
timeout-minutes: 3
run: |
docker load --input /tmp/${{ env.IMAGE }}.tar
sed -i 's/_APP_OPTIONS_ABUSE=disabled/_APP_OPTIONS_ABUSE=enabled/' .env
docker compose up -d
sleep 30
until docker compose exec -T appwrite doctor > /dev/null 2>&1; do
echo "Waiting for Appwrite to be ready..."
sleep 2
done
- name: Wait for Open Runtimes
timeout-minutes: 3
run: |
while ! docker compose logs openruntimes-executor | grep -q "Executor is ready."; do
echo "Waiting for Executor to come online"
sleep 1
done
- name: Run Site tests with browser connected in ${{ matrix.tables-mode }} table mode
run: |
echo "Keeping original value of _APP_BROWSER_HOST"
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
uses: itznotabug/php-retry@v3
with:
max_attempts: 2
retry_wait_seconds: 300
timeout_minutes: 15
job_id: ${{ job.check_run_id }}
github_token: ${{ secrets.GITHUB_TOKEN }}
test_dir: tests/e2e/Services/Sites
command: |
echo "Keeping original value of _APP_BROWSER_HOST"
if [ "${{ matrix.tables-mode }}" == "Shared V1" ]; then
echo "Using shared tables V1"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=database_db_main
elif [ "${{ matrix.tables-mode }}" == "Shared V2" ]; then
echo "Using shared tables V2"
export _APP_DATABASE_SHARED_TABLES=database_db_main
export _APP_DATABASE_SHARED_TABLES_V1=
fi
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots
- name: Failure Logs
if: failure()
@@ -518,4 +688,4 @@ jobs:
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
docker compose logs openruntimes-executor
+4 -1
View File
@@ -17,4 +17,7 @@ dev/yasd_init.php
.phpunit.result.cache
Makefile
appwrite.config.json
/.zed/
/.zed/
/app/config/specs/
/docs/examples/
.phpunit.cache
+77
View File
@@ -0,0 +1,77 @@
# AGENTS.md
Appwrite is an end-to-end backend server for web, mobile, native, and backend apps. This guide provides context and instructions for AI coding agents working on the Appwrite codebase.
## Project Overview
Appwrite is a self-hosted Backend-as-a-Service (BaaS) platform that provides developers with a set of APIs and tools to build secure, scalable applications. The project uses a hybrid monolithic-microservice architecture built with PHP, running on Swoole for high performance.
**Key Technologies:**
- **Backend:** PHP 8.3+, Swoole
- **Libraries:** Utopia PHP
- **Database:** MariaDB, Redis
- **Cache:** Redis
- **Queue:** Redis
- **Containers:** Docker
## Development Commands
```bash
# Run Appwrite
docker compose up -d --force-recreate --build
# Run specific test
docker compose exec appwrite test /usr/src/code/tests/e2e/Services/[ServiceName] --filter=[FunctionName]
# Format code
composer format
```
## Code Style Guidelines
- Follow [PSR-12](https://www.php-fig.org/psr/psr-12/) coding standard
- Use PSR-4 autoloading
- Strict type declarations where applicable
- Comprehensive PHPDoc comments
### Naming Conventions
#### `resourceType` Naming Rule
When a collection has a combination of `resourceType`, `resourceId`, and/or `resourceInternalId`, the value of `resourceType` MUST always be **plural** - for example: `functions`, `sites`, `deployments`.
Examples:
```php
'resourceType' => 'functions'
'resourceType' => 'sites'
'resourceType' => 'deployments'
```
## Security Considerations
### Critical Security Practices
- **Never hardcode credentials** - Use environment variables
- **Rate limiting** - Respect abuse prevention mechanisms
## Dependencies
Avoid introducing new dependencies other than utopia-php.
## Adding new endpoints
When adding new endpoints, make sure to use modules and follow its patterns. Find instruction in [Modules AGENTS.md](src/Appwrite/Platform/AGENTS.md) file.
## Pull Request Guidelines
### Before Submitting
- Run `composer format`
- Update documentation if adding features
- Add/update tests for your changes
- Check that Docker build succeeds
`docs/specs/authentication.drawio.svg`
## Known Issues and Gotchas
- **Hot Reload:** Code changes require container restart in some cases
- **Logging:** There is no central place for logs, so when debugging, ensure to check all possibly relevant containers
+98
View File
@@ -1,3 +1,101 @@
# Version 1.8.1
## What's Changed
### Notable changes
* Add branch deployments support in [#10486](https://github.com/appwrite/appwrite/pull/10486)
* Add TanStack Start sites support in [#10681](https://github.com/appwrite/appwrite/pull/10681)
* Add Next.js standalone support in [#10747](https://github.com/appwrite/appwrite/pull/10747)
* Add Resend integration in [#10690](https://github.com/appwrite/appwrite/pull/10690)
* Add option to enable/disable image transformations per-bucket in [#10722](https://github.com/appwrite/appwrite/pull/10722)
* Add operators support in [#10735](https://github.com/appwrite/appwrite/pull/10735) and [#10800](https://github.com/appwrite/appwrite/pull/10800)
* Add function and sites stats in [#10786](https://github.com/appwrite/appwrite/pull/10786)
* Add disable count feature in [#10668](https://github.com/appwrite/appwrite/pull/10668)
* Add ElevenLabs site template in [#10782](https://github.com/appwrite/appwrite/pull/10782)
* Add suggested environment variables in [#10795](https://github.com/appwrite/appwrite/pull/10795)
* Update GeoDB database in [#10890](https://github.com/appwrite/appwrite/pull/10890)
* Update Flutter default build runtime in [#10807](https://github.com/appwrite/appwrite/pull/10807)
* Upgrade runtimes in [#10804](https://github.com/appwrite/appwrite/pull/10804)
### Fixes
* Fix duplicate document error while creating file in [#10891](https://github.com/appwrite/appwrite/pull/10891)
* Fix "Update external deployment (authorize)" throwing 500 error due to invalid query in [#10888](https://github.com/appwrite/appwrite/pull/10888)
* Fix error setting user password in [#10889](https://github.com/appwrite/appwrite/pull/10889)
* Fix error generating email MFA challenges in [#10884](https://github.com/appwrite/appwrite/pull/10884)
* Fix file token expiry in [#10877](https://github.com/appwrite/appwrite/pull/10877)
* Fix TanStack Nitro default in [#10860](https://github.com/appwrite/appwrite/pull/10860)
* Fix TanStack builds in [#10767](https://github.com/appwrite/appwrite/pull/10767)
* Fix nullable validation in [#10819](https://github.com/appwrite/appwrite/pull/10819) and [#10778](https://github.com/appwrite/appwrite/pull/10778)
* Fix WebP library in [#10738](https://github.com/appwrite/appwrite/pull/10738)
* Fix batch writes in [#10812](https://github.com/appwrite/appwrite/pull/10812)
* Fix error handler error in [#10719](https://github.com/appwrite/appwrite/pull/10719)
* Fix Next 16 compatibility in [#10713](https://github.com/appwrite/appwrite/pull/10713)
* Fix stats usage memory leak in [#10683](https://github.com/appwrite/appwrite/pull/10683)
* Fix author URL in template deployments in [#10535](https://github.com/appwrite/appwrite/pull/10535)
* Fix VCS lock deletion in [#10691](https://github.com/appwrite/appwrite/pull/10691)
### Miscellaneous
* Add CSV export functionality in [#10546](https://github.com/appwrite/appwrite/pull/10546), [#10750](https://github.com/appwrite/appwrite/pull/10750), [#10813](https://github.com/appwrite/appwrite/pull/10813), and [#10847](https://github.com/appwrite/appwrite/pull/10847)
* Add JWT disposition in [#10867](https://github.com/appwrite/appwrite/pull/10867)
* Add screenshots endpoint in [#10675](https://github.com/appwrite/appwrite/pull/10675)
* Add screenshot endpoint stats in [#10706](https://github.com/appwrite/appwrite/pull/10706)
* Add users attributes in [#10688](https://github.com/appwrite/appwrite/pull/10688)
* Add max build duration environment variable in [#10674](https://github.com/appwrite/appwrite/pull/10674)
* Add custom realtime logger in [#10871](https://github.com/appwrite/appwrite/pull/10871)
* Add logs in [#10869](https://github.com/appwrite/appwrite/pull/10869)
* Improve MFA docs endpoint order in [#10793](https://github.com/appwrite/appwrite/pull/10793)
* Auth refactor in [#10758](https://github.com/appwrite/appwrite/pull/10758), [#10837](https://github.com/appwrite/appwrite/pull/10837), [#10682](https://github.com/appwrite/appwrite/pull/10682), and [#10667](https://github.com/appwrite/appwrite/pull/10667)
* Bump assistant to 0.8.4 in [#10887](https://github.com/appwrite/appwrite/pull/10887)
* Bump database to 3.1.5 in [#10766](https://github.com/appwrite/appwrite/pull/10766)
* Bump Utopia DNS in [#10761](https://github.com/appwrite/appwrite/pull/10761)
* Update domains to 0.8.3 in [#10658](https://github.com/appwrite/appwrite/pull/10658)
* Update domains to 0.9.1 in [#10678](https://github.com/appwrite/appwrite/pull/10678)
* Update Apple Swift to 13.3.0 in [#10679](https://github.com/appwrite/appwrite/pull/10679)
* Update Apple Swift in [#10663](https://github.com/appwrite/appwrite/pull/10663)
* Update CLI to 10.2.2 in [#10672](https://github.com/appwrite/appwrite/pull/10672)
* Update to CLI 12.0.0 in [#10853](https://github.com/appwrite/appwrite/pull/10853)
* Update docs examples to use Permission class in [#10707](https://github.com/appwrite/appwrite/pull/10707)
* Update SDK examples docs in [#10855](https://github.com/appwrite/appwrite/pull/10855)
* Release Python SDK in [#10762](https://github.com/appwrite/appwrite/pull/10762)
* Release Flutter 20.3.2 in [#10838](https://github.com/appwrite/appwrite/pull/10838)
* Release Flutter/Dart add screenshot examples in [#10811](https://github.com/appwrite/appwrite/pull/10811)
* Release PHP CLI in [#10791](https://github.com/appwrite/appwrite/pull/10791)
* Release SDKs in [#10817](https://github.com/appwrite/appwrite/pull/10817)
* Update SDKs in [#10694](https://github.com/appwrite/appwrite/pull/10694), [#10729](https://github.com/appwrite/appwrite/pull/10729), and [#10744](https://github.com/appwrite/appwrite/pull/10744)
* Update SDK generator in [#10743](https://github.com/appwrite/appwrite/pull/10743)
* Update database in [#10664](https://github.com/appwrite/appwrite/pull/10664)
* Update README file in [#10763](https://github.com/appwrite/appwrite/pull/10763)
* SDK release documentation in [#10745](https://github.com/appwrite/appwrite/pull/10745)
* SDK release runtime config in [#10765](https://github.com/appwrite/appwrite/pull/10765)
* Sync specs in [#10789](https://github.com/appwrite/appwrite/pull/10789)
* Sync 1.8.0 in [#10677](https://github.com/appwrite/appwrite/pull/10677)
* Add workflow for issue triage in [#10718](https://github.com/appwrite/appwrite/pull/10718)
* Add issue auto-labeler in [#10700](https://github.com/appwrite/appwrite/pull/10700)
* Add AI moderator repo in [#10717](https://github.com/appwrite/appwrite/pull/10717)
* Browser bump in [#10850](https://github.com/appwrite/appwrite/pull/10850)
* Template type enum override in [#10848](https://github.com/appwrite/appwrite/pull/10848)
* VCS reference type in [#10852](https://github.com/appwrite/appwrite/pull/10852)
* Index scope description in [#10851](https://github.com/appwrite/appwrite/pull/10851)
* Config for environment in [#10833](https://github.com/appwrite/appwrite/pull/10833)
* Format instance in [#10830](https://github.com/appwrite/appwrite/pull/10830)
* Replace sleep in webhooks service in [#10656](https://github.com/appwrite/appwrite/pull/10656)
* Update email composer in [#10720](https://github.com/appwrite/appwrite/pull/10720)
* Update facts on GitHub sites and functions in [#10593](https://github.com/appwrite/appwrite/pull/10593) and [#10771](https://github.com/appwrite/appwrite/pull/10771)
* Fix wrong user type in [#10875](https://github.com/appwrite/appwrite/pull/10875)
* Fix limit and offset computation in [#10880](https://github.com/appwrite/appwrite/pull/10880)
* Fix enum examples in [#10828](https://github.com/appwrite/appwrite/pull/10828)
* Fix response models multi-methods in [#10815](https://github.com/appwrite/appwrite/pull/10815)
* Fix undefined variable in [#10654](https://github.com/appwrite/appwrite/pull/10654)
* Fix undefined sequence in [#10652](https://github.com/appwrite/appwrite/pull/10652)
* Fix description in [#10702](https://github.com/appwrite/appwrite/pull/10702)
* Fix warning in builds worker in [#10705](https://github.com/appwrite/appwrite/pull/10705)
* Fix sites create deployment docs in [#10566](https://github.com/appwrite/appwrite/pull/10566)
* Fix test dependencies projects in [#10655](https://github.com/appwrite/appwrite/pull/10655)
* Fix list sites test in [#10726](https://github.com/appwrite/appwrite/pull/10726)
# Version 1.8.0
## What's Changed
+31 -13
View File
@@ -1,4 +1,4 @@
FROM composer:2.0 AS composer
FROM composer:2 AS composer
ARG TESTING=false
ENV TESTING=$TESTING
@@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
--no-plugins --no-scripts --prefer-dist \
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`
FROM appwrite/base:0.10.4 AS final
FROM appwrite/base:1.0.0 AS base
LABEL maintainer="team@appwrite.io"
@@ -24,11 +24,9 @@ ENV _APP_VERSION=$VERSION \
_APP_HOME=https://appwrite.io
RUN \
if [ "$DEBUG" == "true" ]; then \
if [ "$DEBUG" == "true" ]; then \
apk add boost boost-dev; \
fi
RUN apk add libwebp
fi
WORKDIR /usr/src/code
@@ -38,9 +36,10 @@ COPY --from=composer /usr/local/src/vendor /usr/src/code/vendor
COPY ./app /usr/src/code/app
COPY ./public /usr/src/code/public
COPY ./bin /usr/local/bin
COPY ./docs /usr/src/code/docs
COPY ./src /usr/src/code/src
COPY ./dev /usr/src/code/dev
COPY ./mongo-init.js /usr/src/code/mongo-init.js
COPY ./mongo-entrypoint.sh /usr/src/code/mongo-entrypoint.sh
# Set Volumes
RUN mkdir -p /storage/uploads && \
@@ -61,6 +60,7 @@ RUN mkdir -p /storage/uploads && \
# Executables
RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/install && \
chmod +x /usr/local/bin/interval && \
chmod +x /usr/local/bin/maintenance && \
chmod +x /usr/local/bin/migrate && \
chmod +x /usr/local/bin/realtime && \
@@ -80,9 +80,11 @@ RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/queue-count-success && \
chmod +x /usr/local/bin/worker-audits && \
chmod +x /usr/local/bin/worker-builds && \
chmod +x /usr/local/bin/worker-screenshots && \
chmod +x /usr/local/bin/worker-certificates && \
chmod +x /usr/local/bin/worker-databases && \
chmod +x /usr/local/bin/worker-deletes && \
chmod +x /usr/local/bin/worker-executions && \
chmod +x /usr/local/bin/worker-functions && \
chmod +x /usr/local/bin/worker-mails && \
chmod +x /usr/local/bin/worker-messaging && \
@@ -92,14 +94,30 @@ RUN chmod +x /usr/local/bin/doctor && \
chmod +x /usr/local/bin/stats-resources && \
chmod +x /usr/local/bin/worker-stats-resources
# Letsencrypt Permissions
RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/
# Enable Extensions
RUN if [ "$DEBUG" = "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
RUN if [ "$DEBUG" = "true" ]; then mkdir -p /tmp/xdebug; fi
RUN if [ "$DEBUG" = "false" ]; then rm -rf /usr/src/code/dev; fi
RUN if [ "$DEBUG" = "false" ]; then rm -f /usr/local/lib/php/extensions/no-debug-non-zts-20230831/xdebug.so; fi
FROM base AS production
RUN rm -rf /usr/src/code/app/config/specs && \
rm -f /usr/local/lib/php/extensions/no-debug-non-zts-20240924/xdebug.so && \
find /usr -name '*.a' -delete 2>/dev/null || true && \
find /usr -type d -name '__pycache__' -exec rm -rf {} + 2>/dev/null || true && \
find /usr -name '*.pyc' -delete 2>/dev/null || true
EXPOSE 80
CMD [ "php", "app/http.php" ]
FROM base AS development
COPY ./docs /usr/src/code/docs
COPY ./dev /usr/src/code/dev
RUN if [ "$DEBUG" = "true" ]; then \
cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini && \
mkdir -p /tmp/xdebug && \
apk add --update --no-cache openssh-client github-cli; \
fi
EXPOSE 80
+26 -29
View File
@@ -2,7 +2,7 @@
<br />
<p align="center">
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner with logo and slogan build like a team of hundreds""></a>
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner, with logo and text saying "The Developer's Cloud""></a>
<br />
<br />
<b>适用于[Flutter/Vue/Angular/React/iOS/Android/* 等等平台 *]的完整后端服务</b>
@@ -36,7 +36,6 @@ Appwrite 可以提供给开发者用户验证,外部授权,用户数据读
内容:
- [开始](#开始)
- [安装](#安装)
- [Unix](#unix)
@@ -57,7 +56,8 @@ Appwrite 可以提供给开发者用户验证,外部授权,用户数据读
- [版权说明](#版权说明)
## 开始
要轻松开始使用Appwrite,您可以[**免费注册Appwrite Cloud**](https://cloud.appwrite.io/)。在Appwrite Cloud公开测试版期间,您可以完全免费使用Appwrite,而且我们不会收集您的信用卡信息。
要轻松开始使用 Appwrite,您可以[**免费注册 Appwrite Cloud**](https://cloud.appwrite.io/)。在 Appwrite Cloud 公开测试版期间,您可以完全免费使用 Appwrite,而且我们不会收集您的信用卡信息。
## 安装
@@ -72,7 +72,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
### Windows
@@ -84,7 +84,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
#### PowerShell
@@ -94,7 +94,7 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" `
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
@@ -119,22 +119,16 @@ docker run -it --rm `
<br /><sub><b>DigitalOcean</b></sub></a>
</a>
</td>
<td align="center" width="100" height="100">
<a href="https://gitpod.io/#https://github.com/appwrite/integration-for-gitpod">
<img width="50" height="39" src="public/images/integrations/gitpod-logo.svg" alt="Gitpod Logo" />
<br /><sub><b>Gitpod</b></sub></a>
</a>
</td>
<td align="center" width="100" height="100">
<a href="https://www.linode.com/marketplace/apps/appwrite/appwrite/">
<img width="50" height="39" src="public/images/integrations/akamai-logo.svg" alt="Akamai Logo" />
<br /><sub><b>Akamai Compute</b></sub></a>
<br /><sub><b>Akamai Compute</b></sub></a>
</a>
</td>
<td align="center" width="100" height="100">
<a href="https://aws.amazon.com/marketplace/pp/prodview-2hiaeo2px4md6">
<img width="50" height="39" src="public/images/integrations/aws-logo.svg" alt="AWS Logo" />
<br /><sub><b>AWS Marketplace</b></sub></a>
<br /><sub><b>AWS Marketplace</b></sub></a>
</a>
</td>
</tr>
@@ -188,25 +182,28 @@ docker run -it --rm `
以下是当前支持的平台和语言列表。如果您想帮助我们为您选择的平台添加支持,您可以访问我们的 [SDK 生成器](https://github.com/appwrite/sdk-generator) 项目并查看我们的 [贡献指南](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md)。
#### 客户端
* :white_check_mark: &nbsp; [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Web](https://github.com/appwrite/sdk-for-web) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Flutter](https://github.com/appwrite/sdk-for-flutter) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Android](https://github.com/appwrite/sdk-for-android) (由 Appwrite 团队维护)
#### 服务器
* :white_check_mark: &nbsp; [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Dart](https://github.com/appwrite/sdk-for-dart) - (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Deno](https://github.com/appwrite/sdk-for-deno) - **公测** (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **公测** (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
* :white_check_mark: &nbsp; [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [NodeJS](https://github.com/appwrite/sdk-for-node) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [PHP](https://github.com/appwrite/sdk-for-php) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Dart](https://github.com/appwrite/sdk-for-dart) - (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Deno](https://github.com/appwrite/sdk-for-deno) - **公测** (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Ruby](https://github.com/appwrite/sdk-for-ruby) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Python](https://github.com/appwrite/sdk-for-python) (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Kotlin](https://github.com/appwrite/sdk-for-kotlin) - **公测** (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [Apple](https://github.com/appwrite/sdk-for-apple) - **公测** (由 Appwrite 团队维护)
- :white_check_mark: &nbsp; [.NET](https://github.com/appwrite/sdk-for-dotnet) - **公测** (由 Appwrite 团队维护)
#### 开发者社区
* :white_check_mark: &nbsp; [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
* :white_check_mark: &nbsp; [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
- :white_check_mark: &nbsp; [Appcelerator Titanium](https://github.com/m1ga/ti.appwrite) (维护者 [Michael Gangolf](https://github.com/m1ga/))
- :white_check_mark: &nbsp; [Godot Engine](https://github.com/GodotNuts/appwrite-sdk) (维护者 [fenix-hub @GodotNuts](https://github.com/fenix-hub))
找不到需要的的 SDK? - 欢迎通过发起 PR 来帮助我们完善 Appwrite 的软件生态环境 [SDK 生成器](https://github.com/appwrite/sdk-generator)!
+6 -19
View File
@@ -1,4 +1,4 @@
> We just announced Transactions API for Appwrite Databases - [Learn more](https://appwrite.io/blog/post/announcing-transactions-api)
> We just announced DB operators for Appwrite Databases - [Learn more](https://appwrite.io/blog/post/announcing-db-operators)
> Appwrite Cloud is now Generally Available - [Learn more](https://appwrite.io/cloud-ga)
@@ -6,10 +6,10 @@
<br />
<p align="center">
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner, with logo and text saying "Build Like a Team of Hundreds"></a>
<a href="https://appwrite.io" target="_blank"><img src="./public/images/banner.png" alt="Appwrite banner, with logo and text saying "The Developer's Cloud"></a>
<br />
<br />
<b>Appwrite is an all-in-one development platform for Web, Mobile, and Flutter applications. Use built-in backend infrastructure and web hosting, all from a single place. Built with the open source community and optimized for developer experience in the coding languages you love.</b>
<b>Appwrite is a best-in-class, developer-first platform that gives builders everything they need to create scalable, stable, and production-ready software, fast.</b>
<br />
<br />
</p>
@@ -32,13 +32,6 @@ Appwrite is an end-to-end platform for building Web, Mobile, Native, or Backend
Using Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, messaging, and [more services](https://appwrite.io/docs).
<p align="center">
<br />
<a href="https://www.producthunt.com/posts/appwrite-2?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-appwrite-2" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=360315&theme=light&period=daily" alt="Appwrite - 100&#0037;&#0032;open&#0032;source&#0032;alternative&#0032;for&#0032;Firebase | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
<br />
<br />
</p>
![Appwrite project dashboard showing various Appwrite features](public/images/github.png)
Find out more at: [https://appwrite.io](https://appwrite.io).
@@ -82,7 +75,7 @@ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
### Windows
@@ -94,7 +87,7 @@ docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
#### PowerShell
@@ -104,7 +97,7 @@ docker run -it --rm `
--volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" `
appwrite/appwrite:1.8.0
appwrite/appwrite:1.8.1
```
Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation.
@@ -129,12 +122,6 @@ Choose from one of the providers below:
<br /><sub><b>DigitalOcean</b></sub></a>
</a>
</td>
<td align="center" width="100" height="100">
<a href="https://gitpod.io/#https://github.com/appwrite/integration-for-gitpod">
<img width="50" height="39" src="public/images/integrations/gitpod-logo.svg" alt="Gitpod Logo" />
<br /><sub><b>Gitpod</b></sub></a>
</a>
</td>
<td align="center" width="100" height="100">
<a href="https://www.linode.com/marketplace/apps/appwrite/appwrite/">
<img width="50" height="39" src="public/images/integrations/akamai-logo.svg" alt="Akamai Logo" />
Binary file not shown.
Binary file not shown.
+78 -44
View File
@@ -9,19 +9,20 @@ use Appwrite\Event\StatsResources;
use Appwrite\Event\StatsUsage;
use Appwrite\Platform\Appwrite;
use Appwrite\Runtimes\Runtimes;
use Appwrite\Utopia\Database\Documents\User;
use Executor\Executor;
use Swoole\Runtime;
use Swoole\Timer;
use Utopia\Cache\Adapter\Pool as CachePool;
use Utopia\Cache\Adapter\Sharding;
use Utopia\Cache\Cache;
use Utopia\CLI\CLI;
use Utopia\CLI\Console;
use Utopia\Config\Config;
use Utopia\Console;
use Utopia\Database\Adapter\Pool as DatabasePool;
use Utopia\Database\Database;
use Utopia\Database\Document;
use Utopia\Database\Validator\Authorization;
use Utopia\DI\Dependency;
use Utopia\DSN\DSN;
use Utopia\Logger\Log;
use Utopia\Platform\Service;
@@ -40,11 +41,33 @@ Config::setParam('runtimes', (new Runtimes('v5'))->getAll(supported: false));
// require controllers after overwriting runtimes
require_once __DIR__ . '/controllers/general.php';
Authorization::disable();
global $register;
CLI::setResource('register', fn () => $register);
$platform = new Appwrite();
$args = $platform->getEnv('argv');
CLI::setResource('cache', function ($pools) {
\array_shift($args);
if (!isset($args[0])) {
Console::error('Missing task name');
Console::exit(1);
}
$taskName = $args[0];
$platform->init(Service::TYPE_TASK);
$cli = $platform->getCli();
$setResource = function (string $name, callable $callback, array $injections = []) use ($cli) {
$dependency = new Dependency();
$dependency->setName($name)->setCallback($callback);
foreach ($injections as $injection) {
$dependency->inject($injection);
}
$cli->setResource($dependency);
};
$setResource('register', fn () => $register, []);
$setResource('cache', function ($pools) {
$list = Config::getParam('pools-cache', []);
$adapters = [];
@@ -55,11 +78,17 @@ CLI::setResource('cache', function ($pools) {
return new Cache(new Sharding($adapters));
}, ['pools']);
CLI::setResource('pools', function (Registry $register) {
$setResource('pools', function (Registry $register) {
return $register->get('pools');
}, ['register']);
CLI::setResource('dbForPlatform', function ($pools, $cache) {
$setResource('authorization', function () {
$authorization = new Authorization();
$authorization->disable();
return $authorization;
}, []);
$setResource('dbForPlatform', function ($pools, $cache, $authorization) {
$sleep = 3;
$maxAttempts = 5;
$attempts = 0;
@@ -73,9 +102,12 @@ CLI::setResource('dbForPlatform', function ($pools, $cache) {
$dbForPlatform = new Database($adapter, $cache);
$dbForPlatform
->setDatabase(APP_DATABASE)
->setAuthorization($authorization)
->setNamespace('_console')
->setMetadata('host', \gethostname())
->setMetadata('project', 'console');
$dbForPlatform->setDocumentType('users', User::class);
// Ensure tables exist
$collections = Config::getParam('collections', [])['console'];
@@ -97,21 +129,22 @@ CLI::setResource('dbForPlatform', function ($pools, $cache) {
}
return $dbForPlatform;
}, ['pools', 'cache']);
}, ['pools', 'cache', 'authorization']);
CLI::setResource('console', function () {
$setResource('console', function () {
return new Document(Config::getParam('console'));
}, []);
CLI::setResource(
$setResource(
'isResourceBlocked',
fn () => fn (Document $project, string $resourceType, ?string $resourceId) => false
fn () => fn (Document $project, string $resourceType, ?string $resourceId) => false,
[]
);
CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform, $cache) {
$setResource('getProjectDB', function (Group $pools, Database $dbForPlatform, $cache, $authorization) {
$databases = []; // TODO: @Meldiron This should probably be responsibility of utopia-php/pools
return function (Document $project) use ($pools, $dbForPlatform, $cache, &$databases) {
return function (Document $project) use ($pools, $dbForPlatform, $cache, $authorization, &$databases) {
if ($project->isEmpty() || $project->getId() === 'console') {
return $dbForPlatform;
}
@@ -144,6 +177,7 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform
$adapter = new DatabasePool($pools->get($dsn->getHost()));
$database = new Database($adapter, $cache);
$databases[$dsn->getHost()] = $database;
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
@@ -160,17 +194,19 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForPlatform
}
$database
->setDatabase(APP_DATABASE)
->setAuthorization($authorization)
->setMetadata('host', \gethostname())
->setMetadata('project', $project->getId());
return $database;
};
}, ['pools', 'dbForPlatform', 'cache']);
}, ['pools', 'dbForPlatform', 'cache', 'authorization']);
CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
$setResource('getLogsDB', function (Group $pools, Cache $cache, Authorization $authorization) {
$database = null;
return function (?Document $project = null) use ($pools, $cache, $database) {
return function (?Document $project = null) use ($pools, $cache, $database, $authorization) {
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
$database->setTenant((int)$project->getSequence());
return $database;
@@ -180,6 +216,8 @@ CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
$database = new Database($adapter, $cache);
$database
->setDatabase(APP_DATABASE)
->setAuthorization($authorization)
->setSharedTables(true)
->setNamespace('logsV1')
->setTimeout(APP_DATABASE_TIMEOUT_MILLISECONDS_TASK)
@@ -192,41 +230,41 @@ CLI::setResource('getLogsDB', function (Group $pools, Cache $cache) {
return $database;
};
}, ['pools', 'cache']);
CLI::setResource('publisher', function (Group $pools) {
}, ['pools', 'cache', 'authorization']);
$setResource('publisher', function (Group $pools) {
return new BrokerPool(publisher: $pools->get('publisher'));
}, ['pools']);
CLI::setResource('publisherDatabases', function (BrokerPool $publisher) {
$setResource('publisherDatabases', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherFunctions', function (BrokerPool $publisher) {
$setResource('publisherFunctions', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherMigrations', function (BrokerPool $publisher) {
$setResource('publisherMigrations', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherStatsUsage', function (BrokerPool $publisher) {
$setResource('publisherStatsUsage', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherMessaging', function (BrokerPool $publisher) {
$setResource('publisherMessaging', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('queueForStatsUsage', function (Publisher $publisher) {
$setResource('queueForStatsUsage', function (Publisher $publisher) {
return new StatsUsage($publisher);
}, ['publisher']);
CLI::setResource('queueForStatsResources', function (Publisher $publisher) {
$setResource('queueForStatsResources', function (Publisher $publisher) {
return new StatsResources($publisher);
}, ['publisher']);
CLI::setResource('queueForFunctions', function (Publisher $publisher) {
$setResource('queueForFunctions', function (Publisher $publisher) {
return new Func($publisher);
}, ['publisher']);
CLI::setResource('queueForDeletes', function (Publisher $publisher) {
$setResource('queueForDeletes', function (Publisher $publisher) {
return new Delete($publisher);
}, ['publisher']);
CLI::setResource('queueForCertificates', function (Publisher $publisher) {
$setResource('queueForCertificates', function (Publisher $publisher) {
return new Certificate($publisher);
}, ['publisher']);
CLI::setResource('logError', function (Registry $register) {
$setResource('logError', function (Registry $register) {
return function (Throwable $error, string $namespace, string $action) use ($register) {
Console::error('[Error] Timestamp: ' . date('c', time()));
Console::error('[Error] Type: ' . get_class($error));
@@ -255,6 +293,14 @@ CLI::setResource('logError', function (Registry $register) {
$log->addExtra('trace', $error->getTraceAsString());
$log->addExtra('detailedTrace', $error->getTrace());
if ($error->getPrevious() !== null) {
if ($error->getPrevious()->getMessage() != $error->getMessage()) {
$log->addExtra('previousMessage', $error->getPrevious()->getMessage());
}
$log->addExtra('previousFile', $error->getPrevious()->getFile());
$log->addExtra('previousLine', $error->getPrevious()->getLine());
}
$log->setAction($action);
$isProduction = System::getEnv('_APP_ENV', 'development') === 'production';
@@ -270,22 +316,9 @@ CLI::setResource('logError', function (Registry $register) {
};
}, ['register']);
CLI::setResource('executor', fn () => new Executor());
$setResource('executor', fn () => new Executor(), []);
CLI::setResource('telemetry', fn () => new NoTelemetry());
$platform = new Appwrite();
$args = $platform->getEnv('argv');
if (!isset($args[0])) {
Console::error('Missing task name');
Console::exit(1);
}
\array_shift($args);
$taskName = $args[0];
$platform->init(Service::TYPE_TASK);
$cli = $platform->getCli();
$setResource('telemetry', fn () => new NoTelemetry(), []);
$cli
->error()
@@ -304,4 +337,5 @@ $cli
$cli->shutdown()->action(fn () => Timer::clearAll());
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
require_once __DIR__ . '/init/span.php';
run($cli->run(...));
+2 -2
View File
@@ -26,8 +26,8 @@ unset($common['files']);
$collections = [
'buckets' => $buckets,
'databases' => $databases,
'projects' => array_merge($projects, $common),
'console' => array_merge($platform, $common),
'projects' => array_merge_recursive($projects, $common),
'console' => array_merge_recursive($platform, $common),
'logs' => $logs,
];
+81 -24
View File
@@ -1,6 +1,6 @@
<?php
use Appwrite\Auth\Auth;
use Utopia\Auth\Hashes\Argon2;
use Utopia\Database\Database;
use Utopia\Database\Helpers\ID;
@@ -173,7 +173,7 @@ return [
'size' => 256,
'signed' => true,
'required' => false,
'default' => Auth::DEFAULT_ALGO,
'default' => (new Argon2())->getName(),
'array' => false,
'filters' => [],
],
@@ -184,7 +184,7 @@ return [
'size' => 65535,
'signed' => true,
'required' => false,
'default' => Auth::DEFAULT_ALGO_OPTIONS,
'default' => (new Argon2())->getOptions(),
'array' => false,
'filters' => ['json'],
],
@@ -364,6 +364,61 @@ return [
'array' => false,
'filters' => ['datetime'],
],
[
'$id' => ID::custom('emailCanonical'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 320,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('emailIsFree'),
'type' => Database::VAR_BOOLEAN,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('emailIsDisposable'),
'type' => Database::VAR_BOOLEAN,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('emailIsCorporate'),
'type' => Database::VAR_BOOLEAN,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('emailIsCanonical'),
'type' => Database::VAR_BOOLEAN,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
],
'indexes' => [
[
@@ -1233,6 +1288,17 @@ return [
'array' => false,
'filters' => ['json'],
],
[
'$id' => ID::custom('labels'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => true,
'required' => false,
'default' => null,
'array' => true,
'filters' => [],
],
],
'indexes' => [
[
@@ -1527,6 +1593,17 @@ return [
'required' => true,
'array' => false,
],
[
'$id' => ID::custom('transformations'),
'type' => Database::VAR_BOOLEAN,
'signed' => true,
'size' => 0,
'format' => '',
'filters' => [],
'required' => false,
'array' => false,
'default' => true,
],
[
'$id' => ID::custom('search'),
'type' => Database::VAR_STRING,
@@ -1540,13 +1617,6 @@ return [
],
],
'indexes' => [
[
'$id' => ID::custom('_fulltext_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [],
],
[
'$id' => ID::custom('_key_search'),
'type' => Database::INDEX_FULLTEXT,
@@ -1776,13 +1846,6 @@ return [
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_type'),
'type' => Database::INDEX_KEY,
@@ -2050,14 +2113,8 @@ return [
'filters' => ['topicSearch'],
],
],
'indexes' => [
[
'$id' => ID::custom('_key_name'),
'type' => Database::INDEX_FULLTEXT,
'attributes' => ['name'],
'lengths' => [],
'orders' => [],
],
[
'$id' => ID::custom('_key_search'),
'type' => Database::INDEX_FULLTEXT,
+104 -32
View File
@@ -6,7 +6,7 @@ use Utopia\Database\Helpers\ID;
$providers = Config::getParam('oAuthProviders', []);
return [
$platformCollections = [
'projects' => [
'$collection' => ID::custom(Database::METADATA),
'$id' => ID::custom('projects'),
@@ -330,7 +330,29 @@ return [
'default' => null,
'array' => false,
'filters' => ['datetime'],
]
],
[
'$id' => ID::custom('labels'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => true,
'required' => false,
'default' => [],
'array' => true,
'filters' => [],
],
[
'$id' => 'status',
'type' => Database::VAR_STRING,
'format' => '',
'size' => 100,
'signed' => false,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
],
'indexes' => [
[
@@ -622,24 +644,35 @@ return [
'name' => 'keys',
'attributes' => [
[
'$id' => ID::custom('projectInternalId'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
'required' => true,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('projectId'),
'$id' => ID::custom('resourceType'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
'required' => false,
'default' => 0,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('resourceId'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('resourceInternalId'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
],
@@ -712,14 +745,14 @@ return [
],
'indexes' => [
[
'$id' => ID::custom('_key_project'),
'$id' => ID::custom('_key_resource'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectInternalId'],
'lengths' => [Database::LENGTH_KEY],
'orders' => [Database::ORDER_ASC],
'attributes' => ['resourceType', 'resourceInternalId'],
'lengths' => [],
'orders' => [],
],
[
'$id' => '_key_accessedAt',
'$id' => ID::custom('_key_accessedAt'),
'type' => Database::INDEX_KEY,
'attributes' => ['accessedAt'],
'lengths' => [],
@@ -1317,6 +1350,17 @@ return [
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('logs'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 1000000,
'signed' => true,
'required' => false,
'default' => '',
'array' => false,
'filters' => [],
],
],
'indexes' => [
[
@@ -1351,21 +1395,21 @@ return [
'$id' => '_key_type',
'type' => Database::INDEX_KEY,
'attributes' => ['type'],
'lengths' => [32],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => '_key_trigger',
'type' => Database::INDEX_KEY,
'attributes' => ['trigger'],
'lengths' => [32],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => '_key_deploymentResourceType',
'type' => Database::INDEX_KEY,
'attributes' => ['deploymentResourceType'],
'lengths' => [32],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
@@ -1407,23 +1451,23 @@ return [
'$id' => ID::custom('_key_owner'),
'type' => Database::INDEX_KEY,
'attributes' => ['owner'],
'lengths' => [16],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_region'),
'type' => Database::INDEX_KEY,
'attributes' => ['region'],
'lengths' => [16],
'orders' => [Database::ORDER_ASC],
],
[
'$id' => ID::custom('_key_piid_riid_rt'),
'$id' => ID::custom('_key_piid_diid_drt'),
'type' => Database::INDEX_KEY,
'attributes' => ['projectInternalId', 'deploymentInternalId', 'deploymentResourceType'],
'lengths' => [],
'orders' => [],
],
[
'$id' => '_key_region_status_createdAt',
'type' => Database::INDEX_KEY,
'attributes' => ['region', 'status', '$createdAt'],
'lengths' => [],
'orders' => [],
],
],
],
@@ -1892,3 +1936,31 @@ return [
'indexes' => []
],
];
// Organization API keys subquery
$platformCollections['teams']['attributes'][] = [
'$id' => ID::custom('keys'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 16384,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => ['subQueryOrganizationKeys'],
];
// Account API keys subquery
$platformCollections['users']['attributes'][] = [
'$id' => ID::custom('keys'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 16384,
'signed' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => ['subQueryAccountKeys'],
];
return $platformCollections;
+107 -1
View File
@@ -567,6 +567,17 @@ return [
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('deploymentRetention'),
'type' => Database::VAR_INTEGER,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => 0,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('deploymentInternalId'),
'type' => Database::VAR_STRING,
@@ -765,6 +776,17 @@ return [
'default' => null,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('startCommand'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 20000,
'signed' => true,
'required' => false,
'default' => null,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('specification'),
@@ -776,6 +798,28 @@ return [
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('buildSpecification'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => false,
'required' => false,
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('runtimeSpecification'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => false,
'required' => false,
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'$id' => ID::custom('scopes'),
'type' => Database::VAR_STRING,
@@ -1035,6 +1079,17 @@ return [
'default' => null,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('startCommand'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 20000,
'signed' => true,
'required' => false,
'default' => null,
'filters' => [],
],
[
'$id' => ID::custom('fallbackFile'),
'type' => Database::VAR_STRING,
@@ -1046,6 +1101,17 @@ return [
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('deploymentRetention'),
'type' => Database::VAR_INTEGER,
'format' => '',
'size' => 0,
'signed' => true,
'required' => false,
'default' => 0,
'array' => false,
'filters' => [],
],
[
'$id' => ID::custom('deploymentInternalId'),
'type' => Database::VAR_STRING,
@@ -1200,6 +1266,28 @@ return [
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('buildSpecification'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => false,
'required' => false,
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('runtimeSpecification'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 128,
'signed' => false,
'required' => false,
'default' => APP_COMPUTE_SPECIFICATION_DEFAULT,
'filters' => [],
],
[
'$id' => ID::custom('buildRuntime'),
'type' => Database::VAR_STRING,
@@ -1357,6 +1445,17 @@ return [
'default' => null,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('startCommand'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 20000,
'signed' => true,
'required' => false,
'default' => null,
'filters' => [],
],
[
'array' => false,
'$id' => ID::custom('buildOutput'),
@@ -2098,6 +2197,13 @@ return [
'lengths' => [],
'orders' => [],
],
[
'$id' => ID::custom('_key_resourceType'),
'type' => Database::INDEX_KEY,
'attributes' => ['resourceType'],
'lengths' => [],
'orders' => [Database::ORDER_ASC],
],
],
],
@@ -2345,7 +2451,7 @@ return [
'$id' => ID::custom('errors'),
'type' => Database::VAR_STRING,
'format' => '',
'size' => 65535,
'size' => 1_000_000,
'signed' => true,
'required' => true,
'default' => null,
+1 -2
View File
@@ -4,7 +4,6 @@
* Initializes console project document.
*/
use Appwrite\Auth\Auth;
use Appwrite\Network\Platform;
use Utopia\Database\Helpers\ID;
use Utopia\System\System;
@@ -38,7 +37,7 @@ $console = [
'mockNumbers' => [],
'invites' => System::getEnv('_APP_CONSOLE_INVITES', 'enabled') === 'enabled',
'limit' => (System::getEnv('_APP_CONSOLE_WHITELIST_ROOT', 'enabled') === 'enabled') ? 1 : 0, // limit signup to 1 user
'duration' => Auth::TOKEN_EXPIRATION_LOGIN_LONG, // 1 Year in seconds
'duration' => TOKEN_EXPIRATION_LOGIN_LONG, // 1 Year in seconds
'sessionAlerts' => System::getEnv('_APP_CONSOLE_SESSION_ALERTS', 'disabled') === 'enabled',
'invalidateSessions' => true
],
+53
View File
@@ -0,0 +1,53 @@
<?php
/**
* CORS Configuration
*
* Centralised list of allowed methods, headers, and exposed headers for CORS responses.
*/
return [
'allowedMethods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
'allowedHeaders' => [
'Accept',
'Origin',
'Cookie',
'Set-Cookie',
// Content
'Content-Type',
'Content-Range',
// Appwrite
'X-Appwrite-Project',
'X-Appwrite-Key',
'X-Appwrite-Dev-Key',
'X-Appwrite-Locale',
'X-Appwrite-Mode',
'X-Appwrite-JWT',
'X-Appwrite-Response-Format',
'X-Appwrite-Timeout',
'X-Appwrite-ID',
'X-Appwrite-Timestamp',
'X-Appwrite-Session',
'X-Appwrite-Platform',
// SDK generator
'X-SDK-Version',
'X-SDK-Name',
'X-SDK-Language',
'X-SDK-Platform',
'X-SDK-GraphQL',
'X-SDK-Profile',
// Caching
'Range',
'Cache-Control',
'Expires',
'Pragma',
// Server to server
'X-Fallback-Cookies',
'X-Requested-With',
'X-Forwarded-For',
'X-Forwarded-User-Agent',
],
'exposedHeaders' => [
'X-Appwrite-Session',
'X-Fallback-Cookies',
],
];
+77 -38
View File
@@ -139,6 +139,11 @@ return [
'description' => 'There was an error processing your request. Please check the inputs and try again.',
'code' => 400,
],
Exception::GENERAL_FEATURE_UNSUPPORTED => [
'name' => Exception::GENERAL_FEATURE_UNSUPPORTED,
'description' => 'This feature is not supported with your current configuration.',
'code' => 400,
],
/** User Errors */
Exception::USER_COUNT_EXCEEDED => [
@@ -357,6 +362,11 @@ return [
'description' => 'API key and session used in the same request. Use either `setSession` or `setKey`. Learn about which authentication method to use in the SSR docs: https://appwrite.io/docs/products/auth/server-side-rendering',
'code' => 403,
],
Exception::USER_JWT_AND_COOKIE_SET => [
'name' => Exception::USER_JWT_AND_COOKIE_SET,
'description' => 'JWT and cookie used in the same request. Use either `setJWT` or `setCookie`. Learn about which authentication method to use in the SSR docs: https://appwrite.io/docs/products/auth/server-side-rendering',
'code' => 403,
],
Exception::API_KEY_EXPIRED => [
'name' => Exception::API_KEY_EXPIRED,
'description' => 'The dynamic API key has expired. Please don\'t use dynamic API keys for more than duration of the execution.',
@@ -522,6 +532,11 @@ return [
'description' => 'The requested file is not publicly readable.',
'code' => 403,
],
Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED => [
'name' => Exception::STORAGE_BUCKET_TRANSFORMATIONS_DISABLED,
'description' => 'Image transformations are disabled for the requested bucket.',
'code' => 403,
],
/** Tokens */
Exception::TOKEN_NOT_FOUND => [
@@ -683,12 +698,12 @@ return [
/** Databases */
Exception::DATABASE_NOT_FOUND => [
'name' => Exception::DATABASE_NOT_FOUND,
'description' => 'Database not found',
'description' => 'Database with the requested ID \'%s\' could not be found.',
'code' => 404
],
Exception::DATABASE_ALREADY_EXISTS => [
'name' => Exception::DATABASE_ALREADY_EXISTS,
'description' => 'Database already exists',
'description' => 'Database with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409
],
Exception::DATABASE_TIMEOUT => [
@@ -705,41 +720,41 @@ return [
/** Collections */
Exception::COLLECTION_NOT_FOUND => [
'name' => Exception::COLLECTION_NOT_FOUND,
'description' => 'Collection with the requested ID could not be found.',
'description' => 'Collection with the requested ID \'%s\' could not be found.',
'code' => 404,
],
Exception::COLLECTION_ALREADY_EXISTS => [
'name' => Exception::COLLECTION_ALREADY_EXISTS,
'description' => 'A collection with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'description' => 'A collection with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409,
],
Exception::COLLECTION_LIMIT_EXCEEDED => [
'name' => Exception::COLLECTION_LIMIT_EXCEEDED,
'description' => 'The maximum number of collections has been reached.',
'description' => 'The maximum number of collections for database \'%s\' has been reached.',
'code' => 400,
],
/** Tables */
Exception::TABLE_NOT_FOUND => [
'name' => Exception::TABLE_NOT_FOUND,
'description' => 'Table with the requested ID could not be found.',
'description' => 'Table with the requested ID \'%s\' could not be found.',
'code' => 404,
],
Exception::TABLE_ALREADY_EXISTS => [
'name' => Exception::TABLE_ALREADY_EXISTS,
'description' => 'A table with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'description' => 'A table with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409,
],
Exception::TABLE_LIMIT_EXCEEDED => [
'name' => Exception::TABLE_LIMIT_EXCEEDED,
'description' => 'The maximum number of tables has been reached.',
'description' => 'The maximum number of tables for database \'%s\' has been reached.',
'code' => 400,
],
/** Documents */
Exception::DOCUMENT_NOT_FOUND => [
'name' => Exception::DOCUMENT_NOT_FOUND,
'description' => 'Document with the requested ID could not be found.',
'description' => 'Document with the requested ID \'%s\' could not be found.',
'code' => 404,
],
Exception::DOCUMENT_INVALID_STRUCTURE => [
@@ -759,7 +774,7 @@ return [
],
Exception::DOCUMENT_ALREADY_EXISTS => [
'name' => Exception::DOCUMENT_ALREADY_EXISTS,
'description' => 'Document with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'description' => 'Document with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409,
],
Exception::DOCUMENT_UPDATE_CONFLICT => [
@@ -776,7 +791,7 @@ return [
/** Rows */
Exception::ROW_NOT_FOUND => [
'name' => Exception::ROW_NOT_FOUND,
'description' => 'Row with the requested ID could not be found.',
'description' => 'Row with the requested ID \'%s\' could not be found.',
'code' => 404,
],
Exception::ROW_INVALID_STRUCTURE => [
@@ -786,7 +801,7 @@ return [
],
Exception::ROW_MISSING_DATA => [
'name' => Exception::ROW_MISSING_DATA,
'description' => 'The row data is missing. Try again with row data populated',
'description' => 'The row data is missing. Try again with row data populated.',
'code' => 400,
],
Exception::ROW_MISSING_PAYLOAD => [
@@ -796,7 +811,7 @@ return [
],
Exception::ROW_ALREADY_EXISTS => [
'name' => Exception::ROW_ALREADY_EXISTS,
'description' => 'Row with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'description' => 'Row with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409,
],
Exception::ROW_UPDATE_CONFLICT => [
@@ -813,17 +828,17 @@ return [
/** Attributes */
Exception::ATTRIBUTE_NOT_FOUND => [
'name' => Exception::ATTRIBUTE_NOT_FOUND,
'description' => 'Attribute with the requested ID could not be found.',
'description' => 'Attribute with the requested key \'%s\' could not be found.',
'code' => 404,
],
Exception::ATTRIBUTE_UNKNOWN => [
'name' => Exception::ATTRIBUTE_UNKNOWN,
'description' => 'The attribute required for the index could not be found. Please confirm all your attributes are in the available state.',
'description' => 'The attribute \'%s\' required for the index could not be found. Please confirm all your attributes are in the available state.',
'code' => 400,
],
Exception::ATTRIBUTE_NOT_AVAILABLE => [
'name' => Exception::ATTRIBUTE_NOT_AVAILABLE,
'description' => 'The requested attribute is not yet available. Please try again later.',
'description' => 'The requested attribute \'%s\' is not yet available. Please try again later.',
'code' => 400,
],
Exception::ATTRIBUTE_FORMAT_UNSUPPORTED => [
@@ -838,12 +853,12 @@ return [
],
Exception::ATTRIBUTE_ALREADY_EXISTS => [
'name' => Exception::ATTRIBUTE_ALREADY_EXISTS,
'description' => 'Attribute with the requested key already exists. Attribute keys must be unique, try again with a different key.',
'description' => 'Attribute with the requested key \'%s\' already exists. Attribute keys must be unique, try again with a different key.',
'code' => 409,
],
Exception::ATTRIBUTE_LIMIT_EXCEEDED => [
'name' => Exception::ATTRIBUTE_LIMIT_EXCEEDED,
'description' => 'The maximum number or size of attributes for this collection has been reached.',
'description' => 'The maximum number or size of attributes for collection \'%s\' has been reached.',
'code' => 400,
],
Exception::ATTRIBUTE_VALUE_INVALID => [
@@ -853,7 +868,7 @@ return [
],
Exception::ATTRIBUTE_TYPE_INVALID => [
'name' => Exception::ATTRIBUTE_TYPE_INVALID,
'description' => 'The attribute type is invalid.',
'description' => 'The attribute \'%s\' type is invalid.',
'code' => 400,
],
Exception::ATTRIBUTE_INVALID_RESIZE => [
@@ -864,7 +879,7 @@ return [
Exception::ATTRIBUTE_TYPE_NOT_SUPPORTED => [
'name' => Exception::ATTRIBUTE_TYPE_NOT_SUPPORTED,
'description' => 'Attribute type is not supported.',
'description' => 'Attribute type \'%s\' is not supported.',
'code' => 400,
],
@@ -878,17 +893,17 @@ return [
/** Columns */
Exception::COLUMN_NOT_FOUND => [
'name' => Exception::COLUMN_NOT_FOUND,
'description' => 'Column with the requested ID could not be found.',
'description' => 'Column with the requested key \'%s\' could not be found.',
'code' => 404,
],
Exception::COLUMN_UNKNOWN => [
'name' => Exception::COLUMN_UNKNOWN,
'description' => 'The column required for the index could not be found. Please confirm all your columns are in the available state.',
'description' => 'The column \'%s\' required for the index could not be found. Please confirm all your columns are in the available state.',
'code' => 400,
],
Exception::COLUMN_NOT_AVAILABLE => [
'name' => Exception::COLUMN_NOT_AVAILABLE,
'description' => 'The requested column is not yet available. Please try again later.',
'description' => 'The requested column \'%s\' is not yet available. Please try again later.',
'code' => 400,
],
Exception::COLUMN_FORMAT_UNSUPPORTED => [
@@ -903,12 +918,12 @@ return [
],
Exception::COLUMN_ALREADY_EXISTS => [
'name' => Exception::COLUMN_ALREADY_EXISTS,
'description' => 'Column with the requested key already exists. Column keys must be unique, try again with a different key.',
'description' => 'Column with the requested key \'%s\' already exists. Column keys must be unique, try again with a different key.',
'code' => 409,
],
Exception::COLUMN_LIMIT_EXCEEDED => [
'name' => Exception::COLUMN_LIMIT_EXCEEDED,
'description' => 'The maximum number or size of columns for this table has been reached.',
'description' => 'The maximum number or size of columns for table \'%s\' has been reached.',
'code' => 400,
],
Exception::COLUMN_VALUE_INVALID => [
@@ -918,7 +933,7 @@ return [
],
Exception::COLUMN_TYPE_INVALID => [
'name' => Exception::COLUMN_TYPE_INVALID,
'description' => 'The column type is invalid.',
'description' => 'The column \'%s\' type is invalid.',
'code' => 400,
],
Exception::COLUMN_INVALID_RESIZE => [
@@ -928,24 +943,24 @@ return [
],
Exception::COLUMN_TYPE_NOT_SUPPORTED => [
'name' => Exception::COLUMN_TYPE_NOT_SUPPORTED,
'description' => 'Column type is not supported.',
'description' => 'Column type \'%s\' is not supported.',
'code' => 400,
],
/** Indexes */
Exception::INDEX_NOT_FOUND => [
'name' => Exception::INDEX_NOT_FOUND,
'description' => 'Index with the requested ID could not be found.',
'description' => 'Index with the requested key \'%s\' could not be found.',
'code' => 404,
],
Exception::INDEX_LIMIT_EXCEEDED => [
'name' => Exception::INDEX_LIMIT_EXCEEDED,
'description' => 'The maximum number of indexes has been reached.',
'description' => 'The maximum number of indexes for collection \'%s\' has been reached.',
'code' => 400,
],
Exception::INDEX_ALREADY_EXISTS => [
'name' => Exception::INDEX_ALREADY_EXISTS,
'description' => 'Index with the requested key already exists. Try again with a different key.',
'description' => 'Index with the requested key \'%s\' already exists. Try again with a different key.',
'code' => 409,
],
Exception::INDEX_INVALID => [
@@ -955,24 +970,24 @@ return [
],
Exception::INDEX_DEPENDENCY => [
'name' => Exception::INDEX_DEPENDENCY,
'description' => 'Attribute cannot be renamed or deleted. Please remove the associated index first.',
'description' => 'Attribute \'%s\' cannot be renamed or deleted. Please remove the associated index first.',
'code' => 409,
],
/** Column Indexes, same as Indexes but with different type */
Exception::COLUMN_INDEX_NOT_FOUND => [
'name' => Exception::COLUMN_INDEX_NOT_FOUND,
'description' => 'Index with the requested ID could not be found.',
'description' => 'Index with the requested key \'%s\' could not be found.',
'code' => 404,
],
Exception::COLUMN_INDEX_LIMIT_EXCEEDED => [
'name' => Exception::COLUMN_INDEX_LIMIT_EXCEEDED,
'description' => 'The maximum number of indexes has been reached.',
'description' => 'The maximum number of indexes for table \'%s\' has been reached.',
'code' => 400,
],
Exception::COLUMN_INDEX_ALREADY_EXISTS => [
'name' => Exception::COLUMN_INDEX_ALREADY_EXISTS,
'description' => 'Index with the requested key already exists. Try again with a different key.',
'description' => 'Index with the requested key \'%s\' already exists. Try again with a different key.',
'code' => 409,
],
Exception::COLUMN_INDEX_INVALID => [
@@ -982,19 +997,19 @@ return [
],
Exception::COLUMN_INDEX_DEPENDENCY => [
'name' => Exception::COLUMN_INDEX_DEPENDENCY,
'description' => 'Column cannot be renamed or deleted. Please remove the associated index first.',
'description' => 'Column \'%s\' cannot be renamed or deleted. Please remove the associated index first.',
'code' => 409,
],
/** Transactions */
Exception::TRANSACTION_NOT_FOUND => [
'name' => Exception::TRANSACTION_NOT_FOUND,
'description' => 'Transaction with the requested ID could not be found.',
'description' => 'Transaction with the requested ID \'%s\' could not be found.',
'code' => 404,
],
Exception::TRANSACTION_ALREADY_EXISTS => [
'name' => Exception::TRANSACTION_ALREADY_EXISTS,
'description' => 'Transaction with the requested ID already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'description' => 'Transaction with the requested ID \'%s\' already exists. Try again with a different ID or use ID.unique() to generate a unique ID.',
'code' => 409,
],
Exception::TRANSACTION_INVALID => [
@@ -1069,6 +1084,11 @@ return [
'description' => 'The project key has expired. Please generate a new key using the Appwrite console.',
'code' => 401,
],
Exception::ACCOUNT_KEY_EXPIRED => [
'name' => Exception::ACCOUNT_KEY_EXPIRED,
'description' => 'The account API key has expired. Please generate a new key using the Appwrite console.',
'code' => 401,
],
Exception::ROUTER_HOST_NOT_FOUND => [
'name' => Exception::ROUTER_HOST_NOT_FOUND,
'description' => 'Host is not trusted. This could occur because you have not configured a custom domain. Add a custom domain to your project first and try again.',
@@ -1098,7 +1118,6 @@ return [
'name' => Exception::RULE_VERIFICATION_FAILED,
'description' => 'Domain verification failed. Please check if your DNS records are correct and try again.',
'code' => 400,
'publish' => true
],
Exception::PROJECT_SMTP_CONFIG_INVALID => [
'name' => Exception::PROJECT_SMTP_CONFIG_INVALID,
@@ -1125,6 +1144,11 @@ return [
'description' => 'Key with the requested ID could not be found.',
'code' => 404,
],
Exception::KEY_ALREADY_EXISTS => [
'name' => Exception::KEY_ALREADY_EXISTS,
'description' => 'Key with the same ID already exists. Try again with a different ID.',
'code' => 409,
],
Exception::PLATFORM_NOT_FOUND => [
'name' => Exception::PLATFORM_NOT_FOUND,
'description' => 'Platform with the requested ID could not be found.',
@@ -1324,4 +1348,19 @@ return [
'description' => 'Target has an invalid provider type.',
'code' => 400,
],
Exception::USER_ID_MISSING => [
'name' => Exception::USER_ID_MISSING,
'description' => 'When using account API key, make sure to pass x-appwrite-user header with your user ID.',
'code' => 403,
],
Exception::ORGANIZATION_ID_MISSING => [
'name' => Exception::ORGANIZATION_ID_MISSING,
'description' => 'When using organization API key, make sure to pass x-appwrite-organization header with your organization ID.',
'code' => 403,
],
Exception::PROJECT_ID_MISSING => [
'name' => Exception::PROJECT_ID_MISSING,
'description' => 'When using project API key, make sure to pass x-appwrite-project header with your project ID.',
'code' => 403,
],
];
+8
View File
@@ -405,6 +405,14 @@ return [
'$description' => 'This event triggers when a provider is deleted.'
],
],
'schedules' => [
'$model' => Response::MODEL_SCHEDULE,
'$resource' => true,
'$description' => 'This event triggers on any schedule event.',
'create' => [
'$description' => 'This event triggers when a schedule is created.',
],
],
'rules' => [
'$model' => Response::MODEL_PROXY_RULE,
'$resource' => true,
+18 -24
View File
@@ -8,20 +8,13 @@ use Utopia\Config\Config;
$templateRuntimes = Config::getParam('template-runtimes');
function getVersions(array $versions, string $prefix)
{
return array_map(function ($version) use ($prefix) {
return $prefix . '-' . $version;
}, $versions);
}
return [
'analog' => [
'key' => 'analog',
'name' => 'Analog',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/analog/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/analog/env.sh',
'adapters' => [
@@ -47,7 +40,7 @@ return [
'name' => 'Angular',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/angular/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/angular/env.sh',
'adapters' => [
@@ -73,7 +66,7 @@ return [
'name' => 'Next.js',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/next-js/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/next-js/env.sh',
'adapters' => [
@@ -98,7 +91,7 @@ return [
'name' => 'React',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -115,7 +108,7 @@ return [
'name' => 'Nuxt',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/nuxt/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/nuxt/env.sh',
'adapters' => [
@@ -140,7 +133,7 @@ return [
'name' => 'Vue.js',
'screenshotSleep' => 5000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -157,7 +150,7 @@ return [
'name' => 'SvelteKit',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/sveltekit/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/sveltekit/env.sh',
'adapters' => [
@@ -182,7 +175,7 @@ return [
'name' => 'Astro',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/astro/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/astro/env.sh',
'adapters' => [
@@ -207,7 +200,7 @@ return [
'name' => 'TanStack Start',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/tanstack-start/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/tanstack-start/env.sh',
'adapters' => [
@@ -215,7 +208,7 @@ return [
'key' => 'ssr',
'buildCommand' => 'npm run build',
'installCommand' => 'npm install',
'outputDirectory' => './dist',
'outputDirectory' => './.output',
'startCommand' => 'bash helpers/tanstack-start/server.sh',
],
'static' => [
@@ -232,7 +225,7 @@ return [
'name' => 'Remix',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'bundleCommand' => 'bash /usr/local/server/helpers/remix/bundle.sh',
'envCommand' => 'source /usr/local/server/helpers/remix/env.sh',
'adapters' => [
@@ -257,7 +250,7 @@ return [
'name' => 'Lynx',
'screenshotSleep' => 5000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -273,8 +266,8 @@ return [
'key' => 'flutter',
'name' => 'Flutter',
'screenshotSleep' => 5000,
'buildRuntime' => 'flutter-3.29',
'runtimes' => getVersions($templateRuntimes['FLUTTER']['versions'], 'flutter'),
'buildRuntime' => 'flutter-3.35',
'runtimes' => $templateRuntimes['FLUTTER'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -282,6 +275,7 @@ return [
'installCommand' => 'flutter pub get',
'outputDirectory' => './build/web',
'startCommand' => 'bash helpers/server.sh',
'fallbackFile' => 'index.html'
],
],
],
@@ -290,7 +284,7 @@ return [
'name' => 'React Native',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -307,7 +301,7 @@ return [
'name' => 'Vite',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -323,7 +317,7 @@ return [
'name' => 'Other',
'screenshotSleep' => 3000,
'buildRuntime' => 'node-22',
'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'),
'runtimes' => $templateRuntimes['NODE'],
'adapters' => [
'static' => [
'key' => 'static',
@@ -187,7 +187,7 @@
<img
height="26px"
src="{{logoUrl}}"
alt="Appwrite logo"
alt="{{platform}} logo"
/>
</td>
</tr>
@@ -225,7 +225,7 @@
<tr>
<td style="padding-left: 4px; padding-right: 4px">
<a
href="{{twitterUrl}}"
href="{{twitter}}"
class="social-icon"
title="Twitter"
>
@@ -234,7 +234,7 @@
</td>
<td style="padding-left: 4px; padding-right: 4px">
<a
href="{{discordUrl}}"
href="{{discord}}"
class="social-icon"
>
<img src="https://cloud.appwrite.io/images/mails/discord.png" height="24" width="24" />
@@ -242,7 +242,7 @@
</td>
<td style="padding-left: 4px; padding-right: 4px">
<a
href="{{githubUrl}}"
href="{{github}}"
class="social-icon"
>
<img src="https://cloud.appwrite.io/images/mails/github.png" height="24" width="24" />
@@ -252,15 +252,15 @@
</table>
<table style="width: auto; margin: 0 auto; margin-top: 60px">
<tr>
<td><a href="{{termsUrl}}">Terms</a></td>
<td><a href="{{terms}}">Terms</a></td>
<td style="color: #e8e9f0">
<div style="margin: 0 8px">|</div>
</td>
<td><a href="{{privacyUrl}}">Privacy</a></td>
<td><a href="{{privacy}}">Privacy</a></td>
</tr>
</table>
<p style="text-align: center" align="center">
&copy; {{year}} Appwrite | 251 Little Falls Drive, Wilmington 19808,
&copy; {{year}} {{platform}} | 251 Little Falls Drive, Wilmington 19808,
Delaware, United States
</p>
</div>
+21 -38
View File
@@ -50,17 +50,12 @@
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Poppins';
src: url('https://assets.appwrite.io/fonts/poppins/poppins-v23-latin-regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
</style>
<style>
body {
.main {
max-width: 650px;
margin: 0 auto;
margin-top: 32px;
padding: 32px;
line-height: 1.5;
color: #616b7c;
@@ -68,15 +63,12 @@
font-weight: 400;
font-family: "Inter", sans-serif;
background-color: #ffffff;
margin: 0;
padding: 0;
line-height: 150%;
}
a {
.main a {
color: currentColor;
word-break: break-all;
}
a.button {
.main a.button {
box-sizing: border-box;
display: inline-block;
text-align: center;
@@ -87,8 +79,8 @@
border: 1px solid #414146;
border-radius: 8px;
}
a.button:hover,
a.button:focus {
.main a.button:hover,
.main a.button:focus {
opacity: 0.8;
}
table {
@@ -102,11 +94,6 @@
td {
vertical-align: top;
}
.main {
max-width: 650px;
margin: 0 auto;
margin-top: 32px;
}
h1 {
font-size: 22px;
margin-bottom: 0px;
@@ -138,9 +125,6 @@
border: none;
border-top: 1px solid #e8e9f0;
}
h* {
font-family: 'Poppins', sans-serif;
}
p {
margin-bottom: 10px;
}
@@ -155,21 +139,20 @@
<body style="direction: {{direction}}">
<div style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
{{preview}}
<div>{{previewWhitespace}}</div>
</div>
<div style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
{{preview}}
<div>{{previewWhitespace}}</div>
</div>
<div style="max-width:650px; word-wrap: break-word; overflow-wrap: break-word;
word-break: normal; margin:0 auto;">
<table style="margin-top: 32px">
<tr>
<td>
{{body}}
</td>
</tr>
</table>
</div>
<div class="main" style="max-width:650px; word-wrap: break-word; overflow-wrap: break-word; word-break: normal; margin:0 auto;">
<table style="margin-top: 32px">
<tr>
<td>
{{body}}
</td>
</tr>
</table>
</div>
</body>
</html>
+11
View File
@@ -462,4 +462,15 @@ return [
'mock' => true,
'class' => 'Appwrite\\Auth\\OAuth2\\Mock',
],
'mock-unverified' => [
'name' => 'MockUnverified',
'developers' => 'https://appwrite.io',
'icon' => 'icon-appwrite',
'enabled' => true,
'sandbox' => false,
'form' => false,
'beta' => false,
'mock' => true,
'class' => 'Appwrite\\Auth\\OAuth2\\MockUnverified',
],
];
+41
View File
@@ -0,0 +1,41 @@
<?php
use Utopia\System\System;
// For now, take first domain as primary (for previews)
// Later-on this can become platform-specific with new env var (appwrite=this,imagine=that)
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
if (\str_contains($sitesDomain, ',')) {
$sitesDomain = explode(',', $sitesDomain)[0];
}
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
if (\str_contains($functionsDomain, ',')) {
$functionsDomain = explode(',', $functionsDomain)[0];
}
/**
* Platform configuration
*/
return [
'apiHostname' => System::getEnv('_APP_DOMAIN', 'localhost'),
'consoleHostname' => System::getEnv('_APP_CONSOLE_DOMAIN', System::getEnv('_APP_DOMAIN', 'localhost')),
'hostnames' => array_filter(array_unique([
System::getEnv('_APP_DOMAIN', 'localhost'),
System::getEnv('_APP_CONSOLE_DOMAIN', 'localhost'),
System::getEnv('_APP_MIGRATION_HOST'),
])),
'schemas' => \array_filter(\explode(',', System::getEnv('_APP_CONSOLE_SCHEMA', ''))),
'platformName' => APP_EMAIL_PLATFORM_NAME,
'logoUrl' => APP_EMAIL_LOGO_URL,
'accentColor' => APP_EMAIL_ACCENT_COLOR,
'footerImageUrl' => APP_EMAIL_FOOTER_IMAGE_URL,
'twitterUrl' => APP_SOCIAL_TWITTER,
'discordUrl' => APP_SOCIAL_DISCORD,
'githubUrl' => APP_SOCIAL_GITHUB,
'termsUrl' => APP_EMAIL_TERMS_URL,
'privacyUrl' => APP_EMAIL_PRIVACY_URL,
'websiteUrl' => 'https://' . APP_DOMAIN,
'emailSenderName' => APP_EMAIL_PLATFORM_NAME,
'sitesDomain' => $sitesDomain,
'functionsDomain' => $functionsDomain,
];
-479
View File
@@ -1,479 +0,0 @@
<?php
return [
APP_PLATFORM_CLIENT => [
'key' => APP_PLATFORM_CLIENT,
'name' => 'Client',
'description' => 'Client libraries for integrating with Appwrite to build client-based applications and websites. Read the [getting started for web](https://appwrite.io/docs/getting-started-for-web) or [getting started for Flutter](https://appwrite.io/docs/getting-started-for-flutter) tutorials to start building your first application.',
'enabled' => true,
'beta' => false,
'sdks' => [
[
'key' => 'web',
'name' => 'Web',
'version' => '21.4.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/client-web'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-web.git',
'gitRepoName' => 'sdk-for-web',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/web/CHANGELOG.md'),
'demos' => [
[
'icon' => 'react.svg',
'name' => 'Todo App with React JS',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-react',
'url' => 'https://appwrite-todo-with-react.vercel.app/',
],
[
'icon' => 'vue.svg',
'name' => 'Todo App with Vue JS',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-vue',
'url' => 'https://appwrite-todo-with-vue.vercel.app/',
],
[
'icon' => 'angular.svg',
'name' => 'Todo App with Angular',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-angular',
'url' => 'https://appwrite-todo-with-angular.vercel.app/',
],
[
'icon' => 'svelte.svg',
'name' => 'Todo App with Svelte',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-svelte',
'url' => 'https://appwrite-todo-with-svelte.vercel.app/',
],
]
],
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '20.3.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'dart',
'source' => \realpath(__DIR__ . '/../sdks/client-flutter'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-flutter.git',
'gitRepoName' => 'sdk-for-flutter',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/flutter/CHANGELOG.md'),
],
[
'key' => 'apple',
'name' => 'Apple',
'version' => '13.4.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'swift',
'source' => \realpath(__DIR__ . '/../sdks/client-apple'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-apple.git',
'gitRepoName' => 'sdk-for-apple',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/apple/CHANGELOG.md'),
],
[
'key' => 'objective-c',
'name' => 'Objective C',
'url' => '',
'package' => '',
'enabled' => false,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => '',
'source' => false,
'gitUrl' => 'git@github.com:appwrite/sdk-for-objective-c.git',
'gitRepoName' => 'sdk-for-objective-c',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/objective-c/CHANGELOG.md'),
],
[
'key' => 'android',
'name' => 'Android',
'version' => '11.3.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'kotlin',
'source' => \realpath(__DIR__ . '/../sdks/client-android'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-android.git',
'gitRepoName' => 'sdk-for-android',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'docDirectories' => [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/android/CHANGELOG.md'),
],
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.18.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/client-react-native'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-react-native.git',
'gitRepoName' => 'sdk-for-react-native',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/react-native/CHANGELOG.md'),
],
[
'key' => 'graphql',
'name' => 'GraphQL',
'version' => 'October 2021',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'graphql',
'source' => \realpath(__DIR__ . '/../sdks/client-graphql'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
'name' => 'REST',
'version' => '',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_PLATFORM_CLIENT,
'prism' => 'http',
'source' => \realpath(__DIR__ . '/../sdks/client-rest'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
APP_PLATFORM_CONSOLE => [
'key' => APP_PLATFORM_CONSOLE,
'name' => 'Console',
'enabled' => false,
'beta' => false,
'sdks' => [
[
'key' => 'web',
'name' => 'Console',
'version' => '0.2.0',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_PLATFORM_CONSOLE,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/console-web'),
'gitUrl' => '',
'gitBranch' => 'dev',
'gitRepoName' => '',
'gitUserName' => '',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/console/CHANGELOG.md'),
],
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '11.1.0',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_CONSOLE,
'prism' => 'bash',
'source' => \realpath(__DIR__ . '/../sdks/console-cli'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-cli.git',
'gitRepoName' => 'sdk-for-cli',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'master',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cli/CHANGELOG.md'),
'exclude' => [
'services' => [
['name' => 'assistant'],
['name' => 'avatars'],
],
],
],
],
],
APP_PLATFORM_SERVER => [
'key' => APP_PLATFORM_SERVER,
'name' => 'Server',
'description' => 'Libraries for integrating with Appwrite to build server side integrations. Read the [getting started for server](https://appwrite.io/docs/getting-started-for-server) tutorial to start building your first server integration.',
'enabled' => true,
'beta' => false,
'sdks' => [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '20.3.0',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/server-nodejs'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-node.git',
'gitRepoName' => 'sdk-for-node',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/nodejs/CHANGELOG.md'),
],
[
'key' => 'php',
'name' => 'PHP',
'version' => '17.5.0',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'php',
'source' => \realpath(__DIR__ . '/../sdks/server-php'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-php.git',
'gitRepoName' => 'sdk-for-php',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/php/CHANGELOG.md'),
],
[
'key' => 'python',
'name' => 'Python',
'version' => '13.6.1',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'python',
'source' => \realpath(__DIR__ . '/../sdks/server-python'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-python.git',
'gitRepoName' => 'sdk-for-python',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/python/CHANGELOG.md'),
],
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '19.3.0',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'ruby',
'source' => \realpath(__DIR__ . '/../sdks/server-ruby'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-ruby.git',
'gitRepoName' => 'sdk-for-ruby',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/ruby/CHANGELOG.md'),
],
[
'key' => 'go',
'name' => 'Go',
'version' => 'v0.14.0',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'go',
'source' => \realpath(__DIR__ . '/../sdks/server-go'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-go.git',
'gitRepoName' => 'sdk-for-go',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/go/CHANGELOG.md'),
],
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.22.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'csharp',
'source' => \realpath(__DIR__ . '/../sdks/server-dotnet'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-dotnet.git',
'gitRepoName' => 'sdk-for-dotnet',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dotnet/CHANGELOG.md'),
],
[
'key' => 'dart',
'name' => 'Dart',
'version' => '19.3.0',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'dart',
'source' => \realpath(__DIR__ . '/../sdks/server-dart'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-dart.git',
'gitRepoName' => 'sdk-for-dart',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dart/CHANGELOG.md'),
],
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '12.3.0',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'kotlin',
'source' => \realpath(__DIR__ . '/../sdks/server-kotlin'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-kotlin.git',
'gitRepoName' => 'sdk-for-kotlin',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'docDirectories' => [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/kotlin/CHANGELOG.md'),
],
[
'key' => 'swift',
'name' => 'Swift',
'version' => '13.3.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_PLATFORM_SERVER,
'prism' => 'swift',
'source' => \realpath(__DIR__ . '/../sdks/server-swift'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-swift.git',
'gitRepoName' => 'sdk-for-swift',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/swift/CHANGELOG.md'),
],
[
'key' => 'graphql',
'name' => 'GraphQL',
'version' => 'October 2021',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_PLATFORM_SERVER,
'prism' => 'graphql',
'source' => \realpath(__DIR__ . '/../sdks/server-graphql'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
'name' => 'REST',
'version' => '',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_PLATFORM_SERVER,
'prism' => 'http',
'source' => \realpath(__DIR__ . '/../sdks/server-rest'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
];
+11 -7
View File
@@ -1,6 +1,6 @@
<?php
use Appwrite\Auth\Auth;
use Appwrite\Utopia\Database\Documents\User;
$member = [
'global',
@@ -58,6 +58,8 @@ $admins = [
'projects.write',
'keys.read',
'keys.write',
'devKeys.read',
'devKeys.write',
'webhooks.read',
'webhooks.write',
'locale.read',
@@ -89,10 +91,12 @@ $admins = [
'subscribers.read',
'tokens.read',
'tokens.write',
'schedules.read',
'schedules.write',
];
return [
Auth::USER_ROLE_GUESTS => [
User::ROLE_GUESTS => [
'label' => 'Guests',
'scopes' => [
'global',
@@ -112,23 +116,23 @@ return [
'execution.write',
],
],
Auth::USER_ROLE_USERS => [
User::ROLE_USERS => [
'label' => 'Users',
'scopes' => \array_merge($member),
],
Auth::USER_ROLE_ADMIN => [
User::ROLE_ADMIN => [
'label' => 'Admin',
'scopes' => \array_merge($admins),
],
Auth::USER_ROLE_DEVELOPER => [
User::ROLE_DEVELOPER => [
'label' => 'Developer',
'scopes' => \array_merge($admins),
],
Auth::USER_ROLE_OWNER => [
User::ROLE_OWNER => [
'label' => 'Owner',
'scopes' => \array_merge($member, $admins),
],
Auth::USER_ROLE_APPS => [
User::ROLE_APPS => [
'label' => 'Applications',
'scopes' => ['global', 'health.read', 'graphql'],
],
-169
View File
@@ -1,169 +0,0 @@
<?php
return [ // List of publicly visible scopes
'sessions.write' => [
'description' => 'Access to create, update, and delete user sessions',
],
'users.read' => [
'description' => 'Access to read your project\'s users',
],
'users.write' => [
'description' => 'Access to create, update, and delete your project\'s users',
],
'teams.read' => [
'description' => 'Access to read your project\'s teams',
],
'teams.write' => [
'description' => 'Access to create, update, and delete your project\'s teams',
],
'databases.read' => [
'description' => 'Access to read your project\'s databases',
],
'databases.write' => [
'description' => 'Access to create, update, and delete your project\'s databases',
],
'collections.read' => [
'description' => 'Access to read your project\'s database collections',
],
'collections.write' => [
'description' => 'Access to create, update, and delete your project\'s database collections',
],
'tables.read' => [
'description' => 'Access to read your project\'s database tables',
],
'tables.write' => [
'description' => 'Access to create, update, and delete your project\'s database tables',
],
'attributes.read' => [
'description' => 'Access to read your project\'s database collection\'s attributes',
],
'attributes.write' => [
'description' => 'Access to create, update, and delete your project\'s database collection\'s attributes',
],
'columns.read' => [
'description' => 'Access to read your project\'s database table\'s columns',
],
'columns.write' => [
'description' => 'Access to create, update, and delete your project\'s database table\'s columns',
],
'indexes.read' => [
'description' => 'Access to read your project\'s database collection\'s indexes',
],
'indexes.write' => [
'description' => 'Access to create, update, and delete your project\'s database collection\'s indexes',
],
'documents.read' => [
'description' => 'Access to read your project\'s database documents',
],
'documents.write' => [
'description' => 'Access to create, update, and delete your project\'s database documents',
],
'rows.read' => [
'description' => 'Access to read your project\'s database rows',
],
'rows.write' => [
'description' => 'Access to create, update, and delete your project\'s database rows',
],
'files.read' => [
'description' => 'Access to read your project\'s storage files and preview images',
],
'files.write' => [
'description' => 'Access to create, update, and delete your project\'s storage files',
],
'buckets.read' => [
'description' => 'Access to read your project\'s storage buckets',
],
'buckets.write' => [
'description' => 'Access to create, update, and delete your project\'s storage buckets',
],
'functions.read' => [
'description' => 'Access to read your project\'s functions and code deployments',
],
'functions.write' => [
'description' => 'Access to create, update, and delete your project\'s functions and code deployments',
],
'sites.read' => [
'description' => 'Access to read your project\'s sites and deployments',
],
'sites.write' => [
'description' => 'Access to create, update, and delete your project\'s sites and deployments',
],
'log.read' => [
'description' => 'Access to read your site\'s logs',
],
'log.write' => [
'description' => 'Access to update, and delete your site\'s logs',
],
'execution.read' => [
'description' => 'Access to read your project\'s execution logs',
],
'execution.write' => [
'description' => 'Access to execute your project\'s functions',
],
'locale.read' => [
'description' => 'Access to access your project\'s Locale service',
],
'avatars.read' => [
'description' => 'Access to access your project\'s Avatars service',
],
'health.read' => [
'description' => 'Access to read your project\'s health status',
],
'providers.read' => [
'description' => 'Access to read your project\'s providers',
],
'providers.write' => [
'description' => 'Access to create, update, and delete your project\'s providers',
],
'messages.read' => [
'description' => 'Access to read your project\'s messages',
],
'messages.write' => [
'description' => 'Access to create, update, and delete your project\'s messages',
],
'topics.read' => [
'description' => 'Access to read your project\'s topics',
],
'topics.write' => [
'description' => 'Access to create, update, and delete your project\'s topics',
],
'subscribers.read' => [
'description' => 'Access to read your project\'s subscribers',
],
'subscribers.write' => [
'description' => 'Access to create, update, and delete your project\'s subscribers',
],
'targets.read' => [
'description' => 'Access to read your project\'s targets',
],
'targets.write' => [
'description' => 'Access to create, update, and delete your project\'s targets',
],
'rules.read' => [
'description' => 'Access to read your project\'s proxy rules',
],
'rules.write' => [
'description' => 'Access to create, update, and delete your project\'s proxy rules',
],
'migrations.read' => [
'description' => 'Access to read your project\'s migrations',
],
'migrations.write' => [
'description' => 'Access to create, update, and delete your project\'s migrations.',
],
'vcs.read' => [
'description' => 'Access to read your project\'s VCS repositories',
],
'vcs.write' => [
'description' => 'Access to create, update, and delete your project\'s VCS repositories',
],
'assistant.read' => [
'description' => 'Access to read the Assistant service',
],
'tokens.read' => [
'description' => 'Access to read your project\'s tokens',
],
'tokens.write' => [
'description' => 'Access to create, update, and delete your project\'s tokens',
],
];
+15
View File
@@ -0,0 +1,15 @@
<?php
// List of scopes for Account API keys (Tokens)
return [
"account" => [
"description" => 'Access to manage account, its organizations, sessions, tokens, and billing.',
],
"teams.read" => [
"description" => 'Access to read account\'s organizations.',
],
"teams.write" => [
"description" => 'Access to create, update and delete account\'s organizations and its memberships.',
],
];
+42
View File
@@ -0,0 +1,42 @@
<?php
// List of scopes for organization (teams) API keys
return [
"platforms.read" => [
"description" => 'Access to read project\'s platforms',
],
"platforms.write" => [
"description" =>
'Access to create, update, and delete project\'s platforms',
],
"projects.read" => [
"description" => 'Access to read organization\'s projects',
],
"projects.write" => [
"description" =>
"Access to create, update, and delete projects in organization",
],
"keys.read" => [
"description" => 'Access to read project\'s API keys',
],
"keys.write" => [
"description" =>
"Access to create, update, and delete project\'s API keys",
],
"devKeys.read" => [
"description" => 'Access to read project\'s development keys',
],
"devKeys.write" => [
"description" =>
"Access to create, update, and delete project\'s development keys",
],
"webhooks.read" => [
"description" =>
"Access to read project\'s webhooks",
],
"webhooks.write" => [
"description" =>
"Access to create, update, and delete project\'s webhooks",
],
];
+175
View File
@@ -0,0 +1,175 @@
<?php
return [ // List of publicly visible scopes
'sessions.write' => [
'description' => 'Access to create, update, and delete user sessions',
],
'users.read' => [
'description' => 'Access to read your project\'s users',
],
'users.write' => [
'description' => 'Access to create, update, and delete your project\'s users',
],
'teams.read' => [
'description' => 'Access to read your project\'s teams',
],
'teams.write' => [
'description' => 'Access to create, update, and delete your project\'s teams',
],
'databases.read' => [
'description' => 'Access to read your project\'s databases',
],
'databases.write' => [
'description' => 'Access to create, update, and delete your project\'s databases',
],
'collections.read' => [
'description' => 'Access to read your project\'s database collections',
],
'collections.write' => [
'description' => 'Access to create, update, and delete your project\'s database collections',
],
'tables.read' => [
'description' => 'Access to read your project\'s database tables',
],
'tables.write' => [
'description' => 'Access to create, update, and delete your project\'s database tables',
],
'attributes.read' => [
'description' => 'Access to read your project\'s database collection\'s attributes',
],
'attributes.write' => [
'description' => 'Access to create, update, and delete your project\'s database collection\'s attributes',
],
'columns.read' => [
'description' => 'Access to read your project\'s database table\'s columns',
],
'columns.write' => [
'description' => 'Access to create, update, and delete your project\'s database table\'s columns',
],
'indexes.read' => [
'description' => 'Access to read your project\'s database table\'s indexes',
],
'indexes.write' => [
'description' => 'Access to create, update, and delete your project\'s database table\'s indexes',
],
'documents.read' => [
'description' => 'Access to read your project\'s database documents',
],
'documents.write' => [
'description' => 'Access to create, update, and delete your project\'s database documents',
],
'rows.read' => [
'description' => 'Access to read your project\'s database rows',
],
'rows.write' => [
'description' => 'Access to create, update, and delete your project\'s database rows',
],
'files.read' => [
'description' => 'Access to read your project\'s storage files and preview images',
],
'files.write' => [
'description' => 'Access to create, update, and delete your project\'s storage files',
],
'buckets.read' => [
'description' => 'Access to read your project\'s storage buckets',
],
'buckets.write' => [
'description' => 'Access to create, update, and delete your project\'s storage buckets',
],
'functions.read' => [
'description' => 'Access to read your project\'s functions and code deployments',
],
'functions.write' => [
'description' => 'Access to create, update, and delete your project\'s functions and code deployments',
],
'sites.read' => [
'description' => 'Access to read your project\'s sites and deployments',
],
'sites.write' => [
'description' => 'Access to create, update, and delete your project\'s sites and deployments',
],
'log.read' => [
'description' => 'Access to read your site\'s logs',
],
'log.write' => [
'description' => 'Access to update, and delete your site\'s logs',
],
'execution.read' => [
'description' => 'Access to read your project\'s execution logs',
],
'execution.write' => [
'description' => 'Access to execute your project\'s functions',
],
'locale.read' => [
'description' => 'Access to access your project\'s Locale service',
],
'avatars.read' => [
'description' => 'Access to access your project\'s Avatars service',
],
'health.read' => [
'description' => 'Access to read your project\'s health status',
],
'providers.read' => [
'description' => 'Access to read your project\'s providers',
],
'providers.write' => [
'description' => 'Access to create, update, and delete your project\'s providers',
],
'messages.read' => [
'description' => 'Access to read your project\'s messages',
],
'messages.write' => [
'description' => 'Access to create, update, and delete your project\'s messages',
],
'topics.read' => [
'description' => 'Access to read your project\'s topics',
],
'topics.write' => [
'description' => 'Access to create, update, and delete your project\'s topics',
],
'subscribers.read' => [
'description' => 'Access to read your project\'s subscribers',
],
'subscribers.write' => [
'description' => 'Access to create, update, and delete your project\'s subscribers',
],
'targets.read' => [
'description' => 'Access to read your project\'s targets',
],
'targets.write' => [
'description' => 'Access to create, update, and delete your project\'s targets',
],
'rules.read' => [
'description' => 'Access to read your project\'s proxy rules',
],
'rules.write' => [
'description' => 'Access to create, update, and delete your project\'s proxy rules',
],
'schedules.read' => [
'description' => 'Access to read your project\'s schedules',
],
'schedules.write' => [
'description' => 'Access to create, update, and delete your project\'s schedules',
],
'migrations.read' => [
'description' => 'Access to read your project\'s migrations',
],
'migrations.write' => [
'description' => 'Access to create, update, and delete your project\'s migrations.',
],
'vcs.read' => [
'description' => 'Access to read your project\'s VCS repositories',
],
'vcs.write' => [
'description' => 'Access to create, update, and delete your project\'s VCS repositories',
],
'assistant.read' => [
'description' => 'Access to read the Assistant service',
],
'tokens.read' => [
'description' => 'Access to read your project\'s tokens',
],
'tokens.write' => [
'description' => 'Access to create, update, and delete your project\'s tokens',
],
];
+539
View File
@@ -0,0 +1,539 @@
<?php
return [
APP_SDK_PLATFORM_CLIENT => [
'key' => APP_SDK_PLATFORM_CLIENT,
'name' => 'Client',
'description' => 'Client libraries for integrating with Appwrite to build client-based applications and websites. Read the [getting started for web](https://appwrite.io/docs/getting-started-for-web) or [getting started for Flutter](https://appwrite.io/docs/getting-started-for-flutter) tutorials to start building your first application.',
'enabled' => true,
'beta' => false,
'sdks' => [
[
'key' => 'web',
'name' => 'Web',
'version' => '22.4.0',
'url' => 'https://github.com/appwrite/sdk-for-web',
'package' => 'https://www.npmjs.com/package/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/client-web'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-web.git',
'gitRepoName' => 'sdk-for-web',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/web/CHANGELOG.md'),
'demos' => [
[
'icon' => 'react.svg',
'name' => 'Todo App with React JS',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-react',
'url' => 'https://appwrite-todo-with-react.vercel.app/',
],
[
'icon' => 'vue.svg',
'name' => 'Todo App with Vue JS',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-vue',
'url' => 'https://appwrite-todo-with-vue.vercel.app/',
],
[
'icon' => 'angular.svg',
'name' => 'Todo App with Angular',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-angular',
'url' => 'https://appwrite-todo-with-angular.vercel.app/',
],
[
'icon' => 'svelte.svg',
'name' => 'Todo App with Svelte',
'description' => 'A simple Todo app that uses both the Appwrite account and database APIs.',
'source' => 'https://github.com/appwrite/todo-with-svelte',
'url' => 'https://appwrite-todo-with-svelte.vercel.app/',
],
]
],
[
'key' => 'flutter',
'name' => 'Flutter',
'version' => '21.4.0',
'url' => 'https://github.com/appwrite/sdk-for-flutter',
'package' => 'https://pub.dev/packages/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'dart',
'source' => \realpath(__DIR__ . '/../sdks/client-flutter'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-flutter.git',
'gitRepoName' => 'sdk-for-flutter',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/flutter/CHANGELOG.md'),
],
[
'key' => 'apple',
'name' => 'Apple',
'version' => '14.3.0',
'url' => 'https://github.com/appwrite/sdk-for-apple',
'package' => 'https://github.com/appwrite/sdk-for-apple',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'swift',
'source' => \realpath(__DIR__ . '/../sdks/client-apple'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-apple.git',
'gitRepoName' => 'sdk-for-apple',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/apple/CHANGELOG.md'),
],
[
'key' => 'objective-c',
'name' => 'Objective C',
'url' => '',
'package' => '',
'enabled' => false,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => '',
'source' => false,
'gitUrl' => 'git@github.com:appwrite/sdk-for-objective-c.git',
'gitRepoName' => 'sdk-for-objective-c',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/objective-c/CHANGELOG.md'),
],
[
'key' => 'android',
'name' => 'Android',
'namespace' => 'io.appwrite',
'version' => '12.2.0',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'kotlin',
'source' => \realpath(__DIR__ . '/../sdks/client-android'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-android.git',
'gitRepoName' => 'sdk-for-android',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'docDirectories' => [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/android/CHANGELOG.md'),
],
[
'key' => 'react-native',
'name' => 'React Native',
'version' => '0.24.0',
'url' => 'https://github.com/appwrite/sdk-for-react-native',
'package' => 'https://npmjs.com/package/react-native-appwrite',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/client-react-native'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-react-native.git',
'gitRepoName' => 'sdk-for-react-native',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/react-native/CHANGELOG.md'),
],
[
'key' => 'graphql',
'name' => 'GraphQL',
'version' => 'October 2021',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'graphql',
'source' => \realpath(__DIR__ . '/../sdks/client-graphql'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
'name' => 'REST',
'version' => '',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_SDK_PLATFORM_CLIENT,
'prism' => 'http',
'source' => \realpath(__DIR__ . '/../sdks/client-rest'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
APP_SDK_PLATFORM_CONSOLE => [
'key' => APP_SDK_PLATFORM_CONSOLE,
'name' => 'Console',
'enabled' => false,
'beta' => false,
'sdks' => [
[
'key' => 'web',
'name' => 'Console',
'version' => '22.4.0',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/console-web'),
'gitUrl' => '',
'gitBranch' => 'dev',
'gitRepoName' => '',
'gitUserName' => '',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/console/CHANGELOG.md'),
],
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '13.5.0',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'bash',
'source' => \realpath(__DIR__ . '/../sdks/console-cli'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-cli.git',
'gitRepoName' => 'sdk-for-cli',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'master',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cli/CHANGELOG.md'),
'exclude' => [
'services' => [
['name' => 'assistant'],
['name' => 'avatars'],
],
],
],
[
'key' => 'markdown',
'name' => 'Markdown',
'version' => '0.3.0',
'url' => 'https://github.com/appwrite/sdk-for-md.git',
'package' => 'https://www.npmjs.com/package/@appwrite.io/docs',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'markdown',
'source' => \realpath(__DIR__ . '/../sdks/console-md'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-md.git',
'gitRepoName' => 'sdk-for-md',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/md/CHANGELOG.md'),
],
[
'key' => 'agent-skills',
'name' => 'AgentSkills',
'version' => '0.1.0',
'url' => 'https://github.com/appwrite/agent-skills.git',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'agent-skills',
'source' => \realpath(__DIR__ . '/../sdks/console-agent-skills'),
'gitUrl' => 'git@github.com:appwrite/agent-skills.git',
'gitRepoName' => 'agent-skills',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/agent-skills/CHANGELOG.md'),
],
[
'key' => 'cursor-plugin',
'name' => 'CursorPlugin',
'version' => '0.1.0',
'url' => 'https://github.com/appwrite/cursor-plugin.git',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'cursor-plugin',
'source' => \realpath(__DIR__ . '/../sdks/console-cursor-plugin'),
'gitUrl' => 'git@github.com:appwrite/cursor-plugin.git',
'gitRepoName' => 'cursor-plugin',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cursor-plugin/CHANGELOG.md'),
],
],
],
APP_SDK_PLATFORM_SERVER => [
'key' => APP_SDK_PLATFORM_SERVER,
'name' => 'Server',
'description' => 'Libraries for integrating with Appwrite to build server side integrations. Read the [getting started for server](https://appwrite.io/docs/getting-started-for-server) tutorial to start building your first server integration.',
'enabled' => true,
'beta' => false,
'sdks' => [
[
'key' => 'nodejs',
'name' => 'Node.js',
'version' => '22.0.1',
'url' => 'https://github.com/appwrite/sdk-for-node',
'package' => 'https://www.npmjs.com/package/node-appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/server-nodejs'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-node.git',
'gitRepoName' => 'sdk-for-node',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/nodejs/CHANGELOG.md'),
],
[
'key' => 'php',
'name' => 'PHP',
'version' => '20.0.1',
'url' => 'https://github.com/appwrite/sdk-for-php',
'package' => 'https://packagist.org/packages/appwrite/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'php',
'source' => \realpath(__DIR__ . '/../sdks/server-php'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-php.git',
'gitRepoName' => 'sdk-for-php',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/php/CHANGELOG.md'),
],
[
'key' => 'python',
'name' => 'Python',
'version' => '15.1.0',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'python',
'source' => \realpath(__DIR__ . '/../sdks/server-python'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-python.git',
'gitRepoName' => 'sdk-for-python',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/python/CHANGELOG.md'),
],
[
'key' => 'ruby',
'name' => 'Ruby',
'version' => '21.0.1',
'url' => 'https://github.com/appwrite/sdk-for-ruby',
'package' => 'https://rubygems.org/gems/appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'ruby',
'source' => \realpath(__DIR__ . '/../sdks/server-ruby'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-ruby.git',
'gitRepoName' => 'sdk-for-ruby',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/ruby/CHANGELOG.md'),
],
[
'key' => 'go',
'name' => 'Go',
'version' => 'v0.16.1',
'url' => 'https://github.com/appwrite/sdk-for-go',
'package' => 'https://github.com/appwrite/sdk-for-go',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'go',
'source' => \realpath(__DIR__ . '/../sdks/server-go'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-go.git',
'gitRepoName' => 'sdk-for-go',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/go/CHANGELOG.md'),
],
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.26.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
'beta' => true,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'csharp',
'source' => \realpath(__DIR__ . '/../sdks/server-dotnet'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-dotnet.git',
'gitRepoName' => 'sdk-for-dotnet',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dotnet/CHANGELOG.md'),
],
[
'key' => 'dart',
'name' => 'Dart',
'version' => '21.0.1',
'url' => 'https://github.com/appwrite/sdk-for-dart',
'package' => 'https://pub.dev/packages/dart_appwrite',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'dart',
'source' => \realpath(__DIR__ . '/../sdks/server-dart'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-dart.git',
'gitRepoName' => 'sdk-for-dart',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dart/CHANGELOG.md'),
],
[
'key' => 'kotlin',
'name' => 'Kotlin',
'namespace' => 'io.appwrite',
'version' => '14.0.1',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'kotlin',
'source' => \realpath(__DIR__ . '/../sdks/server-kotlin'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-kotlin.git',
'gitRepoName' => 'sdk-for-kotlin',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'docDirectories' => [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/kotlin/CHANGELOG.md'),
],
[
'key' => 'swift',
'name' => 'Swift',
'version' => '15.1.0',
'url' => 'https://github.com/appwrite/sdk-for-swift',
'package' => 'https://github.com/appwrite/sdk-for-swift',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'swift',
'source' => \realpath(__DIR__ . '/../sdks/server-swift'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-swift.git',
'gitRepoName' => 'sdk-for-swift',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/swift/CHANGELOG.md'),
],
[
'key' => 'graphql',
'name' => 'GraphQL',
'version' => 'October 2021',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'graphql',
'source' => \realpath(__DIR__ . '/../sdks/server-graphql'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
'name' => 'REST',
'version' => '',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => true,
'family' => APP_SDK_PLATFORM_SERVER,
'prism' => 'http',
'source' => \realpath(__DIR__ . '/../sdks/server-rest'),
'gitUrl' => '',
'gitRepoName' => '',
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
];
+28 -6
View File
@@ -13,19 +13,21 @@ return [
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'web/console' => [
'key' => 'web/console',
'name' => 'Console',
'subtitle' => '',
'description' => '',
'controller' => 'web/console.php',
'controller' => '', // Uses modules
'sdk' => false,
'docs' => false,
'docsUrl' => '',
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'account' => [
'key' => 'account',
@@ -39,19 +41,21 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/account.png',
'platforms' => ['client', 'server', 'console'],
],
'avatars' => [
'key' => 'avatars',
'name' => 'Avatars',
'subtitle' => 'The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars.',
'description' => '/docs/services/avatars.md',
'controller' => 'api/avatars.php',
'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/client/avatars',
'tests' => false,
'optional' => true,
'icon' => '/images/services/avatars.png',
'platforms' => ['client', 'server', 'console'],
],
'databases' => [
'key' => 'databases',
@@ -65,6 +69,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/databases.png',
'platforms' => ['client', 'server', 'console'],
],
'tablesdb' => [
'key' => 'tablesdb',
@@ -78,6 +83,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/databases.png',
'platforms' => ['client', 'server', 'console'],
],
'locale' => [
'key' => 'locale',
@@ -91,19 +97,21 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/locale.png',
'platforms' => ['client', 'server', 'console'],
],
'health' => [
'key' => 'health',
'name' => 'Health',
'subtitle' => 'The Health service allows you to both validate and monitor your Appwrite server\'s health.',
'description' => '/docs/services/health.md',
'controller' => 'api/health.php',
'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/server/health',
'tests' => false,
'optional' => true,
'icon' => '/images/services/health.png',
'platforms' => ['client', 'server', 'console'],
],
'projects' => [
'key' => 'projects',
@@ -117,6 +125,7 @@ return [
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'project' => [
'key' => 'project',
@@ -130,19 +139,21 @@ return [
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'storage' => [
'key' => 'storage',
'name' => 'Storage',
'subtitle' => 'The Storage service allows you to manage your project files.',
'description' => '/docs/services/storage.md',
'controller' => 'api/storage.php',
'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => 'https://appwrite.io/docs/client/storage',
'tests' => false,
'optional' => true,
'icon' => '/images/services/storage.png',
'platforms' => ['client', 'server', 'console'],
],
'teams' => [
'key' => 'teams',
@@ -156,6 +167,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/teams.png',
'platforms' => ['client', 'server', 'console'],
],
'users' => [
'key' => 'users',
@@ -169,6 +181,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/users.png',
'platforms' => ['client', 'server', 'console'],
],
'vcs' => [
'key' => 'vcs',
@@ -182,6 +195,7 @@ return [
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'sites' => [
'key' => 'sites',
@@ -195,6 +209,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/sites.png',
'platforms' => ['client', 'server', 'console'],
],
'functions' => [
'key' => 'functions',
@@ -208,6 +223,7 @@ return [
'tests' => false,
'optional' => true,
'icon' => '/images/services/functions.png',
'platforms' => ['client', 'server', 'console'],
],
'proxy' => [
'key' => 'proxy',
@@ -221,6 +237,7 @@ return [
'tests' => false,
'optional' => false,
'icon' => '/images/services/proxy.png',
'platforms' => ['client', 'server', 'console'],
],
'mock' => [
'key' => 'mock',
@@ -234,6 +251,7 @@ return [
'tests' => true,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'graphql' => [
'key' => 'graphql',
@@ -247,19 +265,21 @@ return [
'tests' => true,
'optional' => true,
'icon' => '/images/services/graphql.png',
'platforms' => ['client', 'server', 'console'],
],
'console' => [
'key' => 'console',
'name' => 'Console',
'subtitle' => 'The Console service allows you to interact with console relevant informations.',
'subtitle' => 'The Console service allows you to interact with console relevant information.',
'description' => '',
'controller' => 'api/console.php',
'controller' => '', // Uses modules
'sdk' => true,
'docs' => true,
'docsUrl' => '',
'tests' => false,
'optional' => false,
'icon' => '',
'platforms' => ['client', 'server', 'console'],
],
'migrations' => [
'key' => 'migrations',
@@ -273,6 +293,7 @@ return [
'tests' => true,
'optional' => false,
'icon' => '/images/services/migrations.png',
'platforms' => ['client', 'server', 'console'],
],
'messaging' => [
'key' => 'messaging',
@@ -286,5 +307,6 @@ return [
'tests' => true,
'optional' => true,
'icon' => '/images/services/messaging.png',
'platforms' => ['client', 'server', 'console'],
]
];
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More