Appwrite 2.0.0-rc.3

2.0.0-rc.3Pre-release
Added 3
  • Self-hosted GitLab support via _APP_VCS_GITLAB_ENDPOINT for repository integration and _APP_CONSOLE_GITLAB_ENDPOINT for console sign-in
  • Google sign-in to the console via _APP_CONSOLE_GOOGLE_APP_ID and _APP_CONSOLE_GOOGLE_SECRET
  • Execution logs dual-write to ClickHouse via _APP_EXECUTIONS_DUAL_WRITE, _APP_CONNECTIONS_DB_EXECUTIONS, and _APP_POOL_SIZE_EXECUTIONS
Changed 2
  • Realtime is cheaper per event with one Swoole worker, document encoded once per event instead of once per subscriber, and presence stored as flags
  • Console updated to 1.1.8, Open Runtimes executor to 0.29.0, orchestrator to 1.9.2, and utopia-php/database to 7.3.4
Fixed 11
  • PostgreSQL no longer ships with durability turned off by removing fsync=off, synchronous_commit=off, and full_page_writes=off from the bundled compose
  • Build output with _APP_STORAGE_DEVICE set to S3-compatible backend now fails the build on failed upload instead of leaving deployments with nothing to run
  • Git installations are now isolated per project with installation repository endpoints scoped to the owning project
  • Git installation callback now redirects back to the console with an actionable error instead of dead-ending
  • Index listing now returns the right indexes instead of using collection id instead of sequence
  • Transactions now reject array queries up front instead of throwing on commit
Removed 1
  • GET /v1/health/executions endpoint

From Appwrite

Third release candidate for self-hosted 2.0.0. Pre-release — not recommended for production.

Highlights

Changes since 2.0.0-rc.2.

  • PostgreSQL no longer ships with durability turned off. The bundled compose passed fsync=off, synchronous_commit=off and full_page_writes=off, so a crash or power loss could leave the database corrupt. All three are gone.
  • Builds survive non-local storage. With _APP_STORAGE_DEVICE set to any S3-compatible backend, build output went to a local path nothing reads, leaving deployments ready with nothing to run. A failed upload now fails the build.
  • Git installations are isolated per project. Installation repository endpoints are scoped to the owning project and the GitHub App installation state is signed, so a callback cannot be replayed onto someone else's project.
  • The Git installation callback no longer dead-ends. GitHub, GitLab, Gitea and Bitbucket all redirect back to the console with an actionable error.
  • Self-hosted GitLab works. _APP_VCS_GITLAB_ENDPOINT for repository integration, _APP_CONSOLE_GITLAB_ENDPOINT for console sign-in.
  • Google sign-in to the console, via _APP_CONSOLE_GOOGLE_APP_ID and _APP_CONSOLE_GOOGLE_SECRET.
  • Index listing returns the right indexes. Lookups used collection id instead of sequence, so collections sharing an id across databases could see each other's indexes.
  • Transactions reject array queries up front instead of throwing on commit.
  • Integer attribute min/max are capped to what the column can hold.
  • teams.total matches confirmed memberships. Four paths could drift it, most visibly deleting a membership after a primary-owner transfer.
  • Buckets are no longer left half-created when their files collection fails.
  • Realtime is cheaper per event — one Swoole worker, the document encoded once per event instead of once per subscriber, presence stored as flags.
  • Build billing is accurate — skipped when the build never started, capped at the build timeout, tagged with the resource id.
  • Execution logs dual-write to ClickHouse. Off by default; reads stay on the project database and mirror failures are never fatal. _APP_EXECUTIONS_DUAL_WRITE, _APP_CONNECTIONS_DB_EXECUTIONS, _APP_POOL_SIZE_EXECUTIONS.
  • The console works over plain HTTP again. crypto.randomUUID is only exposed on secure origins, so on a self-hosted install reached over HTTP at a LAN IP or an internal hostname every project page died with a full-page error. That is a setup the installer explicitly provisions, since it turns HTTPS off for loopback, .local, .internal and bare IPs.
  • New console 1.1.8, Open Runtimes executor 0.29.0, orchestrator 1.9.2, utopia-php/database 7.3.4.
Removed
  • GET /v1/health/executions.
Try it
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:2.0.0-rc.3

Upgrading from 1.9.x uses the same command with --entrypoint="upgrade". Back up your data first.

Most useful things to exercise: functions and sites with _APP_STORAGE_DEVICE pointed at an S3-compatible backend, and connecting one Git installation from more than one project.

View original

Upgraded? How did it go?

Discussion