Compare commits

..
Author SHA1 Message Date
fogelito 10fd004424 Bump db version 2025-08-13 15:39:03 +03:00
fogelito e9ef16bb13 Run tests 2025-08-13 14:03:20 +03:00
fogelito 919fc357f3 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into get-sequence-null 2025-08-13 13:52:26 +03:00
Jake BarnbyandGitHub 420783de9b Merge pull request #10311 from appwrite/update-required-attributes
Update required attributes
2025-08-13 22:48:05 +12:00
fogelito 4bdc0c21f7 Run tests 2025-08-13 13:45:59 +03:00
fogelito 43303cb62d Run tests 2025-08-13 13:43:28 +03:00
fogelito 259f7eff30 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into get-sequence-null
# Conflicts:
#	composer.json
#	composer.lock
2025-08-13 13:41:50 +03:00
fogelito fa69be5cd5 Run tests 2025-08-13 13:40:19 +03:00
fogelito fb875410b5 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into update-required-attributes 2025-08-13 13:19:03 +03:00
fogelito 83d76c52b4 revert lock 2025-08-13 13:18:33 +03:00
fogelito 4f52907129 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into update-required-attributes
# Conflicts:
#	composer.json
#	composer.lock
2025-08-13 13:12:27 +03:00
Jake Barnby 27bb70b229 Update svg-sanitizer 2025-08-13 22:11:16 +12:00
fogelito 2c1655e450 Update audit lib & platform 2025-08-13 13:08:31 +03:00
Jake Barnby c86210ec5d Update versions 2025-08-13 21:16:45 +12:00
Jake Barnby 3f3319df20 Merge remote-tracking branch 'origin/1.7.x' into 1.8.x
# Conflicts:
#	composer.lock
2025-08-13 21:04:46 +12:00
Matej BačoandGitHub 8f0d107d9a Merge pull request #10308 from appwrite/fix-variables-sharing-across-resources
Fix: variables sharing across resources
2025-08-13 10:00:18 +02:00
Matej BačoandGitHub 06206824b8 Merge pull request #10309 from appwrite/fix-invite-email-copy
Update invite email copy
2025-08-13 09:44:40 +02:00
Khushboo Verma 222a5e00fa Update invite email copy 2025-08-13 12:39:52 +05:30
Matej Bačo 14faef323c Fix variables sharing across resources 2025-08-12 17:01:13 +02:00
Matej BačoandGitHub dc25d8e757 Merge pull request #10307 from appwrite/feat-fallback-locale
Feat: Fallback locales
2025-08-12 15:45:52 +02:00
Matej Bačo 6eaa2015b0 Fix CI/CD command 2025-08-12 15:18:31 +02:00
Matej Bačo b816557970 Add fallback locale support + tests 2025-08-12 15:13:08 +02:00
Luke B. SilverandGitHub a39877687c Merge pull request #10304 from appwrite/add-tests-for-head-requests
feat: allow HEAD requests and add test for it
2025-08-12 13:47:21 +01:00
73549a59a2 Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-12 17:54:54 +05:30
f9d0746e13 Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-12 17:54:45 +05:30
Chirag Aggarwal 2f80164667 update executor 2025-08-12 17:52:52 +05:30
Matej Bačo c3665c35ff Add CI/CD job 2025-08-12 14:14:07 +02:00
Matej Bačo 626f7c754c Remove unused translations 2025-08-12 14:14:03 +02:00
Matej Bačo 56d60d7866 Finalized locale check script 2025-08-12 14:09:36 +02:00
Jake Barnby b418285349 Revert "Merge pull request #10299 from appwrite/feat-functions-redis-queue"
This reverts commit f81fd16d26, reversing
changes made to ec174a15cf.
2025-08-12 23:57:54 +12:00
Matej Bačo ea7985ad4d Implement CI/CD action to check EN locale 2025-08-12 13:56:22 +02:00
Chirag Aggarwal 0e636f67be update client 2025-08-12 16:24:01 +05:30
Chirag Aggarwal f8afbbbf3c feat: allow HEAD requests and add test for it 2025-08-12 16:14:15 +05:30
Jake BarnbyandGitHub 02b83d59b7 Merge pull request #10296 from appwrite/cursor/add-new-database-query-type-tests-5161
Add new database query type tests
2025-08-12 18:30:16 +12:00
Jake Barnby 75eccf8502 Fix tests 2025-08-12 18:01:16 +12:00
Jake Barnby 66dacb61df Update lock 2025-08-12 17:44:17 +12:00
Jake Barnby 4712c18f31 Merge remote-tracking branch 'origin/1.8.x' into cursor/add-new-database-query-type-tests-5161 2025-08-12 17:43:23 +12:00
Jake Barnby 38204a2c23 Merge remote-tracking branch 'origin/1.7.x' into 1.8.x
# Conflicts:
#	composer.lock
#	docker-compose.yml
#	tests/e2e/Services/Migrations/MigrationsBase.php
2025-08-12 17:38:02 +12:00
Matej BačoandGitHub f81fd16d26 Merge pull request #10299 from appwrite/feat-functions-redis-queue
Feat: Redis functions queue (reapply with fixes)
2025-08-11 16:55:02 +02:00
Jake Barnby 0febefcf75 Fix not search on wrong attribute 2025-08-12 02:49:20 +12:00
Jake Barnby 22d58e7bec Fix index count tests 2025-08-12 02:38:52 +12:00
Jake Barnby a7ccb7b16f Update tests 2025-08-12 02:33:19 +12:00
Jake Barnby 836606a06b Fix notSearch with no FTS 2025-08-12 02:03:38 +12:00
Matej Bačo 100ab4ef89 Fix flakyness 2025-08-11 15:36:11 +02:00
Matej Bačo b641c9e5e0 Linter fix 2025-08-11 15:13:57 +02:00
Matej Bačo 3efd9a778e Reapply "Feat: Make functions worker customizable"
This reverts commit 7e110bf292.
2025-08-11 15:07:05 +02:00
Matej Bačo ee13066f18 Fix missing place not using proper publisher 2025-08-11 15:06:23 +02:00
Jake BarnbyandGitHub ec174a15cf Merge pull request #10298 from appwrite/revert-10287-feat-customizable-function-broker
Revert "Feat: Make functions worker customizable"
2025-08-12 00:49:16 +12:00
Jake BarnbyandGitHub 7e110bf292 Revert "Feat: Make functions worker customizable" 2025-08-12 00:38:41 +12:00
Jake BarnbyandGitHub 12d085373e Merge pull request #10294 from appwrite/cursor/fix-databases-worker-cache-clearing-bug-2799
Fix databases worker cache clearing bug
2025-08-12 00:20:44 +12:00
Jake BarnbyandGitHub a8cc01da7c Merge pull request #10297 from appwrite/feat-skip-user-subqueries
Skip redundant subqueries in users list route
2025-08-12 00:19:35 +12:00
Matej BačoandGitHub 334c1478ab Merge pull request #10288 from appwrite/chore-update-flutter-build-command
Update build command for flutter
2025-08-11 13:02:32 +02:00
Jake Barnby 672f642de6 Update DB 2025-08-11 23:01:52 +12:00
Khushboo Verma 4da9b99414 Bump flutter starter version 2025-08-11 16:11:58 +05:30
fogelito f284d0510a Update lock 2025-08-11 13:31:28 +03:00
fogelito 349b505d80 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into get-sequence-null
# Conflicts:
#	composer.json
#	composer.lock
2025-08-11 13:31:02 +03:00
fogelito d6ff61446f Update lock 2025-08-11 13:26:39 +03:00
fogelito b12192fc3e Update database lib 2025-08-11 13:24:50 +03:00
Jake Barnby 7a0b34474f Skip redundant subqueries in users list route 2025-08-11 21:26:10 +12:00
Cursor Agentandjakeb994 acaea49c9b Add database query tests for notContains, notSearch, and other filters
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-11 08:39:44 +00:00
Cursor Agentandjakeb994 b89d713002 Purge collection cache alongside document cache in database operations
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-11 07:01:06 +00:00
Jake BarnbyandGitHub 0e3491f1c2 Merge pull request #10293 from appwrite/pla-3350
chore: make check for adding warning header stricter
2025-08-11 17:30:40 +12:00
Chirag Aggarwal 48834cd114 chore: make check for adding warning header stricter 2025-08-11 09:21:12 +05:30
Jake BarnbyandGitHub eb53e56817 Merge pull request #10285 from appwrite/cursor/update-docker-base-to-0-10-3-27d7
Update docker base to 0.10.3
2025-08-09 19:20:02 +12:00
Jake Barnby 93a24f3fab Merge branch '1.8.x' into cursor/update-docker-base-to-0-10-3-27d7 2025-08-09 18:23:44 +12:00
Jake Barnby 6d6cfbe87a Fix tests
# Conflicts:
#	tests/e2e/Services/Migrations/MigrationsBase.php
2025-08-09 18:23:25 +12:00
Jake BarnbyandGitHub afdd8cf58f Merge branch '1.8.x' into cursor/update-docker-base-to-0-10-3-27d7 2025-08-09 17:50:31 +12:00
Cursor Agentandjakeb994 1885799ac8 Refactor: Move assertSamePixels method to a different location in Scope class
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 05:47:40 +00:00
Cursor Agentandjakeb994 bb5e25ea4b Update GraphQL avatars test to validate response headers and content
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 05:03:47 +00:00
Cursor Agentandjakeb994 f0e49bb2a3 Update avatar test to validate response headers and content type
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:58:11 +00:00
Cursor Agentandjakeb994 44b3cbe597 Fix whitespace and indentation in AvatarsBase test method
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:45:32 +00:00
Cursor Agentandjakeb994 ff8ad93544 Update avatar test to validate response headers and content type
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:44:19 +00:00
Cursor Agentandjakeb994 375961c0fa Inline image comparison logic in Scope test class, remove ImageAssertions
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:26:33 +00:00
Cursor Agentandjakeb994 612b03a9d6 Add assertSamePixels method to Scope class for image comparison
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:24:04 +00:00
Cursor Agentandjakeb994 b1199c8cdd Improve QR code image testing with pixel-level comparison
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-09 04:15:44 +00:00
Khushboo Verma 913fa9d064 Update build command for flutter 2025-08-08 21:50:11 +05:30
Matej BačoandGitHub 3510b9db28 Merge pull request #10287 from appwrite/feat-customizable-function-broker
Feat: Make functions worker customizable
2025-08-08 17:41:30 +02:00
Matej Bačo 9a6c4c5ebe Fix typo 2025-08-08 17:21:31 +02:00
Matej Bačo 2b3a8527ff Make functions worker customizable 2025-08-08 17:15:14 +02:00
Matej BačoandGitHub f4306220c4 Merge pull request #10284 from appwrite/temp-add-placeholder-detection
Add placeholder detection
2025-08-08 16:32:28 +02:00
Cursor Agentandjakeb994 6ca9cbf3d7 Update credit card icon size in AvatarsTest
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-08 13:33:52 +00:00
Cursor Agentandjakeb994 969e9cfa1e Update QR code avatar test to use fixed file size instead of file read
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-08 13:31:08 +00:00
Cursor Agentandjakeb994 5dc50898a5 Fix file ownership syntax using colon instead of dot separator
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-08 13:16:09 +00:00
Jake BarnbyandGitHub eb3caea5b4 Merge pull request #10283 from appwrite/fix-csv-import
Update migrations
2025-08-09 01:14:38 +12:00
Jake Barnby 89197e0f9e Merge remote-tracking branch 'origin/1.7.x' into 1.8.x
# Conflicts:
#	app/config/specs/open-api3-latest-console.json
#	app/config/specs/swagger2-latest-console.json
#	composer.lock
2025-08-09 01:12:18 +12:00
Cursor Agentandjakeb994 8388c71766 Update base image to appwrite/base:0.10.3
Co-authored-by: jakeb994 <jakeb994@gmail.com>
2025-08-08 12:56:55 +00:00
Jake Barnby 96b7f31abb Fix tests 2025-08-09 00:53:33 +12:00
Matej Bačo 1fba63e986 Fix formatting 2025-08-08 14:00:30 +02:00
Matej Bačo ae5225d8ee Add placeholder detection 2025-08-08 13:58:41 +02:00
Jake BarnbyandGitHub e94c8bfd97 Merge pull request #10278 from appwrite/pla-3349
chore: add readonly param to sequence, databaseId and collectionId
2025-08-08 23:52:25 +12:00
Jake Barnby 10254c5e24 Update migrations 2025-08-08 23:45:31 +12:00
Jake BarnbyandGitHub 2bcaed6222 Merge pull request #10282 from appwrite/fix-resource-events
Update: `grid` on resource events
2025-08-08 23:16:20 +12:00
Chirag Aggarwal bf6bbfa058 update casing 2025-08-08 16:40:12 +05:30
Darshan bc55639bf7 update: if/else > switch > match 2025-08-08 16:25:48 +05:30
Darshan 0556f8fdca update: readability. 2025-08-08 16:06:19 +05:30
Darshan 65c767c2b0 update: grid on resource events. 2025-08-08 16:03:00 +05:30
Jake BarnbyandGitHub f154b1e8aa Merge pull request #10279 from appwrite/fix-document-audit-resource-path
Fix: wrong resource path for audits
2025-08-08 22:11:15 +12:00
Chirag Aggarwal b464a3d7a2 fix: lint 2025-08-08 13:39:25 +05:30
Darshan ad79f3dcca fix: wrong resource path. 2025-08-08 13:34:33 +05:30
Chirag Aggarwal c9691be34a chore: add readonly param to sequence, databaseId and collectionId 2025-08-08 12:53:58 +05:30
Christy JacobandGitHub f537f5f901 Merge pull request #10271 from appwrite/update-android-kotlin-sdks
chore: update SDK generator and sdks
2025-08-08 00:19:41 +04:00
Jake BarnbyandGitHub 00aed7dce9 Merge pull request #10274 from appwrite/dat-609
upgraded composer for utopia migration
2025-08-07 17:37:08 +12:00
ArnabChatterjee20k 7572ca1511 upgraded composer for utopia migration 2025-08-07 10:24:22 +05:30
fogelito ddf76ef81e Comments 2025-08-06 19:46:56 +03:00
fogelito 627fd11b73 Merge branch '1.8.x' of https://github.com/appwrite/appwrite into get-sequence-null 2025-08-06 16:41:48 +03:00
fogelito 3adf8d826d Run tests 2025-08-06 16:34:49 +03:00
Jake BarnbyandGitHub 4ff90783f3 Merge pull request #10273 from ArnabChatterjee20k/dat-600
updated database type to grids and legacy
2025-08-06 12:12:58 +00:00
ArnabChatterjee20k ee9f1f8645 updated database type to grids and legacy 2025-08-06 17:30:11 +05:30
fogelito 62ec4f9aca Run tests 2025-08-06 13:18:59 +03:00
Matej BačoandGitHub 7dd9ade894 Merge pull request #10267 from appwrite/feat-check-CAA-in-DNS
Feat: CAA validator
2025-08-06 12:09:25 +02:00
Matej Bačo aa837c7b43 PR review fixes 2025-08-06 11:43:07 +02:00
Matej Bačo 3541fcb237 Fix manual QA edge case 2025-08-06 11:30:56 +02:00
Matej Bačo 10a7f8acfe Formatting fix 2025-08-06 11:06:35 +02:00
Matej Bačo 61ec98bc5e Improve tests 2025-08-06 11:06:18 +02:00
Christy Jacob 217cd48249 chore: update SDK generator and sdks 2025-08-06 12:08:36 +04:00
fogelito 80f37ef1e4 Move $executionId 2025-08-06 09:47:11 +03:00
fogelito d7a5b413c9 Run tests 2025-08-06 09:34:17 +03:00
Jake Barnby 5c202763aa Merge branch '1.8.x' of github.com:appwrite/appwrite into 1.8.x 2025-08-06 18:05:17 +12:00
Jake Barnby abad8bce70 Fix tests 2025-08-06 18:05:00 +12:00
Jake BarnbyandGitHub 33d2b2a27f Merge pull request #10266 from ArnabChatterjee20k/dat-600
Added type attribute to the database creation flow
2025-08-06 05:57:19 +00:00
Jake Barnby 162358deff Fix refs 2025-08-06 17:36:28 +12:00
ArnabChatterjee20k 02438fda93 updated composer 2025-08-06 10:57:45 +05:30
ArnabChatterjee20k 4ed511f31c Merge remote-tracking branch 'upstream/1.8.x' into dat-600 2025-08-06 10:57:20 +05:30
ArnabChatterjee20k 320171822c replaced create attribute with a util createAttributeFromCollection method 2025-08-06 10:56:42 +05:30
Jake Barnby bd4fb03b74 Merge remote-tracking branch 'origin/1.7.x' into 1.8.x
# Conflicts:
#	app/config/specs/open-api3-latest-client.json
#	app/config/specs/open-api3-latest-console.json
#	app/config/specs/open-api3-latest-server.json
#	app/config/specs/swagger2-latest-client.json
#	app/config/specs/swagger2-latest-console.json
#	app/config/specs/swagger2-latest-server.json
#	app/controllers/api/databases.php
#	composer.lock
#	tests/e2e/Services/Databases/Legacy/DatabasesBase.php
#	tests/e2e/Services/Migrations/MigrationsBase.php
2025-08-06 17:24:00 +12:00
ArnabChatterjee20k 066c801a45 removed $id to get updated 2025-08-05 21:56:31 +05:30
ArnabChatterjee20k 7d798f5373 added migration to self hosted version 2025-08-05 19:34:19 +05:30
ArnabChatterjee20k 0fddbd5caa updated database response model rules 2025-08-05 18:15:55 +05:30
ArnabChatterjee20k 272256438d updaetd composer version 2025-08-05 18:10:06 +05:30
ArnabChatterjee20k 46cdaa0e4e Merge remote-tracking branch 'upstream/1.8.x' into dat-600 2025-08-05 18:09:40 +05:30
ArnabChatterjee20k 28cf4e1d94 updated the validator of type of database to validator 2025-08-05 18:07:11 +05:30
ArnabChatterjee20k ed05870239 updated migration release 2025-08-05 18:05:46 +05:30
Jake BarnbyandGitHub cb0a45ed1d Merge pull request #10243 from appwrite/test-var-id-attribute
Test var id attribute
2025-08-06 00:12:04 +12:00
Matej Bačo 2d4e99cb1a Revert revert of CAA validation 2025-08-05 13:44:06 +02:00
Matej Bačo 8fe999d6d7 Merge branch '1.7.x' into feat-check-CAA-in-DNS 2025-08-05 13:43:17 +02:00
fogelito fb6988465f Merge branch '1.8.x' of https://github.com/appwrite/appwrite into test-var-id-attribute 2025-08-05 14:42:44 +03:00
fogelito 8c82119bd7 Update database 0.75.* 2025-08-05 14:41:43 +03:00
Matej Bačo dade82706a Fix caa records inheritance 2025-08-05 13:38:56 +02:00
ArnabChatterjee20k 7fdbd12937 Merge remote-tracking branch 'upstream/1.8.x' into dat-600 2025-08-05 16:49:45 +05:30
ArnabChatterjee20k f06af411ba Add 'type' attribute to database creation and update tests 2025-08-05 16:48:05 +05:30
Jake BarnbyandGitHub 0109ca218e Merge pull request #10264 from appwrite/fix-dec-min-0
Fix atomic number ops with limit 0
2025-08-05 21:33:33 +12:00
Jake Barnby 43f0849979 Fix atomic num ops with limit 0 2025-08-05 20:38:26 +12:00
Matej BačoandGitHub b882a5d5b0 Merge pull request #10263 from appwrite/revert-10258-feat-check-CAA-in-DNS
Revert "Check CAA record before issuing certificate"
2025-08-05 10:30:19 +02:00
Jake BarnbyandGitHub 46431118b2 Merge pull request #10096 from ArnabChatterjee20k/dat-556
Realtime support for bulk api
2025-08-05 20:26:43 +12:00
Matej BačoandGitHub 9c320f9c71 Revert "Check CAA record before issuing certificate" 2025-08-05 10:23:39 +02:00
ArnabChatterjee20k 697ac3447b fix: Update getUser method call in RealtimeCustomClientTest for clarity 2025-08-05 13:37:24 +05:30
Matej BačoandGitHub f8a75494b8 Merge pull request #10258 from appwrite/feat-check-CAA-in-DNS
Check CAA record before issuing certificate
2025-08-05 09:51:42 +02:00
Matej Bačo 7f690a1048 Simplify implementation 2025-08-04 16:51:49 +02:00
Matej Bačo 8c3530ee60 Fix caa validation breaking existing validations 2025-08-04 16:18:06 +02:00
Matej Bačo 5e294d0849 Support empty CAA records 2025-08-04 15:35:40 +02:00
Matej Bačo 2a63de0c46 Improve docs 2025-08-04 14:57:35 +02:00
Matej Bačo 48a977526e Fix tests 2025-08-04 14:53:13 +02:00
Matej Bačo 75bf37a074 Update composer.lock 2025-08-04 14:32:38 +02:00
Matej Bačo 689fbee10c Merge branch '1.7.x' into feat-check-CAA-in-DNS 2025-08-04 14:32:20 +02:00
Matej Bačo 4cafd2e07d Improve PR quality 2025-08-04 14:28:50 +02:00
Luke B. SilverandGitHub 24a9183d90 Merge pull request #10260 from appwrite/update-avatars-endpoint
fix: favicons endpoint to fallback to ico instead of throwing error
2025-08-04 13:18:09 +01:00
Chirag Aggarwal 84e3dc0275 fix: favicons endpoint to fallback to ico instead of throwing error 2025-08-04 17:14:38 +05:30
Luke B. SilverandGitHub d28e0152fd Merge pull request #10255 from appwrite/chore-support-svg-favicon
chore: add support for svg favicons
2025-08-04 10:42:38 +01:00
Chirag Aggarwal 7a507917c9 fix: minify 2025-08-04 14:41:57 +05:30
Chirag Aggarwal 048dbe81c7 chore: minify svg 2025-08-04 14:34:45 +05:30
fogelito 7d82d3d945 Run tests 2025-08-04 11:04:33 +03:00
fogelito 992d10afb5 Run tests 2025-08-04 09:07:36 +03:00
Christy JacobandGitHub 19fe5881a4 Merge pull request #10249 from appwrite/feat-definition-examples 2025-08-04 09:04:33 +04:00
Chirag Aggarwal 55938fa3c3 update 1.7.x examples 2025-08-04 08:52:07 +05:30
Khushboo Verma 16685dad4e Update console tests 2025-08-04 01:49:08 +05:30
Khushboo Verma 783894a82b Add default value 2025-08-04 01:40:39 +05:30
Khushboo Verma 69dbb3222f Add check in proxy 2025-08-04 01:33:47 +05:30
Khushboo Verma d48aa60609 Update test 2025-08-04 01:22:10 +05:30
Khushboo Verma 9f8fabe58a Verify domain CAA after certificate issuance 2025-08-04 01:12:58 +05:30
Khushboo Verma 484ebb5059 Check CAA record in DNSTest 2025-08-04 00:42:00 +05:30
Chirag Aggarwal 10b82716e4 chore: update test 2025-08-03 22:31:26 +05:30
Chirag Aggarwal 4c971910bb chore: fix import 2025-08-03 22:08:25 +05:30
Chirag Aggarwal a00b93416d fix: cleansvg 2025-08-03 13:39:30 +05:30
Chirag Aggarwal 7c5dd9d0f4 add test 2025-08-03 13:38:59 +05:30
Chirag Aggarwal 4adebc8ba2 chore: add svg sanitization 2025-08-03 13:33:10 +05:30
Chirag Aggarwal f5682c0516 chore: add support for svg favicons 2025-08-03 13:23:34 +05:30
fogelito 27ae4f316d Run tests 2025-08-03 10:35:31 +03:00
fogelito e3f08fa010 Run tests 2025-08-03 10:15:25 +03:00
fogelito e55aaf1da9 Pull main 2025-08-03 09:04:47 +03:00
fogelito 0818af372f Merge branch '1.8.x' of https://github.com/appwrite/appwrite into test-var-id-attribute
# Conflicts:
#	composer.lock
2025-08-03 09:03:58 +03:00
fogelito bc53c73a7a Remove $sequence 2025-08-03 09:00:24 +03:00
Chirag Aggarwal c235870112 chore: add placeholder version 2025-08-01 17:36:03 +05:30
Chirag Aggarwal 9929facd73 chore: update sdk gen 2025-08-01 16:44:27 +05:30
Luke B. SilverandGitHub 469ac59199 Merge pull request #10240 from appwrite/pla-3153
feat: telemetry for cache hits and misses
2025-08-01 11:42:39 +01:00
Chirag Aggarwal 58d556aab5 chore: update metric naming 2025-08-01 15:52:27 +05:30
Luke B. SilverandGitHub 596657ac26 Merge pull request #10248 from appwrite/pla-3271
fix: 500 errors on robots and humans txt files
2025-08-01 11:04:18 +01:00
Chirag Aggarwal b3ba91cd52 chore: update naming and specs 2025-08-01 15:26:34 +05:30
Chirag Aggarwal 3d5b755115 chore: simplify 2025-08-01 13:17:45 +05:30
Chirag Aggarwal 26be1b5caf feat: add model examples + additonal examples to specs 2025-08-01 13:09:39 +05:30
Jake BarnbyandGitHub 5d9be26a45 Merge pull request #10247 from appwrite/update-sdks-php-dotnet
chore: update changelog and sdk gen
2025-08-01 16:53:36 +12:00
Chirag Aggarwal 471d261114 chore: fallback to main domain 2025-08-01 09:28:07 +05:30
Chirag Aggarwal 59bebe6be9 fix: 500 errors on robots and humans txt files 2025-08-01 09:13:34 +05:30
Chirag Aggarwal 5689fd6e7e chore: update changelog and sdk gen 2025-08-01 09:09:11 +05:30
fogelito a54cf58610 Run tests 2025-07-31 17:03:21 +03:00
fogelito 31e0cbcd1d Merge branch '1.8.x' of https://github.com/appwrite/appwrite into test-var-id-attribute
# Conflicts:
#	composer.json
#	composer.lock
2025-07-31 17:03:00 +03:00
fogelito d6b0d13991 Run tests 2025-07-31 16:58:51 +03:00
Harsh MahajanandGitHub 2d7ae4329b Merge branch '1.7.x' into pla-3153 2025-07-31 19:23:54 +05:30
Chirag Aggarwal 81e656e42c chore: update counter 2025-07-31 18:59:17 +05:30
Chirag Aggarwal 588087eda6 chore: add total 2025-07-31 17:17:15 +05:30
Chirag Aggarwal da1fa09e9c chore: update name 2025-07-31 17:06:29 +05:30
Jake BarnbyandGitHub 476ea76814 Merge pull request #10231 from appwrite/feat-csv-allow-internals
Feat CSV allow internals
2025-07-31 23:15:56 +12:00
Chirag Aggarwal d1c3a84ba1 chore: update to use gauge 2025-07-31 16:40:40 +05:30
Chirag Aggarwal 5c0579fbc7 feat: telemetry for cache hits and misses 2025-07-31 13:50:34 +05:30
Jake Barnby 1ea9aca90f Fix test 2025-07-31 02:10:29 +12:00
Jake Barnby efc21d3dcf Fix tests 2025-07-31 00:12:59 +12:00
Jake Barnby 152882d05d Fix ref 2025-07-30 23:59:30 +12:00
Jake Barnby a21e37b054 Add permissions support for CSV 2025-07-30 23:42:01 +12:00
Christy JacobandGitHub 1b1c28d319 Merge pull request #10233 from appwrite/remove-console-sdk
chore: move changelog to sdks platforms array
2025-07-30 12:44:21 +04:00
Chirag Aggarwal d2dcddaf13 chore: add console back 2025-07-30 13:52:37 +05:30
Chirag Aggarwal 5977e62e9a chore: move changelog path to platforms config 2025-07-30 13:32:56 +05:30
Chirag Aggarwal 7ffa11c75d chore: remove console sdk from platforms 2025-07-30 13:22:22 +05:30
Jake Barnby 5b12a6c8b1 Add internal attributes CSV test 2025-07-30 16:50:09 +12:00
Jake Barnby 01c8dab34d Fix CSV success test 2025-07-30 16:46:14 +12:00
Jake BarnbyandGitHub 811a1fa701 Merge pull request #10227 from appwrite/pla-3204
chore: filter certificates renewal task in maintenance by region
2025-07-30 16:24:24 +12:00
Jake BarnbyandGitHub d76db6ec62 Merge pull request #10228 from appwrite/feat-strip-seq
Remove sequence on incoming docs
2025-07-30 01:18:29 +12:00
Jake Barnby 933f07c175 Add missing removal 2025-07-30 01:18:08 +12:00
Jake Barnby ccf0a23bdf Remove sequence on incoming docs 2025-07-30 01:02:21 +12:00
Chirag Aggarwal 66786f20f0 chore: use md5 if enabled 2025-07-29 16:53:55 +05:30
Chirag Aggarwal 1731212ebb chore: improve check 2025-07-29 15:26:37 +05:30
Chirag Aggarwal 3db9cd06d5 chore: filter certificates renewal task in maintenance by region 2025-07-29 15:21:15 +05:30
185 changed files with 8877 additions and 1213 deletions
+2
View File
@@ -21,6 +21,7 @@ _APP_OPTIONS_ROUTER_PROTECTION=disabled
_APP_OPTIONS_FORCE_HTTPS=disabled
_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled
_APP_OPENSSL_KEY_V1=your-secret-key
_APP_DNS=8.8.8.8
_APP_DOMAIN=traefik
_APP_CONSOLE_DOMAIN=localhost
_APP_DOMAIN_FUNCTIONS=functions.localhost
@@ -28,6 +29,7 @@ _APP_DOMAIN_SITES=sites.localhost
_APP_DOMAIN_TARGET_CNAME=test.localhost
_APP_DOMAIN_TARGET_A=127.0.0.1
_APP_DOMAIN_TARGET_AAAA=::1
_APP_DOMAIN_TARGET_CAA=digicert.com
_APP_RULES_FORMAT=md5
_APP_REDIS_HOST=redis
_APP_REDIS_PORT=6379
+6 -1
View File
@@ -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"
@@ -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);
}
})();
@@ -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": ""
}
+8 -8
View File
@@ -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.1 AS final
FROM appwrite/base:0.10.3 AS final
LABEL maintainer="team@appwrite.io"
@@ -50,13 +50,13 @@ RUN mkdir -p /storage/uploads && \
mkdir -p /storage/certificates && \
mkdir -p /storage/functions && \
mkdir -p /storage/debug && \
chown -Rf www-data.www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
chown -Rf www-data.www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
chown -Rf www-data.www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
chown -Rf www-data.www-data /storage/config && chmod -Rf 0755 /storage/config && \
chown -Rf www-data.www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
chown -Rf www-data.www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
chown -Rf www-data.www-data /storage/debug && chmod -Rf 0755 /storage/debug
chown -Rf www-data:www-data /storage/uploads && chmod -Rf 0755 /storage/uploads && \
chown -Rf www-data:www-data /storage/imports && chmod -Rf 0755 /storage/imports && \
chown -Rf www-data:www-data /storage/cache && chmod -Rf 0755 /storage/cache && \
chown -Rf www-data:www-data /storage/config && chmod -Rf 0755 /storage/config && \
chown -Rf www-data:www-data /storage/certificates && chmod -Rf 0755 /storage/certificates && \
chown -Rf www-data:www-data /storage/functions && chmod -Rf 0755 /storage/functions && \
chown -Rf www-data:www-data /storage/debug && chmod -Rf 0755 /storage/debug
# Executables
RUN chmod +x /usr/local/bin/doctor && \
+1 -1
View File
@@ -407,7 +407,7 @@ return [
'format' => '',
'size' => Database::LENGTH_KEY,
'signed' => true,
'required' => true,
'required' => false,
'default' => null,
'array' => false,
'filters' => [],
+10
View File
@@ -51,6 +51,16 @@ return [
'default' => null,
'array' => false,
],
[
'$id' => ID::custom('type'),
'type' => Database::VAR_STRING,
'size' => 128,
'required' => false,
'default' => 'grids',
'signed' => true,
'array' => false,
'filters' => [],
],
],
'indexes' => [
[
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Die {{project}} span",
"emails.magicSession.subject": "Teken aan",
"emails.magicSession.hello": "Goeie dag,",
"emails.magicSession.body": "Volg hierdie skakel om in te teken.",
"emails.magicSession.footer": "Ignoreer gerus hierdie boodskap as u nie die versoek gestuur het om met die' adres in te teken nie.",
"emails.magicSession.thanks": "Baie dankie,",
"emails.magicSession.signature": "Die {{project}} span",
"emails.recovery.subject": "Herstel Wagwoord",
@@ -12,8 +12,6 @@
"emails.verification.signature": "فرقة {{project}}",
"emails.magicSession.subject": "تكونيكطا",
"emails.magicSession.hello": "السلام،",
"emails.magicSession.body": "تبّع هاد الوصلة باش تتكونيكطا.",
"emails.magicSession.footer": "إلا ماشي نتا اللي طلبتي تتكونيكطا بهاد ليميل، ممكن تنخّل هاد البرية.",
"emails.magicSession.thanks": "شكرا،",
"emails.magicSession.signature": "فرقة {{project}}",
"emails.recovery.subject": "تبدال كلمة السر",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "فريق {{project}}",
"emails.magicSession.subject": "تسجيل الدخول",
"emails.magicSession.hello": "أهلا،",
"emails.magicSession.body": "اتبع هذا الرابط لتسجيل الدخول",
"emails.magicSession.footer": "لو لم تطلب تسجيل الدخول بهذا البريد الاكتروني ، يمكنك تجاهل هذه الرسالة",
"emails.magicSession.thanks": "شكرا،",
"emails.magicSession.signature": "فريق {{project}}",
"emails.recovery.subject": "تغيير كلمة السر",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} দল",
"emails.magicSession.subject": "লগইন",
"emails.magicSession.hello": "নমস্কাৰ,",
"emails.magicSession.body": "লগইন কৰিবলৈ এই লিংকটো অনুসৰণ কৰক।",
"emails.magicSession.footer": "যদি আপুনি এই ইমেইল ব্যৱহাৰ কৰি লগইন কৰিবলৈ কোৱা নাছিল, আপুনি এই বাৰ্তাটো উপেক্ষা কৰিব পাৰে।",
"emails.magicSession.thanks": "ধন্যবাদ,",
"emails.magicSession.signature": "{{project}} দল",
"emails.recovery.subject": "পাছৱাৰ্ড ৰিছেট",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} komandası",
"emails.magicSession.subject": "Daxil Olmaq",
"emails.magicSession.hello": "Salam,",
"emails.magicSession.body": "Daxil olmaq üçün bu linki izləyin.",
"emails.magicSession.footer": "Bu e-poçtdan istifadə edərək giriş istəməmisinizsə, bu mesajı görməməzlikdən gələ bilərsiniz.",
"emails.magicSession.thanks": "Təşəkkürlər,",
"emails.magicSession.signature": "{{project}} komandası",
"emails.recovery.subject": "Şifrə Sıfırlanması",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "каманда {{project}}",
"emails.magicSession.subject": "Лагін",
"emails.magicSession.hello": "Прывітанне,",
"emails.magicSession.body": "Перайдзіце па спасылцы, каб увайсці.",
"emails.magicSession.footer": "Калі вы не прасілі ўвайсці, выкарыстоўваючы гэты адрас электроннай пошты, праігнаруйце гэтае паведамленне.",
"emails.magicSession.thanks": "Дзякуем,",
"emails.magicSession.signature": "каманда {{project}}",
"emails.recovery.subject": "Скід пароля",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} टीम",
"emails.magicSession.subject": "लॉग इन करीं|",
"emails.magicSession.hello": "प्रणाम,",
"emails.magicSession.body": "लॉग इन करें लेल दिहल गइल लिंक फॉलो करें|",
"emails.magicSession.footer": "अगर लॉग इन करे के लिए ना कहाले, तो आप ई संदेश क अनदेखा कर सकत अछि।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड बदल क लेल|",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} টীম",
"emails.magicSession.subject": "লগ ইন",
"emails.magicSession.hello": "নমস্কার,",
"emails.magicSession.body": "এই লিঙ্কের মাধ্যমে লগ ইন করুন।",
"emails.magicSession.footer": "আপনি যদি এই ইমেলটি ব্যবহার করে লগইন করতে না বলেন, তাহলে আপনি এই বার্তাটি উপেক্ষা করতে পারেন।",
"emails.magicSession.thanks": "ধন্যবাদ,",
"emails.magicSession.signature": "{{project}} টীম",
"emails.recovery.subject": "পাসওয়ার্ড রিসেট",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Equip {{project}}",
"emails.magicSession.subject": "Entrar",
"emails.magicSession.hello": "Hola,",
"emails.magicSession.body": "Accedeix a aquest enllaç per a entrar.",
"emails.magicSession.footer": "Si no has sol·licitat entrar amb aquesta adreça electrònica, pots ignorar aquest missatge.",
"emails.magicSession.thanks": "Gràcies,",
"emails.magicSession.signature": "Equip {{project}}",
"emails.recovery.subject": "Reinicialitzar contrasenya",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hej,",
"emails.magicSession.body": "Følg dette link for at logge ind.",
"emails.magicSession.footer": "Hvis du ikke har bedt om at logge ind med denne email, ignorer venligst denne besked.",
"emails.magicSession.thanks": "Tak,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nulstil Password",
+2 -3
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}}-Team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hey,",
"emails.magicSession.body": "Folge diesem Link, um dich einzuloggen.",
"emails.magicSession.footer": "Solltest du keinen Login für diese E-Mail-Adresse angefordert haben, kannst du diese Nachricht ignorieren.",
"emails.magicSession.thanks": "Danke,",
"emails.magicSession.signature": "{{project}}-Team",
"emails.recovery.subject": "Kennwort zurücksetzen",
@@ -247,5 +245,6 @@
"emails.otpSession.clientInfo": "Diese Anmeldung wurde über {{agentClient}} auf {{agentDevice}} {{agentOs}} angefordert. Wenn Sie die Anmeldung nicht angefordert haben, können Sie diese E-Mail getrost ignorieren.",
"emails.otpSession.securityPhrase": "Die Sicherheitsphrase für diese E-Mail lautet {{phrase}}. Sie können dieser E-Mail vertrauen, wenn diese Phrase mit der Phrase übereinstimmt, die beim Anmelden angezeigt wird.",
"emails.otpSession.thanks": "Danke,",
"emails.otpSession.signature": "{{project}} Team"
"emails.otpSession.signature": "{{project}} Team",
"mock": "Eine Beispielübersetzung für Testzwecke."
}
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Η ομάδα του {{project}}",
"emails.magicSession.subject": "Είσοδος",
"emails.magicSession.hello": "Γεια σου,",
"emails.magicSession.body": "Ακολουθήστε αυτό το link για να συνδεθείτε",
"emails.magicSession.footer": "Εάν δεν ζητήσατε να συνδεθείτε χρησιμοποιώντας αυτό το email, μπορείτε να αγνοήσετε αυτό το μήνυμα.",
"emails.magicSession.thanks": "Ευχαριστούμε,",
"emails.magicSession.signature": "Η ομάδα του {{project}}",
"emails.recovery.subject": "Αλλαγή κωδικού πρόσβασης",
+3 -2
View File
@@ -57,7 +57,7 @@
"emails.invitation.subject": "Invitation to %s Team at %s",
"emails.invitation.preview": "{{owner}} invited you to join {{team}} at {{project}}",
"emails.invitation.hello": "Hello {{user}},",
"emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} wanted to invite you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.",
"emails.invitation.body": "This mail was sent to you because {{b}}{{owner}}{{/b}} invited you to become a member of the {{b}}{{team}}{{/b}} team at {{b}}{{project}}{{/b}}.",
"emails.invitation.footer": "If you are not interested, you can ignore this message.",
"emails.invitation.thanks": "Thanks,",
"emails.invitation.buttonText": "Accept invite to {{team}}",
@@ -274,5 +274,6 @@
"continents.eu": "Europe",
"continents.na": "North America",
"continents.oc": "Oceania",
"continents.sa": "South America"
"continents.sa": "South America",
"mock": "A mock translation for testing purposes."
}
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "Teamo {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Saluton,",
"emails.magicSession.body": "Alklaku ĉi tiun ligon por eniri.",
"emails.magicSession.footer": "Se vi ne petis ĉi tiun konfirmon de ĉi tiu retpoŝto, vi povas ignori ĉi tiun mesaĝon.",
"emails.magicSession.thanks": "Dankegon,",
"emails.magicSession.signature": "Teamo {{project}}",
"emails.recovery.subject": "Parsvorta Restarigo",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "El equipo de {{project}}.",
"emails.magicSession.subject": "Inicio de sesión",
"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.signature": "El equipo de {{project}}",
"emails.recovery.subject": "Restablecer contraseña",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "تیم {{user}}",
"emails.magicSession.subject": "ورود به حساب کاربری",
"emails.magicSession.hello": "سلام،",
"emails.magicSession.body": "برای ورود به حساب‌تان پیوند زیر را دنبال کنید.",
"emails.magicSession.footer": "اگر شما درخواست ورود به حساب کاربری با استفاده از این ایمیل را نداد‌ه‌اید، می‌توانید این پیام را نادیده بگیرید.",
"emails.magicSession.thanks": "سپاس فراوان،",
"emails.magicSession.signature": "تیم {{user}}",
"emails.recovery.subject": "بازیابی گذرواژه",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Équipe {{project}}",
"emails.magicSession.subject": "Connexion",
"emails.magicSession.hello": "Bonjour,",
"emails.magicSession.body": "Suivez ce lien pour vous connecter.",
"emails.magicSession.footer": "Si vous n'avez pas demandé à vous connecter en utilisant cet e-mail, vous pouvez ignorer ce message.",
"emails.magicSession.thanks": "Merci,",
"emails.magicSession.signature": "L'équipe {{project}}",
"emails.recovery.subject": "Réinitialisation du mot de passe",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} foireann",
"emails.magicSession.subject": "Logáil isteach",
"emails.magicSession.hello": "Haigh,",
"emails.magicSession.body": "Lean an nasc seo chun logáil isteach.",
"emails.magicSession.footer": "Mura ndearna tú iarratas logáil isteach leis an ríomhphost seo, déan neamhaird den teachtaireacht seo.",
"emails.magicSession.thanks": "Go raibh maith agat,",
"emails.magicSession.signature": "{{project}} foireann",
"emails.recovery.subject": "Athshocrú pasfhocail",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} ટીમ",
"emails.magicSession.subject": "પ્રવેશ કરો",
"emails.magicSession.hello": "નમસ્કાર,",
"emails.magicSession.body": "પ્રવેશ કરવા માટે આ લિંકને અનુસરો.",
"emails.magicSession.footer": "જો તમે આ ઇમેઇલનો ઉપયોગ કરીને પ્રવેશ કરવાનું ન કહ્યું હોય, તો તમે આ સંદેશને અવગણી શકો છો.",
"emails.magicSession.thanks": "આભાર,",
"emails.magicSession.signature": "{{project}} ટીમ",
"emails.recovery.subject": "પાસવર્ડ ફરીથી સેટ કરો",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "צוות {{project}}",
"emails.magicSession.subject": "כניסה למערכת",
"emails.magicSession.hello": "שלום,",
"emails.magicSession.body": "לחץ על קישור זה כדי להיכנס.",
"emails.magicSession.footer": "אם לא ביקשת להיכנס באמצעות דוא\"ל זה, תוכל להתעלם מהודעה זו.",
"emails.magicSession.thanks": "תודה,",
"emails.magicSession.signature": "צוות {{project}}",
"emails.recovery.subject": "איפוס סיסמא",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} टीम",
"emails.magicSession.subject": "लॉग इन",
"emails.magicSession.hello": "नमस्ते,",
"emails.magicSession.body": "इस लिंक के माध्यम से लॉग-इन करें।",
"emails.magicSession.footer": "यदि आप इस ईमेल द्वारा लॉगिन नहीं करना चाहते हैं, तो आप इस संदेश को नज़रअंदाज़ कर सकते हैं।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} टीम",
"emails.recovery.subject": "पासवर्ड रीसेट",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} tim",
"emails.magicSession.subject": "Prijavite se",
"emails.magicSession.hello": "Pozdrav,",
"emails.magicSession.body": "Slijedite ovu poveznicu za prijavu.",
"emails.magicSession.footer": "Ako niste zatražili prijavu putem ove e-pošte, možete zanemariti ovu poruku.",
"emails.magicSession.thanks": "Hvala,",
"emails.magicSession.signature": "{{project}} tim",
"emails.recovery.subject": "Ponovno postavljanje lozinke",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "a {{project}} csapat",
"emails.magicSession.subject": "Bejelentkezés",
"emails.magicSession.hello": "Szia,",
"emails.magicSession.body": "Kattints a linkre a bejelentkezéshez.",
"emails.magicSession.footer": "Ha nem te szerettél volna bejelentkezni ezzel az email címmel, akkor nyugodtan hagyd figyelmen kívül ezt az üzenetet.",
"emails.magicSession.thanks": "Köszönettel,",
"emails.magicSession.signature": "a {{project}} csapat",
"emails.recovery.subject": "Jelszó Visszaállítása",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Tim {{project}}",
"emails.magicSession.subject": "Masuk",
"emails.magicSession.hello": "Hai,",
"emails.magicSession.body": "Ikuti tautan ini untuk masuk.",
"emails.magicSession.footer": "Jika Anda tidak meminta untuk masuk menggunakan email ini, Anda dapat mengabaikan pesan ini.",
"emails.magicSession.thanks": "Terima kasih,",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Atur Ulang Kata Sandi",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Il team {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Ciao,",
"emails.magicSession.body": "Clicca questo link per accedere.",
"emails.magicSession.footer": "Se non hai richiesto di effettuare laccesso, puoi ignorare questo messaggio.",
"emails.magicSession.thanks": "Grazie,",
"emails.magicSession.signature": "Il team {{project}}",
"emails.recovery.subject": "Reimpostazione password",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}}チーム",
"emails.magicSession.subject": "ログイン",
"emails.magicSession.hello": "こんにちは、",
"emails.magicSession.body": "ログインするためには下記リンクをクリックしてください。",
"emails.magicSession.footer": "このメールに心当たりが無い場合は破棄をお願いいたします。",
"emails.magicSession.thanks": "ご利用いただきありがとうございます。、",
"emails.magicSession.signature": "{{project}}チーム",
"emails.recovery.subject": "パスワードリセット",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Tim {{project}}",
"emails.magicSession.subject": "Masuk",
"emails.magicSession.hello": "Hai,",
"emails.magicSession.body": "Klik link iki kanggo masuk.",
"emails.magicSession.footer": "Yen sampeyan ora njaluk masuk nggunakake alamat email iki, sampeyan iso nglirwakake pesen iki.",
"emails.magicSession.thanks": "Matur nuwun,",
"emails.magicSession.signature": "Tim {{project}}",
"emails.recovery.subject": "Setel ulang sandi",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": "",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": "",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} ತಂಡ",
"emails.magicSession.subject": "ಲಾಗಿನ್",
"emails.magicSession.hello": "ನಮಸ್ಕಾರ,",
"emails.magicSession.body": "ಲಾಗಿನ್ ಮಾಡಲಿಕ್ಕೆ ಈ ಲಿಂಕನ್ನು ಅನುಸರಿಸಿ",
"emails.magicSession.footer": "ನೀವು ಈ ಇಮೇಲನಿಂದ ಲಾಗಿನ್ ಮಾಡಲು ಕೇಳದಿದ್ದರೆ, ಈ ಸಂದೇಶವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ",
"emails.magicSession.thanks": "ಧನ್ಯವಾದಗಳು,",
"emails.magicSession.signature": "{{project}} ತಂಡ",
"emails.recovery.subject": "ಗುಪ್ತಪದ ಮರುಹೊಂದಿಸಿ",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} 팀",
"emails.magicSession.subject": "로그인",
"emails.magicSession.hello": "안녕하세요、",
"emails.magicSession.body": "로그인 하시려면 링크를 클릭하여주세요.",
"emails.magicSession.footer": "이 이메일 계정으로 로그인 신청을 하지 않으셨다면 이 메세지를 무시하여주세요.",
"emails.magicSession.thanks": "감사합니다、",
"emails.magicSession.signature": "{{project}} 팀",
"emails.recovery.subject": "비밀번호 재설정",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} Team",
"emails.magicSession.subject": "Log in",
"emails.magicSession.hello": "Salve ibi,",
"emails.magicSession.body": "Hanc nexum cum login",
"emails.magicSession.footer": "Si verificationem huius inscriptionis non postulasti, nuntium hunc ignorare potes.",
"emails.magicSession.thanks": "Gratias,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Recuperet password",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} équipe",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hey,",
"emails.magicSession.body": "Follegt dëse Link fir umellen.",
"emails.magicSession.footer": "Wann Dir net gefrot hutt Iech mat dëser E -Mail anzemelden, kënnt Dir dëse Message ignoréieren.",
"emails.magicSession.thanks": "Merci,",
"emails.magicSession.signature": "{{project}} équipe",
"emails.recovery.subject": "Password Reset",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} komanda",
"emails.magicSession.subject": "Prisijungti",
"emails.magicSession.hello": "Labas,",
"emails.magicSession.body": "Spauskite šią nuorodą, kad prisijungtumėte.",
"emails.magicSession.footer": "Jei neprašėte prisijungti naudojantis šiuo el. paštu, galite ignoruoti šį pranešimą.",
"emails.magicSession.thanks": "Ačiū,",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Slaptažodžio Atkūrimas",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} komanda",
"emails.magicSession.subject": "Ieiet",
"emails.magicSession.hello": "Sveicināti,",
"emails.magicSession.body": "Sekojiet saitei, lai ieietu.",
"emails.magicSession.footer": "Ja Jūs nepieprasījāt ieiet ar šo e-pasta adresi, lūdzu, ignorējiet šo ziņu.",
"emails.magicSession.thanks": "Paldies,",
"emails.magicSession.signature": "{{project}} komanda",
"emails.recovery.subject": "Paroles atjaunināšana",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} ടീം",
"emails.magicSession.subject": "ലോഗിൻ",
"emails.magicSession.hello": "നമസ്കാരം,",
"emails.magicSession.body": "ലോഗിൻ ചെയ്യുന്നതിനായി ഈ ലിങ്ക് പിന്തുടരുക.",
"emails.magicSession.footer": "ഈ ഇമെയിൽ ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യാൻ നിങ്ങൾ ആവശ്യപ്പെട്ടില്ലെങ്കിൽ, ഈ സന്ദേശം അവഗണിക്കാവുന്നതാണ്.",
"emails.magicSession.thanks": "നന്ദി,",
"emails.magicSession.signature": "{{project}} ടീം",
"emails.recovery.subject": "രഹസ്യവാക്ക് പുനക്രമീകരണം",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} संघ",
"emails.magicSession.subject": "लॉगिन करा",
"emails.magicSession.hello": "नमस्कार ,",
"emails.magicSession.body": "लॉगिन करण्यासाठी या लिंकचे अनुसरण करा.",
"emails.magicSession.footer": "आपण या ईमेलचा वापर करून लॉगिन करण्यास सांगितले नसल्यास, आपण या संदेशाकडे दुर्लक्ष करू शकता.",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} संघ",
"emails.recovery.subject": "पासवर्ड रीसेट",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Log masuk",
"emails.magicSession.hello": "Hey,",
"emails.magicSession.body": "Tekan pautan ini untuk log masuk.",
"emails.magicSession.footer": "Sekiranya anda tidak membuat permintaan untuk log masuk menggunakan email ini, sila abaikan mesej ini.",
"emails.magicSession.thanks": "Terima kasih,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Menetap semula Kata Laluan",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Pålogging",
"emails.magicSession.hello": "Hei,",
"emails.magicSession.body": "Følg denne lenken for å logge på.",
"emails.magicSession.footer": "Dersom du ikke ba om å logge på med denne e-postadressen, kan du se bort fra denne meldingen.",
"emails.magicSession.thanks": "Takk,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstille passord",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} समूह",
"emails.magicSession.subject": "लगइन",
"emails.magicSession.hello": "नमस्ते,",
"emails.magicSession.body": "लगइन गर्नको लागी यो लिंकमा जानुहोस।",
"emails.magicSession.footer": "यदि तपाइँले यो इमेल प्रयोग गरेर लगइन गर्न सोध्नु भएको छैन भने तपाइँले यो सन्देश लाई बेवास्ता गर्न सक्नुहुन्छ।",
"emails.magicSession.thanks": "धन्यवाद,",
"emails.magicSession.signature": "{{project}} समूह",
"emails.recovery.subject": "पासवर्ड रिसेट",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Hoi,",
"emails.magicSession.body": "Volg deze link om in te loggen",
"emails.magicSession.footer": "Als u geen aanvraag heeft gemaakt om met deze mail in te loggen, kan u deze mail negeren",
"emails.magicSession.thanks": "Bedankt,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Wachtwoord Herinstellen",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} team",
"emails.magicSession.subject": "Pålogging",
"emails.magicSession.hello": "Hei,",
"emails.magicSession.body": "Følg denne lenkja for å logge på.",
"emails.magicSession.footer": "Om du ikkje ba om å logge på med denne e-postadressa, kan du ignorera denne meldinga.",
"emails.magicSession.thanks": "Takk,",
"emails.magicSession.signature": "{{project}} team",
"emails.recovery.subject": "Nullstilla passord",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} ଦଳ",
"emails.magicSession.subject": "ଲଗଇନ୍ କରନ୍ତୁ",
"emails.magicSession.hello": "ନମସ୍କାର,",
"emails.magicSession.body": "ଲଗଇନ୍ କରିବାକୁ ଏହି ଲିଙ୍କ୍ ଅନୁସରଣ କରନ୍ତୁ |",
"emails.magicSession.footer": "ଯଦି ଆପଣ ଏହି ଇମେଲ୍ ବ୍ୟବହାର କରି ଲଗଇନ୍ କରିବାକୁ କହି ନାହାଁନ୍ତି, ତେବେ ଆପଣ ଏହି ସନ୍ଦେଶକୁ ଉପେକ୍ଷା କରିପାରିବେ |",
"emails.magicSession.thanks": "ଧନ୍ୟବାଦ,",
"emails.magicSession.signature": "{{project}} ଦଳ",
"emails.recovery.subject": "ପାସୱାର୍ଡ ପୁନଃ ସେଟ୍ କରନ୍ତୁ |",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Zespół {{project}}",
"emails.magicSession.subject": "Logowanie",
"emails.magicSession.hello": "Cześć,",
"emails.magicSession.body": "Kliknij w ten link, aby zalogować się.",
"emails.magicSession.footer": "Jeśli to nie Ty prosiłeś o logowanie przy użyciu tego adresu e-mail, zignoruj tę wiadomość.",
"emails.magicSession.thanks": "Dziękujemy,",
"emails.magicSession.signature": "Zespół {{project}}",
"emails.recovery.subject": "Resetowanie hasła",
@@ -12,8 +12,6 @@
"emails.verification.signature": "Time {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Olá,",
"emails.magicSession.body": "Clique neste link para entrar.",
"emails.magicSession.footer": "Se você não solicitou conectar-se com este e-mail, ignore essa mensagem.",
"emails.magicSession.thanks": "Muito obrigado,",
"emails.magicSession.signature": "Time {{project}}",
"emails.recovery.subject": "Redefinição de senha",
@@ -12,8 +12,6 @@
"emails.verification.signature": "Equipa {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Olá ,",
"emails.magicSession.body": "Siga esta ligação para iniciar sessão.",
"emails.magicSession.footer": "Se não pediu para entrar usando este e-mail, pode ignorar esta mensagem.",
"emails.magicSession.thanks": "Obrigado,",
"emails.magicSession.signature": "Equipa {{project}}",
"emails.recovery.subject": "Redefinição de senha",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Echipa {{project}}",
"emails.magicSession.subject": "Login",
"emails.magicSession.hello": "Bună ziua,",
"emails.magicSession.body": "Urmează acest link pentru logare.",
"emails.magicSession.footer": "Dacă nu ai incercat să te loghezi folosing această adresa de email, poți ignora acest mesaj.",
"emails.magicSession.thanks": "Mulțumim,",
"emails.magicSession.signature": "Echipa {{project}}",
"emails.recovery.subject": "Resetare parolă",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "команда {{project}}",
"emails.magicSession.subject": "Логин",
"emails.magicSession.hello": "Здравствуйте,",
"emails.magicSession.body": "Перейдите по ссылке, чтобы войти.",
"emails.magicSession.footer": "Если вы не просили войти, используя этот адрес электронной почты, проигнорируйте это сообщение.",
"emails.magicSession.thanks": "Спасибо,",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Сброс пароля",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} गणः",
"emails.magicSession.subject": "संप्रवेशः",
"emails.magicSession.hello": "अयि,",
"emails.magicSession.body": "संप्रवेशार्थमिदं संयोगसूत्रमनुसरतु।",
"emails.magicSession.footer": "अनेन ई-पत्रण यदि संप्रवेशो नेष्यते तर्हि वात्र्तामिमामुपेक्षताम्‌।",
"emails.magicSession.thanks": "धन्यवादः,",
"emails.magicSession.signature": "{{project}} गणः",
"emails.recovery.subject": "कूटशब्दपुनयाेजनम्‌",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} ٽيم",
"emails.magicSession.subject": "لاگ ان",
"emails.magicSession.hello": "هي ,",
"emails.magicSession.body": "لاگ ان ٿيڻ لاءِ ھن لنڪ تي عمل ڪريو.",
"emails.magicSession.footer": "جيڪڏھن توھان نه پ پيا ھي لاگ ان استعمال ڪندي اي ميل ، توھان نظر انداز ڪري سگھوٿا ھن پيغام کي.",
"emails.magicSession.thanks": "مهرباني,",
"emails.magicSession.signature": "{{project}} ٽيم",
"emails.recovery.subject": "پاسورڊ ري سيٽ",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} කණ්ඩායම",
"emails.magicSession.subject": "ප්‍රවේශ වන්න",
"emails.magicSession.hello": "හේයි,",
"emails.magicSession.body": "ප්‍රවේශ වීමට මෙම සම්බන්ධකය අනුගමනය කරන්න.",
"emails.magicSession.footer": "මෙම විද්‍යුත් තැපෑල භාවිතයෙන් ප්‍රවේශ වීමට ඔබ ඉල්ලුවේ නැත්නම්, ඔබට මෙම පණිවිඩය නොසලකා හැරිය හැක.",
"emails.magicSession.thanks": "ස්තුතියි,",
"emails.magicSession.signature": "{{project}} කණ්ඩායම",
"emails.recovery.subject": "මුරපද යළි පිහිටුවීම",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} tím",
"emails.magicSession.subject": "Prihlásenie",
"emails.magicSession.hello": "Ahoj,",
"emails.magicSession.body": "Použi tento link pre prihlásenie.",
"emails.magicSession.footer": "Ak si nepožiadal o prihlásenie cez email, túto správu môžeš ignorovať.",
"emails.magicSession.thanks": "Ďakujeme,",
"emails.magicSession.signature": "{{project}} tím",
"emails.recovery.subject": "Obnovenie hesla",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Chikwata che{{project}}",
"emails.magicSession.subject": "Pinda",
"emails.magicSession.hello": "Hesi,",
"emails.magicSession.body": "Baya chinongedzo ichi kuti upinde muakaundi yako.",
"emails.magicSession.footer": "Kana usina kukumbira kupinda muakaundi yako uchishandisa email iyi, unogona kufuratira meseji iyi.",
"emails.magicSession.thanks": "Ndatenda,",
"emails.magicSession.signature": "Chikwata che{{project}}",
"emails.recovery.subject": "Kuchinja pasiwedhi",
-2
View File
@@ -11,8 +11,6 @@
"emails.verification.signature": "",
"emails.magicSession.subject": "",
"emails.magicSession.hello": ",",
"emails.magicSession.body": "",
"emails.magicSession.footer": "",
"emails.magicSession.thanks": ",",
"emails.magicSession.signature": "",
"emails.recovery.subject": "",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} teamet",
"emails.magicSession.subject": "Logga in",
"emails.magicSession.hello": "Hej,",
"emails.magicSession.body": "Klicka på denna länk för att logga in.",
"emails.magicSession.footer": "Om du inte bad om att logga in med denna e-postadress kan du ignorera detta mail.",
"emails.magicSession.thanks": "Tack,",
"emails.magicSession.signature": "{{project}} teamet",
"emails.recovery.subject": "Återställ lösenord",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} குழு ",
"emails.magicSession.subject": "உள்நுழைய",
"emails.magicSession.hello": "ஏய்,",
"emails.magicSession.body": "இந்த இணைப்பைப் பின்தொடரவும் உள்நுழைய",
"emails.magicSession.footer": "இந்த மின்னஞ்சலைப் பயன்படுத்தி உள்நுழையுமாறு உங்களிடம் கேட்கப்படாவிட்டால், இந்தச் செய்தியைப் புறக்கணிக்கலாம்.",
"emails.magicSession.thanks": "நன்றி,",
"emails.magicSession.signature": "{{project}} குழு",
"emails.recovery.subject": "கடவுச்சொல் மீட்டமைப்பு",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} జట్",
"emails.magicSession.subject": "లాగిన్",
"emails.magicSession.hello": "నమస్కారము,",
"emails.magicSession.body": "లాగిన్ చేయడానికి ఈ లింక్ ని అనుసరించండి",
"emails.magicSession.footer": "మీరు ఈ ఇమెయిల్ ని ఉపయోగించి లాగిన్ చేయమని అడగకపోతే, మీరు ఈ సందేశాన్ని విస్మరించవచ్చు",
"emails.magicSession.thanks": "ధన్యవాదాలు,",
"emails.magicSession.signature": "{{project}} జట్",
"emails.recovery.subject": "పాస్వర్డ్ రీసెట్",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "ทีม {{project}}",
"emails.magicSession.subject": "เข้าสู่ระบบ",
"emails.magicSession.hello": "เรียนผู้ใช้งาน",
"emails.magicSession.body": "กดเข้าไปที่ลิงก์นี้เพื่อเข้าสู่ระบบ",
"emails.magicSession.footer": "หากท่านไม่ได้ต้องการที่จะเข้าสู่ระบบด้วยอีเมลนี้ ท่านสามารถเพิกเฉยข้อความนี้ได้",
"emails.magicSession.thanks": "ขอบคุณ",
"emails.magicSession.signature": "ทีม {{project}}",
"emails.recovery.subject": "รีเซ็ตรหัสผ่าน",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Pangkat ng {{project}}",
"emails.magicSession.subject": "Mag log in",
"emails.magicSession.hello": "Kamusta ,",
"emails.magicSession.body": "Sundin ang link na ito upang mag-login.",
"emails.magicSession.footer": "Kung hindi mo hiningi na mag-login gamit ang email na ito, maaari mong balewalain ang mensahe na ito.",
"emails.magicSession.thanks": "Salamat,",
"emails.magicSession.signature": "Pangkat ng {{project}}",
"emails.recovery.subject": "I-reset ang password",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} takımı",
"emails.magicSession.subject": "Giriş",
"emails.magicSession.hello": "Merhaba,",
"emails.magicSession.body": "Giriş yapmak için tıklayın.",
"emails.magicSession.footer": "Eğer bu eposta adresini kullanarak giriş yapmak istemediyseniz devam etmeyin.",
"emails.magicSession.thanks": "Teşekkürler,",
"emails.magicSession.signature": "{{project}} takımı",
"emails.recovery.subject": "Şifremi Sıfırla",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "команда {{project}}",
"emails.magicSession.subject": "Логін",
"emails.magicSession.hello": "Вітаємо,",
"emails.magicSession.body": "Перейдіть за цим посиланням, щоб увійти.",
"emails.magicSession.footer": "Якщо ви не просили увійти за допомогою цієї електронної пошти, ви можете ігнорувати це повідомлення.",
"emails.magicSession.thanks": "Дякуємо,",
"emails.magicSession.signature": "команда {{project}}",
"emails.recovery.subject": "Скидання пароля",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "ٹیم۔ {{project}}",
"emails.magicSession.subject": "اگ ان کریں",
"emails.magicSession.hello": "خوش آمدید،",
"emails.magicSession.body": "لاگ ان کرنے کے لیے اس لنک پر عمل کریں۔",
"emails.magicSession.footer": "اگر آپ نے اس ای میل کا استعمال کرتے ہوئے لاگ ان کرنے کے لیے نہیں کہا تو آپ اس پیغام کو نظر انداز کر سکتے ہیں۔",
"emails.magicSession.thanks": "شکریہ،",
"emails.magicSession.signature": "ٹیم۔ {{project}}",
"emails.recovery.subject": "پاس ورڈ ری سیٹ۔",
-2
View File
@@ -12,8 +12,6 @@
"emails.verification.signature": "Nhóm {{project}}",
"emails.magicSession.subject": "Đăng nhập",
"emails.magicSession.hello": "Chào",
"emails.magicSession.body": "Nhấn vào đường dẫn sau để đăng nhập.",
"emails.magicSession.footer": "Nếu bạn không yêu cầu đăng nhập bằng email, bạn có thể bỏ qua email này.",
"emails.magicSession.thanks": "Cảm ơn",
"emails.magicSession.signature": "Nhóm {{project}}",
"emails.recovery.subject": "Thiết lập lại mật khẩu",
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} 团队",
"emails.magicSession.subject": "登录",
"emails.magicSession.hello": "你好、",
"emails.magicSession.body": "点此链接登录。",
"emails.magicSession.footer": "如果您没有要求使用此电子邮件登录,则可忽略此消息。",
"emails.magicSession.thanks": "谢谢、",
"emails.magicSession.signature": "{{project}} 团队",
"emails.recovery.subject": "重设密码",
@@ -12,8 +12,6 @@
"emails.verification.signature": "{{project}} 團隊",
"emails.magicSession.subject": "登入",
"emails.magicSession.hello": "嗨、",
"emails.magicSession.body": "點此連結登入。",
"emails.magicSession.footer": "如果您沒有要求使用此電子郵件登入,則可以忽略此消息。",
"emails.magicSession.thanks": "謝謝、",
"emails.magicSession.signature": "{{project}} 團隊",
"emails.recovery.subject": "重設密碼",
+30 -8
View File
@@ -25,6 +25,7 @@ return [
'gitRepoName' => 'sdk-for-web',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/web/CHANGELOG.md'),
'demos' => [
[
'icon' => 'react.svg',
@@ -73,6 +74,7 @@ return [
'gitRepoName' => 'sdk-for-flutter',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/flutter/CHANGELOG.md'),
],
[
'key' => 'apple',
@@ -91,6 +93,7 @@ return [
'gitRepoName' => 'sdk-for-apple',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/apple/CHANGELOG.md'),
],
[
'key' => 'objective-c',
@@ -108,11 +111,12 @@ return [
'gitRepoName' => 'sdk-for-objective-c',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/objective-c/CHANGELOG.md'),
],
[
'key' => 'android',
'name' => 'Android',
'version' => '8.2.0',
'version' => '8.2.2',
'url' => 'https://github.com/appwrite/sdk-for-android',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-android',
'enabled' => true,
@@ -130,6 +134,7 @@ return [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/android/CHANGELOG.md'),
],
[
'key' => 'react-native',
@@ -148,6 +153,7 @@ return [
'gitRepoName' => 'sdk-for-react-native',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/react-native/CHANGELOG.md'),
],
[
'key' => 'graphql',
@@ -167,6 +173,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
@@ -186,6 +193,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
@@ -199,8 +207,8 @@ return [
[
'key' => 'web',
'name' => 'Console',
'version' => '1.9.0',
'url' => 'https://github.com/appwrite/sdk-for-console',
'version' => '0.1.0',
'url' => '',
'package' => '',
'enabled' => true,
'beta' => false,
@@ -209,10 +217,11 @@ return [
'family' => APP_PLATFORM_CONSOLE,
'prism' => 'javascript',
'source' => \realpath(__DIR__ . '/../sdks/console-web'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-console.git',
'gitUrl' => '',
'gitBranch' => 'dev',
'gitRepoName' => 'sdk-for-console',
'gitUserName' => 'appwrite',
'gitRepoName' => '',
'gitUserName' => '',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/console/CHANGELOG.md'),
],
[
'key' => 'cli',
@@ -232,6 +241,7 @@ return [
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'master',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cli/CHANGELOG.md'),
'exclude' => [
'services' => [
['name' => 'assistant'],
@@ -265,6 +275,7 @@ return [
'gitRepoName' => 'sdk-for-node',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/nodejs/CHANGELOG.md'),
],
[
'key' => 'deno',
@@ -283,6 +294,7 @@ return [
'gitRepoName' => 'sdk-for-deno',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/deno/CHANGELOG.md'),
],
[
'key' => 'php',
@@ -301,6 +313,7 @@ return [
'gitRepoName' => 'sdk-for-php',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/php/CHANGELOG.md'),
],
[
'key' => 'python',
@@ -319,6 +332,7 @@ return [
'gitRepoName' => 'sdk-for-python',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/python/CHANGELOG.md'),
],
[
'key' => 'ruby',
@@ -337,6 +351,7 @@ return [
'gitRepoName' => 'sdk-for-ruby',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/ruby/CHANGELOG.md'),
],
[
'key' => 'go',
@@ -355,11 +370,12 @@ return [
'gitRepoName' => 'sdk-for-go',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/go/CHANGELOG.md'),
],
[
'key' => 'dotnet',
'name' => '.NET',
'version' => '0.14.1',
'version' => '0.15.0',
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
'package' => 'https://www.nuget.org/packages/Appwrite',
'enabled' => true,
@@ -373,6 +389,7 @@ return [
'gitRepoName' => 'sdk-for-dotnet',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dotnet/CHANGELOG.md'),
],
[
'key' => 'dart',
@@ -391,11 +408,12 @@ return [
'gitRepoName' => 'sdk-for-dart',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dart/CHANGELOG.md'),
],
[
'key' => 'kotlin',
'name' => 'Kotlin',
'version' => '9.1.0',
'version' => '9.1.2',
'url' => 'https://github.com/appwrite/sdk-for-kotlin',
'package' => 'https://search.maven.org/artifact/io.appwrite/sdk-for-kotlin',
'enabled' => true,
@@ -413,6 +431,7 @@ return [
'Kotlin' => 'kotlin',
'Java' => 'java',
],
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/kotlin/CHANGELOG.md'),
],
[
'key' => 'swift',
@@ -431,6 +450,7 @@ return [
'gitRepoName' => 'sdk-for-swift',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/swift/CHANGELOG.md'),
],
[
'key' => 'graphql',
@@ -450,6 +470,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/graphql/CHANGELOG.md'),
],
[
'key' => 'rest',
@@ -469,6 +490,7 @@ return [
'gitUserName' => '',
'gitBranch' => '',
'isSDK' => false,
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/rest/CHANGELOG.md'),
],
],
],
+445 -53
View File
@@ -5361,7 +5361,7 @@
"scheduledAt": {
"type": "string",
"description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
"x-example": null
"x-example": "<SCHEDULED_AT>"
}
}
}
@@ -8033,7 +8033,8 @@
"any": {
"description": "Any",
"type": "object",
"additionalProperties": true
"additionalProperties": true,
"example": []
},
"error": {
"description": "Error",
@@ -8065,7 +8066,13 @@
"code",
"type",
"version"
]
],
"example": {
"message": "Not found",
"code": "404",
"type": "not_found",
"version": "1.0"
}
},
"documentList": {
"description": "Documents List",
@@ -8089,7 +8096,11 @@
"required": [
"total",
"documents"
]
],
"example": {
"total": 5,
"documents": ""
}
},
"sessionList": {
"description": "Sessions List",
@@ -8113,7 +8124,11 @@
"required": [
"total",
"sessions"
]
],
"example": {
"total": 5,
"sessions": ""
}
},
"identityList": {
"description": "Identities List",
@@ -8137,7 +8152,11 @@
"required": [
"total",
"identities"
]
],
"example": {
"total": 5,
"identities": ""
}
},
"logList": {
"description": "Logs List",
@@ -8161,7 +8180,11 @@
"required": [
"total",
"logs"
]
],
"example": {
"total": 5,
"logs": ""
}
},
"fileList": {
"description": "Files List",
@@ -8185,7 +8208,11 @@
"required": [
"total",
"files"
]
],
"example": {
"total": 5,
"files": ""
}
},
"teamList": {
"description": "Teams List",
@@ -8209,7 +8236,11 @@
"required": [
"total",
"teams"
]
],
"example": {
"total": 5,
"teams": ""
}
},
"membershipList": {
"description": "Memberships List",
@@ -8233,7 +8264,11 @@
"required": [
"total",
"memberships"
]
],
"example": {
"total": 5,
"memberships": ""
}
},
"executionList": {
"description": "Executions List",
@@ -8257,7 +8292,11 @@
"required": [
"total",
"executions"
]
],
"example": {
"total": 5,
"executions": ""
}
},
"countryList": {
"description": "Countries List",
@@ -8281,7 +8320,11 @@
"required": [
"total",
"countries"
]
],
"example": {
"total": 5,
"countries": ""
}
},
"continentList": {
"description": "Continents List",
@@ -8305,7 +8348,11 @@
"required": [
"total",
"continents"
]
],
"example": {
"total": 5,
"continents": ""
}
},
"languageList": {
"description": "Languages List",
@@ -8329,7 +8376,11 @@
"required": [
"total",
"languages"
]
],
"example": {
"total": 5,
"languages": ""
}
},
"currencyList": {
"description": "Currencies List",
@@ -8353,7 +8404,11 @@
"required": [
"total",
"currencies"
]
],
"example": {
"total": 5,
"currencies": ""
}
},
"phoneList": {
"description": "Phones List",
@@ -8377,7 +8432,11 @@
"required": [
"total",
"phones"
]
],
"example": {
"total": 5,
"phones": ""
}
},
"localeCodeList": {
"description": "Locale codes list",
@@ -8401,7 +8460,11 @@
"required": [
"total",
"localeCodes"
]
],
"example": {
"total": 5,
"localeCodes": ""
}
},
"document": {
"description": "Document",
@@ -8416,17 +8479,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
@@ -8458,7 +8524,23 @@
"$createdAt",
"$updatedAt",
"$permissions"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$sequence": 1,
"$collectionId": "5e5ea5c15117e",
"$databaseId": "5e5ea5c15117e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"read(\"any\")"
],
"username": "john.doe",
"email": "john.doe@example.com",
"fullName": "John Doe",
"age": 30,
"isAdmin": false
}
},
"log": {
"description": "Log",
@@ -8592,7 +8674,30 @@
"deviceModel",
"countryCode",
"countryName"
]
],
"example": {
"event": "account.sessions.create",
"userId": "610fc2f985ee0",
"userEmail": "john@appwrite.io",
"userName": "John Doe",
"mode": "admin",
"ip": "127.0.0.1",
"time": "2020-10-15T06:38:00.000+00:00",
"osCode": "Mac",
"osName": "Mac",
"osVersion": "Mac",
"clientType": "browser",
"clientCode": "CM",
"clientName": "Chrome Mobile iOS",
"clientVersion": "84.0",
"clientEngine": "WebKit",
"clientEngineVersion": "605.1.15",
"deviceName": "smartphone",
"deviceBrand": "Google",
"deviceModel": "Nexus 5",
"countryCode": "US",
"countryName": "United States"
}
},
"user": {
"description": "User",
@@ -8753,7 +8858,33 @@
"prefs",
"targets",
"accessedAt"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "John Doe",
"password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
"hash": "argon2",
"hashOptions": {},
"registration": "2020-10-15T06:38:00.000+00:00",
"status": true,
"labels": [
"vip"
],
"passwordUpdate": "2020-10-15T06:38:00.000+00:00",
"email": "john@appwrite.io",
"phone": "+4930901820",
"emailVerification": true,
"phoneVerification": true,
"mfa": true,
"prefs": {
"theme": "pink",
"timezone": "UTC"
},
"targets": [],
"accessedAt": "2020-10-15T06:38:00.000+00:00"
}
},
"algoMd5": {
"description": "AlgoMD5",
@@ -8767,7 +8898,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "md5"
}
},
"algoSha": {
"description": "AlgoSHA",
@@ -8781,7 +8915,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "sha"
}
},
"algoPhpass": {
"description": "AlgoPHPass",
@@ -8795,7 +8932,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "phpass"
}
},
"algoBcrypt": {
"description": "AlgoBcrypt",
@@ -8809,7 +8949,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "bcrypt"
}
},
"algoScrypt": {
"description": "AlgoScrypt",
@@ -8851,7 +8994,14 @@
"costMemory",
"costParallel",
"length"
]
],
"example": {
"type": "scrypt",
"costCpu": 8,
"costMemory": 14,
"costParallel": 1,
"length": 64
}
},
"algoScryptModified": {
"description": "AlgoScryptModified",
@@ -8883,7 +9033,13 @@
"salt",
"saltSeparator",
"signerKey"
]
],
"example": {
"type": "scryptMod",
"salt": "UxLMreBr6tYyjQ==",
"saltSeparator": "Bw==",
"signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
}
},
"algoArgon2": {
"description": "AlgoArgon2",
@@ -8918,12 +9074,23 @@
"memoryCost",
"timeCost",
"threads"
]
],
"example": {
"type": "argon2",
"memoryCost": 65536,
"timeCost": 4,
"threads": 3
}
},
"preferences": {
"description": "Preferences",
"type": "object",
"additionalProperties": true
"additionalProperties": true,
"example": {
"language": "en",
"timezone": "UTC",
"darkTheme": true
}
},
"session": {
"description": "Session",
@@ -9110,7 +9277,40 @@
"factors",
"secret",
"mfaUpdatedAt"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5bb8c16897e",
"expire": "2020-10-15T06:38:00.000+00:00",
"provider": "email",
"providerUid": "user@example.com",
"providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
"providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"ip": "127.0.0.1",
"osCode": "Mac",
"osName": "Mac",
"osVersion": "Mac",
"clientType": "browser",
"clientCode": "CM",
"clientName": "Chrome Mobile iOS",
"clientVersion": "84.0",
"clientEngine": "WebKit",
"clientEngineVersion": "605.1.15",
"deviceName": "smartphone",
"deviceBrand": "Google",
"deviceModel": "Nexus 5",
"countryCode": "US",
"countryName": "United States",
"current": true,
"factors": [
"email"
],
"secret": "5e5bb8c16897e",
"mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
}
},
"identity": {
"description": "Identity",
@@ -9178,7 +9378,19 @@
"providerAccessToken",
"providerAccessTokenExpiry",
"providerRefreshToken"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5bb8c16897e",
"provider": "email",
"providerUid": "5e5bb8c16897e",
"providerEmail": "user@example.com",
"providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
"providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
}
},
"token": {
"description": "Token",
@@ -9222,7 +9434,15 @@
"secret",
"expire",
"phrase"
]
],
"example": {
"$id": "bb8ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c168bb8",
"secret": "",
"expire": "2020-10-15T06:38:00.000+00:00",
"phrase": "Golden Fox"
}
},
"jwt": {
"description": "JWT",
@@ -9236,7 +9456,10 @@
},
"required": [
"jwt"
]
],
"example": {
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
},
"locale": {
"description": "Locale",
@@ -9286,7 +9509,16 @@
"continent",
"eu",
"currency"
]
],
"example": {
"ip": "127.0.0.1",
"countryCode": "US",
"country": "United States",
"continentCode": "NA",
"continent": "North America",
"eu": false,
"currency": "USD"
}
},
"localeCode": {
"description": "LocaleCode",
@@ -9306,7 +9538,11 @@
"required": [
"code",
"name"
]
],
"example": {
"code": "en-us",
"name": "US"
}
},
"file": {
"description": "File",
@@ -9388,7 +9624,22 @@
"sizeOriginal",
"chunksTotal",
"chunksUploaded"
]
],
"example": {
"$id": "5e5ea5c16897e",
"bucketId": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"read(\"any\")"
],
"name": "Pink.png",
"signature": "5d529fd02b544198ae075bd57c1762bb",
"mimeType": "image\/png",
"sizeOriginal": 17890,
"chunksTotal": 17890,
"chunksUploaded": 17890
}
},
"team": {
"description": "Team",
@@ -9439,7 +9690,18 @@
"name",
"total",
"prefs"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "VIP",
"total": 7,
"prefs": {
"theme": "pink",
"timezone": "UTC"
}
}
},
"membership": {
"description": "Membership",
@@ -9530,7 +9792,24 @@
"confirm",
"mfa",
"roles"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c16897e",
"userName": "John Doe",
"userEmail": "john@appwrite.io",
"teamId": "5e5ea5c16897e",
"teamName": "VIP",
"invited": "2020-10-15T06:38:00.000+00:00",
"joined": "2020-10-15T06:38:00.000+00:00",
"confirm": false,
"mfa": false,
"roles": [
"owner"
]
}
},
"execution": {
"description": "Execution",
@@ -9661,7 +9940,36 @@
"logs",
"errors",
"duration"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"any"
],
"functionId": "5e5ea6g16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
"requestPath": "\/articles?id=5",
"requestHeaders": [
{
"Content-Type": "application\/json"
}
],
"responseStatusCode": 200,
"responseBody": "",
"responseHeaders": [
{
"Content-Type": "application\/json"
}
],
"logs": "",
"errors": "",
"duration": 0.4,
"scheduledAt": "2020-10-15T06:38:00.000+00:00"
}
},
"country": {
"description": "Country",
@@ -9681,7 +9989,11 @@
"required": [
"name",
"code"
]
],
"example": {
"name": "United States",
"code": "US"
}
},
"continent": {
"description": "Continent",
@@ -9701,7 +10013,11 @@
"required": [
"name",
"code"
]
],
"example": {
"name": "Europe",
"code": "EU"
}
},
"language": {
"description": "Language",
@@ -9727,7 +10043,12 @@
"name",
"code",
"nativeName"
]
],
"example": {
"name": "Italian",
"code": "it",
"nativeName": "Italiano"
}
},
"currency": {
"description": "Currency",
@@ -9779,7 +10100,16 @@
"rounding",
"code",
"namePlural"
]
],
"example": {
"symbol": "$",
"name": "US dollar",
"symbolNative": "$",
"decimalDigits": 2,
"rounding": 0,
"code": "USD",
"namePlural": "US dollars"
}
},
"phone": {
"description": "Phone",
@@ -9805,7 +10135,12 @@
"code",
"countryCode",
"countryName"
]
],
"example": {
"code": "+1",
"countryCode": "US",
"countryName": "United States"
}
},
"headers": {
"description": "Headers",
@@ -9825,7 +10160,11 @@
"required": [
"name",
"value"
]
],
"example": {
"name": "Content-Type",
"value": "application\/json"
}
},
"mfaChallenge": {
"description": "MFA Challenge",
@@ -9857,7 +10196,13 @@
"$createdAt",
"userId",
"expire"
]
],
"example": {
"$id": "bb8ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c168bb8",
"expire": "2020-10-15T06:38:00.000+00:00"
}
},
"mfaRecoveryCodes": {
"description": "MFA Recovery Codes",
@@ -9877,7 +10222,13 @@
},
"required": [
"recoveryCodes"
]
],
"example": {
"recoveryCodes": [
"a3kf0-s0cl2",
"s0co1-as98s"
]
}
},
"mfaType": {
"description": "MFAType",
@@ -9897,7 +10248,11 @@
"required": [
"secret",
"uri"
]
],
"example": {
"secret": true,
"uri": true
}
},
"mfaFactors": {
"description": "MFAFactors",
@@ -9929,7 +10284,13 @@
"phone",
"email",
"recoveryCode"
]
],
"example": {
"totp": true,
"phone": true,
"email": true,
"recoveryCode": true
}
},
"subscriber": {
"description": "Subscriber",
@@ -10003,7 +10364,27 @@
"userName",
"topicId",
"providerType"
]
],
"example": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"targetId": "259125845563242502",
"target": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"providerType": "email",
"providerId": "259125845563242502",
"name": "ageon-app-email",
"identifier": "random-mail@email.org",
"userId": "5e5ea5c16897e"
},
"userId": "5e5ea5c16897e",
"userName": "Aegon Targaryen",
"topicId": "259125845563242502",
"providerType": "email"
}
},
"target": {
"description": "Target",
@@ -10065,7 +10446,18 @@
"providerType",
"identifier",
"expired"
]
],
"example": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "Apple iPhone 12",
"userId": "259125845563242502",
"providerId": "259125845563242502",
"providerType": "email",
"identifier": "token",
"expired": false
}
}
},
"securitySchemes": {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -8969,17 +8969,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
@@ -33744,17 +33744,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
+438 -52
View File
@@ -5461,7 +5461,7 @@
"type": "string",
"description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.",
"default": null,
"x-example": null
"x-example": "<SCHEDULED_AT>"
}
}
}
@@ -8094,7 +8094,8 @@
"any": {
"description": "Any",
"type": "object",
"additionalProperties": true
"additionalProperties": true,
"example": []
},
"documentList": {
"description": "Documents List",
@@ -8119,7 +8120,11 @@
"required": [
"total",
"documents"
]
],
"example": {
"total": 5,
"documents": ""
}
},
"sessionList": {
"description": "Sessions List",
@@ -8144,7 +8149,11 @@
"required": [
"total",
"sessions"
]
],
"example": {
"total": 5,
"sessions": ""
}
},
"identityList": {
"description": "Identities List",
@@ -8169,7 +8178,11 @@
"required": [
"total",
"identities"
]
],
"example": {
"total": 5,
"identities": ""
}
},
"logList": {
"description": "Logs List",
@@ -8194,7 +8207,11 @@
"required": [
"total",
"logs"
]
],
"example": {
"total": 5,
"logs": ""
}
},
"fileList": {
"description": "Files List",
@@ -8219,7 +8236,11 @@
"required": [
"total",
"files"
]
],
"example": {
"total": 5,
"files": ""
}
},
"teamList": {
"description": "Teams List",
@@ -8244,7 +8265,11 @@
"required": [
"total",
"teams"
]
],
"example": {
"total": 5,
"teams": ""
}
},
"membershipList": {
"description": "Memberships List",
@@ -8269,7 +8294,11 @@
"required": [
"total",
"memberships"
]
],
"example": {
"total": 5,
"memberships": ""
}
},
"executionList": {
"description": "Executions List",
@@ -8294,7 +8323,11 @@
"required": [
"total",
"executions"
]
],
"example": {
"total": 5,
"executions": ""
}
},
"countryList": {
"description": "Countries List",
@@ -8319,7 +8352,11 @@
"required": [
"total",
"countries"
]
],
"example": {
"total": 5,
"countries": ""
}
},
"continentList": {
"description": "Continents List",
@@ -8344,7 +8381,11 @@
"required": [
"total",
"continents"
]
],
"example": {
"total": 5,
"continents": ""
}
},
"languageList": {
"description": "Languages List",
@@ -8369,7 +8410,11 @@
"required": [
"total",
"languages"
]
],
"example": {
"total": 5,
"languages": ""
}
},
"currencyList": {
"description": "Currencies List",
@@ -8394,7 +8439,11 @@
"required": [
"total",
"currencies"
]
],
"example": {
"total": 5,
"currencies": ""
}
},
"phoneList": {
"description": "Phones List",
@@ -8419,7 +8468,11 @@
"required": [
"total",
"phones"
]
],
"example": {
"total": 5,
"phones": ""
}
},
"localeCodeList": {
"description": "Locale codes list",
@@ -8444,7 +8497,11 @@
"required": [
"total",
"localeCodes"
]
],
"example": {
"total": 5,
"localeCodes": ""
}
},
"document": {
"description": "Document",
@@ -8459,17 +8516,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
@@ -8501,7 +8561,23 @@
"$createdAt",
"$updatedAt",
"$permissions"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$sequence": 1,
"$collectionId": "5e5ea5c15117e",
"$databaseId": "5e5ea5c15117e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"read(\"any\")"
],
"username": "john.doe",
"email": "john.doe@example.com",
"fullName": "John Doe",
"age": 30,
"isAdmin": false
}
},
"log": {
"description": "Log",
@@ -8635,7 +8711,30 @@
"deviceModel",
"countryCode",
"countryName"
]
],
"example": {
"event": "account.sessions.create",
"userId": "610fc2f985ee0",
"userEmail": "john@appwrite.io",
"userName": "John Doe",
"mode": "admin",
"ip": "127.0.0.1",
"time": "2020-10-15T06:38:00.000+00:00",
"osCode": "Mac",
"osName": "Mac",
"osVersion": "Mac",
"clientType": "browser",
"clientCode": "CM",
"clientName": "Chrome Mobile iOS",
"clientVersion": "84.0",
"clientEngine": "WebKit",
"clientEngineVersion": "605.1.15",
"deviceName": "smartphone",
"deviceBrand": "Google",
"deviceModel": "Nexus 5",
"countryCode": "US",
"countryName": "United States"
}
},
"user": {
"description": "User",
@@ -8798,7 +8897,33 @@
"prefs",
"targets",
"accessedAt"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "John Doe",
"password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE",
"hash": "argon2",
"hashOptions": {},
"registration": "2020-10-15T06:38:00.000+00:00",
"status": true,
"labels": [
"vip"
],
"passwordUpdate": "2020-10-15T06:38:00.000+00:00",
"email": "john@appwrite.io",
"phone": "+4930901820",
"emailVerification": true,
"phoneVerification": true,
"mfa": true,
"prefs": {
"theme": "pink",
"timezone": "UTC"
},
"targets": [],
"accessedAt": "2020-10-15T06:38:00.000+00:00"
}
},
"algoMd5": {
"description": "AlgoMD5",
@@ -8812,7 +8937,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "md5"
}
},
"algoSha": {
"description": "AlgoSHA",
@@ -8826,7 +8954,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "sha"
}
},
"algoPhpass": {
"description": "AlgoPHPass",
@@ -8840,7 +8971,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "phpass"
}
},
"algoBcrypt": {
"description": "AlgoBcrypt",
@@ -8854,7 +8988,10 @@
},
"required": [
"type"
]
],
"example": {
"type": "bcrypt"
}
},
"algoScrypt": {
"description": "AlgoScrypt",
@@ -8896,7 +9033,14 @@
"costMemory",
"costParallel",
"length"
]
],
"example": {
"type": "scrypt",
"costCpu": 8,
"costMemory": 14,
"costParallel": 1,
"length": 64
}
},
"algoScryptModified": {
"description": "AlgoScryptModified",
@@ -8928,7 +9072,13 @@
"salt",
"saltSeparator",
"signerKey"
]
],
"example": {
"type": "scryptMod",
"salt": "UxLMreBr6tYyjQ==",
"saltSeparator": "Bw==",
"signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ=="
}
},
"algoArgon2": {
"description": "AlgoArgon2",
@@ -8963,12 +9113,23 @@
"memoryCost",
"timeCost",
"threads"
]
],
"example": {
"type": "argon2",
"memoryCost": 65536,
"timeCost": 4,
"threads": 3
}
},
"preferences": {
"description": "Preferences",
"type": "object",
"additionalProperties": true
"additionalProperties": true,
"example": {
"language": "en",
"timezone": "UTC",
"darkTheme": true
}
},
"session": {
"description": "Session",
@@ -9155,7 +9316,40 @@
"factors",
"secret",
"mfaUpdatedAt"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5bb8c16897e",
"expire": "2020-10-15T06:38:00.000+00:00",
"provider": "email",
"providerUid": "user@example.com",
"providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
"providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"ip": "127.0.0.1",
"osCode": "Mac",
"osName": "Mac",
"osVersion": "Mac",
"clientType": "browser",
"clientCode": "CM",
"clientName": "Chrome Mobile iOS",
"clientVersion": "84.0",
"clientEngine": "WebKit",
"clientEngineVersion": "605.1.15",
"deviceName": "smartphone",
"deviceBrand": "Google",
"deviceModel": "Nexus 5",
"countryCode": "US",
"countryName": "United States",
"current": true,
"factors": [
"email"
],
"secret": "5e5bb8c16897e",
"mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00"
}
},
"identity": {
"description": "Identity",
@@ -9223,7 +9417,19 @@
"providerAccessToken",
"providerAccessTokenExpiry",
"providerRefreshToken"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5bb8c16897e",
"provider": "email",
"providerUid": "5e5bb8c16897e",
"providerEmail": "user@example.com",
"providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
"providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00",
"providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3"
}
},
"token": {
"description": "Token",
@@ -9267,7 +9473,15 @@
"secret",
"expire",
"phrase"
]
],
"example": {
"$id": "bb8ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c168bb8",
"secret": "",
"expire": "2020-10-15T06:38:00.000+00:00",
"phrase": "Golden Fox"
}
},
"jwt": {
"description": "JWT",
@@ -9281,7 +9495,10 @@
},
"required": [
"jwt"
]
],
"example": {
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
},
"locale": {
"description": "Locale",
@@ -9331,7 +9548,16 @@
"continent",
"eu",
"currency"
]
],
"example": {
"ip": "127.0.0.1",
"countryCode": "US",
"country": "United States",
"continentCode": "NA",
"continent": "North America",
"eu": false,
"currency": "USD"
}
},
"localeCode": {
"description": "LocaleCode",
@@ -9351,7 +9577,11 @@
"required": [
"code",
"name"
]
],
"example": {
"code": "en-us",
"name": "US"
}
},
"file": {
"description": "File",
@@ -9433,7 +9663,22 @@
"sizeOriginal",
"chunksTotal",
"chunksUploaded"
]
],
"example": {
"$id": "5e5ea5c16897e",
"bucketId": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"read(\"any\")"
],
"name": "Pink.png",
"signature": "5d529fd02b544198ae075bd57c1762bb",
"mimeType": "image\/png",
"sizeOriginal": 17890,
"chunksTotal": 17890,
"chunksUploaded": 17890
}
},
"team": {
"description": "Team",
@@ -9485,7 +9730,18 @@
"name",
"total",
"prefs"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "VIP",
"total": 7,
"prefs": {
"theme": "pink",
"timezone": "UTC"
}
}
},
"membership": {
"description": "Membership",
@@ -9576,7 +9832,24 @@
"confirm",
"mfa",
"roles"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c16897e",
"userName": "John Doe",
"userEmail": "john@appwrite.io",
"teamId": "5e5ea5c16897e",
"teamName": "VIP",
"invited": "2020-10-15T06:38:00.000+00:00",
"joined": "2020-10-15T06:38:00.000+00:00",
"confirm": false,
"mfa": false,
"roles": [
"owner"
]
}
},
"execution": {
"description": "Execution",
@@ -9709,7 +9982,36 @@
"logs",
"errors",
"duration"
]
],
"example": {
"$id": "5e5ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"$permissions": [
"any"
],
"functionId": "5e5ea6g16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
"requestPath": "\/articles?id=5",
"requestHeaders": [
{
"Content-Type": "application\/json"
}
],
"responseStatusCode": 200,
"responseBody": "",
"responseHeaders": [
{
"Content-Type": "application\/json"
}
],
"logs": "",
"errors": "",
"duration": 0.4,
"scheduledAt": "2020-10-15T06:38:00.000+00:00"
}
},
"country": {
"description": "Country",
@@ -9729,7 +10031,11 @@
"required": [
"name",
"code"
]
],
"example": {
"name": "United States",
"code": "US"
}
},
"continent": {
"description": "Continent",
@@ -9749,7 +10055,11 @@
"required": [
"name",
"code"
]
],
"example": {
"name": "Europe",
"code": "EU"
}
},
"language": {
"description": "Language",
@@ -9775,7 +10085,12 @@
"name",
"code",
"nativeName"
]
],
"example": {
"name": "Italian",
"code": "it",
"nativeName": "Italiano"
}
},
"currency": {
"description": "Currency",
@@ -9827,7 +10142,16 @@
"rounding",
"code",
"namePlural"
]
],
"example": {
"symbol": "$",
"name": "US dollar",
"symbolNative": "$",
"decimalDigits": 2,
"rounding": 0,
"code": "USD",
"namePlural": "US dollars"
}
},
"phone": {
"description": "Phone",
@@ -9853,7 +10177,12 @@
"code",
"countryCode",
"countryName"
]
],
"example": {
"code": "+1",
"countryCode": "US",
"countryName": "United States"
}
},
"headers": {
"description": "Headers",
@@ -9873,7 +10202,11 @@
"required": [
"name",
"value"
]
],
"example": {
"name": "Content-Type",
"value": "application\/json"
}
},
"mfaChallenge": {
"description": "MFA Challenge",
@@ -9905,7 +10238,13 @@
"$createdAt",
"userId",
"expire"
]
],
"example": {
"$id": "bb8ea5c16897e",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"userId": "5e5ea5c168bb8",
"expire": "2020-10-15T06:38:00.000+00:00"
}
},
"mfaRecoveryCodes": {
"description": "MFA Recovery Codes",
@@ -9925,7 +10264,13 @@
},
"required": [
"recoveryCodes"
]
],
"example": {
"recoveryCodes": [
"a3kf0-s0cl2",
"s0co1-as98s"
]
}
},
"mfaType": {
"description": "MFAType",
@@ -9945,7 +10290,11 @@
"required": [
"secret",
"uri"
]
],
"example": {
"secret": true,
"uri": true
}
},
"mfaFactors": {
"description": "MFAFactors",
@@ -9977,7 +10326,13 @@
"phone",
"email",
"recoveryCode"
]
],
"example": {
"totp": true,
"phone": true,
"email": true,
"recoveryCode": true
}
},
"subscriber": {
"description": "Subscriber",
@@ -10052,7 +10407,27 @@
"userName",
"topicId",
"providerType"
]
],
"example": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"targetId": "259125845563242502",
"target": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"providerType": "email",
"providerId": "259125845563242502",
"name": "ageon-app-email",
"identifier": "random-mail@email.org",
"userId": "5e5ea5c16897e"
},
"userId": "5e5ea5c16897e",
"userName": "Aegon Targaryen",
"topicId": "259125845563242502",
"providerType": "email"
}
},
"target": {
"description": "Target",
@@ -10114,7 +10489,18 @@
"providerType",
"identifier",
"expired"
]
],
"example": {
"$id": "259125845563242502",
"$createdAt": "2020-10-15T06:38:00.000+00:00",
"$updatedAt": "2020-10-15T06:38:00.000+00:00",
"name": "Apple iPhone 12",
"userId": "259125845563242502",
"providerId": "259125845563242502",
"providerType": "email",
"identifier": "token",
"expired": false
}
}
},
"externalDocs": {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -8999,17 +8999,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
+12 -3
View File
@@ -44308,17 +44308,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
@@ -50232,6 +50235,11 @@
"description": "AAAA target for your Appwrite custom domains.",
"x-example": "::1"
},
"_APP_DOMAIN_TARGET_CAA": {
"type": "string",
"description": "CAA target for your Appwrite custom domains.",
"x-example": "digicert.com"
},
"_APP_STORAGE_LIMIT": {
"type": "integer",
"description": "Maximum file size allowed for file upload in bytes.",
@@ -50289,6 +50297,7 @@
"_APP_DOMAIN_TARGET_CNAME",
"_APP_DOMAIN_TARGET_A",
"_APP_DOMAIN_TARGET_AAAA",
"_APP_DOMAIN_TARGET_CAA",
"_APP_STORAGE_LIMIT",
"_APP_COMPUTE_SIZE_LIMIT",
"_APP_USAGE_STATS",
+6 -3
View File
@@ -33889,17 +33889,20 @@
"type": "integer",
"description": "Document automatically incrementing ID.",
"x-example": 1,
"format": "int32"
"format": "int32",
"readOnly": true
},
"$collectionId": {
"type": "string",
"description": "Collection ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$databaseId": {
"type": "string",
"description": "Database ID.",
"x-example": "5e5ea5c15117e"
"x-example": "5e5ea5c15117e",
"readOnly": true
},
"$createdAt": {
"type": "string",
+2 -2
View File
@@ -473,13 +473,13 @@ return [
'frameworks' => [
getFramework('FLUTTER', [
'providerRootDirectory' => './',
'buildCommand' => 'bash build.sh',
'buildCommand' => 'bash prepare-env.sh && flutter build web',
]),
],
'vcsProvider' => 'github',
'providerRepositoryId' => 'starter-for-flutter',
'providerOwner' => 'appwrite',
'providerVersion' => '0.1.*',
'providerVersion' => '0.2.*',
'variables' => [
[
'name' => 'APPWRITE_PUBLIC_ENDPOINT',
+18
View File
@@ -151,6 +151,24 @@ return [
'question' => '',
'filter' => ''
],
[
'name' => '_APP_DOMAIN_TARGET_CAA',
'description' => 'A CAA record domain that can be used to validate custom domains. Value should be domain\'s hostname.',
'introduction' => '',
'default' => '',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_DNS',
'description' => 'DNS server to use for domain validation. Default: 8.8.8.8',
'introduction' => '',
'default' => '8.8.8.8',
'required' => false,
'question' => '',
'filter' => ''
],
[
'name' => '_APP_CONSOLE_WHITELIST_ROOT',
'description' => 'This option allows you to disable the creation of new users on the Appwrite console. When enabled only 1 user will be able to use the registration form. New users can be added by inviting them to your project. By default this option is enabled.',
+33 -9
View File
@@ -10,6 +10,7 @@ use Appwrite\URL\URL as URLParse;
use Appwrite\Utopia\Response;
use chillerlan\QRCode\QRCode;
use chillerlan\QRCode\QROptions;
use enshrined\svgSanitize\Sanitizer as SvgSanitizer;
use Utopia\App;
use Utopia\Config\Config;
use Utopia\Database\Database;
@@ -362,7 +363,8 @@ App::get('/v1/avatars/favicon')
$client = new Client();
try {
$res = $client
->setAllowRedirects(false)
->setAllowRedirects(true)
->setMaxRedirects(5)
->setUserAgent(\sprintf(
APP_USERAGENT,
System::getEnv('_APP_VERSION', 'UNKNOWN'),
@@ -373,15 +375,11 @@ App::get('/v1/avatars/favicon')
throw new Exception(Exception::AVATAR_REMOTE_URL_FAILED);
}
if ($res->getStatusCode() !== 200) {
throw new Exception(Exception::AVATAR_REMOTE_URL_FAILED);
}
$doc = new DOMDocument();
$doc->strictErrorChecking = false;
@$doc->loadHTML($res->getBody());
$links = $doc->getElementsByTagName('link');
$links = $doc->getElementsByTagName('link') ?? [];
$outputHref = '';
$outputExt = '';
$space = 0;
@@ -399,6 +397,12 @@ App::get('/v1/avatars/favicon')
$ext = \pathinfo(\parse_url($absolute, PHP_URL_PATH), PATHINFO_EXTENSION);
switch ($ext) {
case 'svg':
// SVG icons are prioritized by assigning the maximum possible value.
$space = PHP_INT_MAX;
$outputHref = $absolute;
$outputExt = $ext;
break;
case 'ico':
case 'png':
case 'jpg':
@@ -437,7 +441,8 @@ App::get('/v1/avatars/favicon')
$client = new Client();
try {
$res = $client
->setAllowRedirects(false)
->setAllowRedirects(true)
->setMaxRedirects(5)
->fetch($outputHref);
} catch (\Throwable) {
throw new Exception(Exception::AVATAR_REMOTE_URL_FAILED);
@@ -449,14 +454,33 @@ App::get('/v1/avatars/favicon')
$data = $res->getBody();
if ('ico' == $outputExt) { // Skip crop, Imagick isn\'t supporting icon files
if (empty($data) || (\mb_substr($data, 0, 5) === '<html') || \mb_substr($data, 0, 5) === '<!doc') {
if ('ico' === $outputExt) { // Skip crop, Imagick isn\'t supporting icon files
if (
empty($data) ||
stripos($data, '<html') === 0 ||
stripos($data, '<!doc') === 0
) {
throw new Exception(Exception::AVATAR_ICON_NOT_FOUND, 'Favicon not found');
}
$response
->addHeader('Cache-Control', 'private, max-age=2592000') // 30 days
->setContentType('image/x-icon')
->file($data);
return;
}
if ('svg' === $outputExt) { // Skip crop, Imagick isn\'t supporting svg files
$sanitizer = new SvgSanitizer();
$sanitizer->minify(true);
$cleanSvg = $sanitizer->sanitize($data);
if ($cleanSvg === false) {
throw new \Exception('SVG sanitization failed');
}
$response
->addHeader('Cache-Control', 'private, max-age=2592000') // 30 days
->setContentType('image/svg+xml')
->file($cleanSvg);
return;
}
$image = new Image($data);
+2
View File
@@ -71,6 +71,8 @@ App::get('/v1/console/variables')
'_APP_DOMAIN_TARGET_CNAME' => System::getEnv('_APP_DOMAIN_TARGET_CNAME'),
'_APP_DOMAIN_TARGET_AAAA' => System::getEnv('_APP_DOMAIN_TARGET_AAAA'),
'_APP_DOMAIN_TARGET_A' => System::getEnv('_APP_DOMAIN_TARGET_A'),
// Combine CAA domain with most common flags and tag (no parameters)
'_APP_DOMAIN_TARGET_CAA' => '0 issue "' . System::getEnv('_APP_DOMAIN_TARGET_CAA') . '"',
'_APP_STORAGE_LIMIT' => +System::getEnv('_APP_STORAGE_LIMIT'),
'_APP_COMPUTE_SIZE_LIMIT' => +System::getEnv('_APP_COMPUTE_SIZE_LIMIT'),
'_APP_USAGE_STATS' => System::getEnv('_APP_USAGE_STATS'),
+2
View File
@@ -2268,6 +2268,8 @@ App::get('/v1/projects/:projectId/templates/email/:type/:locale')
$template = $templates['email.' . $type . '-' . $locale] ?? null;
$localeObj = new Locale($locale);
$localeObj->setFallback(System::getEnv('_APP_LOCALE', 'en'));
if (is_null($template)) {
/**
* different templates, different placeholders.
+13
View File
@@ -286,6 +286,19 @@ App::patch('/v1/proxy/rules/:ruleId/verification')
throw new Exception(Exception::RULE_VERIFICATION_FAILED);
}
// Ensure CAA won't block certificate issuance
if (!empty(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''))) {
$validationStart = \microtime(true);
$validator = new DNS(System::getEnv('_APP_DOMAIN_TARGET_CAA', ''), DNS::RECORD_CAA);
if (!$validator->isValid($domain->get())) {
$log->addExtra('dnsTimingCaa', \strval(\microtime(true) - $validationStart));
$log->addTag('dnsDomain', $domain->get());
$error = $validator->getDescription();
$log->addExtra('dnsResponse', \is_array($error) ? \json_encode($error) : \strval($error));
throw new Exception(Exception::RULE_VERIFICATION_FAILED, 'Domain verification failed because CAA records do not allow Appwrite\'s certificate issuer.');
}
}
$dbForPlatform->updateDocument('rules', $rule->getId(), $rule->setAttribute('status', 'verifying'));
// Issue a TLS certificate when domain is verified
+14 -9
View File
@@ -643,15 +643,20 @@ App::get('/v1/users')
$cursor->setValue($cursorDocument);
}
$filterQueries = Query::groupByType($queries)['filters'];
try {
$users = $dbForProject->find('users', $queries);
$total = $dbForProject->count('users', $filterQueries, APP_LIMIT_COUNT);
} catch (OrderException $e) {
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
} catch (QueryException $e) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
}
$users = [];
$total = 0;
$dbForProject->skipFilters(function () use ($dbForProject, $queries, &$users, &$total) {
try {
$users = $dbForProject->find('users', $queries);
$total = $dbForProject->count('users', $queries, APP_LIMIT_COUNT);
} catch (OrderException $e) {
throw new Exception(Exception::DATABASE_QUERY_ORDER_NULL, "The order attribute '{$e->getAttribute()}' had a null value. Cursor pagination requires all documents order attribute values are non-null.");
} catch (QueryException $e) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $e->getMessage());
}
}, ['subQueryAuthenticators', 'subQuerySessions', 'subQueryTokens', 'subQueryChallenges', 'subQueryMemberships']);
$response->dynamic(new Document([
'users' => $users,
'total' => $total,
+14 -4
View File
@@ -1038,11 +1038,19 @@ App::init()
/**
* Deprecation Warning
*/
/** @var \Appwrite\SDK\Method $sdk */
$sdk = $route->getLabel('sdk', false);
$deprecationWarning = 'This route is deprecated. See the updated documentation for improved compatibility and migration details.';
$sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []);
foreach ($sdkItems as $sdkItem) {
if ($sdkItem->isDeprecated()) {
if (!empty($sdkItems) && count($sdkItems) > 0) {
$allDeprecated = true;
foreach ($sdkItems as $sdkItem) {
if (!$sdkItem->isDeprecated()) {
$allDeprecated = false;
break;
}
}
if ($allDeprecated) {
$warnings[] = $deprecationWarning;
}
}
@@ -1407,9 +1415,10 @@ App::get('/robots.txt')
->inject('apiKey')
->action(function (App $utopia, SwooleRequest $swooleRequest, Request $request, Response $response, Log $log, Database $dbForPlatform, callable $getProjectDB, Event $queueForEvents, StatsUsage $queueForStatsUsage, Func $queueForFunctions, Executor $executor, Reader $geodb, callable $isResourceBlocked, string $previewHostname, ?Key $apiKey) {
$host = $request->getHostname() ?? '';
$consoleDomain = System::getEnv('_APP_CONSOLE_DOMAIN', '');
$mainDomain = System::getEnv('_APP_DOMAIN', '');
if (($host === $mainDomain || $host === 'localhost') && empty($previewHostname)) {
if (($host === $consoleDomain || $host === $mainDomain || $host === 'localhost') && empty($previewHostname)) {
$template = new View(__DIR__ . '/../views/general/robots.phtml');
$response->text($template->render(false));
} else {
@@ -1440,9 +1449,10 @@ App::get('/humans.txt')
->inject('apiKey')
->action(function (App $utopia, SwooleRequest $swooleRequest, Request $request, Response $response, Log $log, Database $dbForPlatform, callable $getProjectDB, Event $queueForEvents, StatsUsage $queueForStatsUsage, Func $queueForFunctions, Executor $executor, Reader $geodb, callable $isResourceBlocked, string $previewHostname, ?Key $apiKey) {
$host = $request->getHostname() ?? '';
$consoleDomain = System::getEnv('_APP_CONSOLE_DOMAIN', '');
$mainDomain = System::getEnv('_APP_DOMAIN', '');
if (($host === $mainDomain || $host === 'localhost') && empty($previewHostname)) {
if (($host === $consoleDomain || $host === $mainDomain || $host === 'localhost') && empty($previewHostname)) {
$template = new View(__DIR__ . '/../views/general/humans.phtml');
$response->text($template->render(false));
} else {

Some files were not shown because too many files have changed in this diff Show More