8000 Sync 1.6.2 into main by stnguyen90 · Pull Request #9755 · appwrite/appwrite · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Sync 1.6.2 into main #9755

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2,408 commits into from
May 15, 2025
Merged

Sync 1.6.2 into main #9755

merged 2,408 commits into from
May 15, 2025

Conversation

stnguyen90
Copy link
Contributor
@stnguyen90 stnguyen90 commented May 14, 2025

What does this PR do?

Update main with changes up to 1.6.2.

Test Plan

None

Related PRs and Issues

None

Checklist

  • Have you read the Contributing Guidelines on issues?
  • If the PR includes a change to an API's metadata (desc, label, params, etc.), does it also include updated API specs and example docs?

Summary by CodeRabbit

  • New Features

    • Added support for the Figma OAuth provider and RuPay credit card icon.
    • Introduced new database collection schemas for enhanced data management.
    • Expanded function runtime options, including Deno and updated Node.js, Dart, and Bun versions.
    • Added new environment variables for advanced configuration and resource management.
  • Enhancements

    • Improved API documentation with better grouping, region support, and refined endpoint descriptions.
    • Updated SDK versions and installation instructions across documentation.
    • Extended storage and usage metrics documentation.
  • Bug Fixes

    • Fixed attribute handling, OAuth improvements, and session deletion issues.
    • Addressed phone number parsing, resend invitation logic, logging, migration stability, and CPU usage optimization.
  • Style

    • Standardized punctuation in email templates and translations across multiple languages.
  • Chores

    • Upgraded Docker base image and dependencies.
    • Updated GitHub Actions workflows for improved CI/CD reliability.
    • Refined password lists and internal configuration arrays.
  • Documentation

    • Updated changelog, README, and contributing guidelines with latest features, fixes, and usage instructions.

shimonewman and others added 30 commits March 23, 2025 19:59
refactor: initialization of audit retention
christyjacob4 and others added 19 commits April 23, 2025 19:23
fix: ensure all 4xx errors in OAuth redirect lead to the failure URL
…ble-function-size

Revert "Add configurable function and build size"
core: introduce endpoint.docs in specs
fix: remove content-type header from get request specs
Clarify that 0 for _APP_FUNCTIONS_CPUS and _APP_FUNCTIONS_MEMORY means
unlimited.
fix(functions): treat 0 as unlimited for CPUs and memory
feat(dispatch): add contextual dispatch logic
Copy link
coderabbitai bot commented May 14, 2025

Walkthrough

This update introduces new configuration files defining detailed database collection schemas for core application entities, platform metadata, project resources, and logs. It also adds a new console project configuration and updates CLI resource initialization, including error handling and resource naming. Several configuration files are enhanced or refactored for structure and clarity.

Changes

File(s) Change Summary
app/config/collections/common.php
app/config/collections/platform.php
app/config/collections/projects.php
app/config/collections/databases.php
app/config/collections/logs.php
Added new configuration files defining detailed schemas for collections related to common entities, platform metadata, project resources, databases, and logs. Each file specifies collection IDs, attributes, types, filters, and indexes.
app/config/console.php Added new configuration file for initializing the console project document, including project/platform metadata, authentication settings, OAuth provider configuration, and whitelists.
app/cli.php Refactored CLI resource setup: Renamed and generalized database resources, added new resources for logs and stats queues, improved error logging, and updated initialization logic to require a task name argument.
app/config/errors.php Updated error configuration: Added new error codes (GENERAL_RESOURCE_BLOCKED, DATABASE_QUERY_ORDER_NULL, INDEX_DEPENDENCY), removed TEAM_INVITE_ALREADY_EXISTS, and updated descriptions for clarity.
app/config/function-templates.php Enhanced function template configuration: Added Deno runtime, updated versions for Node, Dart, Bun, and ensured consistent template structure.
app/config/locale/continents.php
app/config/locale/countries.php
Refined locale data: Changed continent and country configs from simple code arrays to associative arrays including names and coordinates.
app/config/oAuthProviders.php Added Figma OAuth provider to the list of supported OAuth providers.
app/config/platforms.php Updated SDK versions for multiple platforms; removed unused constants.
app/config/regions.php Simplified region configuration: Retained only the 'default' region with minimal fields.
app/config/roles.php Adjusted role scopes: Moved 'projects.write' from member to admin, added trailing commas for consistency.
app/assets/security/10k-common-passwords Removed redundant password entries to reduce duplication.
app/config/locale/templates/email-inner-base.tpl
app/config/locale/templates/email-magic-url.tpl
app/config/locale/templates/email-mfa-challenge.tpl
app/config/locale/templates/email-otp.tpl
app/config/locale/templates/email-session-alert.tpl
Standardized email template greetings: Removed trailing commas from greeting placeholders for consistency.
app/config/locale/translations/*.json Localized email punctuation: Updated greetings and thanks lines in many translation files to add or remove trailing commas for punctuation consistency.
app/config/specs/open-api3-1.6.x-client.json
app/config/specs/open-api3-latest-client.json
app/config/specs/swagger2-latest-client.json
Updated OpenAPI/Swagger specs: Added grouping metadata, improved descriptions, added new enums (e.g., Figma OAuth, RuPay credit card, new image formats), updated response schemas, and refined endpoint metadata.

Sequence Diagram(s)

sequenceDiagram
    participant CLI as CLI Entrypoint
    participant Resources as Resource Registry
    participant DB as Database
    participant LogsDB as Logs Database
    participant Queues as Event Queues
    participant Executor as Executor

    CLI->>Resources: Initialize resources (dbForPlatform, getProjectDB, getLogsDB, queues, executor)
    Resources->>DB: Setup platform/project database (supports shared tables)
    Resources->>LogsDB: Setup logs database (tenant-aware)
    Resources->>Queues: Setup event publishers (StatsUsage, StatsResources)
    Resources->>Executor: Setup executor with host resolver
    CLI->>Resources: Require task name argument
    CLI->>Resources: Register error handler (logError)
    CLI->>Resources: Execute requested task with context
Loading

Possibly related PRs

Poem

In the warren of configs, we burrow deep,
With schemas and locales, our data we keep.
New runtimes hop in, OAuth bunnies abound,
Errors get clearer, and docs are renowned.
From console to CLI, the carrots align—
CodeRabbit’s garden is looking divine! 🥕

Tip

⚡️ Faster reviews with caching
  • CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure Review - Disable Cache at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the Data Retention setting under your Organization Settings.

Enjoy the performance boost—your workflow just got faster.

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

6D47

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Security Scan Results for PR

Docker Image Scan Results

Package Version Vulnerability Severity
binutils 2.42-r0 CVE-2025-0840 HIGH
libexpat 2.6.4-r0 CVE-2024-8176 HIGH
libxml2 2.12.7-r0 CVE-2024-56171 HIGH
libxml2 2.12.7-r0 CVE-2025-24928 HIGH
libxml2 2.12.7-r0 CVE-2025-27113 HIGH
sqlite-libs 3.45.3-r1 CVE-2025-29087 HIGH
xz 5.6.2-r0 CVE-2025-31115 HIGH
xz-libs 5.6.2-r0 CVE-2025-31115 HIGH
golang.org/x/crypto v0.31.0 CVE-2025-22869 HIGH

Source Code Scan Results

🎉 No vulnerabilities found!

Copy link
pkg-pr-new bot commented May 14, 2025

Open in StackBlitz

npm i https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@9755

commit: da4a1b4

Copy link
@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 24

🧹 Nitpick comments (15)
app/config/roles.php (1)

78-78: Consider consistent ordering of read vs. write scopes.

Here, subscribers.write precedes subscribers.read, but in other places *.read often comes before *.write. For improved readability and consistency, you might reorder these entries:

-    'subscribers.write',
-    'subscribers.read',
+    'subscribers.read',
+    'subscribers.write',
Dockerfile (1)

31-31: Combine APK installations for efficiency.

Instead of two separate RUN apk add layers, you can merge them into one to reduce the final image size:

 RUN \
-  if [ "$DEBUG" == "true" ]; then \
-    apk add boost boost-dev; \
-  fi
 RUN apk add libwebp
+  && if [ "$DEBUG" = "true" ]; then \
+       apk add boost boost-dev; \
+     fi \
+  && apk add libwebp
CONTRIBUTING.md (2)

322-328: Proofread new metrics table entries
Ensure the added metrics (databases.storage, {databaseInternalId}.storage, {databaseInternalId}.{collectionInternalId}.storage) follow the same capitalization and description style as existing rows.


616-624: Fix typos and markdown formatting in preview domains section

  • Correct “woekspaces” → “workspaces”.
  • Add missing article: “visit the hostname provided by them”.
  • Specify language for the fenced code block (e.g., ```bash).
🧰 Tools
🪛 LanguageTool

[grammar] ~618-~618: It appears that the past participle should be used here.
Context: ...o execute the function. This domain has format [SOMETHING].functions.localhost unles...

(HAVE_PART_AGREEMENT)


[uncategorized] ~620-~620: Possible missing article found.
Context: ...ains on Cloud workspaces, you can visit hostname provided by them, and supply function's...

(AI_HYDRA_LEO_MISSING_THE)


[uncategorized] ~620-~620: Possible missing article found.
Context: ...t hostname provided by them, and supply function's preview domain as URL parameter: ```...

(AI_HYDRA_LEO_MISSING_THE)

🪛 markdownlint-cli2 (0.17.2)

622-622: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

.github/workflows/tests.yml (1)

243-243: Remove trailing whitespace.

There is a trailing whitespace on line 243 that should be removed.

-          
+
🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 243-243: trailing spaces

(trailing-spaces)

app/config/specs/open-api3-1.6.x-client.json (1)

20-23: Added multi‐region server URL
The new server entry with <REGION> placeholder is a great addition for regional deployments. Consider adding a variables section under servers to document valid REGION values and defaults, improving toolchain support and client generation.

app/cli.php (1)

264-276: Guard against empty task name after array shift

array_shift($args) removes the first element; if only one argument was supplied, $args[0] becomes undefined.

\array_shift($args);
-$taskName = $args[0];
+$taskName = $args[0] ?? '';
+if ($taskName === '') {
+    Console::error('Missing task name');
+    Console::exit(1);
+}

Pre-emptively handling this edge-case prevents “Undefined offset 0” notices in quiet scripts.

app/config/collections/common.php (1)

118-120: Typo in inline comment

digittsdigits.

-16, // leading '+' and 15 digitts maximum by E.164 format
+16, // leading '+' and 15 digits maximum by E.164 format

Purely cosmetic but worth correcting for professionalism.

app/config/collections/projects.php (1)

1260-1280: Inconsistent duration field type between collections

Builds uses VAR_INTEGER for duration, while Executions (line 1410) uses VAR_FLOAT. Mixing integer and float for the same semantic field complicates analytics and client SDKs.

Decide on one representation (milliseconds integer or seconds float) and use it consistently across both collections.

app/config/specs/open-api3-latest-client.json (1)

3438-3443: Include “rupay” in credit card code enumeration
The "rupay" value and enum key have been added to credit card codes. For consistency and maintainability, consider sorting all enumeration entries alphabetically.

Also applies to: 3461-3463

app/config/specs/swagger2-latest-client.json (2)

9769-9777: Add expired boolean to target schema.
A new "expired" field indicates if a push target has expired. Update client models, UI displays, and validation rules to handle this boolean. Consider defaulting older records to false.

Also applies to: 9785-9788


3429-3436: Endpoints with group: null for Avatars/Location.
Several avatar and generic location endpoints use "group": null. It may be clearer to assign them a dedicated group (e.g., "avatars") for consistency in navigation and codegen. If null is intentional, document this exception in your spec glossary.

Also applies to: 4236-4242, 4319-4325, 3687-3693, 4237-4242

app/config/locale/translations/pt-pt.json (1)

13-13: Remove extra space before comma in magic session greeting
There is an extra space before the comma. It should be "Olá," instead of "Olá ," to avoid awkward spacing.
Apply this diff:

-"emails.magicSession.hello": "Olá ,",
+"emails.magicSession.hello": "Olá,",
app/config/locale/translations/sk.json (1)

10-10: Fix duplicated punctuation in verification thanks
The string currently contains both a period and a comma. It should only have a comma:

-"Ďakujeme.,"
+"Ďakujeme,"
app/config/locale/translations/tl.json (1)

13-16: Nit: Remove extra space before comma
The greeting "Kamusta ," contains an unintended space before the comma. It should be:

- "emails.magicSession.hello": "Kamusta ,",
+ "emails.magicSession.hello": "Kamusta,",

This aligns with other locales and avoids awkward spacing.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 34d587d and da4a1b4.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (107)
  • .env (6 hunks)
  • .github/workflows/publish.yml (1 hunks)
  • .github/workflows/release.yml (1 hunks)
  • .github/workflows/tests.yml (9 hunks)
  • .gitpod.yml (1 hunks)
  • CHANGES.md (1 hunks)
  • CONTRIBUTING.md (5 hunks)
  • Dockerfile (3 hunks)
  • README-CN.md (3 hunks)
  • README.md (4 hunks)
  • app/assets/security/10k-common-passwords (0 hunks)
  • app/cli.php (11 hunks)
  • app/config/collections/common.php (1 hunks)
  • app/config/collections/databases.php (1 hunks)
  • app/config/collections/logs.php (1 hunks)
  • app/config/collections/platform.php (1 hunks)
  • app/config/collections/projects.php (1 hunks)
  • app/config/console.php (1 hunks)
  • app/config/errors.php (5 hunks)
  • app/config/function-templates.php (11 hunks)
  • app/config/locale/continents.php (1 hunks)
  • app/config/locale/countries.php (1 hunks)
  • app/config/locale/templates/email-inner-base.tpl (1 hunks)
  • app/config/locale/templates/email-magic-url.tpl (1 hunks)
  • app/config/locale/templates/email-mfa-challenge.tpl (1 hunks)
  • app/config/locale/templates/email-otp.tpl (1 hunks)
  • app/config/locale/templates/email-session-alert.tpl (1 hunks)
  • app/config/locale/translations/af.json (2 hunks)
  • app/config/locale/translations/ar-ma.json (1 hunks)
  • app/config/locale/translations/ar.json (2 hunks)
  • app/config/locale/translations/as.json (2 hunks)
  • app/config/locale/translations/az.json (2 hunks)
  • app/config/locale/translations/be.json (2 hunks)
  • app/config/locale/translations/bg.json (2 hunks)
  • app/config/locale/translations/bh.json (2 hunks)
  • app/config/locale/translations/bn.json (2 hunks)
  • app/config/locale/translations/bs.json (2 hunks)
  • app/config/locale/translations/ca.json (2 hunks)
  • app/config/locale/translations/cs.json (2 hunks)
  • app/config/locale/translations/da.json (2 hunks)
  • app/config/locale/translations/de.json (2 hunks)
  • app/config/locale/translations/el.json (2 hunks)
  • app/config/locale/translations/en.json (2 hunks)
  • app/config/locale/translations/eo.json (2 hunks)
  • app/config/locale/translations/es.json (2 hunks)
  • app/config/locale/translations/fa.json (2 hunks)
  • app/config/locale/translations/fi.json (2 hunks)
  • app/config/locale/translations/fo.json (2 hunks)
  • app/config/locale/translations/fr.json (2 hunks)
  • app/config/locale/translations/ga.json (2 hunks)
  • app/config/locale/translations/gu.json (2 hunks)
  • app/config/locale/translations/he.json (2 hunks)
  • app/config/locale/translations/hi.json (2 hunks)
  • app/config/locale/translations/hr.json (2 hunks)
  • app/config/locale/translations/hu.json (2 hunks)
  • app/config/locale/translations/hy.json (2 hunks)
  • app/config/locale/translations/id.json (2 hunks)
  • app/config/locale/translations/is.json (1 hunks)
  • app/config/locale/translations/it.json (2 hunks)
  • app/config/locale/translations/ja.json (2 hunks)
  • app/config/locale/translations/jv.json (2 hunks)
  • app/config/locale/translations/km.json (1 hunks)
  • app/config/locale/translations/kn.json (2 hunks)
  • app/config/locale/translations/ko.json (2 hunks)
  • app/config/locale/translations/la.json (2 hunks)
  • app/config/locale/translations/lb.json (2 hunks)
  • app/config/locale/translations/lt.json (2 hunks)
  • app/config/locale/translations/lv.json (2 hunks)
  • app/config/locale/translations/ml.json (2 hunks)
  • app/config/locale/translations/mr.json (2 hunks)
  • app/config/locale/translations/ms.json (2 hunks)
  • app/config/locale/translations/nb.json (2 hunks)
  • app/config/locale/translations/ne.json (2 hunks)
  • app/config/locale/translations/nl.json (2 hunks)
  • app/config/locale/translations/nn.json (2 hunks)
  • app/config/locale/translations/or.json (2 hunks)
  • app/config/locale/translations/pa.json (2 hunks)
  • app/config/locale/translations/pl.json (2 hunks)
  • app/config/locale/translations/pt-br.json (2 hunks)
  • app/config/locale/translations/pt-pt.json (2 hunks)
  • app/config/locale/translations/ro.json (2 hunks)
  • app/config/locale/translations/ru.json (2 hunks)
  • app/config/locale/translations/sa.json (2 hunks)
  • app/config/locale/translations/sd.json (2 hunks)
  • app/config/locale/translations/si.json (2 hunks)
  • app/config/locale/translations/sk.json (2 hunks)
  • app/config/locale/translations/sl.json (2 hunks)
  • app/config/locale/translations/sn.json (2 hunks)
  • app/config/locale/translations/sq.json (2 hunks)
  • app/config/locale/translations/sv.json (2 hunks)
  • app/config/locale/translations/ta.json (2 hunks)
  • app/config/locale/translations/te.json (2 hunks)
  • app/config/locale/translations/th.json (1 hunks)
  • app/config/locale/translations/tl.json (2 hunks)
  • app/config/locale/translations/tr.json (2 hunks)
  • app/config/locale/translations/uk.json (2 hunks)
  • app/config/locale/translations/ur.json (2 hunks)
  • app/config/locale/translations/vi.json (1 hunks)
  • app/config/locale/translations/zh-cn.json (2 hunks)
  • app/config/locale/translations/zh-tw.json (2 hunks)
  • app/config/oAuthProviders.php (1 hunks)
  • app/config/platforms.php (17 hunks)
  • app/config/regions.php (1 hunks)
  • app/config/roles.php (2 hunks)
  • app/config/specs/open-api3-1.6.x-client.json (132 hunks)
  • app/config/specs/open-api3-latest-client.json (124 hunks)
  • app/config/specs/swagger2-latest-client.json (160 hunks)
💤 Files with no reviewable changes (1)
  • app/assets/security/10k-common-passwords
🧰 Additional context used
🧬 Code Graph Analysis (2)
app/config/errors.php (1)
src/Appwrite/Extend/Exception.php (1)
  • Exception (7-365)
app/config/collections/common.php (2)
src/Appwrite/Auth/Auth.php (1)
  • Auth (18-510)
src/Appwrite/Event/Database.php (1)
  • Database (9-132)
🪛 YAMLlint (1.35.1)
.github/workflows/tests.yml

[error] 243-243: trailing spaces

(trailing-spaces)

🪛 LanguageTool
CONTRIBUTING.md

[uncategorized] ~437-~437: Possible missing comma found.
Context: ...and then trigger the queue with the new metric like so: ```php $queueForStatsUsage ...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~618-~618: It appears that the past participle should be used here.
Context: ...o execute the function. This domain has format [SOMETHING].functions.localhost unles...

(HAVE_PART_AGREEMENT)


[uncategorized] ~620-~620: Possible missing article found.
Context: ...ains on Cloud workspaces, you can visit hostname provided by them, and supply function's...

(AI_HYDRA_LEO_MISSING_THE)


[uncategorized] ~620-~620: Possible missing article found.
Context: ...t hostname provided by them, and supply function's preview domain as URL parameter: ```...

(AI_HYDRA_LEO_MISSING_THE)

🪛 markdownlint-cli2 (0.17.2)
CONTRIBUTING.md

622-622: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

CHANGES.md

271-271: Bare URL used
null

(MD034, no-bare-urls)


272-272: Bare URL used
null

(MD034, no-bare-urls)


273-273: Bare URL used
null

(MD034, no-bare-urls)


274-274: Bare URL used
null

(MD034, no-bare-urls)


275-275: Bare URL used
null

(MD034, no-bare-urls)


276-276: Bare URL used
null

(MD034, no-bare-urls)


277-277: Bare URL used
null

(MD034, no-bare-urls)


278-278: Bare URL used
null

(MD034, no-bare-urls)


279-279: Bare URL used
null

(MD034, no-bare-urls)


280-280: Bare URL used
null

(MD034, no-bare-urls)


284-284: Bare URL used
null

(MD034, no-bare-urls)


285-285: Bare URL used
null

(MD034, no-bare-urls)


286-286: Bare URL used
null

(MD034, no-bare-urls)


287-287: Bare URL used
null

(MD034, no-bare-urls)


288-288: Bare URL used
null

(MD034, no-bare-urls)


289-289: Bare URL used
null

(MD034, no-bare-urls)


290-290: Bare URL used
null

(MD034, no-bare-urls)


291-291: Bare URL used
null

(MD034, no-bare-urls)


292-292: Bare URL used
null

(MD034, no-bare-urls)


293-293: Bare URL used
null

(MD034, no-bare-urls)


294-294: Bare URL used
null

(MD034, no-bare-urls)


295-295: Bare URL used
null

(MD034, no-bare-urls)


296-296: Bare URL used
null

(MD034, no-bare-urls)


297-297: Bare URL used
null

(MD034, no-bare-urls)


298-298: Bare URL used
null

(MD034, no-bare-urls)


299-299: Bare URL used
null

(MD034, no-bare-urls)


300-300: Bare URL used
null

(MD034, no-bare-urls)


301-301: Bare URL used
null

(MD034, no-bare-urls)


302-302: Bare URL used
null

(MD034, no-bare-urls)


303-303: Bare URL used
null

(MD034, no-bare-urls)


304-304: Bare URL used
null

(MD034, no-bare-urls)


305-305: Bare URL used
null

(MD034, no-bare-urls)


306-306: Bare URL used
null

(MD034, no-bare-urls)


310-310: Bare URL used
null

(MD034, no-bare-urls)


311-311: Bare URL used
null

(MD034, no-bare-urls)


312-312: Bare URL used
null

(MD034, no-bare-urls)


313-313: Bare URL used
null

(MD034, no-bare-urls)


314-314: Bare URL used
null

(MD034, no-bare-urls)


315-315: Bare URL used
null

(MD034, no-bare-urls)


316-316: Bare URL used
null

(MD034, no-bare-urls)


317-317: Bare URL used
null

(MD034, no-bare-urls)


318-318: Bare URL used
null

(MD034, no-bare-urls)


319-319: Bare URL used
null

(MD034, no-bare-urls)


320-320: Bare URL used
null

(MD034, no-bare-urls)


321-321: Bare URL used
null

(MD034, no-bare-urls)


322-322: Bare URL used
null

(MD034, no-bare-urls)


323-323: Bare URL used
null

(MD034, no-bare-urls)


324-324: Bare URL used
null

(MD034, no-bare-urls)


325-325: Bare URL used
null

(MD034, no-bare-urls)


326-326: Bare URL used
null

(MD034, no-bare-urls)


327-327: Bare URL used
null

(MD034, no-bare-urls)


328-328: Bare URL used
null

(MD034, no-bare-urls)


329-329: Bare URL used
null

(MD034, no-bare-urls)


330-330: Bare URL used
null

(MD034, no-bare-urls)


331-331: Bare URL used
null

(MD034, no-bare-urls)


332-332: Bare URL used
null

(MD034, no-bare-urls)


333-333: Bare URL used
null

(MD034, no-bare-urls)


334-334: Bare URL used
null

(MD034, no-bare-urls)


335-335: Bare URL used
null

(MD034, no-bare-urls)


336-336: Bare URL used
null

(MD034, no-bare-urls)


337-337: Bare URL used
null

(MD034, no-bare-urls)


338-338: Bare URL used
null

(MD034, no-bare-urls)


339-339: Bare URL used
null

(MD034, no-bare-urls)


340-340: Bare URL used
null

(MD034, no-bare-urls)


341-341: Bare URL used
null

(MD034, no-bare-urls)


342-342: Bare URL used
null

(MD034, no-bare-urls)


343-343: Bare URL used
null

(MD034, no-bare-urls)


344-344: Bare URL used
null

(MD034, no-bare-urls)


345-345: Bare URL used
null

(MD034, no-bare-urls)


346-346: Bare URL used
null

(MD034, no-bare-urls)


347-347: Bare URL used
null

(MD034, no-bare-urls)


348-348: Bare URL used
null

(MD034, no-bare-urls)


349-349: Bare URL used
null

(MD034, no-bare-urls)


350-350: Bare URL used
null

(MD034, no-bare-urls)


351-351: Bare URL used
null

(MD034, no-bare-urls)


352-352: Bare URL used
null

(MD034, no-bare-urls)


353-353: Bare URL used
null

(MD034, no-bare-urls)


354-354: Bare URL used
null

(MD034, no-bare-urls)


355-355: Bare URL used
null

(MD034, no-bare-urls)


356-356: Bare URL used
null

(MD034, no-bare-urls)


357-357: Bare URL used
null

(MD034, no-bare-urls)


358-358: Bare URL u F438 sed
null

(MD034, no-bare-urls)


359-359: Bare URL used
null

(MD034, no-bare-urls)


360-360: Bare URL used
null

(MD034, no-bare-urls)


361-361: Bare URL used
null

(MD034, no-bare-urls)


362-362: Bare URL used
null

(MD034, no-bare-urls)


363-363: Bare URL used
null

(MD034, no-bare-urls)


364-364: Bare URL used
null

(MD034, no-bare-urls)


365-365: Bare URL used
null

(MD034, no-bare-urls)


366-366: Bare URL used
null

(MD034, no-bare-urls)


367-367: Bare URL used
null

(MD034, no-bare-urls)


368-368: Bare URL used
null

(MD034, no-bare-urls)


369-369: Bare URL used
null

(MD034, no-bare-urls)


370-370: Bare URL used
null

(MD034, no-bare-urls)


371-371: Bare URL used
null

(MD034, no-bare-urls)


372-372: Bare URL used
null

(MD034, no-bare-urls)


373-373: Bare URL used
null

(MD034, no-bare-urls)


374-374: Bare URL used
null

(MD034, no-bare-urls)


375-375: Bare URL used
null

(MD034, no-bare-urls)


376-376: Bare URL used
null

(MD034, no-bare-urls)


377-377: Bare URL used
null

(MD034, no-bare-urls)

🔇 Additional comments (351)
app/config/locale/countries.php (2)

4-9: LGTM! Updated documentation is clear and informative.

The documentation has been properly updated to reflect the new data structure, including country names and coordinates, with appropriate citation of data sources.


12-210: Enhanced data structure with names and coordinates is a good improvement.

The transformation from a simple indexed array to an associative array with country names and geographic coordinates provides much richer data that can be used for mapping, geolocation features, and better UI display options.

app/config/locale/continents.php (2)

3-8: LGTM! Documentation is clear and properly formatted.

The added comment block clearly explains the contents of the file and provides appropriate context about the approximate nature of the coordinates.


11-45: Well-structured data enrichment with consistent formatting.

The transformation from a simple array to a more detailed associative array with continent names and coordinates follows the same pattern as the country data, providing a consistent approach across locale files. The structured format with proper indentation improves readability.

README-CN.md (3)

75-75: Confirm Docker image version bump for Unix installation
Updated image tag to 1.6.2 to match the new release. Looks correct.


87-87: Confirm Docker image version bump for Windows CMD installation
Updated image tag to 1.6.2 to match the new release. Looks correct.


97-97: Confirm Docker image version bump for PowerShell installation
Updated image tag to 1.6.2 to match the new release. Looks correct.

README.md (4)

53-53: Approve section rename to "Products"
The navigation link has been updated from "Services" to "Products" and the corresponding #products anchor exists in the document.


80-80: Confirm Docker image version bump for Unix installation
Updated image tag to 1.6.2 to align with the 1.6.2 release.


92-92: Confirm Docker image version bump for Windows CMD installation
Updated image tag to 1.6.2 to align with the 1.6.2 release.


102-102: Confirm Docker image version bump for PowerShell installation
Updated image tag to 1.6.2 to align with the 1.6.2 release.

.github/workflows/publish.yml (1)

29-29: Ensure repository variable for Docker Hub username is set
Credential source changed from secrets.DOCKERHUB_USERNAME to vars.DOCKERHUB_USERNAME. Please verify that this repository variable is defined and accessible to the workflow.

.gitpod.yml (1)

10-10: Approve user context for container
Adding --user "$(id -u):$(id -g)" ensures Composer runs with the current user's UID/GID, preventing permission issues on mounted volumes.

.github/workflows/release.yml (1)

31-31: Ensure repository variable for Docker Hub username is set
Credential source changed from secrets.DOCKERHUB_USERNAME to vars.DOCKERHUB_USERNAME. Please verify that this repository variable is defined and accessible to the workflow.

app/config/oAuthProviders.php (1)

145-154: Validate the new Figma provider entry.

The figma provider has been added in alphabetical order between facebook and github, which aligns with the existing list. Fields such as developers, icon, and boolean flags follow the same format as other providers.
Please confirm that the developers URL is correct and that any UI components rendering the provider list will handle the new icon identifier (icon-figma).

app/config/roles.php (1)

51-51: Approve assignment of projects.write to admins.

Moving projects.write from the member role to the admin role tightens project write access as intended. Ensure that any automation or UI checks relying on this scope are updated accordingly.

app/config/regions.php (1)

6-6: Confirm the use of 'default' for the region name.

Changing the display name from "Frankfurt" to "default" may affect front-end labels or dropdown menus. Please verify that this key/value pair aligns with any UI or localization requirements, and that a more user-friendly label isn't needed.

app/config/platforms.php (4)

1-3: Inconsistent summary regarding platform constants.

The AI-generated summary mentions that constants like APP_PLATFORM_SERVER, APP_PLATFORM_CLIENT, and APP_PLATFORM_CONSOLE were removed, but they remain in this file. Please confirm whether those constants should be eliminated or update the summary to reflect the actual changes.

Likely an incorrect or invalid review comment.


14-80: Confirm Client SDK version bumps.

Multiple client SDK version fields have been updated (e.g., Web → 17.0.2, Flutter → 15.0.2, Apple → 9.0.1, Android → 7.0.1, React Native → 0.7.3). Ensure these values match the published SDK releases and align with your release notes/documentation.


202-220: Verify Console SDK version updates.

The Console SDKs (web1.2.1, cli6.2.3) have been bumped and the beta flags adjusted. Please confirm these correspond to actual release artifacts and intended stability levels.


248-392: Validate Server SDK version upgrades.

All server SDKs have new major/minor versions (Node.js → 16.0.0, Deno → 14.0.0, PHP → 14.0.0, Python → 10.0.0, Ruby → 15.0.0, Go → 0.5.0, .NET → 0.12.0, Dart → 15.0.0, Kotlin → 8.0.0, Swift → 9.0.0). Please verify each version against your Git tags and package registries, and consider any backward-compatibility or migration guidance.

Dockerfile (3)

15-15: Confirm base image update compatibility.

The base image was changed to appwrite/base:0.10.1. Please ensure this image includes all required system dependencies, matches your CI/testing environments, and does not introduce regressions compared to version 0.9.3.


88-90: Verify new worker scripts exist.

The Dockerfile grants execution permissions to:

worker-stats-usage
stats-resources
worker-stats-resources

Ensure these scripts are present under /usr/local/bin and correspond to the queue resources added in your application code.


96-99: Approve debug extension adjustments.

The conditional logic now correctly handles the updated PHP extension directory (no-debug-non-zts-20230831) for Xdebug. This matches the base image change and looks correct.

app/config/collections/logs.php (2)

12-68: Schema attributes look solid
The new stats collection attributes are consistently defined with appropriate types, sizes, required flags, defaults, and filters (e.g., datetime on the time field). This aligns well with the intended metrics storage model.


69-91: Indexes correctly optimize querying patterns
The combination of key and unique indexes on time, (period, time), and (metric, period, time) supports both descending and ascending query orders as intended for stats lookups.

app/config/collections/databases.php (2)

11-94: Collection schema attributes are well defined
All fields for the collections collection have clear types, sizes, and filters (e.g., subQueryAttributes, subQueryIndexes). Required flags and defaults match expectations for metadata storage.


95-124: Indexes cover full-text and key lookups
The full-text index on search plus key indexes on name, enabled, and documentSecurity provide efficient filtering and search capabilities.

.env (1)

5-7: New environment variables appear appropriate
The added settings for compression, custom domains, rules format, S3 endpoint, audit retention, stats intervals, and abuse limits align with the new features.

Also applies to: 18-19, 27-28, 43-44, 90-93, 116-117

app/config/function-templates.php (7)

6-6: Excellent update to include the latest Node.js version.

Adding version "22" at the front of the versions array ensures developers have access to the latest Node.js runtime for their functions.


14-14: Good addition of Dart 3.5 runtime.

Keeping the runtime versions up-to-date ensures developers can use the latest features of the Dart language.


24-27: Great addition of Deno runtime support.

Adding the Deno runtime expands the platform's capabilities, giving developers more options for serverless functions.


30-30: Updated Bun version to include 1.1.

Keeping up-to-date with the latest Bun runtime version is valuable for developers.


80-80: Good implementation of Deno runtime for starter functions.

The Deno runtime configuration is properly implemented with the appropriate cache command and entrypoint file path.


235-235: Formatting improvements for better readability.

The consistent indentation in these multiline string literals improves code readability.

Also applies to: 260-260, 272-272, 499-499, 568-568


1570-1571: Fixed missing 'scopes' array in Perplexity AI template.

Adding the missing 'scopes' => [] array ensures consistent structure across all function templates, preventing potential issues when templates are processed.

app/config/errors.php (5)

27-31: Good addition of resource blocking error.

The new GENERAL_RESOURCE_BLOCKED error provides a specific error message for when access to a resource is blocked, with an appropriate 401 status code.


359-359: Improved error description clarity.

The updated description for TEAM_INVALID_SECRET makes the error message clearer for users.


596-600: Valuable addition for cursor pagination error handling.

This new error properly addresses a specific edge case where cursor pagination fails due to null order attribute values. The 400 status code correctly indicates this is a client error.


689-689: Enhanced description clarity for attribute limits.

The improved description for ATTRIBUTE_LIMIT_EXCEEDED now clearly specifies that it applies to both the maximum number and size of attributes for a collection.


734-738: Important addition for data integrity protection.

The new INDEX_DEPENDENCY error (409 Conflict) prevents users from renaming or deleting attributes that are used in indexes, which helps maintain data integrity and prevents cascading failures.

CHANGES.md (1)

1-19: Changelog entry for Version 1.6.2 is well structured and clear.
The headings and subheadings (Notable changes, Fixes, Miscellaneous) follow the established pattern, and PR references are consistently bracketed for readability.

app/config/collections/platform.php (4)

228-228: Address TODO comment about template size.

The comment indicates uncertainty about whether the size of 1000000 for templates is appropriate. Consider validating this limit based on actual template sizes in production or adjust it to a reasonable size to prevent potential issues.


756-756: Verify if encryption impacts the storage length of httpPass.

The TODO comment questions whether the LENGTH_KEY constant will be sufficient after encryption. Since encrypted data typically has a larger size than unencrypted data, this could potentially cause truncation.

Consider increasing the size or validating through testing that the encrypted value won't exceed the allocated size.


1600-1601: Consider adding attributes for vcsCommentLocks collection.

The vcsCommentLocks collection is currently empty with no attributes or indexes defined. This seems incomplete compared to other collections in the file.

Was this intentionally left empty, or are there attributes that should be defined for this collection?


1-1605: Comprehensive database schema with appropriate security measures.

The file establishes a well-structured database schema for platform metadata with appropriate use of encryption filters for sensitive data (secrets, passwords, tokens), proper indexing for optimization, and consistent attribute definitions across collections.

.github/workflows/tests.yml (4)

14-37: Good approach for conditional testing based on database changes.

The addition of this check to determine if the utopia-php/database dependency has changed is an efficient way to conditionally run the more extensive shared mode tests only when necessary.


130-180: Well-structured matrix strategy for service testing.

The matrix strategy for service tests is well-implemented, allowing parallel execution and clear error reporting for individual service tests. The proper environment variables are set to ensure tests run with project table mode.


181-248: Effective conditional testing for shared table modes.

The shared mode test job properly depends on both setup and the database change check, ensuring it only runs when relevant. The matrix covers both V1 and V2 shared table modes, providing comprehensive coverage.

🧰 Tools
🪛 YAMLlint (1.35.1)

[error] 243-243: trailing spaces

(trailing-spaces)


315-316: Security improvement for benchmark comment posting.

Limiting the benchmark result comments to only PRs from the same repository is a good security practice to prevent potential abuse from forks.

Also applies to: 323-324

app/config/specs/open-api3-1.6.x-client.json (6)

4-5: Ensure version bump consistency
You’ve updated the top‐level "version" field to 1.6.2. Please confirm that all related spec files (open-api3-latest-client.json, swagger2-latest-client.json) and documentation references have been synchronized to 1.6.2 as well.


47-51: Grouping metadata added
You’ve introduced "group": "account" with an incremented "weight": 9. This aligns with our grouping taxonomy—please verify that "account" is the canonical group name in our codegen tooling and update any generators if needed.


1938-1939: Extended OAuth2 provider enumeration
You’ve added "figma" to the list of supported OAuth2 providers in session and token endpoints. Please verify that the SDKs, code generators, and server‐side validation also support "figma" and update any tests or fixtures accordingly.

Also applies to: 1958-1959


3441-3443: Added “rupay” and “maestro” to credit card codes
The new entries for "rupay" and "maestro" (and corresponding x‐enum keys) are correct. Ensure the ordering doesn’t break any client‐side enum assumptions and regenerate any generated code or docs that enumerate credit card codes.

Also applies to: 3461-3462, 3481-3482


838-846: MFA challenge update response schema changed
The PUT /account/mfa/challenge endpoint now returns a 200 with a session object instead of 204 No Content. Confirm that clients handle this payload, and adjust integration tests to expect a JSON session body.


4964-4966: Updated example for execution HTTP body
The x-example for "body" was revised to "<BODY>". Verify that this matches the real default (empty string) in the runtime, and update SDK examples or code samples if necessary.

app/config/collections/projects.php (2)

234-238: new stdClass() as default may cause serialization surprises

'default' => new stdClass(), embeds a live object in a static config array.
If the config is cached (e.g., opcache) or exported, PHP will serialise the object differently from scalar defaults, sometimes yielding stdClass::__set_state() dumps.

Unless you rely on an actual object instance, prefer an empty array, which is serialisable, JSON-encodable, and cheaper to clone:

-    'default' => new stdClass(),
+    'default' => [],

1409-1418: Database::VAR_FLOAT might not be supported

Confirm that Utopia\Database actually defines a VAR_FLOAT constant. Older versions only expose VAR_INTEGER, VAR_STRING, VAR_BOOLEAN, etc. If VAR_FLOAT is missing, the schema builder will throw at runtime.

'type' => Database::VAR_FLOAT,

Please verify the constant or fall back to VAR_INTEGER with a fixed-point scale.

app/config/specs/open-api3-latest-client.json (6)

4-4: Version updated to 1.6.2
The version field has been bumped to reflect the 1.6.2 release. Ensure documentation and client libraries reference this version consistently.


612-613: Enhanced summaries and response definitions for MFA endpoints
Updated summary fields for authenticator and challenge confirmation to be more descriptive and aligned with operations. The Update MFA challenge endpoint now correctly returns a 200 OK with a session object instead of 204 No Content. Confirm that client SDKs consuming this spec are updated accordingly.

Also applies to: 832-840


2414-2436: Improve Push Target endpoint documentation
Added richer descriptions, demo and edit links, and usage guidance for createPushTarget, updatePushTarget, and deletePushTarget. Ensure that the referenced markdown files exist and the GitHub edit links are valid.

Also applies to: 2493-2515, 2571-2586


1938-1940: Add “figma” to OAuth2 provider enumeration
The new "figma" provider is correctly inserted into the OAuth2 provider list for both session and token creation endpoints. Confirm that backend support and SDK flows for Figma are in place.

Also applies to: 1958-1960, 2826-2828, 2847-2848


9662-9678: Add expired property to Push Target schema
Introduced a boolean expired field to indicate target expiration and updated the required list. Make sure client bindings and model definitions are regenerated to include this new property.


47-2382:

❓ Verification inconclusive

Verify metadata grouping and weight adjustments
Numerous endpoints under x-appwrite have new group attributes and incremented weight values. Please verify each endpoint is categorized into the correct group and that the weight ordering matches the intended API listing order in the Console and CLI.


🏁 Script executed:

#!/bin/bash
# Extract all x-appwrite metadata for review
rg -n '"x-appwrite": \{' app/config/specs/open-api3-latest-client.json -A5 | \
  grep -E '("method"|"group"|"weight")'

Length of output: 13012


Verify ungrouped endpoints and GraphQL ordering
I extracted all x-appwrite metadata and here’s what needs your attention in app/config/specs/open-api3-latest-client.json:

  • Endpoints with no group (currently "group": null)—please confirm if they should belong to a specific group:
    • getCreditCard (weight 59)
    • getBrowser (60)
    • getFlag (61)
    • getImage (62)
    • getFavicon (63)
    • getQR (64)
    • getInitials (65)
    • listCodes (118)
    • listCountries (119)
    • listCountriesEU (120)
    • listCountriesPhones (121)
    • listContinents (122)
    • listCurrencies (123)
    • listLanguages (124)

  • GraphQL endpoints have inverted weights:
    mutation — weight 329
    query — weight 330
    If the intended order is query then mutation, please swap their weights.

All other groups (account, identities, tokens, logs, mfa, recovery, sessions, verification, pushTargets, documents, executions, files, teams, memberships, subscribers) have consistent, non-overlapping weight ranges. Please verify these assignments against the Console/CLI listing.

🧰 Tools
🪛 Checkov (3.2.334)

[MEDIUM] 291-296: Ensure that arrays have a maximum number of items

(CKV_OPENAPI_21)

app/config/specs/swagger2-latest-client.json (8)

16-20: Confirm new x-host-docs extension.
The "x-host-docs": "<REGION>.cloud.appwrite.io" field is added to surface regional host patterns. Verify that client-generation tools and documentation renderers recognize this extension and fall back appropriately when <REGION> is not supplied.


68-74: Remove consumes payload for GET operations.
GET endpoints now have "consumes": [], reflecting there is no request body. Confirm this change is compatible with OpenAPI code generators and does not introduce breaking changes in client SDKs.

Also applies to: 288-294, 463-468, 765-771, 970-976, 2001-2006, 2913-2919


86-91: Introduce group metadata under x-appwrite.
Nearly every operation now includes a "group" attribute to logically categorize endpoints (e.g., account, sessions, mfa, etc.). Ensure your documentation UI and SDK codegen pipelines consume this grouping correctly—updating navigation menus, import namespaces, or method categories as needed.

Also applies to: 138-142, 229-233, 307-311, 369-373, 433-437, 481-485, 549-552, 622-624, 688-690, 767-771, 835-837, 912-914, 990-992, 1041-1043, 1143-1145, 1196-1198, 1269-1271, 1348-1350, 1426-1428, 1477-1479, 1550-1552, 1629-1632, 1716-1718, 1762-1764, 1815-1817, 1866-1868, 1944-1946, 2017-2019, 2154-2156, 2232-2234, 2308-2310, 2369-2371, 2425-2427, 2488-2490


2045-2050: Add figma to OAuth2 providers.
"figma" is now supported in session and token creation flows. Confirm server-side implementation for Figma OAuth is in place, update .env example configurations, and add usage examples in the OAuth provider docs.

Also applies to: 2958-2962


3587-3591: Extend CreditCard enum with rupay.
The credit card codes now include "rupay". Regenerate client-side enums and update validation logic or UI dropdowns to reflect this new option.

Also applies to: 3608-3611, 3625-3631


6579-6585: Extend ImageFormat enum with webp, heic, and avif.
New previewable formats have been added. Verify that preview and view endpoints support these MIME types, and update client SDK models to include these values.


5078-5085: Change body type from object to string.
The body property for function executions has switched to a raw string. Confirm serialization/deserialization logic in client SDKs and update all examples from JSON objects to string payloads.


2547-2549: Verify demo and edit doc links for PushTargets.
The createPushTarget, updatePushTarget, and deletePushTarget operations reference demo and edit URLs. Confirm these paths exist in the docs/references directory and update branch names if the repo default branch has changed from master to main.

Also applies to: 2631-2633, 2697-2699

app/config/locale/translations/te.json (2)

7-7: Approve greeting punctuation updates.
The greeting strings now consistently include a trailing comma within the localized message content, matching the updated punctuation standard.

Also applies to: 13-13, 19-19, 25-25


10-10: Approve closing thanks punctuation updates.
Added trailing commas to the closing “thanks” strings across email templates for improved consistency.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/it.json (2)

7-7: Approve greeting punctuation updates.
Localized greeting strings now uniformly end with a comma, aligning with the new formatting convention.

Also applies to: 13-13, 19-19, 25-25


10-10: Approve closing thanks punctuation updates.
Added commas after “Grazie” in each email template to standardize the closing phrase.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/uk.json (2)

7-7: Approve greeting punctuation updates.
Greeting lines now include a trailing comma, ensuring consistency with the updated localization style.

Also applies to: 13-13, 19-19, 25-25


10-10: Approve closing thanks punctuation updates.
The closing “Дякуємо” entries have been updated to include a comma, matching the new punctuation standard.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/de.json (2)

7-7: Approve greeting punctuation updates.
Verification, magic session, and recovery greetings now correctly include a trailing comma.

Also applies to: 13-13, 19-19


10-10: Approve closing thanks punctuation updates.
“Danke” entries across templates now uniformly end with a comma to improve formatting consistency.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/kn.json (2)

7-7: Approve greeting punctuation updates.
All greeting strings now include a trailing comma, aligning with the updated localization convention.

Also applies to: 13-13, 19-19, 25-25


10-10: Approve closing thanks punctuation updates.
Added trailing commas to “ಧನ್ಯವಾದಗಳು” entries for consistent formatting across templates.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/hu.json (1)

7-7: Standardize email greeting and sign-off punctuation
Trailing commas have been added to all hello and thanks strings to ensure consistent formatting across Hungarian email templates.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/ga.json (1)

7-7: Consistent punctuation in greetings and closings
Added trailing commas to the hello and thanks fields in all Irish email templates to align with the overall style guidelines.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/lb.json (1)

7-7: Uniform punctuation for greetings and thanks
Updated Luxembourgish email greetings and sign-offs with trailing commas for uniformity across all templates.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/sd.json (1)

7-7: Apply trailing commas to all email greetings and closings
Ensured every hello and thanks string in the Sindhi locale ends with a comma, including OTP and certificate failure emails, to maintain consistent punctuation.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28, 241-241, 245-245, 248-248, 251-251

app/config/locale/translations/lt.json (1)

7-7: Harmonize greeting and sign-off punctuation
Added trailing commas to hello and thanks entries in Lithuanian email templates for consistent styling.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/da.json (4)

7-10: Standardize Danish verification email punctuation
Added trailing commas after the greeting and closing thanks in the verification email template to match the updated style across other locales.


13-16: Standardize Danish magic session email punctuation
Added trailing commas after the greeting and closing thanks in the magic session email template for consistency.


19-22: Standardize Danish recovery email punctuation
Added trailing commas after the greeting and closing thanks in the password recovery email template to align with the global formatting update.


25-28: Standardize Danish invitation email punctuation
Added trailing commas after the greeting and closing thanks in the invitation email template to ensure consistency across translations.

app/config/locale/translations/ru.json (4)

7-10: Standardize Russian verification email punctuation
Added trailing commas after the greeting and closing thanks in the account verification email template to align with the new punctuation convention.


13-16: Standardize Russian magic session email punctuation
Added trailing commas after the greeting and closing thanks in the magic session login email template for consistency.


19-22: Standardize Russian recovery email punctuation
Added trailing commas after the greeting and closing thanks in the password recovery email template to match the updated global style.


25-28: Standardize Russian invitation email punctuation
Added trailing commas after the greeting and closing thanks in the invitation email template to maintain consistency across locales.

app/config/locale/translations/as.json (5)

7-10: Standardize Assamese verification email punctuation
Added trailing commas after the greeting and closing thanks in the verification email template to match the global update.


13-16: Standardize Assamese magic session email punctuation
Added trailing commas after the greeting and closing thanks in the magic session login email template for consistency.


19-22: Standardize Assamese recovery email punctuation
Added trailing commas after the greeting and closing thanks in the password reset email template to align with the new style.


25-28: Standardize Assamese invitation email punctuation
Added trailing commas after the greeting and closing thanks in the invitation email template to ensure uniform formatting.


248-251: Standardize Assamese certificate failure email punctuation
Added trailing commas after the greeting and closing thanks in the certificate failure email template, consistent with the punctuation convention update.

app/config/locale/translations/bh.json (6)

7-10: Standardize Bhojpuri verification email punctuation
Added trailing commas after the greeting and closing thanks in the verification email template to align with the new punctuation standard.


13-16: Standardize Bhojpuri magic session email punctuation
Added trailing commas after the greeting and closing thanks in the magic session login email template for consistency.


19-22: Standardize Bhojpuri recovery email punctuation
Added trailing commas after the greeting and closing thanks in the password recovery email template to match the global formatting.


25-28: Standardize Bhojpuri invitation email punctuation
Added trailing commas after the greeting and closing thanks in the invitation email template to maintain uniform style.


245-245: Standardize Bhojpuri OTP session email punctuation
Added a trailing comma after the closing thanks in the OTP session email template to be consistent with other templates.


248-251: Standardize Bhojpuri certificate failure email punctuation
Added trailing commas after the greeting and closing thanks in the certificate failure email template, consistent with the updated style.

app/config/locale/translations/th.json (1)

242-242: Align Thai OTP session email greeting punctuation
Removed the trailing comma from the OTP session email greeting to match the standardized style for Thai templates.

app/config/locale/templates/email-session-alert.tpl (1)

1-1: Consistent removal of trailing comma from greeting placeholder
The change correctly standardizes the greeting by removing the comma after {{hello}}, matching the formatting in other email templates.

app/config/locale/templates/email-otp.tpl (1)

1-1: Standardize greeting punctuation
Removing the comma after {{hello}} improves consistency across OTP email templates and aligns with other template changes.

app/config/locale/templates/email-magic-url.tpl (1)

1-1: Harmonize greeting punctuation
The trailing comma after {{hello}} has been removed to match the punctuation conventions used elsewhere in the magic-URL email templates.

app/config/locale/translations/km.json (2)

242-242: Remove internal comma in Khmer greeting string
The comma has been correctly stripped from the "emails.otpSession.hello" value, ensuring it aligns with the updated template punctuation.


246-246: Remove internal comma in Khmer closing string
The "emails.otpSession.thanks" value no longer includes an extraneous comma, matching the standardized sign-off format.

app/config/locale/translations/vi.json (2)

242-242: Remove internal comma in Vietnamese greeting string
The comma inside the "emails.otpSession.hello" translation has been removed, keeping the greeting consistent with template updates.


246-246: Remove internal comma in Vietnamese closing string
The "emails.otpSession.thanks" translation no longer contains a trailing comma, aligning with the overall localization formatting.

app/config/locale/templates/email-mfa-challenge.tpl (1)

1-1: Remove trailing comma after greeting placeholder
The removal of the comma from <p>{{hello}}</p> aligns with the updated localization strings which now include the comma in each locale’s .hello translation. This prevents duplicated commas in the rendered email.

app/config/locale/templates/email-inner-base.tpl (1)

1-1: Standardize punctuation for greeting and sign-off
Both the <p>{{hello}}</p> greeting and the {{thanks}} sign-off have had their trailing commas removed to defer punctuation to the translated strings. This keeps template placeholders clean and delegates comma placement to locale files.

Also applies to: 6-6

app/config/locale/translations/fi.json (1)

7-28: Add comma placeholders for Finnish email greetings and closings
Empty-string values for all emails.*.hello and emails.*.thanks keys have been replaced with ",", matching other locales and the template updates. This ensures {{hello}} and {{thanks}} render with the expected comma punctuation.

app/config/locale/translations/hy.json (1)

7-28: Add comma placeholders for Armenian email greetings and closings
All emails.*.hello and emails.*.thanks entries now use "," instead of empty strings, providing the comma punctuation in rendered emails for Armenian and aligning with the template changes.

app/config/locale/translations/sq.json (1)

7-28: Add comma placeholders for Albanian email greetings and closings
Replaced empty strings with "," for emails.*.hello and emails.*.thanks keys, ensuring punctuation consistency in rendered emails and syncing with the updated template behavior.

app/config/locale/translations/fo.json (4)

7-7: Standardize punctuation in verification email greetings and closings.

The greeting (emails.verification.hello) and closing (emails.verification.thanks) have been updated from empty strings to a comma, aligning with the localization conventions introduced in this PR.

Also applies to: 10-10


13-13: Standardize punctuation in magic session email greetings and closings.

The greeting (emails.magicSession.hello) and closing (emails.magicSession.thanks) now include a trailing comma, matching the new pattern for localized email strings.

Also applies to: 16-16


19-19: Standardize punctuation in recovery email greetings and closings.

The recovery flow’s greeting (emails.recovery.hello) and closing (emails.recovery.thanks) have been updated to a comma, ensuring consistency across locales.

Also applies to: 22-22


25-25: Standardize punctuation in invitation email greetings and closings.

The invitation greeting (emails.invitation.hello) and closing (emails.invitation.thanks) have been changed to use a comma, in line with the other email templates.

Also applies to: 28-28

app/config/locale/translations/bs.json (4)

7-7: Standardize punctuation in verification email greetings and closings.

Updated emails.verification.hello and emails.verification.thanks from empty strings to commas for consistency with the PR’s punctuation standard.

Also applies to: 10-10


13-13: Standardize punctuation in magic session email greetings and closings.

The magic session greeting and thanks fields now include trailing commas, matching the updated localization approach.

Also applies to: 16-16


19-19: Standardize punctuation in recovery email greetings and closings.

Recovery email strings for greeting and closing have been set to commas, aligning with other templates.

Also applies to: 22-22


25-25: Standardize punctuation in invitation email greetings and closings.

Invitation email’s greeting and closing entries have been updated to use commas, consistent with the new pattern.

Also applies to: 28-28

app/config/locale/translations/el.json (4)

7-7: Add trailing commas in Greek verification greeting and closing.

The verification greeting ("Γεια σου {{user}},",) and closing ("Ευχαριστούμε,",) now include commas, standardizing punctuation across templates.

Also applies to: 10-10


13-13: Add trailing commas in Greek magic session greeting and closing.

Updated magic session greeting and thanks lines to end with commas for consistency.

Also applies to: 16-16


19-19: Add trailing commas in Greek recovery greeting and closing.

Recovery email greeting and thanks now include commas, aligning with the PR’s styling.

Also applies to: 22-22


25-25: Add trailing commas in Greek invitation greeting and closing.

Invitation greeting and thanks entries have been modified to include commas, matching the updated localization pattern.

Also applies to: 28-28

app/config/locale/translations/fr.json (4)

7-7: Add trailing commas in French verification greeting and closing.

The verification “hello” (Bonjour {{user}},) and “thanks” (Merci,) entries now end with commas to match the PR’s punctuation standard.

Also applies to: 10-10


13-13: Add trailing commas in French magic session greeting and closing.

Magic session greeting and closing lines have been updated to end with commas for consistent formatting.

Also applies to: 16-16


19-19: Add trailing commas in French recovery greeting and closing.

Recovery email “hello” and “thanks” are now punctuated with commas, aligning with other templates.

Also applies to: 22-22


25-25: Add trailing commas in French invitation greeting and closing.

Invitation greeting and closing entries now include commas, consistent across locales.

Also applies to: 28-28

app/config/locale/translations/sa.json (6)

7-7: Add trailing commas in Sanskrit verification greeting and closing.

Updated the verification greeting (अयि {{user}},) and thanks (धन्यवादः,) to include commas, following the PR’s convention.

Also applies to: 10-10


13-13: Add trailing commas in Sanskrit magic session greeting and closing.

Magic session greeting and thanks now end with commas, standardizing punctuation.

Also applies to: 16-16


19-19: Add trailing commas in Sanskrit recovery greeting and closing.

Recovery greeting and closing entries have been updated to include trailing commas for consistency.

Also applies to: 22-22


25-25: Add trailing commas in Sanskrit invitation greeting and closing.

Invitation greeting (अयि भो,) and thanks (धन्यवादः,) entries now use commas, aligning with other languages.

Also applies to: 28-28


242-242: Add trailing commas in Sanskrit OTP session greeting and closing.

OTP session greeting (नमस्ते।,) and thanks (धन्यवादाः,) now include commas, matching the overall email template style.

Also applies to: 246-246


248-248: Final newline added at end of file—no action needed.

app/config/locale/translations/gu.json (2)

7-7: Standardize greeting punctu 10000 ation
The greeting lines now include a trailing comma (e.g., “નમસ્કાર {{user}},”), moving punctuation control into the locale files and ensuring consistency across all email contexts.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing “thanks” punctuation
The “thanks” lines have been updated to include trailing commas (e.g., “આભાર,”), aligning with the new convention for sign-offs and decoupling punctuation from the base templates.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/mr.json (2)

7-7: Standardize greeting punctuation
All greeting entries (e.g., “नमस्कार {{user}},”) now include a trailing comma, aligning Marathi translations with the other locales and centralizing punctuation in the translation files.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing “thanks” punctuation
The “thanks” entries (e.g., “धन्यवाद,”) have been updated to include trailing commas for consistent email sign-offs across templates.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/pa.json (2)

7-7: Insert missing greeting commas
Empty greeting values have been replaced with a comma (“,”), ensuring the comma renders after the greeting placeholder in all email contexts.

Also applies to: 13-13, 19-19, 25-25


10-10: Insert missing closing commas
Empty “thanks” values have been replaced with a comma (“,”), enforcing a consistent sign-off punctuation across Punjabi email templates.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/hr.json (2)

7-7: Standardize greeting punctuation
Greeting entries such as “Pozdrav {{user}},” now include a trailing comma, matching the punctuation convention adopted by the other locales.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing “thanks” punctuation
The closing “Hvala,” lines have been updated with trailing commas to maintain uniformity across all email sign-offs.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/ca.json (2)

7-7: Standardize greeting punctuation
All greeting entries (e.g., “Hola {{user}},”) now include a trailing comma in the Catalan translations, aligning with the new punctuation strategy.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing “thanks” punctuation
The closing “Gràcies,” entries have been updated to include a trailing comma for consistent sign-off formatting.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/pt-pt.json (7)

7-7: Verify comma in verification greeting
The comma after the user placeholder is correctly added for proper punctuation.


10-10: Approve comma in closing expression
Adding the comma after "Obrigado" aligns with the standardized formatting for closings.


16-16: Approve comma in magic session closing
The comma after "Obrigado" is correctly applied for the magic session thanks string.


19-19: Approve comma in recovery greeting
Adding a comma after the user placeholder maintains consistency in recovery emails.


22-22: Approve comma in recovery closing
The comma after "Obrigado" is consistent with other localized closings.


25-25: Approve comma in invitation greeting
The greeting now ends with a comma, matching the new punctuation standard.


28-28: Approve comma in invitation closing
The comma after "Obrigado" correctly standardizes the invitation closing.

app/config/locale/translations/pl.json (8)

7-7: Approve comma in verification greeting
Appending a comma after {{user}} conforms to the updated greeting format.


10-10: Approve comma in verification thanks
The comma after "Dziękujemy" is properly standardized.


13-13: Approve comma in magic session greeting
The greeting now correctly ends with a comma.


16-16: Approve comma in magic session thanks
Adding the comma aligns with the standardized punctuation for closings.


19-19: Approve comma in recovery greeting
Consistent comma punctuation is applied correctly.


22-22: Approve comma in recovery thanks
The closing now follows the new comma convention.


25-25: Approve comma in invitation greeting
Invitation greeting punctuation is now consistent.


28-28: Approve comma in invitation thanks
The comma after thanks standardizes the invitation closing.

app/config/locale/translations/bg.json (8)

7-7: Approve comma in verification greeting
Changing the empty greeting to a comma aligns with the new localization pattern.


10-10: Approve comma in verification closing
The comma now correctly serves as the closing in the verification email template.


13-13: Approve comma in magic session greeting
Updating the greeting to a comma standardizes it across locales.


16-16: Approve comma in magic session closing
The comma placement matches the global formatting guidelines.


19-19: Approve comma in recovery greeting
Recovery greeting punctuation is now consistent with others.


22-22: Approve comma in recovery closing
The comma correctly replaces the empty thanks field.


25-25: Approve comma in invitation greeting
Invitation greeting is now punctuated as expected.


28-28: Approve comma in invitation closing
The closing thanks has been updated to a comma, matching standards.

app/config/locale/translations/or.json (8)

7-7: Approve comma in verification greeting
The comma after "ନମସ୍କାର {{user}}" is correctly added.


10-10: Approve comma in verification thanks
Adding the comma aligns with the updated closing punctuation.


13-13: Approve comma in magic session greeting
The comma now punctuates the magic session greeting properly.


16-16: Approve comma in magic session thanks
Standardized comma is applied to the thanks line.


19-19: Approve comma in recovery greeting
Comma usage in recovery greeting is consistent.


22-22: Approve comma in recovery thanks
The closing thanks is now properly punctuated.


25-25: Approve comma in invitation greeting
Invitation greeting now ends with a comma as intended.


28-28: Approve comma in invitation thanks
The comma correctly standardizes the invitation closing.

app/config/locale/translations/sk.json (7)

7-7: Approve comma in verification greeting
The greeting now correctly ends with a comma.


13-13: Approve comma in magic session greeting
Magic session greeting punctuation is correctly applied.


16-16: Approve comma in magic session thanks
The comma after "Ďakujeme" is properly standardized.


19-19: Approve comma in recovery greeting
Recovery greeting now ends with a comma as intended.


22-22: Approve comma in recovery thanks
The closing thanks comma matches the formatting convention.


25-25: Approve comma in invitation greeting
Invitation greeting is correctly punctuated.


28-28: Approve comma in invitation thanks
The comma after thanks is consistent with other locales.

app/config/locale/translations/ar-ma.json (5)

7-7: Add trailing Arabic comma for verification email greeting and closing
Applied a trailing Arabic comma to both the hello and thanks entries under emails.verification.* to align with the punctuation standardization across locales.

Also applies to: 10-10


13-13: Add trailing Arabic comma for magic session email
Standardized the hello and thanks entries under emails.magicSession.* with a trailing Arabic comma.

Also applies to: 16-16


19-19: Add trailing Arabic comma for account recovery email
Ensured consistent comma punctuation for emails.recovery.hello and emails.recovery.thanks.

Also applies to: 22-22


25-25: Add trailing Arabic comma for invitation email
Uniformly updated the hello and thanks entries under emails.invitation.* with a trailing comma.

Also applies to: 28-28


31-31: Add trailing Arabic comma for certificate failure email
Aligned punctuation by adding a trailing comma to emails.certificate.hello and emails.certificate.thanks.

Also applies to: 34-34

app/config/locale/translations/ml.json (6)

7-7: Add trailing comma for Malayalam verification email
Standardized the emails.verification.hello and emails.verification.thanks entries with a trailing comma.

Also applies to: 10-10


13-13: Add trailing comma for Malayalam magic session email
Updated emails.magicSession.hello and emails.magicSession.thanks for consistent punctuation.

Also applies to: 16-16


19-19: Add trailing comma for Malayalam recovery email
Ensured emails.recovery.hello and emails.recovery.thanks entries end with a comma.

Also applies to: 22-22


25-25: Add trailing comma for Malayalam invitation email
Uniformly applied a trailing comma to emails.invitation.hello and emails.invitation.thanks.

Also applies to: 28-28


248-248: Add trailing comma for Malayalam certificate email
Added a comma to emails.certificate.hello and emails.certificate.thanks for consistency.

Also applies to: 251-251


254-254: Skip trivial JSON formatting change (closing brace)

app/config/locale/translations/cs.json (4)

7-7: Replace empty greeting and thanks with comma for verification emails
Changed empty emails.verification.hello and emails.verification.thanks values to a comma for proper punctuation.

Also applies to: 10-10


13-13: Replace empty greeting and thanks with comma for magic session emails
Standardized emails.magicSession.hello and emails.magicSession.thanks by using a comma.

Also applies to: 16-16


19-19: Replace empty greeting and thanks with comma for recovery emails
Updated emails.recovery.hello and emails.recovery.thanks entries to a comma.

Also applies to: 22-22


25-25: Replace empty greeting and thanks with comma for invitation emails
Applied comma punctuation to emails.invitation.hello and emails.invitation.thanks.

Also applies to: 28-28

app/config/locale/translations/ko.json (6)

7-7: Append Japanese-style comma to Korean verification email
Added the punctuation to emails.verification.hello and emails.verification.thanks for consistency.

Also applies to: 10-10


13-13: Append Japanese-style comma to Korean magic session email
Standardized emails.magicSession.hello and emails.magicSession.thanks with trailing .

Also applies to: 16-16


19-19: Append Japanese-style comma to Korean password recovery email
Ensured emails.recovery.hello and emails.recovery.thanks include the character.

Also applies to: 22-22


25-25: Append Japanese-style comma to Korean invitation email
Uniformly applied to emails.invitation.hello and emails.invitation.thanks.

Also applies to: 28-28


242-242: Append Japanese-style comma to Korean OTP session email
Updated emails.otpSession.hello and emails.otpSession.thanks entries to include .

Also applies to: 246-246


248-248: Skip trivial JSON formatting change (closing brace)

app/config/locale/translations/nb.json (6)

7-7: Add trailing comma to Norwegian verification email
Applied consistent comma punctuation to emails.verification.hello and emails.verification.thanks.

Also applies to: 10-10


13-13: Add trailing comma to Norwegian magic session email
Standardized emails.magicSession.hello and emails.magicSession.thanks with a trailing comma.

Also applies to: 16-16


19-19: Add trailing comma to Norwegian password reset email
Ensured comma at end of emails.recovery.hello and emails.recovery.thanks.

Also applies to: 22-22


25-25: Add trailing comma to Norwegian invitation email
Uniformly applied a comma to emails.invitation.hello and emails.invitation.thanks.

Also applies to: 28-28


242-242: Add trailing comma to Norwegian OTP session email
Standardized comma punctuation for emails.otpSession.hello and emails.otpSession.thanks.

Also applies to: 246-246


248-248: Skip trivial JSON formatting change (closing brace)

app/config/locale/translations/en.json (14)

7-7: Add comma to verification greeting
Including a trailing comma in "Hello {{user}}" standardizes the greeting across all email templates.


10-10: Add comma to verification closing
Adding a comma to "Thanks" aligns the closing punctuation with the updated template placeholders.


13-13: Add comma to magicSession greeting
The trailing comma on "Hello {{user}}" ensures consistency with the revised base templates.


19-19: Add comma to magicSession closing
The comma on "Thanks" matches the new localized punctuation standard.


23-23: Add comma to session alert greeting
Consistent greeting punctuation in session alert emails improves readability.


27-27: Remove extra whitespace in sessionAlert.footer
The trimmed leading space fixes an unintended formatting issue without altering content.


31-31: Add comma to OTP session greeting
Aligns the OTP email greeting with the new comma-based punctuation rule.


38-38: Add comma to MFA challenge greeting
Standardizes the MFA challenge greeting to include the trailing comma.


44-44: Add comma to recovery greeting
Ensures the password recovery greeting uses the updated punctuation.


47-47: Add comma to recovery closing
The comma on "Thanks" maintains consistency across all recovery emails.


50-50: Add comma to invitation greeting
Including the trailing comma on the invitation greeting matches the new style guide.


53-53: Add comma to invitation closing
Adds the comma to the closing phrase for uniform email formatting.


56-56: Add comma to certificate greeting
Adds the comma after "Hello" to keep punctuation logic within translation strings.


59-59: Add comma to certificate closing
Ensures the certificate failure email closing follows the comma convention.

app/config/locale/translations/sl.json (8)

7-7: Add comma-only placeholder to verification greeting
Replacing the empty string with a standalone comma ensures the template renders the comma consistently.


10-10: Add comma-only placeholder to verification closing
Ensures the closing punctuation is controlled by the translation, not the template.


13-13: Add comma-only placeholder to magicSession greeting
Maintains consistency for languages with no literal greeting text.


16-16: Add comma-only placeholder to magicSession closing
Keeps punctuation localized rather than in the template.


19-19: Add comma-only placeholder to recovery greeting
Ensures the recovery email output includes the comma even when the greeting text is blank.


22-22: Add comma-only placeholder to recovery closing
Standardizes the closing across empty-value contexts.


25-25: Add comma-only placeholder to invitation greeting
Provides consistent punctuation for invitation emails in Slovenian.


28-28: Add comma-only placeholder to invitation closing
Aligns with the global change to shift punctuation into translations.

app/config/locale/translations/ta.json (8)

7-7: Add comma to verification greeting
Trailing comma on "ஏய் {{user}}" aligns with the updated template format.


10-10: Add comma to verification closing
Ensures "நன்றி" is followed by a comma as per the new style.


13-13: Add comma to magicSession greeting
Includes trailing comma for "ஏய்" greeting consistency.


16-16: Add comma to magicSession closing
Uniformly punctuates the closing line in magic session emails.


19-19: Add comma to recovery greeting
Adds comma after "வணக்கம் {{user}}" for recovery emails.


22-22: Add comma to recovery closing
Keeps closing punctuation within the translation string.


25-25: Add comma to invitation greeting
Ensures invitation greeting ends with a comma.


28-28: Add comma to invitation closing
Standardizes the invitation closing punctuation.

app/config/locale/translations/be.json (10)

7-7: Add comma to verification greeting
Adds trailing comma to "Прывітанне {{user}}" for consistency.


10-10: Add comma to verification closing
Ensures "Дзякуем" ends with a comma in the translation.


13-13: Add comma to magicSession greeting
Uniform punctuation for login email greetings.


16-16: Add comma to magicSession closing
Moves closing punctuation into the translation string.


19-19: Add comma to recovery greeting
Ensures "Прывітанне, {{user}}" retains consistent punctuation.


22-22: Add comma to recovery closing
Standardizes the recovery email closing in Belarusian.


25-25: Add comma to invitation greeting
Adds the comma to invitation greetings per the new format.


28-28: Add comma to invitation closing
Keeps invitation closing punctuation localized.


248-248: Add comma to certificate greeting
Trailing comma added to "Прывітанне" in certificate failure notifications.


251-251: Add comma to certificate closing
Ensures closing "Дзякуй" follows the comma convention.

app/config/locale/translations/ro.json (8)

7-7: Add comma to verification greeting
Includes comma for "Bună ziua, {{user}}" to match the style guide.


10-10: Add comma to verification closing
Adds trailing comma to "Mulțumim" in the translation.


13-13: Add comma to magicSession greeting
Uniformly punctuates the login greeting.


16-16: Add comma to magicSession closing
Moves closing punctuation into the localized string.


19-19: Add comma to recovery greeting
Ensures "Bună ziua, {{user}}" ends with a comma.


22-22: Add comma to recovery closing
Standardizes the recovery email closing punctuation.


25-25: Add comma to invitation greeting
Adds comma to the invitation greeting line.


28-28: Add comma to invitation closing
Ensures invitation closing uses the trailing comma.

app/config/locale/translations/nl.json (4)

7-7: Punctuation consistency for verification emails
Added trailing commas to the greeting and closing phrases in the Dutch translation to centralize punctuation within the locale strings instead of templates.

Also applies to: 10-10


13-13: Punctuation consistency for magic session emails
Added trailing commas to the greeting and closing phrases for magic session emails in the Dutch translation, aligning with the updated template strategy.

Also applies to: 16-16


19-19: Punctuation consistency for password recovery emails
Added trailing commas to the greeting and closing phrases for recovery emails to maintain uniform punctuation handling.

Also applies to: 22-22


25-25: Punctuation consistency for invitation emails
Added trailing commas to the greeting and closing phrases for invitation emails in the Dutch translation to centralize punctuation.

Also applies to: 28-28

app/config/locale/translations/ja.json (5)

7-7: Punctuation consistency for verification emails
Appended the Japanese comma “、” to both the greeting and thank-you phrases in the verification emails, moving punctuation into the locale strings.

Also applies to: 10-10


13-13: Punctuation consistency for magic session emails
Appended “、” to the greeting and closing phrases for magic session emails, centralizing punctuation in translations.

Also applies to: 16-16


19-19: Punctuation consistency for password recovery emails
Appended “、” to the greeting and closing phrases for recovery emails to keep punctuation handling consistent.

Also applies to: 22-22


25-25: Punctuation consistency for invitation emails
Appended “、” to the greeting and closing phrases for invitation emails, aligning with the punctuation strategy.

Also applies to: 28-28


242-242: Punctuation consistency for OTP session emails
Appended “、” to the OTP session greeting and closing phrases to maintain uniform punctuation within locale strings.

Also applies to: 246-246

app/config/locale/translations/zh-cn.json (5)

7-7: Punctuation consistency for verification emails
Appended the Chinese comma “、” to both the greeting and thank-you phrases in verification emails, consolidating punctuation in translations.

Also applies to: 10-10


13-13: Punctuation consistency for magic session emails
Appended “、” to the greeting and closing phrases in magic session emails to centralize punctuation in the locale file.

Also applies to: 16-16


19-19: Punctuation consistency for password recovery emails
Appended “、” to the greeting and closing phrases for recovery emails, keeping punctuation handling consistent across emails.

Also applies to: 22-22


25-25: Punctuation consistency for invitation emails
Appended “、” to the greeting and closing phrases in invitation emails, aligning with the global localization update.

Also applies to: 28-28


242-242: Punctuation consistency for OTP session emails
Appended “、” to both the greeting and thank-you phrases in OTP session emails to maintain uniform punctuation within locale strings.

Also applies to: 246-246

app/config/locale/translations/tr.json (4)

7-7: Punctuation consistency for verification emails
Added trailing commas to the greeting and closing phrases in the Turkish translation for verification emails, moving punctuation into the locale strings.

Also applies to: 10-10


13-13: Punctuation consistency for magic session emails
Added trailing commas to the greeting and closing phrases for magic session emails in Turkish, aligning with the template refactor.

Also applies to: 16-16


19-19: Punctuation consistency for password recovery emails
Added trailing commas to the greeting and closing phrases for recovery emails to maintain consistent punctuation.

Also applies to: 22-22


25-25: Punctuation consistency for invitation emails
Added trailing commas to the greeting and closing phrases in invitation emails, centralizing punctuation in translation files.

Also applies to: 28-28

app/config/locale/translations/is.json (1)

5-5: Sender field capitalization
Updated “%s Teymi” by capitalizing “Teymi” — this is a minor stylistic change and looks correct.

app/config/locale/translations/eo.json (4)

6-9: Consistent punctuation in verification email strings

Added trailing commas to the verification greeting and closing strings so that punctuation is fully controlled by the locale, matching the updated template behavior.


12-15: Standardized punctuation in magic session emails

Trailing commas added to the magicSession hello and thanks entries align with the removal of commas from the template placeholders.


18-21: Punctuation update for recovery emails

Recovery greeting and closing strings now include commas for consistency across email flows.


24-27: Invitation email punctuation alignment

Added trailing commas in invitation hello and thanks fields to ensure locale-driven punctuation, consistent with other email types.

app/config/locale/translations/az.json (4)

7-10: Add commas to verification email strings

Appended trailing commas to the Azerbaijani verification hello and thanks strings, shifting punctuation responsibility to the locale.


13-16: Magic session email punctuation update

Inserted commas at the end of magicSession hello and thanks to match the new template conventions.


19-22: Recovery email punctuation standardization

Recovery greeting and closing texts now include commas for consistent formatting.


25-28: Invitation email punctuation consistency

Added trailing commas to the invitation hello and thanks entries in the Azerbaijani locale for uniformity.

app/config/locale/translations/sn.json (4)

7-10: Verification email punctuation fix

Trailing commas added to the Shona verification hello and thanks strings to centralize punctuation in the locale files.


13-16: Magic session greeting and closing comma added

Standardized magicSession hello and thanks with trailing commas, in line with template updates.


19-22: Recovery email punctuation update

Recovery hello and thanks now have commas for consistent user-facing messaging.


25-28: Invitation email punctuation alignment

Invitation hello and thanks entries now include commas to match the overall localization pattern.

app/config/locale/translations/ar.json (4)

7-10: Consistent punctuation for verification emails

Added the Arabic comma “،” to verification hello and thanks strings, aligning with the updated templates.


13-16: Magic session email punctuation update

Inserted trailing Arabic commas in magicSession hello and thanks entries for template consistency.


19-22: Recovery email punctuation standardization

Recovery greeting and closing strings now include “،” to maintain uniform formatting.


25-28: Invitation email punctuation consistency

Invitation hello and thanks lines updated with Arabic commas to centralize punctuation in locale files.

app/config/locale/translations/af.json (4)

7-10: Verification email punctuation enhancement

Appended commas to the Afrikaans verification hello and thanks strings for consistent punctuation handling.


13-16: Magic session greeting and closing punctuation

Added trailing commas to magicSession hello and thanks entries, matching the new template behavior.


19-22: Recovery email punctuation update

Recovery hello and thanks strings now include commas for uniform formatting.


28-28: Invitation closing punctuation added

Inserted a trailing comma in the invitation thanks field to align with other email types.

app/config/locale/translations/hi.json (5)

1-6: Inconsistent AI summary.
The AI-generated summary describes database schema and CLI updates but does not mention these Hindi translation punctuation changes.

Likely an incorrect or invalid review comment.


7-10: Add trailing commas in verification emails.
The greeting ("नमस्ते {{user}}") and closing ("धन्यवाद") now include commas for consistent formatting.


13-16: Standardize magic session punctuation.
Added trailing commas to the magic session greeting and thank-you lines for proper Hindi punctuation.


19-22: Normalize recovery email punctuation.
Ensures the recovery email greeting and closing phrases end with commas.


25-28: Uniform commas in invitation emails.
Adds trailing commas to the invitation greeting and thank-you lines for consistency.

app/config/locale/translations/fa.json (4)

7-10: Add trailing commas in verification emails.
Updates Persian greeting and closing lines to end with commas (،), aligning with localization standards.


16-16: Add comma to magic session thank-you.
Ensures the magic session closing phrase ends with a comma.


19-22: Standardize recovery email punctuation.
Adds commas to both greeting and closing lines in password recovery emails.


25-28: Normalize invitation email punctuation.
Trailing commas added to greeting and thank-you lines for invitation emails.

app/config/locale/translations/lv.json (4)

7-10: Add trailing commas in verification emails.
The Latvian verification greeting and closing now end with commas for consistency.


13-16: Standardize magic session punctuation.
Added commas to the magic session greeting and thank-you lines.


19-22: Normalize recovery email formatting.
Ensures the recovery greeting and closing phrases include trailing commas.


25-28: Uniform commas in invitation emails.
Invitation greeting and thank-you lines now end with commas.

app/config/locale/translations/ne.json (4)

7-10: Add trailing commas in verification emails.
The greeting and closing lines now include commas for consistent Nepali formatting.


13-16: Standardize magic session punctuation.
Applied commas to the magic session greeting and thank-you lines.


19-22: Normalize recovery email punctuation.
Ensures the recovery greeting and closing phrases end with commas.


25-28: Uniform commas in invitation emails.
Adds commas to the invitation greeting and closing lines for consistency.

app/config/locale/translations/sv.json (4)

7-10: Add commas to verification greeting and closing.
Ensures "Hej {{user}}," and "Tack," are punctuated correctly in Swedish.


13-16: Standardize magic session punctuation.
Magic session greeting and thank-you now include trailing commas.


19-22: Normalize recovery email formatting.
Adds commas to the recovery greeting and closing lines.


25-28: Uniform commas in invitation emails.
Invitation greeting and closing now end with commas.

app/config/locale/translations/la.json (5)

7-10: Standardize punctuation in verification emails
Added trailing commas to the localized greeting and closing phrases for verification emails, ensuring punctuation is driven by translations rather than templates. JSON syntax remains valid and no structural changes were introduced.


13-16: Standardize punctuation in magic session emails
Added trailing commas to the greeting and closing phrases in magic session emails for consistency across locales. The changes correctly centralize punctuation in locale files.


19-22: Standardize punctuation in recovery emails
Added trailing commas to the localized greeting and closing phrases for password recovery emails. The JSON entries are well-formed.


25-28: Standardize punctuation in invitation emails
Added trailing commas to the greeting and closing phrases in invitation emails to unify formatting. Everything looks correct.


248-251: Standardize punctuation in certificate failure emails
Added trailing commas to the greeting and closing phrases for certificate failure notifications. The entries are valid JSON strings.

app/config/locale/translations/si.json (4)

7-10: Standardize punctuation in verification emails
Added trailing commas to the localized greeting and closing phrases for verification emails. JSON remains valid and punctuation handling is now consistent.


13-16: Standardize punctuation in magic session emails
Added trailing commas to magic session greetings and closings. This centralizes punctuation control in the translation file.


19-22: Standardize punctuation in recovery emails
Added trailing commas to the localized greeting and closing for password recovery emails. The changes are correct.


25-28: Standardize punctuation in invitation emails
Added trailing commas to greeting and closing phrases in invitation emails for consistency. Good to merge.

app/config/locale/translations/tl.json (3)

7-10: Standardize punctuation in verification emails
Added trailing commas to the greeting and closing phrases for account verification emails. The JSON is valid and consistent with other locales.


19-22: Standardize punctuation in recovery emails
Added trailing commas to the greeting and closing phrases for password recovery. The translations are correct.


25-28: Standardize punctuation in invitation emails
Added trailing commas to the greeting and closing phrases for team invitations. Formatting is now consistent.

app/config/locale/translations/bn.json (4)

7-10: Standardize punctuation in verification emails
Added trailing commas to the greeting and closing phrases for verification emails. JSON is valid.


13-16: Standardize punctuation in magic session emails
Added trailing commas to magic session greeting and closing phrases. Good to merge.


19-22: Standardize punctuation in recovery emails
Added trailing commas to the localized greeting and closing for password recovery. Correct and consistent.


25-28: Standardize punctuation in invitation emails
Added trailing commas to the greeting and closing phrases for invitations. Formatting is now unified.

app/config/locale/translations/id.json (1)

7-7: Standardize Indonesian email punctuation
Added trailing commas to greetings and closing lines across all email contexts in the Indonesian locale to match the updated base templates and ensure consistent formatting.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/jv.json (1)

7-7: Standardize Javanese email punctuation
Inserted trailing commas for greetings and thank-you phrases in the Javanese locale to align punctuation with the revised email templates and maintain consistency.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/he.json (1)

7-7: Standardize Hebrew email punctuation
Appended commas after greetings and closing thanks in Hebrew email strings to match the template changes and provide uniform punctuation across locales.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/ur.json (1)

7-7: Standardize Urdu email punctuation
Added trailing commas to the greeting and thanks lines in Urdu email templates to reflect the template adjustments and ensure consistent user-facing formatting.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/nn.json (1)

7-7: Standardize Norwegian Nynorsk email punctuation
Inserted commas after greetings and thank-you phrases in the Nynorsk locale to align with the base template updates and maintain uniform punctuation style.

Also applies to: 10-10, 13-13, 16-16, 19-19, 22-22, 25-25, 28-28

app/config/locale/translations/ms.json (2)

7-7: Standardize greeting punctuation in Malay email templates.
Added trailing commas to greeting phrases across verification, magic session, recovery, and invitation emails for consistent formatting.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing thanks punctuation in Malay email templates.
Appended commas to all "Terima kasih" lines for a uniform sign-off style across all email contexts.

Also applies to: 16-16, 22-22, 28-28

app/config/locale/translations/zh-tw.json (2)

7-7: Standardize greeting punctuation in Traditional Chinese email templates.
Added the Chinese comma-like punctuation "、" after each greeting in verification, magic session, recovery, invitation, and OTP session emails to maintain consistent tone and formatting.

Also applies to: 13-13, 19-19, 25-25, 242-242


10-10: Standardize closing thanks punctuation in Traditional Chinese email templates.
Appended the same "、" punctuation to all thank-you phrases for consistent sign-off styling across every email type.

Also applies to: 16-16, 22-22, 28-28, 246-246

app/config/locale/translations/pt-br.json (2)

7-7: Standardize greeting punctuation in Brazilian Portuguese email templates.
Added trailing commas to "Olá" greetings in verification, magic session, recovery, and invitation emails for consistent formatting.

Also applies to: 13-13, 19-19, 25-25


10-10: Standardize closing thanks punctuation in Brazilian Portuguese email templates.
Appended commas to "Muito obrigado" lines to unify sign-off punctuation across all supported email types.

Also applies to: 16-16, 22-22, 28-28

'LS' => ['name' => 'Lesotho', 'latitude' => -29.5, 'longitude' => 28.5],
'LT' => ['name' => 'Lithuania', 'latitude' => 56.0, 'longitude' => 24.0],
'LU' => ['name' => 'Luxembourg', 'latitude' => 49.75, 'longitude' => 6.17],
'LV' => ['name' => 'latitudevia', 'latitude' => 57.0, 'longitude' => 25.0],
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix typo in country name for Latvia.

There's a typo in the country name for Latvia (LV): it's currently "latitudevia" but should be "Latvia".

-    'LV' => ['name' => 'latitudevia', 'latitude' => 57.0, 'longitude' => 25.0],
+    'LV' => ['name' => 'Latvia', 'latitude' => 57.0, 'longitude' => 25.0],

Comment on lines +37 to +50
'auths' => [
'mockNumbers' => [],
'invites' => System::getEnv('_APP_CONSOLE_INVITES', 'enabled') === 'enabled',
'limit' => (System::getEnv('_APP_CONSOLE_WHITELIST_ROOT', 'enabled') === 'enabled') ? 1 : 0, // limit signup to 1 user
'duration' => Auth::TOKEN_EXPIRATION_LOGIN_LONG, // 1 Year in seconds
'sessionAlerts' => System::getEnv('_APP_CONSOLE_SESSION_ALERTS', 'disabled') === 'enabled'
],
'authWhitelistEmails' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_EMAILS', null)) : [],
'authWhitelistIPs' => (!empty(System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null))) ? \explode(',', System::getEnv('_APP_CONSOLE_WHITELIST_IPS', null)) : [],
'oAuthProviders' => [
'githubEnabled' => true,
'githubSecret' => System::getEnv('_APP_CONSOLE_GITHUB_SECRET', ''),
'githubAppid' => System::getEnv('_APP_CONSOLE_GITHUB_APP_ID', '')
],
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Critical: Referenced environment variables are missing
The console config uses System::getEnv('_APP_CONSOLE_INVITES', …) and expects _APP_CONSOLE_GITHUB_SECRET and _APP_CONSOLE_GITHUB_APP_ID, but these are not defined in .env. Please add corresponding entries to .env (or provide sensible defaults) to prevent undefined‐index errors at runtime.

Comment on lines +283 to +305

* Trigger functions event only if event is not paused by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8526
* Update docker-compose to restart usage-dump by @feschaffa in https://github.com/appwrite/appwrite/pull/8642
* Fix typo in scheduler base by @fogelito in https://github.com/appwrite/appwrite/pull/8691
* Add domain and force HTTPS env vars to mail worker by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8722
* Fix webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8732
* Ignore junction tables by @fogelito in https://github.com/appwrite/appwrite/pull/8728
* Fix logger throwing fatal error by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8724
* Fix missing protocol for testing SMTP by @byawitz in https://github.com/appwrite/appwrite/pull/8749
* Make create execution async loose by @loks0n in https://github.com/appwrite/appwrite/pull/8707
* Fix invalid cursor value by @fogelito in https://github.com/appwrite/appwrite/pull/8109
* Fix target deletes by @abnegate in https://github.com/appwrite/appwrite/pull/8833
* Fix translation commas by @loks0n in https://github.com/appwrite/appwrite/pull/8892
* Fix Migrations having source creds being overwritten and add Migration tests by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8897
* Fix validator usage for updating string size by @abnegate in https://github.com/appwrite/appwrite/pull/8890
* Fix create user event not triggering by @loks0n in https://github.com/appwrite/appwrite/pull/8718
* Improve error handling and logging in the database worker by @fogelito in https://github.com/appwrite/appwrite/pull/8944
* Remove inaccurate info about leaving the URL parameter empty by @ebenezerdon in https://github.com/appwrite/appwrite/pull/8963
* Ensure indexes are updated when updating an attribute key by @fogelito in https://github.com/appwrite/appwrite/pull/8971
* Remove duplicate dart-2.16 runtime template by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8972
* Fix team invites with existing session by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/9006
* Improve handling of HTTP requests by dispatching to safe workers by @Meldiron in https://github.com/appwrite/appwrite/pull/9016
* Fix users create session secret by @stnguyen90 in https://github.com/appwrite/appwrite/pull/9019
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Unify PR reference formatting in v1.6.1 Fixes
Similar to the Notable changes, the “Fixes” section lists raw URLs. For consistency and markdown lint compliance, please bracket these PRs as well.
Example diff:

-* Trigger functions event only if event is not paused by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8526
+* Trigger functions event only if event is not paused by @lohanidamodar in [8526](https://github.com/appwrite/appwrite/pull/8526)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* Trigger functions event only if event is not paused by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8526
* Update docker-compose to restart usage-dump by @feschaffa in https://github.com/appwrite/appwrite/pull/8642
* Fix typo in scheduler base by @fogelito in https://github.com/appwrite/appwrite/pull/8691
* Add domain and force HTTPS env vars to mail worker by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8722
* Fix webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8732
* Ignore junction tables by @fogelito in https://github.com/appwrite/appwrite/pull/8728
* Fix logger throwing fatal error by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8724
* Fix missing protocol for testing SMTP by @byawitz in https://github.com/appwrite/appwrite/pull/8749
* Make create execution async loose by @loks0n in https://github.com/appwrite/appwrite/pull/8707
* Fix invalid cursor value by @fogelito in https://github.com/appwrite/appwrite/pull/8109
* Fix target deletes by @abnegate in https://github.com/appwrite/appwrite/pull/8833
* Fix translation commas by @loks0n in https://github.com/appwrite/appwrite/pull/8892
* Fix Migrations having source creds being overwritten and add Migration tests by @PineappleIOnic in https://github.com/appwrite/appwrite/pull/8897
* Fix validator usage for updating string size by @abnegate in https://github.com/appwrite/appwrite/pull/8890
* Fix create user event not triggering by @loks0n in https://github.com/appwrite/appwrite/pull/8718
* Improve error handling and logging in the database worker by @fogelito in https://github.com/appwrite/appwrite/pull/8944
* Remove inaccurate info about leaving the URL parameter empty by @ebenezerdon in https://github.com/appwrite/appwrite/pull/8963
* Ensure indexes are updated when updating an attribute key by @fogelito in https://github.com/appwrite/appwrite/pull/8971
* Remove duplicate dart-2.16 runtime template by @stnguyen90 in https://github.com/appwrite/appwrite/pull/8972
* Fix team invites with existing session by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/9006
* Improve handling of HTTP requests by dispatching to safe workers by @Meldiron in https://github.com/appwrite/appwrite/pull/9016
* Fix users create session secret by @stnguyen90 in https://github.com/appwrite/appwrite/pull/9019
* Trigger functions event only if event is not paused by @lohanidamodar in [8526](https://github.com/appwrite/appwrite/pull/8526)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

284-284: Bare URL used
null

(MD034, no-bare-urls)


285-285: Bare URL used
null

(MD034, no-bare-urls)


286-286: Bare URL used
null

(MD034, no-bare-urls)


287-287: Bare URL used
null

(MD034, no-bare-urls)


288-288: Bare URL used
null

(MD034, no-bare-urls)


289-289: Bare URL used
null

(MD034, no-bare-urls)


290-290: Bare URL used
null

(MD034, no-bare-urls)


291-291: Bare URL used
null

(MD034, no-bare-urls)


292-292: Bare URL used
null

(MD034, no-bare-urls)


293-293: Bare URL used
null

(MD034, no-bare-urls)


294-294: Bare URL used
null

(MD034, no-bare-urls)


295-295: Bare URL used
null

(MD034, no-bare-urls)


296-296: Bare URL used
null

(MD034, no-bare-urls)


297-297: Bare URL used
null

(MD034, no-bare-urls)


298-298: Bare URL used
null

(MD034, no-bare-urls)


299-299: Bare URL used
null

(MD034, no-bare-urls)


300-300: Bare URL used
null

(MD034, no-bare-urls)


301-301: Bare URL used
null

(MD034, no-bare-urls)


302-302: Bare URL used
null

(MD034, no-bare-urls)


303-303: Bare URL used
null

(MD034, no-bare-urls)


304-304: Bare URL used
null

(MD034, no-bare-urls)


305-305: Bare URL used
null

(MD034, no-bare-urls)

Comment on lines F438 +269 to +281
### Notable changes

* Remove JPEG fallback for webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8746
* Add heic and avif support by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7718
* Add new runtimes by @Meldiron in https://github.com/appwrite/appwrite/pull/8771
* Remove audits deletion by @shimonewman in https://github.com/appwrite/appwrite/pull/8766
* Bump assistant by @loks0n in https://github.com/appwrite/appwrite/pull/8801
* Change max queries values to 500 by @fogelito in https://github.com/appwrite/appwrite/pull/8802
* Allow '.wav' as 'audio/x-wav' as well by @basert in https://github.com/appwrite/appwrite/pull/8846
* Use 1 instead of 0.5 cpu for default function specification by @loks0n in https://github.com/appwrite/appwrite/pull/8848
* Update function runtimes by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8781
* Add a realtime heartbeat by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8943

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Unify PR reference formatting in v1.6.1 Notable changes
The bullets under “Notable changes” currently use raw URLs, which is inconsistent with the bracketed PR references in v1.6.2 and fails the “no-bare-urls” lint rule. Please convert these to inline links.
Proposed diff:

-* Remove JPEG fallback for webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8746
+* Remove JPEG fallback for webp by @lohanidamodar in [8746](https://github.com/appwrite/appwrite/pull/8746)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Notable changes
* Remove JPEG fallback for webp by @lohanidamodar in https://github.com/appwrite/appwrite/pull/8746
* Add heic and avif support by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7718
* Add new runtimes by @Meldiron in https://github.com/appwrite/appwrite/pull/8771
* Remove audits deletion by @shimonewman in https://github.com/appwrite/appwrite/pull/8766
* Bump assistant by @loks0n in https://github.com/appwrite/appwrite/pull/8801
* Change max queries values to 500 by @fogelito in https://github.com/appwrite/appwrite/pull/8802
* Allow '.wav' as 'audio/x-wav' as well by @basert in https://github.com/appwrite/appwrite/pull/8846
* Use 1 instead of 0.5 cpu for default function specification by @loks0n in https://github.com/appwrite/appwrite/pull/8848
* Update function runtimes by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8781
* Add a realtime heartbeat by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8943
### Notable changes
* Remove JPEG fallback for webp by @lohanidamodar in [8746](https://github.com/appwrite/appwrite/pull/8746)
* Add heic and avif support by @lohanidamodar in https://github.com/appwrite/appwrite/pull/7718
* Add new runtimes by @Meldiron in https://github.com/appwrite/appwrite/pull/8771
* Remove audits deletion by @shimonewman in https://github.com/appwrite/appwrite/pull/8766
* Bump assistant by @loks0n in https://github.com/appwrite/appwrite/pull/8801
* Change max queries values to 500 by @fogelito in https://github.com/appwrite/appwrite/pull/8802
* Allow '.wav' as 'audio/x-wav' as well by @basert in https://github.com/appwrite/appwrite/pull/8846
* Use 1 instead of 0.5 cpu for default function specification by @loks0n in https://github.com/appwrite/appwrite/pull/8848
* Update function runtimes by @christyjacob4 in https://github.com/appwrite/appwrite/pull/8781
* Add a realtime heartbeat by @TorstenDittmann in https://github.com/appwrite/appwrite/pull/8943
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

271-271: Bare URL used
null

(MD034, no-bare-urls)


272-272: Bare URL used
null

(MD034, no-bare-urls)


273-273: Bare URL used
null

(MD034, no-bare-urls)


274-274: Bare URL used
null

(MD034, no-bare-urls)


275-275: Bare URL used
null

(MD034, no-bare-urls)


276-276: Bare URL used
null

(MD034, no-bare-urls)


277-277: Bare URL used
null

(MD034, no-bare-urls)


278-278: Bare URL used
null

(MD034, no-bare-urls)


279-279: Bare URL used
null

(MD034, no-bare-urls)


280-280: Bare URL used
null

(MD034, no-bare-urls)

Comment on lines +963 to +964
'filters' => [], //TODO: use json filter
]
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Implement the TODO for using JSON filter.

The comment indicates that the json filter should be used for the value attribute in the realtime collection. This appears to be an unfinished implementation detail.

-                'filters' => [], //TODO: use json filter
+                'filters' => ['json'],

Comment on lines +242 to +246
"emails.otpSession.hello": "Hola,",
"emails.otpSession.description": "Ingrese el siguiente código de verificación cuando se le solicite para iniciar sesión de forma segura en su cuenta de {{project}}. Expirará en 15 minutos.",
"emails.otpSession.clientInfo": "Este inicio de sesión fue solicitado usando {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no solicitaste el inicio de sesión, puedes ignorar este correo electrónico de forma segura.",
"emails.otpSession.securityPhrase": "La frase de seguridad para este correo electrónico es {{phrase}}. Puedes confiar en este correo si esta frase coincide con la frase mostrada durante el inicio de sesión.",
"emails.otpSession.thanks": "Gracias.",
"emails.otpSession.thanks": "Gracias.,",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix redundant punctuation in OTP session emails
Update the greeting and closing punctuation:

- "emails.otpSession.thanks": "Gracias.,",
+ "emails.otpSession.thanks": "Gracias,"

Greeting line is fine.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"emails.otpSession.hello": "Hola,",
"emails.otpSession.description": "Ingrese el siguiente código de verificación cuando se le solicite para iniciar sesión de forma segura en su cuenta de {{project}}. Expirará en 15 minutos.",
"emails.otpSession.clientInfo": "Este inicio de sesión fue solicitado usando {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no solicitaste el inicio de sesión, puedes ignorar este correo electrónico de forma segura.",
"emails.otpSession.securityPhrase": "La frase de seguridad para este correo electrónico es {{phrase}}. Puedes confiar en este correo si esta frase coincide con la frase mostrada durante el inicio de sesión.",
"emails.otpSession.thanks": "Gracias.",
"emails.otpSession.thanks": "Gracias.,",
"emails.otpSession.hello": "Hola,",
"emails.otpSession.description": "Ingrese el siguiente código de verificación cuando se le solicite para iniciar sesión de forma segura en su cuenta de {{project}}. Expirará en 15 minutos.",
"emails.otpSession.clientInfo": "Este inicio de sesión fue solicitado usando {{agentClient}} en {{agentDevice}} {{agentOs}}. Si no solicitaste el inicio de sesión, puedes ignorar este correo electrónico de forma segura.",
"emails.otpSession.securityPhrase": "La frase de seguridad para este correo electrónico es {{phrase}}. Puedes confiar en este correo si esta frase coincide con la frase mostrada durante el inicio de sesión.",
- "emails.otpSession.thanks": "Gracias.,",
+ "emails.otpSession.thanks": "Gracias,"

Comment on lines +25 to +28
"emails.invitation.hello": "Hola,",
"emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quién quiere invitarte a formar parte del equipo {{team}} en {{project}}.",
"emails.invitation.footer": "Si no estás interesado, puedes ignorar este mensaje.",
"emails.invitation.thanks": "Gracias.",
"emails.invitation.thanks": "Gracias.,",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix redundant punctuation in invitation emails
The closing phrase has ".,", adjust to a simple comma:

- "emails.invitation.thanks": "Gracias.,",
+ "emails.invitation.thanks": "Gracias,"

Greeting line is correct.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"emails.invitation.hello": "Hola,",
"emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quién quiere invitarte a formar parte del equipo {{team}} en {{project}}.",
"emails.invitation.footer": "Si no estás interesado, puedes ignorar este mensaje.",
"emails.invitation.thanks": "Gracias.",
"emails.invitation.thanks": "Gracias.,",
"emails.invitation.hello": "Hola,",
"emails.invitation.body": "Este correo ha sido enviado a petición de {{owner}} quién quiere invitarte a formar parte del equipo {{team}} en {{project}}.",
"emails.invitation.footer": "Si no estás interesado, puedes ignorar este mensaje.",
"emails.invitation.thanks": "Gracias,"

Comment on lines +19 to +22
"emails.recovery.hello": "Hola, {{name}}.,",
"emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de {{project}}:",
"emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.",
"emails.recovery.thanks": "Gracias.",
"emails.recovery.thanks": "Gracias.,",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix redundant punctuation in recovery emails
Remove the extra period before the comma:

- "emails.recovery.hello": "Hola, {{name}}.,",
+ "emails.recovery.hello": "Hola, {{name}},"

- "emails.recovery.thanks": "Gracias.,",
+ "emails.recovery.thanks": "Gracias,"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"emails.recovery.hello": "Hola, {{name}}.,",
"emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de {{project}}:",
"emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.",
"emails.recovery.thanks": "Gracias.",
"emails.recovery.thanks": "Gracias.,",
"emails.recovery.hello": "Hola, {{name}},",
"emails.recovery.body": "Haz clic en este enlace para restablecer la contraseña de {{project}}:",
"emails.recovery.footer": "Si no has solicitado restablecer la contraseña, puedes ignorar este mensaje.",
"emails.recovery.thanks": "Gracias,",

Comment on lines +13 to +16
"emails.magicSession.hello": "Hola,",
"emails.magicSession.body": "Haz clic en este enlace para iniciar sesión:",
"emails.magicSession.footer": "Si no has solicitado iniciar sesión usando este correo, puedes ignorar este mensaje.",
"emails.magicSession.thanks": "Gracias.",
"emails.magicSession.thanks": "Gracias.,",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix redundant punctuation in magic session emails
The closing phrase uses ".,". Update to a single comma:

- "emails.magicSession.thanks": "Gracias.,",
+ "emails.magicSession.thanks": "Gracias,"

Greeting line is correct.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"emails.magicSession.hello": "Hola,",
"emails.magicSession.body": "Haz clic en este enlace para iniciar sesión:",
"emails.magicSession.footer": "Si no has solicitado iniciar sesión usando este correo, puedes ignorar este mensaje.",
"emails.magicSession.thanks": "Gracias.",
"emails.magicSession.thanks": "Gracias.,",
"emails.magicSession.hello": "Hola,",
"emails.magicSession.body": "Haz clic en este enlace para iniciar sesión:",
"emails.magicSession.footer": "Si no has solicitado iniciar sesión usando este correo, puedes ignorar este mensaje.",
"emails.magicSession.thanks": "Gracias,"

Comment on lines +7 to +10
"emails.verification.hello": "Hola, {{name}}.,",
"emails.verification.body": "Haz clic en este enlace para verificar tu correo:",
"emails.verification.footer": "Si no has solicitado verificar este correo, puedes ignorar este mensaje.",
"emails.verification.thanks": "Gracias.",
"emails.verification.thanks": "Gracias.,",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix redundant punctuation in verification emails
The strings include both a period and a comma (".,"), which is likely unintended. Please replace:

- "emails.verification.hello": "Hola, {{name}}.,",
+ "emails.verification.hello": "Hola, {{name}},"

- "emails.verification.thanks": "Gracias.,",
+ "emails.verification.thanks": "Gracias,"

This corrects the punctuation to a single comma.

Committable suggestion skipped: line range outside the PR's diff.

Copy link

✨ Benchmark results

  • Requests per second: 1,132
  • Requests with 200 status code: 203,817
  • P99 latency: 0.158031397

⚡ Benchmark Comparison

Metric This PR Latest version
RPS 1,132 1,394
200 203,817 250,947
P99 0.158031397 0.130243307

@stnguyen90 stnguyen90 requested a review from christyjacob4 May 14, 2025 00:38
@stnguyen90 stnguyen90 merged commit aa411e4 into main May 15, 2025
69 checks passed
@stnguyen90 stnguyen90 deleted the release-1.6.2 branch May 15, 2025 00:12
@stnguyen90 stnguyen90 restored the release-1.6.2 branch May 17, 2025 19:12
@stnguyen90 stnguyen90 mentioned this pull request May 17, 2025
2 tasks
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.

0