8000 Chore sync 1.8.0 into main by stnguyen90 · Pull Request #10677 · appwrite/appwrite · GitHub
[go: up one dir, main page]

Skip to content

Conversation

@stnguyen90
Copy link
Contributor

What does this PR do?

Update the main branch with 1.8.0 release.

Test Plan

Automated tests

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?

abnegate and others added 30 commits September 18, 2025 15:29
Add spatial column validation during required mode and tests for exis…
Catch query exception on bulk update/delete
# Conflicts:
#	composer.lock
#	src/Appwrite/Platform/Workers/StatsResources.php
#	src/Appwrite/Platform/Workers/StatsUsage.php
…and-update-docs-3769

Add type_enum support and update docs
loks0n and others added 18 commits October 13, 2025 12:53
Update .NET SDK to 0.21.2 and improve release detection
chore: use bcc only emails for smtp
In older versions of Appwrite, the internal ID was the $internalId attribute. However, it has now changed to $sequence so that it can align with the publicly exposed attribute for an auto-incrementing ID.

The problem with this change is that data in the cache still references the old $internalId attribute, which can lead to inconsistencies and errors when accessing cached documents. To resolve this issue, we need to clear the cache for all collections and documents at the beginning of the migration so that the new $sequence attribute is used.
Appwrite 1.6.1 added these attributes, but the migration was never updated to include those new attributes
< 8000 span class="Skeleton d-inline-block mr-1" style="width:75px; height:14px; margin-bottom:-4px;">
1. Remove PR authors because they don't render properly anyways
2. Format PR links to use markdown style links instead of plain URLs
@coderabbitai
Copy link
Contributor
coderabbitai bot commented Oct 21, 2025
📝 Walkthrough

Walkthrough

This PR introduces version 1.8.0 of Appwrite with major infrastructure and feature updates. Key changes include: adding a new TablesDB service with transactions/table/row/column support; introducing associated database collections, error codes, and permissions; updating email templates with new font loading and button styling; implementing locale validation in CI via a new Node.js script; removing GitHub auto-labeling workflow; updating SDK versions and adding changelog references; extending database permissions and scopes; and updating Docker base image and configuration variables for DNS/domain validation.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~90+ minutes

The diff spans heterogeneous changes across 100+ files including new database schemas (transactions/transactionLogs collections), dozens of new error constants and permissions, extensive locale translations across 60+ language files with repeated templating changes, new CI workflow scripts, modified email templates with structural changes, and updated service configurations. While many individual changes are repetitive (e.g., translation updates), the breadth of domains (infrastructure, database schema, permissions, localization, CI/CD, email rendering) and the density of logic changes (new collections with indexes, permission matrices, event definitions) warrant critical-level review effort.

Possibly related PRs

  • fix: worker stop #10498 — Shares multiple identical code-level changes including .env variables, static-analysis locale workflow/files, variables.php additions, app/cli.php publisher resources, Dockerfile updates, and test workflow modifications.
  • Check CAA record before issuing certificate #10258 — Both PRs add _APP_DNS and _APP_DOMAIN_TARGET_CAA environment variables and introduce CAA-aware DNS validation with DNS validator checks and related infrastructure updates.
  • Feat: Add executionId and client IP to function headers #9147 — Modifies overlapping configuration files (platform.php, collections/platform.php, Dockerfile, workflows/tests.yml, roles/scopes/services/templates/events/errors) indicating connected feature development.

Suggested reviewers

  • Meldiron

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "Chore sync 1.8.0 into main" is directly and clearly related to the primary change in the changeset. The raw summary shows extensive modifications across the repository including version updates in README files from 1.7.4 to 1.8.0, a new CHANGES.md section for Version 1.8.0 documenting notable changes and fixes, updates to numerous configuration files, and additions of new features like transaction collections and locale validation. The title accurately summarizes the main objective stated in the PR description: syncing version 1.8.0 into the main branch. The title is specific and clear—someone scanning the commit history would immediately understand this is a 1.8.0 release merge.
Description Check ✅ Passed The pull request description is related to and accurately describes the changeset. It states "Update the main branch with 1.8.0 release" which directly corresponds to the extensive version 1.8.0-related changes visible in the raw summary, including the new CHANGES.md section for 1.8.0, README version updates, and numerous feature and configuration updates. While the description is concise rather than exhaustive, it provides clear and meaningful information about the PR's purpose without being vague or generic. The description is not off-topic or unrelated to the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore-sync-1.8.0

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@pkg-pr-new
Copy link
pkg-pr-new bot commented Oct 21, 2025

Open in StackBlitz

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

commit: 60b4835

@github-actions
Copy link

Security Scan Results for PR

Docker Image Scan Results

Package Version Vulnerability Severity
binutils 2.44-r2 CVE-2025-5244 HIGH
binutils 2.44-r2 CVE-2025-5245 HIGH
libxml2 2.13.8-r0 CVE-2025-49794 CRITICAL
libxml2 2.13.8-r0 CVE-2025-49796 CRITICAL
libxml2 2.13.8-r0 CVE-2025-49795 HIGH
libxml2 2.13.8-r0 CVE-2025-6021 HIGH
pcre2 10.43-r1 CVE-2025-58050 CRITICAL
golang.org/x/crypto v0.31.0 CVE-2025-22869 HIGH
golang.org/x/oauth2 v0.24.0 CVE-2025-22868 HIGH
stdlib 1.22.10 CVE-2025-47907 HIGH

Source Code Scan Results

🎉 No vulnerabilities found!

@github-actions
Copy link

✨ Benchmark results

  • Requests per second: 1,201
  • Requests with 200 status code: 216,282
  • P99 latency: 0.161500052

⚡ Benchmark Comparison

Metric This PR Latest version
RPS 1,201 962
200 216,282 173,227
P99 0.161500052 0.197429685

@stnguyen90 stnguyen90 marked this pull request as ready for review October 21, 2025 22:36
@stnguyen90 stnguyen90 requested a review from abnegate October 21, 2025 22:36
Copy link
Contributor
@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: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (8)
app/config/locale/translations/ml.json (2)

19-19: Template variable case mismatch: {{Project}} should be lowercase.

Line 19 uses {{Project}} with a capital P, while all other occurrences throughout the file use lowercase {{project}}. This inconsistency will cause template rendering to fail for email recovery messages, as most template engines are case-sensitive.

-    "emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",
+    "emails.recovery.body": "നിങ്ങളുടെ {{project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക.",

1-254: Fix template variable case mismatch in emails.recovery.body.

Line 19 contains {{Project}} with uppercase P, which should be {{project}} (lowercase) to match the application's template variable naming convention. This is the only instance of this error across all locale files.

Update line 19 from:

"emails.recovery.body": "നിങ്ങളുടെ {{Project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക."

to:

"emails.recovery.body": "നിങ്ങളുടെ {{project}} രഹസ്യവാക്ക് പുനക്രമീകരിക്കുന്നതിന് ഈ ലിങ്ക് പിന്തുടരുക."
app/config/locale/translations/sa.json (1)

236-241: Remove Arabic translations mixed into Sanskrit locale file.

Lines 236–241 of app/config/locale/translations/sa.json contain Arabic translations that do not belong in the Sanskrit locale file. These lines should be removed entirely.

Verification confirms: Lines 236–241 contain Arabic text (e.g., "اضغط على الزر أدناه..."), while the surrounding context (lines 230–235) contains proper Sanskrit translations and lines 242+ continue with Sanskrit. The same 6 keys (emails.magicSession.optionButton, buttonText, clientInfo, sms.verification.body, securityPhrase, optionUrl) are correctly translated in Arabic in ar.json, confirming this is a locale mismatch.

Remove the following lines:

-    "emails.magicSession.optionButton": "اضغط على الزر أدناه لتسجيل الدخول بأمان إلى حساب {{project}} الخاص بك. سينتهي في غضون ساعة واحدة.",
-    "emails.magicSession.buttonText": "تسجيل الدخول إلى {{project}}",
-    "emails.magicSession.clientInfo": "هذا الطلب لتسجيل الدخول قد تم باستخدام {{agentClient}} على {{agentDevice}} {{agentOs}}. إذا لم تطلب تسجيل الدخول، يمكنك تجاهل هذا البريد الإلكتروني بأمان.",
-    "sms.verification.body": "{{secret}}",
-    "emails.magicSession.securityPhrase": "العبارة الأمنية لهذا البريد الإلكتروني هي {{phrase}}. يمكنك الوثوق بهذا البريد الإلكتروني إذا كانت هذه العبارة متطابقة مع العبارة المعروضة أثناء تسجيل الدخول.",
-    "emails.magicSession.optionUrl": "إذا لم تتمكن من تسجيل الدخول باستخدام الزر أعلاه، يرجى زيارة الرابط التالي:",
app/config/locale/translations/hy.json (1)

233-238: Add missing "emails.magicSession.preview" translation to hy.json.

During verification, I found that hy.json is missing the emails.magicSession.preview key, which is required by account.php (line 2045). The code calls $locale->getText("emails.magicSession.preview"), but this key does not exist in the Armenian locale. The en.json file contains this key with the value: "Sign in to {{project}} with your secure link. Expires in 1 hour." Please add the Armenian translation for this key to complete the localization.

Additionally, the verification confirms that:

  • The removal of old magicSession.body and magicSession.footer keys is safe; they are not referenced anywhere in the codebase
  • All other new magicSession keys (optionButton, buttonText, clientInfo, securityPhrase, optionUrl, etc.) are correctly present and properly mapped in the template rendering logic
app/config/locale/translations/si.json (1)

236-241: Remove Slovenian text from Sinhala locale file (si.json, lines 236-241).

The contamination is confirmed. Lines 236–241 contain Slovenian text ("Kliknite", "gumb", "vstopite", "račun", "Poteče", "Prijavite") in a Sinhala translation file. These entries correctly exist in the Slovenian locale file (sl.json, lines 233–238). Lines 230–235 and 242+ in si.json contain proper Sinhala translations, confirming the Slovenian entries at 236–241 are misplaced.

Remove lines 236–241 in their entirety from si.json, as they belong only in sl.json.

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

237-241: Incorrect localization: Spanish text in Swedish translation file. Lines 237 and 241 contain Spanish translations instead of Swedish equivalents. Line 237 should translate the magic session button prompt to Swedish, and line 241 should provide the Swedish version of the alternative URL option.

Apply this diff to restore Swedish translations:

-    "emails.magicSession.buttonText": "Inicia sesión en {{project}}",
+    "emails.magicSession.buttonText": "Logga in i {{project}}",
-    "emails.magicSession.optionUrl": "Si no puedes iniciar sesión utilizando el botón de arriba, por favor visita el siguiente enlace:",
+    "emails.magicSession.optionUrl": "Om du inte kan logga in med knappen ovan, besök följande länk:",
app/config/locale/translations/ur.json (1)

181-182: Data corruption: Country name entries are misaligned. Line 181 has an empty value for countries.rw (Rwanda), while line 182 incorrectly assigns the Urdu word "روانڈا" (Rwanda) to countries.sa (Saudi Arabia). This will cause incorrect country labels in the UI.

Apply this diff to correct the country mappings:

-    "countries.rw": "",
-    "countries.sa": "روانڈا",
+    "countries.rw": "روانڈا",
+    "countries.sa": "سعودی عرب",
app/config/locale/translations/sn.json (1)

236-241: Incorrect language content in Shona locale file.

Lines 236-241 contain French text in a Shona (sn) locale file. For example, line 236 shows "Cliquez sur le bouton ci-dessous..." which is French, not Shona. This appears to be a copy-paste error from the French locale.

Consider verifying the correct Shona translations for these keys:

  • emails.magicSession.optionButton (line 236)
  • emails.magicSession.buttonText (line 237)
  • emails.magicSession.clientInfo (line 238)
  • emails.magicSession.securityPhrase (line 240)
  • emails.magicSession.optionUrl (line 241)
🧹 Nitpick comments (14)
app/cli.php (1)

199-213: Consider whether domain-specific publisher resources need differentiation.

All five new publisher resources (publisherDatabases, publisherFunctions, publisherMigrations, publisherStatsUsage, publisherMessaging) currently return the same BrokerPool instance. If these are meant to represent logically separate message queues or publishers, they should be configured differently. If they're intended to share the same underlying broker pool, this duplication might not be necessary.

Based on learnings

Is this pattern preparatory for future differentiation (e.g., separate queue configurations), or could these be consolidated?

app/config/locale/templates/email-base-styled.tpl (4)

31-41: Resolve conflicting .main padding (0 overrides 32px).

You set padding twice; the latter wins and zeroes it. Pick one to avoid surprises.

 .main {
-    padding: 32px;
     line-height: 1.5;
     color: #616b7c;
     font-size: 15px;
     font-weight: 400;
     font-family: "Inter", sans-serif;
     background-color: #ffffff;
     margin: 0;
     padding: 0;
 }

146-149: Preheader should be hidden from AT as well.

Add aria-hidden/role to ensure screen readers don’t announce the preview text.

-<div style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
+<div aria-hidden="true" role="presentation" style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
     {{preview}}
     <div>{{previewWhitespace}}</div>
 </div>

4-21: Optional: Prefer local() sources before remote fonts.

Adding local() improves performance/fallback when the font is installed.

 @font-face {
   font-family: 'Inter';
-  src: url('https://assets.appwrite.io/fonts/inter/Inter-Regular.woff2') format('woff2');
+  src: local('Inter'), local('Inter Regular'),
+       url('https://assets.appwrite.io/fonts/inter/Inter-Regular.woff2') format('woff2');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: 'DM Sans';
-  src: url('https://assets.appwrite.io/fonts/dm-sans/dm-sans-v16-latin-600.woff2') format('woff2');
+  src: local('DM Sans'), local('DMSans-SemiBold'),
+       url('https://assets.appwrite.io/fonts/dm-sans/dm-sans-v16-latin-600.woff2') format('woff2');
   font-weight: 600;
   font-style: normal;
   font-display: swap;
 }

192-219: Add alt text on social icons for accessibility.

Icons lack alt text; provide short alts.

-<img src="https://cloud.appwrite.io/images/mails/x.png" height="24" width="24" />
+<img src="https://cloud.appwrite.io/images/mails/x.png" height="24" width="24" alt="X (Twitter) icon" />
...
-<img src="https://cloud.appwrite.io/images/mails/discord.png" height="24" width="24" />
+<img src="https://cloud.appwrite.io/images/mails/discord.png" height="24" width="24" alt="Discord icon" />
...
-<img src="https://cloud.appwrite.io/images/mails/github.png" height="24" width="24" />
+<img src="https://cloud.appwrite.io/images/mails/github.png" height="24" width="24" alt="GitHub icon" />
.github/workflows/static-analysis/locale/index.js (4)

11-14: Allow CI overrides via env vars.

Let STRICT/FALLBACK_LOCALE control behavior without code edits.

-const config = {
-  strict: false,
-  fallbackLocale: "en.json",
-};
+const config = {
+  strict: process.env.STRICT === "true",
+  fallbackLocale: process.env.FALLBACK_LOCALE || "en.json",
+};

49-56: Add file context for JSON parse errors.

Surface the failing filename to speed up fixes.

-      const content = await readFile(filePath, "utf8");
-      const translations = JSON.parse(content);
+      const content = await readFile(filePath, "utf8");
+      let translations;
+      try {
+        translations = JSON.parse(content);
+      } catch (e) {
+        console.error(`Invalid JSON in ${filePath}`);
+        throw e;
+      }
...
-      const content = await readFile(path, "utf8");
-      const translations = JSON.parse(content);
+      const content = await readFile(path, "utf8");
+      let translations;
+      try {
+        translations = JSON.parse(content);
+      } catch (e) {
+        console.err
5DA9
or(`Invalid JSON in ${path}`);
+        throw e;
+      }

Also applies to: 70-75


87-103: Wording: not always the fallback locale.

Message should say “Locale … is missing …”.

-        console.error(
-          `\nERROR: Fallback locale (${localeToCheck}) is missing ${missingKeys.length} key(s):`,
-        );
+        console.error(
+          `\nERROR: Locale (${localeToCheck}) is missing ${missingKeys.length} key(s):`,
+        );
...
-        console.log(
-          `\nSUCCESS: Fallback locale (${localeToCheck}) contains all ${allKeys.size} keys.`,
-        );
+        console.log(
+          `\nSUCCESS: Locale (${localeToCheck}) contains all ${allKeys.size} keys.`,
+        );

106-109: Fix summary grammar to report missing keys vs locales.

-      console.log(`\n${missingLocaleCount} locales missing found across ${errorsCount} locales.`);
+      console.log(`\n${missingLocaleCount} missing key(s) found across ${errorsCount} locale(s).`);
app/config/locale/templates/email-base.tpl (3)

31-42: Clean up duplicate body styles (padding/line-height).

Later rules override earlier ones; keep a single intent.

 body {
-    padding: 32px;
-    line-height: 1.5;
+    /* padding intentionally 0 for email client consistency */
     color: #616b7c;
     font-size: 15px;
     font-weight: 400;
     font-family: "Inter", sans-serif;
     background-color: #ffffff;
     margin: 0;
     padding: 0;
-    line-height: 150%;
+    line-height: 150%;
 }

126-129: Preheader should be hidden from AT as well.

-<div style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
+<div aria-hidden="true" role="presentation" style="display: none; overflow: hidden; max-height: 0; max-width: 0; opacity: 0; line-height: 1px;">
     {{preview}}
     <div>{{previewWhitespace}}</div>
 </div>

4-29: Optional: Prefer local() sources before remote fonts.

 @font-face {
   font-family: 'Inter';
-  src: url('https://assets.appwrite.io/fonts/inter/Inter-Regular.woff2') format('woff2');
+  src: local('Inter'), local('Inter Regular'),
+       url('https://assets.appwrite.io/fonts/inter/Inter-Regular.woff2') format('woff2');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: 'DM Sans';
-  src: url('https://assets.appwrite.io/fonts/dm-sans/dm-sans-v16-latin-600.woff2') format('woff2');
+  src: local('DM Sans'), local('DMSans-SemiBold'),
+       url('https://assets.appwrite.io/fonts/dm-sans/dm-sans-v16-latin-600.woff2') format('woff2');
   font-weight: 600;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: 'Poppins';
-  src: url('https://assets.appwrite.io/fonts/poppins/poppins-v23-latin-regular.woff2') format('woff2');
+  src: local('Poppins'), local('Poppins Regular'),
+       url('https://assets.appwrite.io/fonts/poppins/poppins-v23-latin-regular.woff2') format('woff2');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
 }
app/config/scopes.php (1)

61-66: Clarify rows scope wording.

Make it explicit these are table rows.

-        'description' => 'Access to read your project\'s database rows',
+        'description' => 'Access to read your project\'s database table rows',
@@
-        'description' => 'Access to create, update, and delete your project\'s database rows',
+        'description' => 'Access to create, update, and delete your project\'s database table rows',
app/config/errors.php (1)

722-811: Consider abstracting duplicated error patterns.

The error definitions for Tables/Rows/Columns mirror Collections/Documents/Attributes almost exactly, with only entity names changed. This creates significant duplication (e.g., ROW_NOT_FOUND vs DOCUMENT_NOT_FOUND, COLUMN_NOT_FOUND vs ATTRIBUTE_NOT_FOUND).

While this duplication provides clear, specific error messages, consider whether a more abstract approach might reduce maintenance burden. For example:

  • Entity-agnostic error types with context
  • Shared error message templates with entity substitution

However, given that this is a sync of an already-released version (1.8.0), and explicit error codes aid debugging and API clarity, the current approach is acceptable.

Note: This is an architectural suggestion for future consideration, not a blocker for this sync.

Also applies to: 878-987

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 852f06c and 60b4835.

⛔ Files ignored due to path filters (165)
  • app/config/avatars/credit-cards/unionpay.png is excluded by !**/*.png
  • app/config/specs/open-api3-1.7.x-client.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-1.7.x-console.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-1.7.x-server.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-1.8.x-client.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-1.8.x-console.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-1.8.x-server.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-latest-client.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-latest-console.json is excluded by !app/config/specs/**
  • app/config/specs/open-api3-latest-server.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.7.x-client.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.7.x-console.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.7.x-server.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.8.x-client.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.8.x-console.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-1.8.x-server.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-latest-client.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-latest-console.json is excluded by !app/config/specs/**
  • app/config/specs/swagger2-latest-server.json is excluded by !app/config/specs/**
  • composer.lock is excluded by !**/*.lock
  • docs/examples/1.7.x/client-android/java/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/java/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/java/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/java/functions/create-execution.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/kotlin/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/kotlin/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/kotlin/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-android/kotlin/functions/create-execution.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-apple/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-apple/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-apple/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-flutter/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-flutter/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-flutter/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-graphql/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-graphql/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-graphql/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-graphql/examples/databases/update-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-graphql/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-react-native/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-react-native/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-react-native/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-rest/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-rest/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-web/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-web/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/client-web/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-cli/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-cli/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/proxy/create-redirect-rule.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/console-web/examples/vcs/get-repository-contents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dart/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dart/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dart/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dart/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-deno/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dotnet/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dotnet/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dotnet/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-dotnet/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-go/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-go/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-go/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-go/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-go/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/create-string-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/delete-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/update-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/update-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/update-string-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-graphql/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/java/functions/create-execution.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-kotlin/kotlin/functions/create-execution.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-nodejs/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-nodejs/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-nodejs/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-nodejs/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-php/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-python/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-rest/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-rest/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-rest/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-ruby/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/create-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/create-documents.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/decrement-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/increment-document-attribute.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/upsert-document.md is excluded by !docs/examples/**
  • docs/examples/1.7.x/server-swift/examples/databases/upsert-documents.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-anonymous-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-email-password-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-email-token.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-email-verification.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-jwt.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-magic-url-token.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-mfa-authenticator.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-mfa-challenge.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-mfa-recovery-codes.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-o-auth-2-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-o-auth-2-token.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-phone-token.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-phone-verification.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-push-target.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-recovery.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create-verification.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/create.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/delete-identity.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/delete-mfa-authenticator.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/delete-push-target.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/delete-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/delete-sessions.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/get-mfa-recovery-codes.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/get-prefs.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/get-session.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/get.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/list-identities.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/list-logs.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/list-mfa-factors.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/list-sessions.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/update-email-verification.md is excluded by !docs/examples/**
  • docs/examples/1.8.x/client-android/java/account/update-email.md is excluded by !docs/examples/**
📒 Files selected for processing (107)
  • .env (1 hunks)
  • .github/labeler.yml (0 hunks)
  • .github/workflows/auto-label-issue.yml (0 hunks)
  • .github/workflows/static-analysis.yml (1 hunks)
  • .github/workflows/static-analysis/locale/index.js (1 hunks)
  • .github/workflows/static-analysis/locale/package.json (1 hunks)
  • .github/workflows/tests.yml (11 hunks)
  • .gitignore (1 hunks)
  • CHANGES.md (1 hunks)
  • Dockerfile (2 hunks)
  • README-CN.md (3 hunks)
  • README.md (3 hunks)
  • app/cli.php (2 hunks)
  • app/config/avatars/credit-cards.php (1 hunks)
  • app/config/collections/platform.php (1 hunks)
  • app/config/collections/projects.php (4 hunks)
  • app/config/console.php (2 hunks)
  • app/config/errors.php (10 hunks)
  • app/config/events.php (4 hunks)
  • app/config/locale/templates/email-base-styled.tpl (3 hunks)
  • app/config/locale/templates/email-base.tpl (3 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 (2 hunks)
  • app/config/locale/templates/email-smtp-test.tpl (1 hunks)
  • app/config/locale/templates/email-webhook-failed.tpl (1 hunks)
  • app/config/locale/translations/af.json (2 hunks)
  • app/config/locale/translations/ar-ma.json (2 hunks)
  • app/config/locale/translations/ar.json (2 hunks)
  • app/config/locale/translations/as.json (3 hunks)
  • app/config/locale/translations/az.json (2 hunks)
  • app/config/locale/translations/be.json (3 hunks)
  • app/config/locale/translations/bg.json (1 hunks)
  • app/config/locale/translations/bh.json (3 hunks)
  • app/config/locale/translations/bn.json (2 hunks)
  • app/config/locale/translations/bs.json (1 hunks)
  • app/config/locale/translations/ca.json (2 hunks)
  • app/config/locale/translations/cs.json (1 hunks)
  • app/config/locale/translations/da.json (2 hunks)
  • app/config/locale/translations/de.json (3 hunks)
  • app/config/locale/translations/el.json (2 hunks)
  • app/config/locale/translations/en.json (4 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 (1 hunks)
  • app/config/locale/translations/fo.json (1 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 (1 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 (3 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 (3 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 (3 hunks)
  • app/config/locale/translations/or.json (2 hunks)
  • app/config/locale/translations/pa.json (1 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 (3 hunks)
  • app/config/locale/translations/si.json (2 hunks)
  • app/config/locale/translations/sk.json (2 hunks)
  • app/config/locale/translations/sl.json (1 hunks)
  • app/config/locale/translations/sn.json (2 hunks)
  • app/config/locale/translations/sq.json (1 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 (2 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 (2 hunks)
  • app/config/locale/translations/zh-cn.json (2 hunks)
  • app/config/locale/translations/zh-tw.json (2 hunks)
  • app/config/platforms.php (25 hunks)
  • app/config/roles.php (5 hunks)
  • app/config/scopes.php (2 hunks)
  • app/config/services.php (2 hunks)
  • app/config/templates/function.php (10 hunks)
  • app/config/templates/site.php (1 hunks)
  • app/config/variables.php (3 hunks)
⛔ Files not processed due to max files limit (27)
  • app/controllers/api/account.php
  • app/controllers/api/avatars.php
  • app/controllers/api/console.php
  • app/controllers/api/health.php
  • app/controllers/api/messaging.php
  • app/controllers/api/migrations.php
  • app/controllers/api/project.php
  • app/controllers/api/projects.php
  • app/controllers/api/proxy.php
  • app/controllers/api/storage.php
  • app/controllers/api/teams.php
  • app/controllers/api/users.php
  • app/controllers/api/vcs.php
  • app/controllers/general.php
  • app/controllers/mock.php
  • app/controllers/shared/api.php
  • app/http.php
  • app/init/constants.php
  • app/init/database/filters.php
  • app/init/resources.php
  • app/realtime.php
  • app/views/general/404.phtml
  • app/views/general/error.phtml
  • app/views/install/compose.phtml
  • app/worker.php
  • composer.json
  • docker-compose.yml
💤 Files with no reviewable changes (2)
  • .github/labeler.yml
  • .github/workflows/auto-label-issue.yml
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-22T06:23:32.026Z
Learnt from: ItzNotABug
PR: appwrite/appwrite#10348
File: app/controllers/shared/api.php:546-546
Timestamp: 2025-08-22T06:23:32.026Z
Learning: The Utopia\Queue\Broker\Pool class (aliased as BrokerPool) implements both Publisher and Consumer interfaces, making it directly compatible with constructors expecting Publisher parameters like Func::__construct(protected Publisher $publisher). No wrapping is needed.

Applied to files:

  • app/cli.php
🧬 Code graph analysis (3)
app/config/collections/projects.php (1)
src/Appwrite/Utopia/Response/Model/Database.php (1)
  • Database (8-72)
app/cli.php (1)
src/Appwrite/Utopia/Response/Model/Document.php (1)
  • Document (8-115)
app/config/errors.php (1)
src/Appwrite/Extend/Exception.php (1)
  • Exception (7-464)
🪛 dotenv-linter (4.0.0)
.env

[warning] 24-24: [UnorderedKey] The _APP_DNS key should go before the _APP_EDITION key

(UnorderedKey)


[warning] 25-25: [UnorderedKey] The _APP_DOMAIN key should go before the _APP_EDITION key

(UnorderedKey)


[warning] 26-26: [UnorderedKey] The _APP_CONSOLE_DOMAIN key should go before the _APP_CONSOLE_HOSTNAMES key

(UnorderedKey)


[warning] 27-27: [UnorderedKey] The _APP_DOMAIN_FUNCTIONS key should go before the _APP_EDITION key

(UnorderedKey)


[warning] 28-28: [UnorderedKey] The _APP_DOMAIN_SITES key should go before the _APP_EDITION key

(UnorderedKey)


[warning] 29-29: [UnorderedKey] The _APP_DOMAIN_TARGET_CNAME key should go before the _APP_EDITION key

(UnorderedKey)


[warning] 30-30: [UnorderedKey] The _APP_DOMAIN_TARGET_A key should go before the _APP_DOMAIN_TARGET_CNAME key

(UnorderedKey)


[warning] 31-31: [UnorderedKey] The _APP_DOMAIN_TARGET_AAAA key should go before the _APP_DOMAIN_TARGET_CNAME key

(UnorderedKey)


[warning] 32-32: [UnorderedKey] The _APP_DOMAIN_TARGET_CAA key should go before the _APP_DOMAIN_TARGET_CNAME key

(UnorderedKey)

🪛 markdownlint-cli2 (0.18.1)
CHANGES.md

73-73: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

@abnegate abnegate merged commit 72c608b into main Oct 22, 2025
88 checks passed
@abnegate abnegate deleted the chore-sync-1.8.0 branch October 22, 2025 01:09
@coderabbitai coderabbitai bot mentioned this pull request Oct 23, 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