megachangelog
Announcement2.0.0-rc.3

Appwrite 2.0.0-rc.3 Release Candidate

Third release candidate for Appwrite 2.0.0 self-hosted deployment. Includes critical fixes for PostgreSQL durability settings, S3 storage build output handling, Git installation security and isolation, console authentication improvements, and performance optimizations for realtime events and billing accuracy.

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.

release-candidateself-hosteddatabasestoragesecuritygit

Source: original entry ↗

More from Appwrite

Follow Appwrite to get its new changes in your feed and email digest.

Feature1.2.69

Add signing certificate fingerprints to Android apps

Android app console now displays signing certificate fingerprints, enabling developers to manage and verify app signing credentials directly in Appwrite's console.

consoleandroidsigningcertificates
Feature1.2.68

Turn passkeys on with a domain picker

The passkeys enablement flow now includes a domain picker that suggests domains from the project's web platforms and displays the server's read-only origins where passkeys will work.

passkeysconsoleauthdomain-pickerui
Improvement1.2.67

Show MCP and CLI activity filters as selected chips

The console now displays MCP and CLI activity filters as selected chips in the activity view, making it easier to see which filters are currently applied.

consoleuiactivityfilters
See all Appwrite changes →