Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
d1dbe79
fix: prepare self-hosted 2.0 release
ChiragAgg5k Aug 27, 2026
891f289
Merge pull request #13369 from ChiragAgg5k/fix/2.0-release-blockers
ChiragAgg5k Aug 27, 2026
17b4f69
fix: persist postgres data by mounting the volume at PGDATA
ChiragAgg5k Aug 27, 2026
5ee8200
fix: warn when upgrade ignores the requested database
ChiragAgg5k Aug 27, 2026
5216b1b
fix: bump APP_CACHE_BUSTER for the 2.0.0 release
ChiragAgg5k Aug 27, 2026
fde7cbc
fix: migrate onboarding and schedule project id in V25
ChiragAgg5k Aug 27, 2026
d9bc224
fix: make DocumentsDB and VectorsDB connections configurable
ChiragAgg5k Aug 27, 2026
c423279
fix: stop generating passwords for the pool credential overrides
ChiragAgg5k Aug 27, 2026
21e50da
chore(deps): pin utopia-php/platform to 1.0.0-rc18
ChiragAgg5k Aug 27, 2026
f2ff585
feat: make the database batch limit configurable
ChiragAgg5k Aug 27, 2026
e92e56d
feat: let operators choose which database products to deploy
ChiragAgg5k Aug 27, 2026
de7f258
test: cover a product reusing the platform engine
ChiragAgg5k Aug 27, 2026
87c3467
feat: offer the database products in the web installer
ChiragAgg5k Aug 27, 2026
90b4058
fix: install MongoDB support files whenever DocumentsDB needs them
ChiragAgg5k Aug 27, 2026
9507ed2
chore: merge main into 2.0.x
ChiragAgg5k Aug 27, 2026
e1b92c1
feat(console): allow Google sign-in to the console project
HarshMN2345 Aug 27, 2026
f207534
fix(realtime): drop dead fan-out grouping, meter outbound bytes
loks0n Aug 28, 2026
190d909
Merge pull request #13399 from appwrite/fix/migrate-builds-volume-on-…
ChiragAgg5k Aug 28, 2026
f2405c7
chore: merge main into 2.0.x
ChiragAgg5k Aug 28, 2026
5ad6fbd
chore: merge main into 2.0.x
ChiragAgg5k Aug 28, 2026
d989229
perf(realtime): single Swoole worker, encode the document once per event
loks0n Aug 28, 2026
cfefe12
fix(realtime): drop the now-dead outbound-bytes guard
loks0n Aug 28, 2026
05e1720
docs(sdks): clarify Cloud vs self-hosted SDK compatibility
cursoragent Aug 29, 2026
ba33088
revert: drop the installer choice for the database products
ChiragAgg5k Aug 29, 2026
fcb6d30
Merge pull request #13412 from appwrite/fix/disable-documentsdb-vecto…
ChiragAgg5k Aug 29, 2026
98f425f
chore: keep the cache buster at the 1.9.6 value
ChiragAgg5k Aug 29, 2026
90798d5
fix: normalize execution header values
ChiragAgg5k Aug 29, 2026
3f3367a
fix(installer): keep the topology the operator picked
ChiragAgg5k Aug 29, 2026
4ede88f
fix: align response models with JSON payloads (#13419)
ChiragAgg5k Aug 29, 2026
be53e99
Merge pull request #13420 from appwrite/fix/execution-header-response…
ChiragAgg5k Aug 29, 2026
02f860e
feat(installer): tidy up the web installer steps
ChiragAgg5k Aug 29, 2026
62926a9
chore: merge main into 2.0.x
ChiragAgg5k Aug 29, 2026
745f464
chore: merge 2.0.x into the installer branch
ChiragAgg5k Aug 29, 2026
528c2ba
feat(installer): follow the hostname for HTTPS, and let the account c…
ChiragAgg5k Aug 29, 2026
fb487d3
fix(install): read the upgraded-from version off .env when compose in…
ChiragAgg5k Aug 29, 2026
955dedd
test(e2e): give the project-variable function room for a cold start
abnegate Aug 30, 2026
be6b7bc
SkipFilters transactions
fogelito Aug 30, 2026
2382e76
Merge branch 'main' of https://github.com/appwrite/appwrite into tran…
fogelito Aug 30, 2026
eb52de2
Merge branch 'main' into feat/console-google-oauth
HarshMN2345 Aug 30, 2026
1866947
feat(console): register the console OAuth env vars in .env, compose a…
HarshMN2345 Aug 30, 2026
84517fb
Merge pull request #13423 from appwrite/fix/project-variable-function…
abnegate Aug 31, 2026
28757e6
Merge pull request #13385 from appwrite/feat/console-google-oauth
HarshMN2345 Aug 31, 2026
a1ee159
Merge pull request #13425 from appwrite/transactions-skipSubqueries
abnegate Aug 31, 2026
33f8534
Merge pull request #13379 from appwrite/2.0.x
ChiragAgg5k Aug 31, 2026
00078e8
Merge pull request #13418 from appwrite/docs/sdk-readme-self-hosted-lag
ChiragAgg5k Aug 31, 2026
8daa6c1
Refactor presence handling to optimize memory usage by storing presen…
ArnabChatterjee20k Aug 31, 2026
ecbc45b
Merge pull request #13428 from appwrite/realtime-diagnosis-bugs
ArnabChatterjee20k Aug 31, 2026
3fa2e2d
Merge pull request #13408 from appwrite/fix/realtime-fanout-coroutines
ArnabChatterjee20k Aug 31, 2026
11e8f83
fix(builds): cap the billed build duration at the build timeout (#13430)
loks0n Aug 31, 2026
5cbf89a
Add dedicated indexes scopes for DocumentsDB and VectorsDB
ArnabChatterjee20k Aug 31, 2026
3ca054e
Use indexes scope for DocumentsDB and VectorsDB index routes
ArnabChatterjee20k Aug 31, 2026
dbbf4d8
Grant DocumentsDB and VectorsDB indexes scopes to admin role
ArnabChatterjee20k Aug 31, 2026
90313b9
Add DocumentsDB and VectorsDB indexes scopes to e2e project key
ArnabChatterjee20k Aug 31, 2026
79d81a9
Merge pull request #13432 from appwrite/fix-index-scopes
ArnabChatterjee20k Aug 31, 2026
f8695ef
test: stop asserting the weight of a third-party page in testGetScree…
abnegate Aug 31, 2026
50861ba
Merge pull request #13436 from appwrite/fix/avatars-screenshot-third-…
abnegate Sep 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@ _APP_CONSOLE_COUNTRIES_DENYLIST=AQ
_APP_CONSOLE_WHITELIST_EMAILS=
_APP_CONSOLE_WHITELIST_IPS=
_APP_CONSOLE_WHITELIST_ROOT=disabled
_APP_CONSOLE_GITHUB_APP_ID=
_APP_CONSOLE_GITHUB_SECRET=
_APP_CONSOLE_GITLAB_APP_ID=
_APP_CONSOLE_GITLAB_SECRET=
_APP_CONSOLE_BITBUCKET_APP_ID=
_APP_CONSOLE_BITBUCKET_SECRET=
_APP_CONSOLE_GOOGLE_APP_ID=
_APP_CONSOLE_GOOGLE_SECRET=
# MariaDB and MongoDB only start when their profile is listed here; PostgreSQL always
# runs because VectorsDB requires it. MongoDB is on by default for DocumentsDB.
COMPOSE_PROFILES=mongodb
Expand Down
6 changes: 3 additions & 3 deletions README-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,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.9.6
appwrite/appwrite:2.0.0
```

### Windows
Expand All @@ -83,7 +83,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.9.6
appwrite/appwrite:2.0.0
```

#### PowerShell
Expand All @@ -93,7 +93,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.9.6
appwrite/appwrite:2.0.0
```

运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,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.9.6
appwrite/appwrite:2.0.0
```

### Windows
Expand All @@ -89,7 +89,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.9.6
appwrite/appwrite:2.0.0
```

#### PowerShell
Expand All @@ -100,7 +100,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.9.6
appwrite/appwrite:2.0.0
```

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.
Expand All @@ -116,7 +116,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.9.6
appwrite/appwrite:2.0.0
```

Use the same `--env DOCKER_API_VERSION=...` flag with `--entrypoint="upgrade"` when upgrading.
Expand Down
3 changes: 3 additions & 0 deletions app/config/console.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@
'bitbucketEnabled' => true,
'bitbucketSecret' => System::getEnv('_APP_CONSOLE_BITBUCKET_SECRET', ''),
'bitbucketAppid' => System::getEnv('_APP_CONSOLE_BITBUCKET_APP_ID', ''),
'googleEnabled' => true,
'googleSecret' => System::getEnv('_APP_CONSOLE_GOOGLE_SECRET', ''),
'googleAppid' => System::getEnv('_APP_CONSOLE_GOOGLE_APP_ID', ''),
],
'smtpBaseTemplate' => APP_BRANDED_EMAIL_BASE_TEMPLATE,
];
Expand Down
4 changes: 4 additions & 0 deletions app/config/roles.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,16 @@
'documentsdb.collections.write',
'documentsdb.documents.read',
'documentsdb.documents.write',
'documentsdb.indexes.read',
'documentsdb.indexes.write',
'vectorsdb.read',
'vectorsdb.write',
'vectorsdb.collections.read',
'vectorsdb.collections.write',
'vectorsdb.documents.read',
'vectorsdb.documents.write',
'vectorsdb.indexes.read',
'vectorsdb.indexes.write',
'tables.read',
'tables.write',
'platforms.read',
Expand Down
16 changes: 16 additions & 0 deletions app/config/scopes/project.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,14 @@
'description' => 'Access to create, update, and delete document database documents',
'category' => 'Databases',
],
'documentsdb.indexes.read' => [
'description' => 'Access to read document database collection indexes',
'category' => 'Databases',
],
'documentsdb.indexes.write' => [
'description' => 'Access to create, update, and delete document database collection indexes',
'category' => 'Databases',
],

// VectorsDB
'vectorsdb.read' => [
Expand All @@ -253,6 +261,14 @@
'description' => 'Access to create, update, and delete vector database documents',
'category' => 'Databases',
],
'vectorsdb.indexes.read' => [
'description' => 'Access to read vector database collection indexes',
'category' => 'Databases',
],
'vectorsdb.indexes.write' => [
'description' => 'Access to create, update, and delete vector database collection indexes',
'category' => 'Databases',
],

// Storage
'buckets.read' => [
Expand Down
74 changes: 73 additions & 1 deletion app/config/variables.php
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,78 @@
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GITHUB_APP_ID',
'description' => 'GitHub OAuth app client ID used for signing in to the Appwrite console. You can find it in your GitHub OAuth application details. This is separate from _APP_VCS_GITHUB_APP_ID, which powers repository integration rather than console sign-in and holds the numeric GitHub App ID instead of an OAuth client ID.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GITHUB_SECRET',
'description' => 'GitHub OAuth app client secret used for signing in to the Appwrite console. You can generate secrets in your GitHub OAuth application settings. This is separate from _APP_VCS_GITHUB_CLIENT_SECRET, which powers repository integration rather than console sign-in.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GITLAB_APP_ID',
'description' => 'GitLab OAuth application ID used for signing in to the Appwrite console. You can find it in your GitLab application details. This is separate from _APP_VCS_GITLAB_CLIENT_ID, which powers repository integration rather than console sign-in.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GITLAB_SECRET',
'description' => 'GitLab OAuth application secret used for signing in to the Appwrite console. You can generate one in your GitLab application settings. This is separate from _APP_VCS_GITLAB_CLIENT_SECRET, which powers repository integration rather than console sign-in.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_BITBUCKET_APP_ID',
'description' => 'Bitbucket OAuth consumer key used for signing in to the Appwrite console. You can find it in your Bitbucket workspace settings under OAuth consumers. This is separate from _APP_VCS_BITBUCKET_CLIENT_ID, which powers repository integration rather than console sign-in.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_BITBUCKET_SECRET',
'description' => 'Bitbucket OAuth consumer secret used for signing in to the Appwrite console. You can find it alongside the consumer key in your Bitbucket workspace settings under OAuth consumers. This is separate from _APP_VCS_BITBUCKET_CLIENT_SECRET, which powers repository integration rather than console sign-in.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GOOGLE_APP_ID',
'description' => 'Google OAuth 2.0 client ID used for signing in to the Appwrite console. You can create one in the Google Cloud Console under APIs & Services > Credentials. Unlike the other console sign-in providers, Google has no _APP_VCS_ counterpart, as it is not a repository host.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_GOOGLE_SECRET',
'description' => 'Google OAuth 2.0 client secret used for signing in to the Appwrite console. You can find it alongside the client ID in the Google Cloud Console under APIs & Services > Credentials.',
'introduction' => '2.0.0',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_SYSTEM_EMAIL_NAME',
'description' => 'This is the sender name value that will appear on email messages sent to developers from the Appwrite console. The default value is: \'Appwrite\'. You can use url encoded strings for spaces and special chars.',
Expand Down Expand Up @@ -351,7 +423,7 @@
],
[
'name' => '_APP_WORKER_PER_CORE',
'description' => 'Internal Worker per core for the API, Realtime and Executor containers. Can be configured to optimize performance.',
'description' => 'Internal Worker per core for the API and Executor containers. Can be configured to optimize performance. Realtime ignores this and runs a single worker per container; use _APP_WORKERS_NUM to override.',
'introduction' => '0.13.0',
'default' => 6,
'required' => false,
Expand Down
4 changes: 2 additions & 2 deletions app/init/constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@
const APP_RESOURCE_TOKEN_ACCESS = 24 * 60 * 60; // 24 hours
const APP_FILE_ACCESS = 24 * 60 * 60; // 24 hours
const APP_CACHE_UPDATE = 24 * 60 * 60; // 24 hours
const APP_CACHE_BUSTER = 4326;
const APP_VERSION_STABLE = '1.9.6';
const APP_CACHE_BUSTER = 4327;
const APP_VERSION_STABLE = '2.0.0';
const APP_DATABASE_ATTRIBUTE_EMAIL = 'email';
const APP_DATABASE_ATTRIBUTE_ENUM = 'enum';
const APP_DATABASE_ATTRIBUTE_IP = 'ip';
Expand Down
Loading
Loading