Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
653 commits
Select commit Hold shift + click to select a range
c6fb468
readability
ChiragAgg5k Aug 30, 2025
16d731b
lower
ChiragAgg5k Aug 30, 2025
c96b630
Check audits
fogelito Aug 31, 2025
dffbe2e
Check audits
fogelito Aug 31, 2025
f4caa69
Remove dbg
fogelito Aug 31, 2025
52141b8
Remove dbg
fogelito Aug 31, 2025
97ce2bd
Lines
fogelito Aug 31, 2025
ad4e3be
Lines
fogelito Aug 31, 2025
a0def8e
Updates
shimonewman Aug 31, 2025
043ca48
updated response model and docs
ArnabChatterjee20k Sep 1, 2025
bc18f9d
temporary remove warnings
ChiragAgg5k Sep 1, 2025
7600edb
remove
ChiragAgg5k Sep 1, 2025
a20f71c
chore: update exception thrown when svg sanitization fails
ChiragAgg5k Sep 1, 2025
97366e7
Allow null for targets/topics/users
abnegate Sep 1, 2025
b46d22a
Merge pull request #10408 from appwrite/update-warning
abnegate Sep 1, 2025
7b7e991
Merge pull request #10409 from appwrite/update-readonly-params
abnegate Sep 1, 2025
b6fddfc
Merge pull request #10416 from appwrite/pla-3448
abnegate Sep 1, 2025
364eacc
Remove dump
abnegate Sep 1, 2025
aafc98f
Merge pull request #10417 from appwrite/fix-allow-null-params
abnegate Sep 1, 2025
fb82707
Allow running tests with specific response format
abnegate Sep 1, 2025
6e5fe9c
Check verison
abnegate Sep 1, 2025
4766d42
Merge pull request #10418 from appwrite/feat-version-tests
abnegate Sep 1, 2025
bd8d6fd
Try catch inside
fogelito Sep 1, 2025
48c54bf
chore: make webhooks publisher overridable
loks0n Sep 1, 2025
4ed206d
Merge pull request #10419 from appwrite/chore-make-webhooks-publisher…
loks0n Sep 2, 2025
44950ea
Merge branch '1.8.x' into feat-update-preview-url-in-vcs-controller
vermakhushboo Sep 2, 2025
c49ab1a
Merge branch '1.8.x' into fix-placeholder-style-in-templates
vermakhushboo Sep 2, 2025
31b8e33
Merge branch '1.8.x' into feat-select-queries-on-deployments
Meldiron Sep 2, 2025
6b8a4a0
Simplify PR
Meldiron Sep 2, 2025
b1c1acf
Finish refactor for internal select queries
Meldiron Sep 2, 2025
d21244f
PR review changes
Meldiron Sep 2, 2025
14194ec
Fix missing vendor changes
Meldiron Sep 2, 2025
b3fa60b
Merge pull request #10380 from appwrite/feat-select-queries-on-deploy…
Meldiron Sep 2, 2025
0af3734
finally unset
fogelito Sep 2, 2025
c2adf79
message
fogelito Sep 2, 2025
a7c4e16
Merge branch '1.8.x' of https://github.com/appwrite/appwrite into che…
fogelito Sep 2, 2025
711d31b
Console::error message fix
fogelito Sep 2, 2025
a63e486
Merge pull request #10414 from appwrite/check-audits
abnegate Sep 2, 2025
cfe9b34
updated pr followups
ArnabChatterjee20k Sep 2, 2025
1112058
pr followups
ArnabChatterjee20k Sep 2, 2025
8f7085c
pr followups
ArnabChatterjee20k Sep 2, 2025
8c09e20
Merge remote-tracking branch 'upstream/main' into spatial-type-attrib…
ArnabChatterjee20k Sep 2, 2025
b01f146
Merge remote-tracking branch 'upstream/1.8.x' into spatial-type-attri…
ArnabChatterjee20k Sep 2, 2025
72f5ac2
updated composer
ArnabChatterjee20k Sep 2, 2025
22b7971
Merge remote-tracking branch 'upstream/1.8.x' into spatial-type-attri…
ArnabChatterjee20k Sep 2, 2025
044e684
update composer
ArnabChatterjee20k Sep 2, 2025
0d77a33
updated update endpoint to spatial appwrite validator
ArnabChatterjee20k Sep 2, 2025
0f6b4e0
updated validator for the create polygon
ArnabChatterjee20k Sep 2, 2025
2755fd1
updated graphql mappers
ArnabChatterjee20k Sep 2, 2025
ab4ff31
Merge pull request #10392 from appwrite/fix-placeholder-style-in-temp…
Meldiron Sep 3, 2025
8d5a879
Merge branch '1.8.x' into feat-update-preview-url-in-vcs-controller
vermakhushboo Sep 3, 2025
5423b63
refactor: prevent direct publisher calls
loks0n Sep 1, 2025
e4adff4
chore: jake review
loks0n Sep 3, 2025
b32e1ad
Add vcsCommentLock before updating comment
vermakhushboo Sep 3, 2025
1b586bb
chore: revert scheduler & hook changes
loks0n Sep 3, 2025
e54e7fb
Merge pull request #10420 from appwrite/refactor-prevent-direct-publi…
loks0n Sep 3, 2025
a8bbac4
Update src/Appwrite/Utopia/Database/Validator/Spatial.php
ArnabChatterjee20k Sep 3, 2025
28b0d95
Update app/config/errors.php
ArnabChatterjee20k Sep 3, 2025
8734125
Update app/config/errors.php
ArnabChatterjee20k Sep 3, 2025
4895865
removed redundant comments from ai + removed spatial type conditions
ArnabChatterjee20k Sep 3, 2025
12d2c80
replaced table with collection
ArnabChatterjee20k Sep 3, 2025
e904fa6
overwrite decodedDefault with the default
ArnabChatterjee20k Sep 3, 2025
a9138d7
overwrite decodedDefault with default
ArnabChatterjee20k Sep 3, 2025
2004ed5
reset readme
ArnabChatterjee20k Sep 3, 2025
39fc7e9
changed database service to tablesdb service for all tablesdb
ArnabChatterjee20k Sep 3, 2025
dd15023
used import
ArnabChatterjee20k Sep 3, 2025
5a6955d
typo fix
ArnabChatterjee20k Sep 3, 2025
e3af593
Replace err with warning
vermakhushboo Sep 3, 2025
df1b4c9
Merge branch '1.8.x' into feat-update-preview-url-in-vcs-controller
vermakhushboo Sep 3, 2025
0c13972
Merge pull request #10356 from appwrite/spatial-type-attributes
abnegate Sep 3, 2025
a2e9ee7
bulk upsert support
ArnabChatterjee20k Sep 3, 2025
b7a0f53
updated tests
ArnabChatterjee20k Sep 3, 2025
fdeb8c4
added permission upsert test
ArnabChatterjee20k Sep 3, 2025
52f8cb7
Update Upsert.php
ArnabChatterjee20k Sep 3, 2025
101da34
Merge pull request #10425 from appwrite/bulk-upsert-realtime
abnegate Sep 3, 2025
b759520
Support array headers for set-cookie
Meldiron Sep 3, 2025
128a35b
Use executor 0.11.0
Meldiron Sep 3, 2025
10cfc15
Add set-cookie tests
Meldiron Sep 3, 2025
f6308b3
AI code quality fixes
Meldiron Sep 3, 2025
5c5c4e4
Fix content type header
Meldiron Sep 3, 2025
1b6fd73
Merge pull request #10427 from appwrite/feat-set-cookie-array-of-headers
Meldiron Sep 3, 2025
8a73429
feat: add requestBody param examples in specs
ChiragAgg5k Sep 4, 2025
9c05532
Merge branch '1.8.x' into add-param-examples
ChiragAgg5k Sep 4, 2025
14b278a
Merge branch '1.8.x' into feat-update-preview-url-in-vcs-controller
vermakhushboo Sep 4, 2025
3aa163a
Update comment only if lock is acquired, else continue
vermakhushboo Sep 4, 2025
b09af87
Merge pull request #10396 from appwrite/feat-update-preview-url-in-vc…
Meldiron Sep 4, 2025
e7113a0
removed spaital type response and will be using the json type for the…
ArnabChatterjee20k Sep 4, 2025
d7a5eb4
generated sdk specs
ArnabChatterjee20k Sep 4, 2025
e84c9b2
Merge pull request #10433 from appwrite/spatial-type-attributes
abnegate Sep 4, 2025
b3cedcf
Merge branch '1.8.x' into spatial-type-attributes
ArnabChatterjee20k Sep 4, 2025
27e2ec0
chore: keep it as a json string
ChiragAgg5k Sep 4, 2025
8b271eb
Catch error
fogelito Sep 4, 2025
8327111
Merge branch '1.8.x' of https://github.com/appwrite/appwrite into fix…
fogelito Sep 4, 2025
2e26ea3
$prefsDocument
fogelito Sep 4, 2025
307b458
Add tests
abnegate Sep 4, 2025
3fc05c5
Fix get prefs
fogelito Sep 4, 2025
8cc5efa
Use Document
fogelito Sep 4, 2025
ac9181a
Line
fogelito Sep 4, 2025
aa51bb5
Lint
abnegate Sep 4, 2025
15b5659
Partial update
fogelito Sep 4, 2025
c130d0b
Merge pull request #10437 from appwrite/chore-update-db
abnegate Sep 4, 2025
f8e48b9
Merge pull request #10436 from appwrite/fix-put-prefs
abnegate Sep 4, 2025
0b1712c
Add colors to certificate logs
vermakhushboo Sep 4, 2025
998a7ff
Generate
abnegate Sep 4, 2025
d2b681e
Merge branch '1.8.x' into add-param-examples
ChiragAgg5k Sep 4, 2025
a47d581
fix: specs
ChiragAgg5k Sep 4, 2025
586f4df
chore: update createRow as well
ChiragAgg5k Sep 5, 2025
4cf3d0b
move projects.list() to module
Meldiron Sep 5, 2025
c894b0a
Simplify validator override
Meldiron Sep 5, 2025
cc50302
Formatting fix
Meldiron Sep 5, 2025
bf59f1b
Fix path structure
Meldiron Sep 5, 2025
ca6cf01
Improve customization of queries validator
Meldiron Sep 5, 2025
e8c1779
Merge pull request #10441 from appwrite/feat-list-projects-module
Meldiron Sep 5, 2025
b1ffdb1
chore: update cli to 9.1.0
ChiragAgg5k Sep 5, 2025
3f26b7c
Merge pull request #10442 from appwrite/update-sdk-cli-9.1.0
abnegate Sep 5, 2025
ed6b0b6
Update generator
abnegate Sep 5, 2025
af60f9f
Merge remote-tracking branch 'origin/1.8.x' into chore-gen-sdks
abnegate Sep 5, 2025
1844594
switch to walter o brien
ChiragAgg5k Sep 5, 2025
a9dbd6c
Merge pull request #10431 from appwrite/add-param-examples
loks0n Sep 5, 2025
ca17bcd
Fix refs
abnegate Sep 5, 2025
c07db4e
Update specs
abnegate Sep 5, 2025
4ed42d3
updated request and response model
ArnabChatterjee20k Sep 5, 2025
97a2887
Merge remote-tracking branch 'upstream/1.8.x' into spatial-type-attri…
ArnabChatterjee20k Sep 5, 2025
7a9faf5
changed json to array
ArnabChatterjee20k Sep 5, 2025
22e83d2
updated specs
ArnabChatterjee20k Sep 5, 2025
4e164b0
updated graphql mapper
ArnabChatterjee20k Sep 5, 2025
23c433c
feat: update examples
ChiragAgg5k Sep 5, 2025
0ca5330
Fix boundary inclusive contains on mysql
abnegate Sep 5, 2025
3f7d05c
Remove invalid test for spatial order on MySQL
abnegate Sep 5, 2025
508c47f
fix: ruby
ChiragAgg5k Sep 5, 2025
489f8db
Apply to TablesDB tests
abnegate Sep 5, 2025
00d208f
added array to be true
ArnabChatterjee20k Sep 5, 2025
3b0d02e
updated the spatial specs
ArnabChatterjee20k Sep 5, 2025
c2f61c1
updated specs
ArnabChatterjee20k Sep 5, 2025
55b68e4
pr followups
ArnabChatterjee20k Sep 5, 2025
e2140e4
updated composer lock
ArnabChatterjee20k Sep 5, 2025
d948c12
linting
ArnabChatterjee20k Sep 5, 2025
16c9faa
Merge pull request #10445 from appwrite/fix-mysql-tests
Meldiron Sep 5, 2025
83b6d15
fix: more mistakes
ChiragAgg5k Sep 5, 2025
9871e6f
Merge branch '1.8.x' into update-examples
ChiragAgg5k Sep 5, 2025
ca87bd2
updated specs
ArnabChatterjee20k Sep 5, 2025
17b32fe
Downgrade queue library
Meldiron Sep 5, 2025
5e9eff1
Revert "Downgrade queue library"
Meldiron Sep 5, 2025
55f5ba8
add missing
ChiragAgg5k Sep 5, 2025
79fcfff
updated specs
ArnabChatterjee20k Sep 5, 2025
f2c4440
fix dotnet and graphql
ChiragAgg5k Sep 5, 2025
23ef82e
Merge branch '1.8.x' into update-examples
ChiragAgg5k Sep 5, 2025
28f7161
updated example for the specs to have string instead of arrays to sol…
ArnabChatterjee20k Sep 5, 2025
8f90774
updated open api and swagger parser for the array of any type
ArnabChatterjee20k Sep 5, 2025
f881977
update gen
ChiragAgg5k Sep 5, 2025
3a3820c
updated default value descriptions for the spatial types
ArnabChatterjee20k Sep 5, 2025
8ec0f8a
updated specs
ArnabChatterjee20k Sep 5, 2025
d415a2d
updated composer for sdk generator
ArnabChatterjee20k Sep 5, 2025
2dbb8b1
Upgrade platform lib to have older queue lib
Meldiron Sep 5, 2025
5c474ee
Improve version control
Meldiron Sep 5, 2025
2b1dd8b
Merge pull request #10443 from appwrite/spatial-type-attributes
abnegate Sep 5, 2025
02ff092
Merge remote-tracking branch 'origin/1.8.x' into chore-gen-sdks
abnegate Sep 5, 2025
1479768
Merge remote-tracking branch 'origin/chore-platform-lib' into chore-g…
abnegate Sep 5, 2025
aaae6ca
doMerge branch '1.8.x' into update-examples
ChiragAgg5k Sep 5, 2025
a27428d
Merge pull request #10447 from appwrite/chore-platform-lib
Meldiron Sep 5, 2025
7c3d526
Update docs
abnegate Sep 5, 2025
68b61d1
Merge remote-tracking branch 'origin/1.8.x' into chore-gen-sdks
abnegate Sep 5, 2025
67fe523
Fix router compression
Meldiron Sep 7, 2025
a068f83
chore: remove deno from platforms array
ChiragAgg5k Sep 7, 2025
185239c
Merge branch '1.8.x' into update-examples
ChiragAgg5k Sep 7, 2025
4422a37
chore: remove avatars command from cli
ChiragAgg5k Sep 7, 2025
79a3b19
Fix graphQL double server header
Meldiron Sep 7, 2025
ad70238
Merge pull request #10452 from appwrite/fix-router-compression
Meldiron Sep 7, 2025
7188fc6
Merge branch '1.8.x' into remove-deno-sdk
ChiragAgg5k Sep 7, 2025
82f30a1
upgrade http lib for backwards compatibility default param
Meldiron Sep 7, 2025
a7304df
set header override properly
Meldiron Sep 7, 2025
a290685
Merge pull request #10455 from appwrite/chore-upgrade-http-lib
Meldiron Sep 7, 2025
6378a3a
Merge branch '1.8.x' into remove-deno-sdk
ChiragAgg5k Sep 8, 2025
5830942
Merge branch '1.8.x' into update-examples
ChiragAgg5k Sep 8, 2025
f67edb2
update test
ChiragAgg5k Sep 8, 2025
28d31c9
Merge branch '1.8.x' into chore-beautify-certificate-logs
vermakhushboo Sep 8, 2025
3684f80
feat: automatic pr creation in sdk release script
ChiragAgg5k Sep 8, 2025
ea76121
use sdk version instead
ChiragAgg5k Sep 8, 2025
176c244
Fix oauth identity check
Meldiron Sep 8, 2025
54d9440
Merge remote-tracking branch 'origin/1.8.x' into chore-gen-sdks
abnegate Sep 8, 2025
c31a189
Linter fix
Meldiron Sep 8, 2025
4c6ede2
Merge pull request #10444 from appwrite/update-examples
loks0n Sep 8, 2025
d3491c2
Merge pull request #10457 from appwrite/pla-3433
loks0n Sep 8, 2025
07a11aa
Merge pull request #10454 from appwrite/pla-2852
loks0n Sep 8, 2025
4bba78e
Allow deleteRule override
Meldiron Sep 8, 2025
cbd1d75
Merge pull request #10460 from appwrite/fix-oauth-identities-check
Meldiron Sep 8, 2025
ac443e3
updated database version , sdk version and docs example in openapi wi…
ArnabChatterjee20k Sep 8, 2025
ef83636
empty commit to trigger tests
ArnabChatterjee20k Sep 8, 2025
74a9e5b
Add dart/flutter changelog
abnegate Sep 9, 2025
be07bbf
Update generator
abnegate Sep 9, 2025
1f04104
Merge pull request #10453 from appwrite/remove-deno-sdk
loks0n Sep 9, 2025
0dd7d45
updated tests
ArnabChatterjee20k Sep 9, 2025
56fc3ff
updated xlist
ArnabChatterjee20k Sep 9, 2025
497cf30
bump database and migration versions
ArnabChatterjee20k Sep 10, 2025
7b9ead6
Merge pull request #10463 from appwrite/spatial-type-attributes
abnegate Sep 10, 2025
2c7472d
Merge branch '1.8.x' into chore-beautify-certificate-logs
vermakhushboo Sep 10, 2025
5f7ca48
try catch
fogelito Sep 10, 2025
83efc7c
Merge branch '1.8.x' of https://github.com/appwrite/appwrite into sta…
fogelito Sep 10, 2025
27cc649
Merge pull request #10469 from appwrite/stats-resources-try-catch
abnegate Sep 10, 2025
8319ff1
Move proxy endpoints to modules
Meldiron Sep 10, 2025
80d8e32
Use proper base action for proxy module
Meldiron Sep 10, 2025
03c8e2c
Merge pull request #10470 from appwrite/chore-proxy-to-modules
Meldiron Sep 10, 2025
81a5f25
add certificate valdiation override
Meldiron Sep 10, 2025
d1918b7
Merge pull request #10471 from appwrite/feat-certificate-validation-o…
Meldiron Sep 10, 2025
e212ec9
cloud test failing due to wrong spatial type for other adapters
ArnabChatterjee20k Sep 10, 2025
c934524
Merge remote-tracking branch 'origin/1.8.x' into chore-gen-sdks
abnegate Sep 11, 2025
e1c5202
updated database
ArnabChatterjee20k Sep 11, 2025
3a059ed
updated database
ArnabChatterjee20k Sep 11, 2025
88c753c
updated database
ArnabChatterjee20k Sep 11, 2025
5fadb52
Merge pull request #10475 from appwrite/chore-gen-sdks
abnegate Sep 11, 2025
de1ecaa
Merge pull request #10473 from appwrite/spatial-type-attributes
abnegate Sep 11, 2025
e7a44c9
Merge branch '1.8.x' into chore-beautify-certificate-logs
vermakhushboo Sep 11, 2025
a48007d
Update src/Appwrite/Platform/Workers/Certificates.php
vermakhushboo Sep 11, 2025
485dd0a
Merge pull request #10438 from appwrite/chore-beautify-certificate-logs
Meldiron Sep 11, 2025
db4a783
appwrite db bump
ArnabChatterjee20k Sep 11, 2025
93fc3e7
Merge pull request #10479 from appwrite/spatial-type-attributes
abnegate Sep 11, 2025
fc4ad17
Update composer.json and composer.lock to reflect new versioning for …
shimonewman Sep 11, 2025
80cc6a0
DatabasesCustomClientTest.php
shimonewman Sep 11, 2025
882cd8c
Merge remote-tracking branch 'origin/feat-mongodb-pulls' into feat-mo…
shimonewman Sep 11, 2025
89d06d0
Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongod…
shimonewman Sep 11, 2025
289cf4d
testing with symlink
ArnabChatterjee20k Sep 11, 2025
9c5c534
Merge remote-tracking branch 'upstream/1.8.x' into spatial-type-attri…
ArnabChatterjee20k Sep 11, 2025
738a42d
Merge remote-tracking branch 'upstream/1.8.x' into spatial-type-attri…
ArnabChatterjee20k Sep 11, 2025
addd140
updated composer
ArnabChatterjee20k Sep 12, 2025
918912c
Merge pull request #10480 from appwrite/spatial-type-attributes
abnegate Sep 12, 2025
ef3d38c
fixed db stats env var
Divyansha23 Sep 12, 2025
39a190f
fix: db queues
loks0n Sep 12, 2025
b5c5887
Merge pull request #10482 from appwrite/fix-db-queues
loks0n Sep 12, 2025
3114f57
update: `package.json` for smaller sizes.
ItzNotABug Sep 13, 2025
fcd23e2
ci: empty commit
ItzNotABug Sep 13, 2025
c140dd6
Move disable
abnegate Sep 13, 2025
30dde4c
Trigger CI
abnegate Sep 13, 2025
ba58fcf
Merge pull request #10489 from appwrite/fix-check
abnegate Sep 13, 2025
2fb9350
Merge pull request #10485 from appwrite/attempt-small-size-for-website
abnegate Sep 15, 2025
66503a4
fix: api worker-stop
loks0n Sep 15, 2025
bfacb90
Merge pull request #10498 from appwrite/fix-worker-stop
loks0n Sep 15, 2025
64bb1ef
Merge pull request #10483 from appwrite/SUC-1668-fix-database-usage-s…
stnguyen90 Sep 15, 2025
081e2ae
Throw appropriate 400s from request filters
abnegate Sep 16, 2025
c9b39a3
Lint
abnegate Sep 16, 2025
76f59e2
Merge pull request #10502 from appwrite/fix-filter-exceptions
abnegate Sep 16, 2025
f5fc099
Merge branch '1.8.x' of github.com:appwrite/appwrite into feat-mongod…
shimonewman Sep 16, 2025
cc7778c
database lib check
shimonewman Sep 16, 2025
5f8dc99
Refactor database document handling by replacing createOrUpdateDocume…
shimonewman Sep 16, 2025
cc87de8
Merge branch 'feat-mongodb-pulls' of github.com:appwrite/appwrite int…
shimonewman Sep 16, 2025
7c0bd1d
uncomment inversion tests
shimonewman Sep 16, 2025
f16eba2
Update PHPUnit configuration to stop on failure set to false, and cle…
shimonewman Sep 16, 2025
b1e5570
Refactor MongoDB test cases for improved readability and consistency.…
shimonewman Sep 16, 2025
54e3a4b
db lib ver
shimonewman Sep 21, 2025
4d85c5c
composer
shimonewman Sep 21, 2025
b88e740
Merge remote-tracking branch 'origin/feat-mongodb-pulls' into feat-mo…
shimonewman Sep 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 6 additions & 1 deletion .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ jobs:
- name: Run CodeQL
run: |
docker run --rm -v $PWD:/app composer:2.6 sh -c \
"composer install --profile --ignore-platform-reqs && composer check"
"composer install --profile --ignore-platform-reqs && composer check"

- name: Run Locale check
run: |
docker run --rm -v $PWD:/app node:24-alpine sh -c \
"cd /app/.github/workflows/static-analysis/locale && node index.js"
115 changes: 115 additions & 0 deletions .github/workflows/static-analysis/locale/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
/*
* Look into all local files, and collect unique keys.
* Ensure fallback locale (English) has translation for all keys.
* If configured as `const strict = true`, all locales will be checked to include all keys.
*/

import { readdir, readFile } from "fs/promises";
import { join, dirname } from "path";
import { fileURLToPath } from "url";

const config = {
strict: false,
fallbackLocale: "en.json",
};

(async () => {
try {
// Prepare current directory equivalent in ES modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const translationsPath = join(
__dirname,
"../../../../app/config/locale/translations",
);

const files = (await readdir(translationsPath)).filter((file) =>
file.endsWith(".json"),
);

if (files.length === 0) {
console.error("No translation files found in ", translationsPath);
process.exit(1);
}

// Check if fallback locale exists
if (!files.includes(config.fallbackLocale)) {
console.error(`Fallback locale file ${config.fallbackLocale} not found`);
process.exit(1);
}

console.log(
`Found ${files.length} translation files in ${translationsPath}`,
);

// Collect all unique keys from all translation files
const allKeys = new Set();

for (const file of files) {
const filePath = join(translationsPath, file);
const content = await readFile(filePath, "utf8");
const translations = JSON.parse(content);

// Add all keys from this file
Object.keys(translations).forEach((key) => allKeys.add(key));
}

console.log(`Total unique keys found across all locales: ${allKeys.size}`);

const localesToCheck = [];
if (config.strict) {
localesToCheck.push(...files);
} else {
localesToCheck.push(config.fallbackLocale);
}

let errorsCount = 0;
let missingLocaleCount = 0;

for (const localeToCheck of localesToCheck) {
// Read locale
const path = join(translationsPath, localeToCheck);
const content = await readFile(path, "utf8");
const translations = JSON.parse(content);

// Check for missing keys in the locale
const keys = new Set(Object.keys(translations));
console.log(`Keys in locale (${localeToCheck}): ${keys.size}`);

const missingKeys = [];
for (const key of allKeys) {
if (!keys.has(key)) {
missingKeys.push(key);
}
}

if (missingKeys.length > 0) {
console.error(
`\nERROR: Fallback locale (${localeToCheck}) is missing ${missingKeys.length} key(s):`,
);
missingKeys.sort().forEach((key) => {
console.error(` - ${key}`);
});
console.error(
`\nTo fix this issue, add the missing keys to ${translationsPath}/${localeToCheck}`,
);
errorsCount++;
missingLocaleCount += missingKeys.length;
} else {
console.log(
`\nSUCCESS: Fallback locale (${localeToCheck}) contains all ${allKeys.size} keys.`,
);
}
}

if (errorsCount > 0) {
console.log(`\n${missingLocaleCount} locales missing found across ${errorsCount} locales.`);
process.exit(1);
}
} catch (error) {
console.error("Unexpected error.");
console.error(error);
process.exit(1);
}
})();
13 changes: 13 additions & 0 deletions .github/workflows/static-analysis/locale/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "static-analysis-locale",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": ""
}
87 changes: 82 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,15 @@ env:
IMAGE: appwrite-dev
CACHE_KEY: appwrite-dev-${{ github.event.pull_request.head.sha }}

on: [ pull_request ]
on:
pull_request:
workflow_dispatch:
inputs:
response_format:
description: 'Response format version to test (e.g., 1.5.0, 1.4.0)'
required: false
type: string
default: ''

jobs:
check_database_changes:
Expand Down Expand Up @@ -100,7 +108,10 @@ jobs:
run: docker compose exec -T appwrite vars

- name: Run Unit Tests
run: docker compose exec appwrite test /usr/src/code/tests/unit
run: |
docker compose exec \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/unit

e2e_general_test:
name: E2E General Test
Expand Down Expand Up @@ -132,7 +143,18 @@ jobs:
done

- name: Run General Tests
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/General --debug
run: |
docker compose exec -T \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/General --debug

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_service_test:
name: E2E Service Test
Expand All @@ -150,7 +172,7 @@ jobs:
Avatars,
Console,
Databases/Legacy,
Databases/Grids,
Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
Expand Down Expand Up @@ -220,12 +242,22 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
-e _APP_DB_ADAPTER \
-e _APP_DB_HOST \
-e _APP_DB_PORT \
-e _APP_DB_SCHEMA \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_shared_mode_test:
name: E2E Shared Mode Service Test
runs-on: ubuntu-latest
Expand All @@ -240,7 +272,7 @@ jobs:
Avatars,
Console,
Databases/Legacy,
Databases/Grids,
Databases/TablesDB,
Functions,
FunctionsSchedule,
GraphQL,
Expand Down Expand Up @@ -304,8 +336,17 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/${{ matrix.service }} --debug --exclude-group devKeys,screenshots

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_dev_keys:
name: E2E Service Test (Dev Keys)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -337,8 +378,17 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_dev_keys_shared_mode:
name: E2E Shared Mode Service Test (Dev Keys)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -384,8 +434,17 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Projects --debug --group=devKeys

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_screenshots_keys:
name: E2E Service Test (Site Screenshots)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -418,8 +477,17 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor

e2e_screenshots_shared_mode:
name: E2E Shared Mode Service Test (Site Screenshots)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -466,4 +534,13 @@ jobs:
docker compose exec -T \
-e _APP_DATABASE_SHARED_TABLES \
-e _APP_DATABASE_SHARED_TABLES_V1 \
-e _APP_E2E_RESPONSE_FORMAT="${{ github.event.inputs.response_format }}" \
appwrite test /usr/src/code/tests/e2e/Services/Sites --debug --group=screenshots

- name: Failure Logs
if: failure()
run: |
echo "=== Appwrite Worker Builds Logs ==="
docker compose logs appwrite-worker-builds
echo "=== OpenRuntimes Executor Logs ==="
docker compose logs openruntimes-executor
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RUN composer install --ignore-platform-reqs --optimize-autoloader \
--no-plugins --no-scripts --prefer-dist \
`if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi`

FROM appwrite/base:0.10.2 AS final
FROM appwrite/base:0.10.4 AS final

LABEL maintainer="[email protected]"

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
> We just announced Timestamp Overrides for Appwrite Databases - [Learn more](https://appwrite.io/blog/post/announcing-timestamp-overrides)

> We just announced Auto-increment support for Appwrite Databases - [Learn more](https://appwrite.io/blog/post/announcing-auto-increment-support)
> Appwrite Cloud is now Generally Available - [Learn more](https://appwrite.io/cloud-ga)

> [Get started with Appwrite](https://apwr.dev/appcloud)

Expand Down
6 changes: 6 additions & 0 deletions app/cli.php
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,18 @@
CLI::setResource('publisherDatabases', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherFunctions', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherMigrations', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherStatsUsage', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('publisherMessaging', function (BrokerPool $publisher) {
return $publisher;
}, ['publisher']);
CLI::setResource('queueForStatsUsage', function (Publisher $publisher) {
return new StatsUsage($publisher);
}, ['publisher']);
Expand Down
2 changes: 1 addition & 1 deletion app/config/avatars/credit-cards.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
'mastercard' => ['name' => 'Mastercard', 'path' => __DIR__ . '/credit-cards/mastercard.png'],
'naranja' => ['name' => 'Naranja', 'path' => __DIR__ . '/credit-cards/naranja.png'],
'targeta-shopping' => ['name' => 'Tarjeta Shopping', 'path' => __DIR__ . '/credit-cards/tarjeta-shopping.png'],
'union-china-pay' => ['name' => 'Union China Pay', 'path' => __DIR__ . '/credit-cards/union-china-pay.png'],
'unionpay' => ['name' => 'Union Pay', 'path' => __DIR__ . '/credit-cards/unionpay.png'],
'visa' => ['name' => 'Visa', 'path' => __DIR__ . '/credit-cards/visa.png'],
'mir' => ['name' => 'MIR', 'path' => __DIR__ . '/credit-cards/mir.png'],
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png'],
Expand Down
Loading
Loading