- Hash project ID (crc32) modulo _APP_DATABASE_WORKERS to determine
which database worker queue to use for each project
- Add _APP_DATABASE_WORKERS env var (default 4)
- Replace single appwrite-worker-databases service with 4 partitioned
workers (appwrite-worker-databases-0 through 3)
- Update health check endpoint default queue name
- Update install template with 4 database worker services
- Update health check test for new queue naming
Co-authored-by: abnegate <5857008+abnegate@users.noreply.github.com>
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>
- 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)
* 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>
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
- 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
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.