Skip to content

feat: Appwrite 2.6.2, and fix the upstream drift check - #30

Merged
levivannoort merged 3 commits into
mainfrom
feat/appwrite-2.6.2
Oct 29, 2026
Merged

levivannoort merged 3 commits into
mainfrom
feat/appwrite-2.6.2

Conversation

@levivannoort

Copy link
Copy Markdown
Member

What

Appwrite 2.6.2 (release notes) is a security release: appwrite/base 2.2.7 patches Brotli (CVE-2026-111497), and it hardens API keys, realtime, GraphQL, storage, VCS and outbound requests. Its migration is the same V25 class as 2.6.1, so there's no schema change.

What changed for the chart, from the 2.6.1…2.6.2 diff of docker-compose.yml, .env and variables.php:

Upstream change In this PR
appVersion 2.6.2 appVersion, the icon URL, the CI DNS-check image, and every doc or example that names the version
console 1.2.108, browser 0.3.8, ExifTool 0.1.1 Pins bumped. Orchestrator 2.2.4 and executor 1.1.2 are unchanged; Orchestrator 4.0.0 waits for Appwrite 2.7.0
New _APP_MEMORY_LIMIT (512M) env-defaults.yaml regenerated; production.md says when to raise it
_APP_JOBS_SECRET rejects empty or your-secret-key The generated secret is already random. The render now fails if compute.secrets.orchestratorSecret is the placeholder
Project and messaging SMTP and migration sources follow _APP_ALLOWED_INTERNAL_ADDRESSES networking.md, CHANGELOG
Console drops the vcsEntire flag (appwrite/appwrite#14896) integrations.md no longer says Entire is hidden
appwrite-imports and _APP_DNS added to more workers Nothing to do: every pod already gets the shared env and the imports volume
init: true on PostgreSQL Nothing to do: the chart's probe runs pg_isready without a shell, so there's no process left to orphan

CI now upgrades from the published chart 2.1.0 (Appwrite 2.6.1).

Upstream drift check: the weekly run on 2026-10-26 found 2.6.2 but failed with php: not found before it opened an issue. gcrunner (#18) has no PHP, and make env-defaults needs it. This PR adds shivammathur/setup-php 2.40.0, pinned by SHA.

No version bump or artifacthub.io/changes edit here. Those happen when a release is cut.

Testing

  • make test: lint, 256 unit tests (including a new one for the placeholder secret), kubeconform, check-generated and check-changes all pass. Two migration tests pin the migrate Job name, whose hash covers the image tag, so those pins were updated.
  • actionlint passes on both changed workflows.
  • Not run locally on kind. The default upgrade scenario in test-install covers the 2.1.0 → this upgrade, including the migration.
  • The drift fix only runs on its schedule or by workflow_dispatch. Running it by hand on main after merge would confirm it, and it should exit early once main ships 2.6.2.

Checklist

  • make test passes locally
  • make generate was run and the generated files are committed
  • Unit tests added or updated
  • Guides in docs/ and files in examples/ updated
  • An entry under [Unreleased] in CHANGELOG.md
  • No renamed or removed values

The check moved to gcrunner in #18, whose image has no PHP, so
`make env-defaults` failed with "php: not found" on 2026-10-26 after
finding Appwrite 2.6.2, and no issue was opened. setup-php 2.40.0,
pinned by SHA like the other actions, with PHP 8.4 and no extra tools.
- appVersion 2.6.2, a security release (appwrite/base 2.2.7 for Brotli
  CVE-2026-111497; API key, realtime, GraphQL, storage, VCS and outbound
  request hardening). Migration V25 as 2.6.1, so no schema change.
- The images its docker-compose.yml uses: console 1.2.108-self-hosted
  (DOMPurify 3.4.17), browser 0.3.8, ExifTool 0.1.1. Orchestrator 2.2.4 and
  executor 1.1.2 are unchanged; Orchestrator 4.0.0 waits for Appwrite 2.7.
- files/env-defaults.yaml regenerated: _APP_MEMORY_LIMIT (512M) is new.
  production.md says when to raise it.
- The render refuses compute.secrets.orchestratorSecret=your-secret-key,
  which 2.6.2 rejects for job callbacks. The generated default is random.
- Docs: project and messaging SMTP and migration sources now follow
  _APP_ALLOWED_INTERNAL_ADDRESSES; the console offers Entire without a
  feature flag (appwrite/appwrite#14896); 2.6.2 wherever a version is named.
- compose's new appwrite-imports mounts and _APP_DNS on more workers need
  nothing: every pod gets the shared env and the imports volume already.
- CI upgrades from the published chart 2.1.0 (Appwrite 2.6.1).
@levivannoort levivannoort self-assigned this Oct 29, 2026
@hansi-codes

hansi-codes Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

🟢 Tier S · Ready to merge

The previous validation finding is fixed, and the new test exercises the existing-Secret exemption.

Updates the chart and its documentation, examples, and CI references for Appwrite 2.6.2, including bundled component pins and the new PHP memory default. Adds render-time validation for Appwrite's placeholder orchestrator secret, and fixes the upstream drift workflow by setting up PHP before generating environment defaults. The install upgrade scenario now starts from published chart 2.1.0.

Latest changes: The latest commits make placeholder-secret validation honor compute.secrets.existingSecret, add a test for that behavior, and clarify the changelog entry.

Verdict New comments Fixed Still open
✅ Approved 0 1 0
📂 Walkthrough · 25
File Change
.github/workflows/test-install.yaml Updates the DNS-check image and the chart version used by upgrade testing.
.github/workflows/upstream-drift.yaml Sets up PHP before generating upstream environment defaults.
CHANGELOG.md Records the 2.6.2 changes, placeholder-secret validation, and existing-Secret exception.
README.md Refreshes the documented Appwrite version.
charts/appwrite/Chart.yaml Updates appVersion, icon URL, and image metadata for Appwrite 2.6.2.
charts/appwrite/README.md Regenerates chart documentation with the updated versions and defaults.
charts/appwrite/README.md.gotmpl Updates the Appwrite version in the README template.
charts/appwrite/files/env-defaults.yaml Adds the Appwrite 2.6.2 PHP memory-limit default.
charts/appwrite/templates/_validate.tpl Rejects the public placeholder orchestrator secret unless an existing Secret supplies it.
charts/appwrite/tests/executor_test.yaml Tests rejection of the placeholder and exemption when using an existing Secret.
charts/appwrite/tests/migrations_test.yaml Updates migration expectations and generated Job names for Appwrite 2.6.2.
charts/appwrite/tests/serviceaccount_test.yaml Updates the expected Appwrite version label.
charts/appwrite/values.yaml Updates bundled Console, Browser, and ExifTool image pins.
docs/external-databases.md Refreshes Appwrite version references.
docs/integrations.md Updates Entire availability guidance and an Appwrite version reference.
docs/migrating-from-docker.md Updates the target Appwrite version for Docker migrations.
docs/networking.md Documents Appwrite 2.6.2 private-address restrictions and resolver behavior.
docs/optional-components.md Refreshes Browser and ExifTool image references.
docs/production.md Documents PHP memory-limit guidance and refreshes a version reference.
docs/storage.md Refreshes the Appwrite version reference.
docs/troubleshooting.md Refreshes Appwrite version references.
docs/upgrading.md Updates upgrade-test and migration-version references.
examples/aws.yaml Refreshes the Appwrite version reference.
examples/azure.yaml Refreshes the Appwrite version reference.
examples/gcp.yaml Refreshes the Appwrite version reference.
✅ Fixed since the last review · 1
  • Honor existingSecret precedence in placeholder validation · charts/appwrite/templates/_validate.tpl:124

Reviewed the commits since 943a0c8 · Details · Comment @hansi-codes review to re-run, or mention @hansi-codes with a question.

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Tier A · See the inline comments. Summary

Comment thread charts/appwrite/templates/_validate.tpl Resolved
…s set

_APP_JOBS_SECRET then comes from that Secret and orchestratorSecret is
ignored, so a leftover placeholder there mustn't fail the render.
From review on #30.

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Tier S · Looks good to merge. Summary

@levivannoort
levivannoort merged commit b94ac6c into main Oct 29, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant