mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Compare commits
280
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d18a67e6d8 | ||
|
|
25d44b5b4c | ||
|
|
ee7de0cb41 | ||
|
|
28642b9f04 | ||
|
|
c18308c024 | ||
|
|
1eafbf2ee2 | ||
|
|
b98bcdd4a1 | ||
|
|
4c8cd5b6c6 | ||
|
|
5b37a91b46 | ||
|
|
52647cef23 | ||
|
|
11ec31aefb | ||
|
|
73ca1efbeb | ||
|
|
340aa48d93 | ||
|
|
603430a013 | ||
|
|
92fea47bf4 | ||
|
|
f47af1626c | ||
|
|
672dfd9a26 | ||
|
|
e8c303e3cd | ||
|
|
0d451ec123 | ||
|
|
a52626e5d3 | ||
|
|
8ff72b341e | ||
|
|
a23402075e | ||
|
|
b5fad9f234 | ||
|
|
7669f2c485 | ||
|
|
0a18f77e68 | ||
|
|
2b9f3c4638 | ||
|
|
8eb707be2c | ||
|
|
ae7b004b26 | ||
|
|
6a4fa91aac | ||
|
|
324d615536 | ||
|
|
71cfdd74f1 | ||
|
|
8e7cc6ed14 | ||
|
|
6410b2062c | ||
|
|
314b27493f | ||
|
|
8f0294f9cb | ||
|
|
6b86ed0117 | ||
|
|
7ca654d35e | ||
|
|
203b6e7b56 | ||
|
|
7e13e380f1 | ||
|
|
d900e88e7e | ||
|
|
ab7f0b1348 | ||
|
|
085efb02c5 | ||
|
|
e2a45cec8e | ||
|
|
8f608e205f | ||
|
|
3a91fee41b | ||
|
|
4801fb816a | ||
|
|
32a1aaca24 | ||
|
|
7be4196a58 | ||
|
|
b0441e5465 | ||
|
|
f5571b4caa | ||
|
|
906de6a802 | ||
|
|
5ddc705099 | ||
|
|
58aa2b0571 | ||
|
|
00fc34a2a4 | ||
|
|
52c63248dd | ||
|
|
ad2e53920f | ||
|
|
29e169fe95 | ||
|
|
e31bae7644 | ||
|
|
fddfcac0ea | ||
|
|
f46e210000 | ||
|
|
85fa7268b5 | ||
|
|
e33a035a81 | ||
|
|
35a3542a9b | ||
|
|
d1fbf8f571 | ||
|
|
cb9e5bd0ae | ||
|
|
4809f49aeb | ||
|
|
6590d13fca | ||
|
|
4034598b1c | ||
|
|
faf184f86e | ||
|
|
e21165f216 | ||
|
|
4eee8689d3 | ||
|
|
4b1bf59091 | ||
|
|
b98102dc46 | ||
|
|
3792f816ad | ||
|
|
58ba4f391f | ||
|
|
2ef358e8dc | ||
|
|
088ef769a5 | ||
|
|
80769a0b65 | ||
|
|
5aa944ee82 | ||
|
|
262c9a10f7 | ||
|
|
4ce737e914 | ||
|
|
17c708a056 | ||
|
|
497272622e | ||
|
|
483ef3c00b | ||
|
|
eacd965ae3 | ||
|
|
ada1746466 | ||
|
|
278fdf5823 | ||
|
|
8222aa74ca | ||
|
|
a710e9bfe4 | ||
|
|
f3ad9a3f81 | ||
|
|
d98e04cf63 | ||
|
|
60fd178ea6 | ||
|
|
0988fd7581 | ||
|
|
f17a9357fb | ||
|
|
d84d227c2b | ||
|
|
169629de9a | ||
|
|
e74a5cbf6e | ||
|
|
c55cab7dd9 | ||
|
|
555579be92 | ||
|
|
f32cfa6827 | ||
|
|
343052eb90 | ||
|
|
98f0f86fa6 | ||
|
|
b2468a60f0 | ||
|
|
1539fc2b7c | ||
|
|
ae87033974 | ||
|
|
04ae166e54 | ||
|
|
ec2eb2bfa3 | ||
|
|
10adfc5124 | ||
|
|
dc07b5d028 | ||
|
|
78688a3d76 | ||
|
|
636497304e | ||
|
|
8dbf887ab1 | ||
|
|
1a860e846f | ||
|
|
10444ab7c6 | ||
|
|
e030ec6e3e | ||
|
|
b9b48e7b91 | ||
|
|
8e5779c168 | ||
|
|
0df347d670 | ||
|
|
66bf7086e6 | ||
|
|
556d30a9fb | ||
|
|
c63b1785ed | ||
|
|
827ad1446b | ||
|
|
4ad987e4ef | ||
|
|
ef203dc075 | ||
|
|
83cb303f03 | ||
|
|
dc9f06976c | ||
|
|
3a3a0594dc | ||
|
|
c6489d172f | ||
|
|
13027fac5b | ||
|
|
34b2e15243 | ||
|
|
9ccf4991e3 | ||
|
|
01fc6a699a | ||
|
|
d19141fc6a | ||
|
|
e9cfd0ac8b | ||
|
|
e5af708dbc | ||
|
|
d33048b792 | ||
|
|
92bc795d7a | ||
|
|
e88b7742c6 | ||
|
|
6cf10fa43f | ||
|
|
7f8656be6f | ||
|
|
592ada23d0 | ||
|
|
ae3bcb2efe | ||
|
|
6a406454ba | ||
|
|
8764a7491a | ||
|
|
ba43358ac4 | ||
|
|
5f7aae0e60 | ||
|
|
4952608b8d | ||
|
|
72f8b2001f | ||
|
|
991a22f642 | ||
|
|
ea95e80cbf | ||
|
|
95e463a7ae | ||
|
|
441811e808 | ||
|
|
ee6137db3d | ||
|
|
eb36ae5c61 | ||
|
|
dbfae94552 | ||
|
|
e3bc1887a4 | ||
|
|
42ebefef92 | ||
|
|
65a4a3bbfa | ||
|
|
691ce68636 | ||
|
|
c5e788c2ef | ||
|
|
868e57a9a3 | ||
|
|
e0779013d0 | ||
|
|
1febae5e03 | ||
|
|
12813a2f29 | ||
|
|
0dc553f31d | ||
|
|
076f718203 | ||
|
|
a93dcfa1b3 | ||
|
|
4b24848f22 | ||
|
|
2e187107da | ||
|
|
120b5aee47 | ||
|
|
349b78d5e5 | ||
|
|
3dcd1314f5 | ||
|
|
4c8d5d2c89 | ||
|
|
4fd94fd7b1 | ||
|
|
03d33601b0 | ||
|
|
84d9b4befe | ||
|
|
cd60f3d302 | ||
|
|
4bedb2f52a | ||
|
|
3f42b03f8e | ||
|
|
df6b39c9d0 | ||
|
|
d2a2caedbd | ||
|
|
897ae1c859 | ||
|
|
eca2bbdb5d | ||
|
|
190560b8ef | ||
|
|
f91a8a9135 | ||
|
|
0376189dbc | ||
|
|
9113f265b7 | ||
|
|
d8b893c7c9 | ||
|
|
94330cd539 | ||
|
|
98ca5faef1 | ||
|
|
83d093805f | ||
|
|
e195018abd | ||
|
|
a4c1275764 | ||
|
|
3c123d372a | ||
|
|
26413566dc | ||
|
|
c179e89fdf | ||
|
|
00a633759e | ||
|
|
4a168f6948 | ||
|
|
a09a09a7a9 | ||
|
|
7e3070a4b2 | ||
|
|
e58e849504 | ||
|
|
c87a6a863b | ||
|
|
f44ed18b05 | ||
|
|
131de2ea7a | ||
|
|
ec69507818 | ||
|
|
9e487b8ccf | ||
|
|
a34ec72048 | ||
|
|
035144d1ff | ||
|
|
c7157b3692 | ||
|
|
37a1c804b5 | ||
|
|
cdf7e1a8dc | ||
|
|
930ae6ded0 | ||
|
|
ff6efc2855 | ||
|
|
485b8eeb8b | ||
|
|
cccda2a46c | ||
|
|
f06e19d8fa | ||
|
|
eb28841cb1 | ||
|
|
e2c6c61083 | ||
|
|
a9cee074be | ||
|
|
1f6417b156 | ||
|
|
5b3a3d5bf9 | ||
|
|
a823bca463 | ||
|
|
fef769271f | ||
|
|
f459a5c458 | ||
|
|
026933ff74 | ||
|
|
f762d66c5e | ||
|
|
66ac96580b | ||
|
|
37da4a0cd3 | ||
|
|
b54a599960 | ||
|
|
52f5a5c40c | ||
|
|
e28224976a | ||
|
|
1a42d118f6 | ||
|
|
c07c7889d3 | ||
|
|
065dfa6663 | ||
|
|
61336be50d | ||
|
|
64e0c88349 | ||
|
|
e91a532e74 | ||
|
|
ab4401992c | ||
|
|
72cca45d6d | ||
|
|
c6a520909e | ||
|
|
fd7c6a6a71 | ||
|
|
065b5f4858 | ||
|
|
4b5e86cc05 | ||
|
|
2f8380e97d | ||
|
|
d4db55ab77 | ||
|
|
c109dcc683 | ||
|
|
1c79ccd231 | ||
|
|
2b8bf3b252 | ||
|
|
bbb4b0bc12 | ||
|
|
00c047d804 | ||
|
|
e19b465ce2 | ||
|
|
ade0472a5f | ||
|
|
4ed125f7c8 | ||
|
|
a895ce4270 | ||
|
|
a2ef77f0f5 | ||
|
|
c996dbcdc9 | ||
|
|
a22d98296c | ||
|
|
fcbab74f04 | ||
|
|
2621d948c6 | ||
|
|
2414438ded | ||
|
|
87cf7776df | ||
|
|
c29fc5e72e | ||
|
|
8aabb92fda | ||
|
|
e1ac0d622e | ||
|
|
dae9cb995c | ||
|
|
cc3f975101 | ||
|
|
12e4f49cba | ||
|
|
1d9f5fa29d | ||
|
|
14a0dd3166 | ||
|
|
be1c147658 | ||
|
|
b61e0f08f6 | ||
|
|
70eb56a388 | ||
|
|
a67c6bfacb | ||
|
|
5e12eaa2e3 | ||
|
|
8c008df1a9 | ||
|
|
8fe6ce64b2 | ||
|
|
4d15e0dbd2 | ||
|
|
00c45c2507 | ||
|
|
3a35412bf8 | ||
|
|
4f67db160b |
@@ -9,7 +9,8 @@ _APP_CONSOLE_COUNTRIES_DENYLIST=AQ
|
||||
_APP_CONSOLE_HOSTNAMES=localhost,appwrite.io,*.appwrite.io
|
||||
_APP_SYSTEM_EMAIL_NAME=Appwrite
|
||||
_APP_SYSTEM_EMAIL_ADDRESS=team@appwrite.io
|
||||
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=security@appwrite.io
|
||||
_APP_EMAIL_SECURITY=security@appwrite.io
|
||||
_APP_EMAIL_CERTIFICATES=certificates@appwrite.io
|
||||
_APP_SYSTEM_RESPONSE_FORMAT=
|
||||
_APP_OPTIONS_ABUSE=disabled
|
||||
_APP_OPTIONS_ROUTER_PROTECTION=disabled
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
name: PR Security Scan
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: 'recursive'
|
||||
- name: Build the Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: false
|
||||
load: true
|
||||
tags: pr_image:${{ github.sha }}
|
||||
- name: Run Trivy vulnerability scanner on image
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
image-ref: 'pr_image:${{ github.sha }}'
|
||||
format: 'json'
|
||||
output: 'trivy-image-results.json'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
- name: Run Trivy vulnerability scanner on source code
|
||||
uses: aquasecurity/trivy-action@0.20.0
|
||||
with:
|
||||
scan-type: 'fs'
|
||||
scan-ref: '.'
|
||||
format: 'json'
|
||||
output: 'trivy-fs-results.json'
|
||||
severity: 'CRITICAL,HIGH'
|
||||
- name: Process and post Trivy scan results
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
let commentBody = '## Security Scan Results for PR\n\n';
|
||||
|
||||
function processResults(results, title) {
|
||||
let sectionBody = `### ${title}\n\n`;
|
||||
if (results.Results && results.Results.some(result => result.Vulnerabilities && result.Vulnerabilities.length > 0)) {
|
||||
sectionBody += '| Package | Version | Vulnerability | Severity |\n';
|
||||
sectionBody += '|---------|---------|----------------|----------|\n';
|
||||
|
||||
const uniqueVulns = new Set();
|
||||
results.Results.forEach(result => {
|
||||
if (result.Vulnerabilities) {
|
||||
result.Vulnerabilities.forEach(vuln => {
|
||||
const vulnKey = `${vuln.PkgName}-${vuln.InstalledVersion}-${vuln.VulnerabilityID}`;
|
||||
if (!uniqueVulns.has(vulnKey)) {
|
||||
uniqueVulns.add(vulnKey);
|
||||
sectionBody += `| ${vuln.PkgName} | ${vuln.InstalledVersion} | [${vuln.VulnerabilityID}](https://nvd.nist.gov/vuln/detail/${vuln.VulnerabilityID}) | ${vuln.Severity} |\n`;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sectionBody += '🎉 No vulnerabilities found!\n';
|
||||
}
|
||||
return sectionBody;
|
||||
}
|
||||
|
||||
try {
|
||||
const imageResults = JSON.parse(fs.readFileSync('trivy-image-results.json', 'utf8'));
|
||||
const fsResults = JSON.parse(fs.readFileSync('trivy-fs-results.json', 'utf8'));
|
||||
|
||||
commentBody += processResults(imageResults, "Docker Image Scan Results");
|
||||
commentBody += '\n';
|
||||
commentBody += processResults(fsResults, "Source Code Scan Results");
|
||||
|
||||
} catch (error) {
|
||||
commentBody += `There was an error while running the security scan: ${error.message}\n`;
|
||||
commentBody += 'Please contact the core team for assistance.';
|
||||
}
|
||||
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: commentBody
|
||||
});
|
||||
@@ -145,3 +145,6 @@ jobs:
|
||||
|
||||
- name: Run ${{matrix.service}} Tests
|
||||
run: docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.service}} --debug
|
||||
|
||||
- name: Run ${{matrix.service}} Shared Tables Tests
|
||||
run: _APP_DATABASE_SHARED_TABLES=database_db_main docker compose exec -T appwrite test /usr/src/code/tests/e2e/Services/${{matrix.service}} --debug
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
[submodule "app/console"]
|
||||
path = app/console
|
||||
url = https://github.com/appwrite/console
|
||||
branch = 4.3.5
|
||||
branch = 4.3.30
|
||||
|
||||
+83
@@ -1,3 +1,86 @@
|
||||
# Version 1.5.10
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Bump console to version 4.3.30 in [#8520](https://github.com/appwrite/appwrite/pull/8520)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix migration stuck at "Starting Data Migration [...]" in [#8519](https://github.com/appwrite/appwrite/pull/8519)
|
||||
|
||||
# Version 1.5.9
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Add Darija (Moroccan Arabic) translation file in [7501](https://github.com/appwrite/appwrite/pull/7501)
|
||||
* Bump console to version 4.3.29 in [8504](https://github.com/appwrite/appwrite/pull/8504)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix domain check in [8472](https://github.com/appwrite/appwrite/pull/8472)
|
||||
* Fix "API must be called in the coroutine" in [8495](https://github.com/appwrite/appwrite/pull/8495)
|
||||
* Bump executor version from 0.5.5 to 0.5.7 in [8502](https://github.com/appwrite/appwrite/pull/8502)
|
||||
|
||||
### Miscellaneous
|
||||
* Add profiler for debugging in [8397](https://github.com/appwrite/appwrite/pull/8397)
|
||||
* Document APIs that don't support redirects in [8233](https://github.com/appwrite/appwrite/pull/8233)
|
||||
|
||||
# Version 1.5.8
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Notable changes
|
||||
|
||||
* Support Twilio messaging service SID in [8222](https://github.com/appwrite/appwrite/pull/8222)
|
||||
* Improve cache performance in [8230](https://github.com/appwrite/appwrite/pull/8230)
|
||||
* Add hk in translations in [8179](https://github.com/appwrite/appwrite/pull/8179)
|
||||
* Update pwd abuse in [8255](https://github.com/appwrite/appwrite/pull/8255)
|
||||
* Remove detailed trace in [8374](https://github.com/appwrite/appwrite/pull/8374)
|
||||
* Remove relationship attributes from realtime event payloads in [8381](https://github.com/appwrite/appwrite/pull/8381)
|
||||
* Sanitize URLs in emails in [8415](https://github.com/appwrite/appwrite/pull/8415)
|
||||
* Bump console to version 4.3.27 in [8482](https://github.com/appwrite/appwrite/pull/8482)
|
||||
|
||||
### Fixes
|
||||
|
||||
* Ensure usage is counted for errors in [8120](https://github.com/appwrite/appwrite/pull/8120)
|
||||
* Fix MFA for OAuth2 only accounts in [8245](https://github.com/appwrite/appwrite/pull/8245)
|
||||
* Delete Expired Targets Per Project in [8239](https://github.com/appwrite/appwrite/pull/8239)
|
||||
* Don't set the target field if the existing target document is false in [8236](https://github.com/appwrite/appwrite/pull/8236)
|
||||
* Disable validation for project DBs during migration in [8298](https://github.com/appwrite/appwrite/pull/8298)
|
||||
* Add `default` to Collection Attributes in Migration in [8271](https://github.com/appwrite/appwrite/pull/8271)
|
||||
* Fix Create bucket endpoint validator for maximum file size in [8275](https://github.com/appwrite/appwrite/pull/8275)
|
||||
* Disable validation for subquery to prevent error in [8297](https://github.com/appwrite/appwrite/pull/8297)
|
||||
* Fix 'Missing required attribute "expire"' on `users.createSession()` in [8308](https://github.com/appwrite/appwrite/pull/8308)
|
||||
* Fix certificate emails in [8292](https://github.com/appwrite/appwrite/pull/8292)
|
||||
* Fix browser-cached deleted file in [8264](https://github.com/appwrite/appwrite/pull/8264)
|
||||
* Fix migration of firebase users [8377](https://github.com/appwrite/appwrite/pull/8377)
|
||||
* Fix `path` for vcs function deployments in [8408](https://github.com/appwrite/appwrite/pull/8408)
|
||||
* Fix calculations in [8431](https://github.com/appwrite/appwrite/pull/8431)
|
||||
* Fix bugs with migrations in [8442](https://github.com/appwrite/appwrite/pull/8442)
|
||||
* Fix queueForUsage not triggering for domain executions in [8463](https://github.com/appwrite/appwrite/pull/8463)
|
||||
* Fix realtime permission change in [8416](https://github.com/appwrite/appwrite/pull/8416)
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
* Bump base image from 0.9.0 to 0.9.1 in [8238](https://github.com/appwrite/appwrite/pull/8238)
|
||||
* Use latest Platform and add Core module in [7936](https://github.com/appwrite/appwrite/pull/7936)
|
||||
* Add Test to Validate Headers aren't Overridden in [8228](https://github.com/appwrite/appwrite/pull/8228)
|
||||
* Fix hyperlink in storage docs in [8269](https://github.com/appwrite/appwrite/pull/8269)
|
||||
* Update cache & database in [8285](https://github.com/appwrite/appwrite/pull/8285)
|
||||
* Fix flaky certificate test in [8316](https://github.com/appwrite/appwrite/pull/8316)
|
||||
* Fix flaky function test in [8317](https://github.com/appwrite/appwrite/pull/8317)
|
||||
* Update account API reference in [8305](https://github.com/appwrite/appwrite/pull/8305)
|
||||
* Update functions API reference in [8346](https://github.com/appwrite/appwrite/pull/8346)
|
||||
* Implement deploymentsStorage metric for projects API in [8258](https://github.com/appwrite/appwrite/pull/8258)
|
||||
* Add new audit events in [8424](https://github.com/appwrite/appwrite/pull/8424)
|
||||
* Move mbSeconds into 1.5.x in [8449](https://github.com/appwrite/appwrite/pull/8449)
|
||||
* Clean projects cache while migrating in [8395](https://github.com/appwrite/appwrite/pull/8395)
|
||||
* Use git tags for function template in [8445](https://github.com/appwrite/appwrite/pull/8445)
|
||||
|
||||
# Version 1.5.7
|
||||
## What's Changed
|
||||
|
||||
|
||||
@@ -497,6 +497,18 @@ If you are in PHP Storm you don't need any plugin. Below are the settings requir
|
||||
2. If needed edit the **dev/xdebug.ini** file to your needs.
|
||||
3. Launch your Appwrite instance while your debugger is listening for connections.
|
||||
|
||||
## Profiling
|
||||
Appwrite uses XDebug [Profiler](https://xdebug.org/docs/profiler) for generating **CacheGrind** files. The generated file would be located in each of the `appwrite` containers inside the `/tmp/xdebug` folder.
|
||||
|
||||
To disable the profiler while debugging remove the `,profiler` mode from the `xdebug.ini` file
|
||||
```diff
|
||||
zend_extension=xdebug
|
||||
|
||||
[xdebug]
|
||||
-xdebug.mode=develop,debug,profile
|
||||
+xdebug.mode=develop,debug
|
||||
```
|
||||
|
||||
### VS Code Launch Configuration
|
||||
|
||||
```json
|
||||
|
||||
+5
-4
@@ -1,4 +1,4 @@
|
||||
FROM composer:2.0 as composer
|
||||
FROM composer:2.0 AS composer
|
||||
|
||||
ARG TESTING=false
|
||||
ENV TESTING=$TESTING
|
||||
@@ -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 --platform=$BUILDPLATFORM node:20.11.0-alpine3.19 as node
|
||||
FROM --platform=$BUILDPLATFORM node:20.11.0-alpine3.19 AS node
|
||||
|
||||
COPY app/console /usr/local/src/console
|
||||
|
||||
@@ -29,7 +29,7 @@ ENV VITE_APPWRITE_GROWTH_ENDPOINT=$VITE_APPWRITE_GROWTH_ENDPOINT
|
||||
RUN npm ci
|
||||
RUN npm run build
|
||||
|
||||
FROM appwrite/base:0.9.0 as final
|
||||
FROM appwrite/base:0.9.1 AS final
|
||||
|
||||
LABEL maintainer="team@appwrite.io"
|
||||
|
||||
@@ -108,9 +108,10 @@ RUN mkdir -p /etc/letsencrypt/live/ && chmod -Rf 755 /etc/letsencrypt/live/
|
||||
|
||||
# Enable Extensions
|
||||
RUN if [ "$DEBUG" == "true" ]; then cp /usr/src/code/dev/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini; fi
|
||||
RUN if [ "$DEBUG" == "true" ]; then mkdir -p /tmp/xdebug; fi
|
||||
RUN if [ "$DEBUG" = "false" ]; then rm -rf /usr/src/code/dev; fi
|
||||
RUN if [ "$DEBUG" = "false" ]; then rm -f /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so; fi
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
CMD [ "php", "app/http.php" ]
|
||||
CMD [ "php", "app/http.php" ]
|
||||
|
||||
+3
-3
@@ -67,7 +67,7 @@ docker run -it --rm \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
### Windows
|
||||
@@ -79,7 +79,7 @@ docker run -it --rm ^
|
||||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
@@ -89,7 +89,7 @@ docker run -it --rm `
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
|
||||
|
||||
@@ -75,7 +75,7 @@ docker run -it --rm \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
### Windows
|
||||
@@ -87,7 +87,7 @@ docker run -it --rm ^
|
||||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
@@ -97,7 +97,7 @@ docker run -it --rm `
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock `
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
|
||||
--entrypoint="install" `
|
||||
appwrite/appwrite:1.5.7
|
||||
appwrite/appwrite:1.5.10
|
||||
```
|
||||
|
||||
Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation.
|
||||
|
||||
+5
-5
@@ -108,8 +108,9 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole,
|
||||
|
||||
if (isset($databases[$dsn->getHost()])) {
|
||||
$database = $databases[$dsn->getHost()];
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if ($dsn->getHost() === DATABASE_SHARED_TABLES) {
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant($project->getInternalId())
|
||||
@@ -130,10 +131,10 @@ CLI::setResource('getProjectDB', function (Group $pools, Database $dbForConsole,
|
||||
->getResource();
|
||||
|
||||
$database = new Database($dbAdapter, $cache);
|
||||
|
||||
$databases[$dsn->getHost()] = $database;
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if ($dsn->getHost() === DATABASE_SHARED_TABLES) {
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant($project->getInternalId())
|
||||
@@ -185,7 +186,6 @@ CLI::setResource('logError', function (Registry $register) {
|
||||
$log->addExtra('file', $error->getFile());
|
||||
$log->addExtra('line', $error->getLine());
|
||||
$log->addExtra('trace', $error->getTraceAsString());
|
||||
$log->addExtra('detailedTrace', $error->getTrace());
|
||||
|
||||
$log->setAction($action);
|
||||
|
||||
@@ -202,7 +202,7 @@ CLI::setResource('logError', function (Registry $register) {
|
||||
}, ['register']);
|
||||
|
||||
$platform = new Appwrite();
|
||||
$platform->init(Service::TYPE_CLI);
|
||||
$platform->init(Service::TYPE_TASK);
|
||||
|
||||
$cli = $platform->getCli();
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
<table border="0" cellspacing="0" cellpadding="0" style="padding-top: 10px; padding-bottom: 10px; display: inline-block;">
|
||||
<tr>
|
||||
<td align="center" style="border-radius: 8px; background-color: #ffffff;">
|
||||
<p style="text-align: start; font-size: 14px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 32px; border: 1px solid #EDEDF0; display: inline-block; word-break: break-word;">{{error}}</p>
|
||||
<p style="text-align: start; font-size: 14px; font-family: Inter; color: #414146; text-decoration: none; border-radius: 8px; padding: 32px; border: 1px solid #EDEDF0; display: inline-block; word-break: break-word;">
|
||||
{{error}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroasië",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"settings.inspire": "\"الفن ديال الحكمة هو الفن ديال أنك تعرف أش تنخّل.\"",
|
||||
"settings.locale": "ar-ma",
|
||||
"settings.direction": "rtl",
|
||||
"emails.sender": "فرقة %s",
|
||||
"emails.verification.subject": "التيْقان ديال الحساب",
|
||||
"emails.verification.hello": "السلام {{user}}",
|
||||
"emails.verification.body": "تبّع هاد الوصلة باش تيقّن لادريسة تاع ليميل ديالك.",
|
||||
"emails.verification.footer": "إلا ماشي نتا اللي طلبتي تيقّن هاد لادريسة تاع ليميل، ممكن تنخّل هاد البرية.",
|
||||
"emails.verification.thanks": "شكرا",
|
||||
"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": "تبدال كلمة السر",
|
||||
"emails.recovery.hello": "السلام {{user}}",
|
||||
"emails.recovery.body": "تبّع هاد الوصلة باش تبدّل كلمة السر تاع {{project}}.",
|
||||
"emails.recovery.footer": "إلا ماشي نتا اللي طلبتي تبدّل كلمة السر، ممكن تنخّل هاد البرية.",
|
||||
"emails.recovery.thanks": "شكرا",
|
||||
"emails.recovery.signature": "فرقة {{project}}",
|
||||
"emails.invitation.subject": "عراضة ل فرقة %s ف %s",
|
||||
"emails.invitation.hello": "السلام",
|
||||
"emails.invitation.body": "هاد البرية تصيفطات ليك حيت {{owner}} بغى يعرض عليك تولّي عضو ف فرقة {{team}} عند {{project}}.",
|
||||
"emails.invitation.footer": "إلا كنتي ما مسوّقش, ممكن تنخّل هاد البرية.",
|
||||
"emails.invitation.thanks": "شكرا",
|
||||
"emails.invitation.signature": "فرقة {{project}}",
|
||||
"emails.certificate.subject": "السرتافيكة فشلات ل %s",
|
||||
"emails.certificate.hello": "السلام",
|
||||
"emails.certificate.body": "السرتافيكة ديال الضومين ديالك '{{domain}}' ما قدّاتش تجينيرا. هادي هي المحاولة نمرة {{attempt}}, السبب ديال هاد الفشل هو: {{error}}",
|
||||
"emails.certificate.footer": "السرتافيكة الفايتة ديالك غاتبقى مزيانة لمدة 30 يوم من عند أول فشل. كانشجعوك بزاف أنك تبقشش فهاد الموضوع, وا إلّا الضومين ديالك ما غايبقاش خدّام فيه الـ SSL.",
|
||||
"emails.certificate.thanks": "شكرا",
|
||||
"emails.certificate.signature": "فرقة {{project}}",
|
||||
"locale.country.unknown": "ما معروفش",
|
||||
"countries.af": "أفغانستان",
|
||||
"countries.ao": "أنڭولا",
|
||||
"countries.al": "ألبانيا",
|
||||
"countries.ad": "أندورا",
|
||||
"countries.ae": "الإمارات العربية المتّاحدة",
|
||||
"countries.ar": "الأرجنتين",
|
||||
"countries.am": "أرمينيا",
|
||||
"countries.ag": "أنتيڭوا وبربودا",
|
||||
"countries.au": "ؤسطراليا",
|
||||
"countries.at": "النامسا",
|
||||
"countries.az": "أديربيجان",
|
||||
"countries.bi": "بوروندي",
|
||||
"countries.be": "بلجيكا",
|
||||
"countries.bj": "بينين",
|
||||
"countries.bf": "بوركينا فاصو",
|
||||
"countries.bd": "بنڭلاديش",
|
||||
"countries.bg": "بلڭاريا",
|
||||
"countries.bh": "البحرين",
|
||||
"countries.bs": "دزيرات البهاما",
|
||||
"countries.ba": "البوسنة ؤ الهرسك",
|
||||
"countries.by": "بيلاروسيا",
|
||||
"countries.bz": "بيليز",
|
||||
"countries.bo": "بوليڤيا",
|
||||
"countries.br": "البرازيل",
|
||||
"countries.bb": "باربادوس",
|
||||
"countries.bn": "بروناي",
|
||||
"countries.bt": "بوتان",
|
||||
"countries.bw": "بوتسوانا",
|
||||
"countries.cf": "جمهورية إفريقيا الوسطانية",
|
||||
"countries.ca": "كانادا",
|
||||
"countries.ch": "سويسرا",
|
||||
"countries.cl": "تشيلي",
|
||||
"countries.cn": "الشينوا",
|
||||
"countries.ci": "ساحل العاج",
|
||||
"countries.cm": "الكاميرون",
|
||||
"countries.cd": "جمهورية الكونڭو الديمقراطية",
|
||||
"countries.cg": "جمهورية الكونڭو",
|
||||
"countries.co": "كولومبيا",
|
||||
"countries.km": "دزيرات القومور",
|
||||
"countries.cv": "الراس الخضر",
|
||||
"countries.cr": "كوسطاريكا",
|
||||
"countries.cu": "كوبا",
|
||||
"countries.cy": "قوبروص",
|
||||
"countries.cz": "التشيك",
|
||||
"countries.de": "ألمانيا",
|
||||
"countries.dj": "دجيبوتي",
|
||||
"countries.dm": "ضومينيكا",
|
||||
"countries.dk": "الدنمارك",
|
||||
"countries.do": "جمهورية الضومينيكان",
|
||||
"countries.dz": "الدزاير",
|
||||
"countries.ec": "إكوادور",
|
||||
"countries.eg": "مصر",
|
||||
"countries.er": "إريتريا",
|
||||
"countries.es": "سبانيا",
|
||||
"countries.ee": "إسطونيا",
|
||||
"countries.et": "إتيوپيا",
|
||||
"countries.fi": "فينلاندا",
|
||||
"countries.fj": "فيدجي",
|
||||
"countries.fr": "فرانسا",
|
||||
"countries.fm": "ميكرونيزيا",
|
||||
"countries.ga": "الڭابون",
|
||||
"countries.gb": "المملكة المتّاحدة",
|
||||
"countries.ge": "تجورجيا",
|
||||
"countries.gh": "غانا",
|
||||
"countries.gn": "غينيا",
|
||||
"countries.gm": "ڭامبيا",
|
||||
"countries.gw": "غينيا بيساو",
|
||||
"countries.gq": "غينيا الستوائية",
|
||||
"countries.gr": "اليونان",
|
||||
"countries.gd": "ڭرينادا",
|
||||
"countries.gt": "ڭواتيمالا",
|
||||
"countries.gy": "ڭيانا",
|
||||
"countries.hn": "هوندوراس",
|
||||
"countries.hr": "كرواتيا",
|
||||
"countries.ht": "هايتي",
|
||||
"countries.hu": "الماجر",
|
||||
"countries.id": "إندونيسيا",
|
||||
"countries.in": "الهند",
|
||||
"countries.ie": "إرلاندا",
|
||||
"countries.ir": "إران",
|
||||
"countries.iq": "العراق",
|
||||
"countries.is": "إسلاندا",
|
||||
"countries.il": "إسرائيل",
|
||||
"countries.it": "الطاليان",
|
||||
"countries.jm": "جامايكا",
|
||||
"countries.jo": "الأردن",
|
||||
"countries.jp": "الجاپون",
|
||||
"countries.kz": "كازاخستان",
|
||||
"countries.ke": "كينيا",
|
||||
"countries.kg": "قيرغيزستان",
|
||||
"countries.kh": "كمبوديا",
|
||||
"countries.ki": "كيريباتي",
|
||||
"countries.kn": "سانت كيتس ؤ نيفيس",
|
||||
"countries.kr": "كوريا الجنوبية",
|
||||
"countries.kw": "الكويت",
|
||||
"countries.la": "لاوس",
|
||||
"countries.lb": "لبنان",
|
||||
"countries.lr": "ليبيريا",
|
||||
"countries.ly": "ليبيا",
|
||||
"countries.lc": "سانت لوسيا",
|
||||
"countries.li": "ليختنشتاين",
|
||||
"countries.lk": "سري لانكا",
|
||||
"countries.ls": "ليسوتو",
|
||||
"countries.lt": "ليتوانيا",
|
||||
"countries.lu": "لوكسمبورڭ",
|
||||
"countries.lv": "لاتفيا",
|
||||
"countries.ma": "المغريب",
|
||||
"countries.mc": "موناكو",
|
||||
"countries.md": "مولضوڤا",
|
||||
"countries.mg": "ماداغشقار",
|
||||
"countries.mv": "دزيرات المالديڤ",
|
||||
"countries.mx": "الميكسيك",
|
||||
"countries.mh": "دزيرات مارشال",
|
||||
"countries.mk": "مقدونيا",
|
||||
"countries.ml": "مالي",
|
||||
"countries.mt": "مالطا",
|
||||
"countries.mm": "ميانمار",
|
||||
"countries.me": "مونطينيڭرو",
|
||||
"countries.mn": "منغوليا",
|
||||
"countries.mz": "الموزمبيق",
|
||||
"countries.mr": "موريتانيا",
|
||||
"countries.mu": "موريشيوس",
|
||||
"countries.mw": "مالاوي",
|
||||
"countries.my": "ماليزيا",
|
||||
"countries.na": "ناميبيا",
|
||||
"countries.ne": "النيجر",
|
||||
"countries.ng": "نيجيريا",
|
||||
"countries.ni": "نيكاراڭوا",
|
||||
"countries.nl": "هولاندا",
|
||||
"countries.no": "النرويج",
|
||||
"countries.np": "نيپال",
|
||||
"countries.nr": "ناورو",
|
||||
"countries.nz": "نيوزيلاندا",
|
||||
"countries.om": "عمّان",
|
||||
"countries.pk": "پاكيستان",
|
||||
"countries.pa": "پاناما",
|
||||
"countries.pe": "الپيرو",
|
||||
"countries.ph": "الفيليپين",
|
||||
"countries.pw": "پالاو",
|
||||
"countries.pg": "پاپوا غينيا الجديدة",
|
||||
"countries.pl": "پولاندا",
|
||||
"countries.kp": "كوريا الشمالية",
|
||||
"countries.pt": "البرطقيز",
|
||||
"countries.py": "الپاراڭواي",
|
||||
"countries.qa": "قطر",
|
||||
"countries.ro": "رومانيا",
|
||||
"countries.ru": "روسيا",
|
||||
"countries.rw": "روّاندا",
|
||||
"countries.sa": "المملكة العربية السعودية",
|
||||
"countries.sd": "السودان",
|
||||
"countries.sn": "السينيڭال",
|
||||
"countries.sg": "سنغافورة",
|
||||
"countries.sb": "دزيرات سليمان",
|
||||
"countries.sl": "صييراليون",
|
||||
"countries.sv": "السالڤاضور",
|
||||
"countries.sm": "سان مارينو",
|
||||
"countries.so": "الصومال",
|
||||
"countries.rs": "صيربيا",
|
||||
"countries.ss": "جنوب السودان",
|
||||
"countries.st": "صاو طومي ؤ پرينسيپي",
|
||||
"countries.sr": "سورينام",
|
||||
"countries.sk": "صلوڤاكيا",
|
||||
"countries.si": "صلوڤينيا",
|
||||
"countries.se": "السويد",
|
||||
"countries.sz": "سوازيلاند",
|
||||
"countries.sc": "السيشيل",
|
||||
"countries.sy": "سوريا",
|
||||
"countries.td": "تشاد",
|
||||
"countries.tg": "الطوڭو",
|
||||
"countries.th": "الطايلوند",
|
||||
"countries.tj": "طادجيكيستان",
|
||||
"countries.tm": "تركمانيستان",
|
||||
"countries.tl": "تيمور الشرقية",
|
||||
"countries.to": "تونڭا",
|
||||
"countries.tt": "ترينيداد ؤ طوباڭو",
|
||||
"countries.tn": "تونس",
|
||||
"countries.tr": "توركيا",
|
||||
"countries.tv": "توڤالو",
|
||||
"countries.tz": "طنزانيا",
|
||||
"countries.ug": "ؤڭاندا",
|
||||
"countries.ua": "ؤكرانيا",
|
||||
"countries.uy": "ؤروڭواي",
|
||||
"countries.us": "ميريكان",
|
||||
"countries.uz": "ؤزباكيستان",
|
||||
"countries.va": "مدينة الڤاتيكان",
|
||||
"countries.vc": "سانت ڤانسون ؤ دزيرات ڭرينادين",
|
||||
"countries.ve": "ڤينيزويلا",
|
||||
"countries.vn": "ڤيطنام",
|
||||
"countries.vu": "ڤانواتو",
|
||||
"countries.ws": "ساموا",
|
||||
"countries.ye": "اليمن",
|
||||
"countries.za": "جنوب إفريقيا",
|
||||
"countries.zm": "زامبيا",
|
||||
"countries.zw": "زيمبابوي",
|
||||
"continents.af": "أفريقيا",
|
||||
"continents.an": "القارة القطبية الجنوبية",
|
||||
"continents.as": "أسيا",
|
||||
"continents.eu": "ؤروپا",
|
||||
"continents.na": "ميريكان الشمالية",
|
||||
"continents.oc": "ؤقيانوسيا",
|
||||
"continents.sa": "ميريكان الجنوبية"
|
||||
}
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "غرينادا",
|
||||
"countries.gt": "غواتيمالا",
|
||||
"countries.gy": "غيانا",
|
||||
"countries.hk": "هونغ كونغ",
|
||||
"countries.hn": "هندوراس",
|
||||
"countries.hr": "كرواتيا",
|
||||
"countries.ht": "هايتي",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "গ্ৰেনাডা",
|
||||
"countries.gt": "গুয়াতেমালা",
|
||||
"countries.gy": "গায়ানা",
|
||||
"countries.hk": "হং কং",
|
||||
"countries.hn": "হণ্ডুৰাছ",
|
||||
"countries.hr": "ক্ৰোৱেছিয়া",
|
||||
"countries.ht": "হাইতি",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Qrenada",
|
||||
"countries.gt": "Qvatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Honq Konq",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Xorvatiya",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Грэнада",
|
||||
"countries.gt": "Гватэмала",
|
||||
"countries.gy": "Гаяна",
|
||||
"countries.hk": "Гонконг",
|
||||
"countries.hn": "Гандурас",
|
||||
"countries.hr": "Харватыя",
|
||||
"countries.ht": "Гаіці",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Гренада",
|
||||
"countries.gt": "Гватемала",
|
||||
"countries.gy": "Гвиана",
|
||||
"countries.hk": "Хонг Конг",
|
||||
"countries.hn": "Хондурас",
|
||||
"countries.hr": "Хърватия",
|
||||
"countries.ht": "Хаити",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गयाना",
|
||||
"countries.hk": "हांगकांग",
|
||||
"countries.hn": "होंडुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "গ্রেনাডা",
|
||||
"countries.gt": "গুয়াতেমালা",
|
||||
"countries.gy": "গায়ানা",
|
||||
"countries.hk": "হংকং",
|
||||
"countries.hn": "হন্ডুরাস",
|
||||
"countries.hr": "ক্রোয়েশিয়া",
|
||||
"countries.ht": "হাইতি",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Gvajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hrvatska",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guaiana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondures",
|
||||
"countries.hr": "Croàcia",
|
||||
"countries.ht": "Haití",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Chorvatsko",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatien",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatien",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Γρενάδα",
|
||||
"countries.gt": "Γουατεμάλα",
|
||||
"countries.gy": "Γουιάνα",
|
||||
"countries.hk": "Χονγκ Κονγκ",
|
||||
"countries.hn": "Ονδούρα",
|
||||
"countries.hr": "Κροατία",
|
||||
"countries.ht": "Αϊτή",
|
||||
|
||||
@@ -43,6 +43,12 @@
|
||||
"emails.invitation.footer": "If you are not interested, you can ignore this message.",
|
||||
"emails.invitation.thanks": "Thanks",
|
||||
"emails.invitation.signature": "{{project}} team",
|
||||
"emails.certificate.subject": "Certificate failure for %s",
|
||||
"emails.certificate.hello": "Hello",
|
||||
"emails.certificate.body": "Certificate for your domain '{{domain}}' could not be generated. This is attempt no. {{attempt}}, and the failure was caused by: {{error}}",
|
||||
"emails.certificate.footer": "Your previous certificate will be valid for 30 days since the first failure. We highly recommend investigating this case, otherwise your domain will end up without a valid SSL communication.",
|
||||
"emails.certificate.thanks": "Thanks",
|
||||
"emails.certificate.signature": "{{project}} team",
|
||||
"sms.verification.body": "{{secret}}",
|
||||
"locale.country.unknown": "Unknown",
|
||||
"countries.af": "Afghanistan",
|
||||
@@ -117,6 +123,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guayana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croacia",
|
||||
"countries.ht": "Haití",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "گرنادا",
|
||||
"countries.gt": "گواتمالا",
|
||||
"countries.gy": "گویان",
|
||||
"countries.hk": "هنگ کنگ",
|
||||
"countries.hn": "هندوراس",
|
||||
"countries.hr": "کرواسی",
|
||||
"countries.ht": "هائیتی",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Gujana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenade",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyane",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatie",
|
||||
"countries.ht": "Haïti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Greanáda",
|
||||
"countries.gt": "Guatamala",
|
||||
"countries.gy": "An Ghuáin",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondúras",
|
||||
"countries.hr": "An Chróit",
|
||||
"countries.ht": "Háítí",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ગ્રેનાડા",
|
||||
"countries.gt": "ગ્વાટેમાલા",
|
||||
"countries.gy": "ગુયાના",
|
||||
"countries.hk": "હોંગ કોંગ",
|
||||
"countries.hn": "હોન્ડુરાસ",
|
||||
"countries.hr": "ક્રોએશિયા",
|
||||
"countries.ht": "હૈતી",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "גרנדה",
|
||||
"countries.gt": "גואטמלה",
|
||||
"countries.gy": "גיאנה",
|
||||
"countries.hk": "הונג קונג",
|
||||
"countries.hn": "הונדורס",
|
||||
"countries.hr": "קרואטיה",
|
||||
"countries.ht": "האיטי",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गयाना",
|
||||
"countries.hk": "हांग कांग",
|
||||
"countries.hn": "होंडुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gvajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hrvatska",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Horvátország",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Գրենադա",
|
||||
"countries.gt": "Գվատեմալա",
|
||||
"countries.gy": "Գայանա",
|
||||
"countries.hk": "Հոնգ Կոնգ",
|
||||
"countries.hn": "Գոնդուրաս",
|
||||
"countries.hr": "Խորվաթիա",
|
||||
"countries.ht": "Հաիթի",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroasia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Hondúras",
|
||||
"countries.hr": "Króatía",
|
||||
"countries.ht": "Haítí",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croazia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "グレナダ",
|
||||
"countries.gt": "グアテマラ",
|
||||
"countries.gy": "ガイアナ",
|
||||
"countries.hk": "香港",
|
||||
"countries.hn": "ホンジュラス",
|
||||
"countries.hr": "クロアチア",
|
||||
"countries.ht": "ハイチ",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ហ្គ្រេណាដា",
|
||||
"countries.gt": "ហ្គាតេម៉ាឡា",
|
||||
"countries.gy": "ហ្គីយ៉ាណា",
|
||||
"countries.hk": "ហុងកុង",
|
||||
"countries.hn": "ហុងឌូរ៉ាស",
|
||||
"countries.hr": "ក្រូអាត",
|
||||
"countries.ht": "ហៃទី",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ಗ್ರೆನಡಾ",
|
||||
"countries.gt": "ಗ್ವಾಟೆಮಾಲಾ",
|
||||
"countries.gy": "ಗಯಾನಾ",
|
||||
"countries.hk": "ಹಾಂಗ್ ಕಾಂಗ್",
|
||||
"countries.hn": "ಹೊಂಡುರಾಸ್",
|
||||
"countries.hr": "ಕ್ರೊಯೇಷಿಯಾ",
|
||||
"countries.ht": "ಹೈಟಿ",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "그레나다",
|
||||
"countries.gt": "과테말라",
|
||||
"countries.gy": "기아나",
|
||||
"countries.hk": "홍콩",
|
||||
"countries.hn": "온두라스",
|
||||
"countries.hr": "크로아티아",
|
||||
"countries.ht": "아이티",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
@@ -250,4 +251,4 @@
|
||||
"emails.certificate.thanks": "Gratias",
|
||||
"emails.certificate.signature": "team {{project}}",
|
||||
"sms.verification.body": "{{secret}}"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gajana",
|
||||
"countries.hk": "Honkongas",
|
||||
"countries.hn": "Hondūras",
|
||||
"countries.hr": "Kroatija",
|
||||
"countries.ht": "Haitis",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gajāna",
|
||||
"countries.hk": "Honkonga",
|
||||
"countries.hn": "Hondurasa",
|
||||
"countries.hr": "Horvātija",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ഗ്രെനാഡ",
|
||||
"countries.gt": "ഗ്വാട്ടിമാല",
|
||||
"countries.gy": "ഗയാന",
|
||||
"countries.hk": "ഹോങ്കോങ്",
|
||||
"countries.hn": "ഹോണ്ടുറാസ്",
|
||||
"countries.hr": "ക്രോയേഷ്യ",
|
||||
"countries.ht": "ഹെയ്തി",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ग्रेनाडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गुयाना",
|
||||
"countries.hk": "हाँगकांग",
|
||||
"countries.hn": "होंडुरास",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ग्रेनेडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गुयाना",
|
||||
"countries.hk": "हाँगकाँग",
|
||||
"countries.hn": "होन्डुरस",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hongkong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatië",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ଗ୍ରେନାଡା",
|
||||
"countries.gt": "ଗୁଆଟେମାଲା",
|
||||
"countries.gy": "ଗୁଇନ୍ଦା",
|
||||
"countries.hk": "ହଂ କଙ୍ଗ",
|
||||
"countries.hn": "ହୋଣ୍ଡୁରାସ୍",
|
||||
"countries.hr": "କ୍ରୋଏସିଆ",
|
||||
"countries.ht": "ହାଇତି",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ਗ੍ਰੇਨਾਡਾ",
|
||||
"countries.gt": "ਗੁਆਟੇਮਾਲਾ",
|
||||
"countries.gy": "ਗੇਆਨਾ",
|
||||
"countries.hk": "ਹਾਂਗ ਕਾਂਗ",
|
||||
"countries.hn": "ਹੌਂਡੂਰਸ",
|
||||
"countries.hr": "ਕਰੋਸ਼ੀਆ",
|
||||
"countries.ht": "ਹੈਤੀ",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gwatemala",
|
||||
"countries.gy": "Gujana",
|
||||
"countries.hk": "Hongkong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Chorwacja",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guiana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croácia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Granada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guiana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croácia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croația",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Гренада",
|
||||
"countries.gt": "Гватемала",
|
||||
"countries.gy": "Гайана",
|
||||
"countries.hk": "Гонконг",
|
||||
"countries.hn": "Гондурас",
|
||||
"countries.hr": "Хорватия",
|
||||
"countries.ht": "Гаити",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ग्रेनेडा",
|
||||
"countries.gt": "ग्वाटेमाला",
|
||||
"countries.gy": "गुयाना",
|
||||
"countries.hk": "हांगकांग",
|
||||
"countries.hn": "होंडुरस्",
|
||||
"countries.hr": "क्रोएशिया",
|
||||
"countries.ht": "हैती",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "گرينڊا",
|
||||
"countries.gt": "گٽيمالا",
|
||||
"countries.gy": "گيانا",
|
||||
"countries.hk": "هانگ کانگ",
|
||||
"countries.hn": "هونڊرس",
|
||||
"countries.hr": "ڪوريٽيا",
|
||||
"countries.ht": "هيٽي",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "ග්රෙනාඩා",
|
||||
"countries.gt": "ග්වාතමාලාව",
|
||||
"countries.gy": "ගයනා",
|
||||
"countries.hk": "හොංකොං",
|
||||
"countries.hn": "හොන්ඩුරාස්",
|
||||
"countries.hr": "ක්රොඒෂියාව",
|
||||
"countries.ht": "හයිටි",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hongkong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Chorvátsko",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Gvatemala",
|
||||
"countries.gy": "Gvajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hrvaška",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guajana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroacia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroatien",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "கிரெனடா",
|
||||
"countries.gt": "குவாத்தமாலா",
|
||||
"countries.gy": "கயானா",
|
||||
"countries.hk": "ஹாங்காங்",
|
||||
"countries.hn": "ஹொண்டூராஸ்",
|
||||
"countries.hr": "குரோவாசியா",
|
||||
"countries.ht": "ஹைத்தி",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "గ్రెనడా",
|
||||
"countries.gt": "గ్వాటెమాల",
|
||||
"countries.gy": "గయానా",
|
||||
"countries.hk": "హాంగ్ కొంగ",
|
||||
"countries.hn": "హోండురాస్",
|
||||
"countries.hr": "క్రొయేషియా",
|
||||
"countries.ht": "హైతీ",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "เกรเนดา",
|
||||
"countries.gt": "กัวเตมาลา",
|
||||
"countries.gy": "กายอานา",
|
||||
"countries.hk": "ฮ่องกง",
|
||||
"countries.hn": "ฮอนดูรัส",
|
||||
"countries.hr": "โครเอเชีย",
|
||||
"countries.ht": "ไฮติ",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guwatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Kroasya",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Hırvatistan",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Гренада",
|
||||
"countries.gt": "Гватемала",
|
||||
"countries.gy": "Гайана",
|
||||
"countries.hk": "Гонконг",
|
||||
"countries.hn": "Гондурас",
|
||||
"countries.hr": "Хорватія",
|
||||
"countries.ht": "Гаїті",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "گریناڈا",
|
||||
"countries.gt": "گوئٹے مالا",
|
||||
"countries.gy": "گیانا",
|
||||
"countries.hk": "ہانگ کانگ",
|
||||
"countries.hn": "ہونڈوراس",
|
||||
"countries.hr": "کروشیا",
|
||||
"countries.ht": "ہیٹی",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "Grenada",
|
||||
"countries.gt": "Guatemala",
|
||||
"countries.gy": "Guyana",
|
||||
"countries.hk": "Hong Kong",
|
||||
"countries.hn": "Honduras",
|
||||
"countries.hr": "Croatia",
|
||||
"countries.ht": "Haiti",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "格林纳达",
|
||||
"countries.gt": "危地马拉",
|
||||
"countries.gy": "圭亚那",
|
||||
"countries.hk": "香港",
|
||||
"countries.hn": "洪都拉斯",
|
||||
"countries.hr": "克罗地亚",
|
||||
"countries.ht": "海地",
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
"countries.gd": "格瑞那達",
|
||||
"countries.gt": "瓜地馬拉",
|
||||
"countries.gy": "蓋亞那",
|
||||
"countries.hk": "香港",
|
||||
"countries.hn": "宏都拉斯",
|
||||
"countries.hr": "克羅埃西亞",
|
||||
"countries.ht": "海地",
|
||||
|
||||
@@ -15,7 +15,7 @@ return [
|
||||
[
|
||||
'key' => 'web',
|
||||
'name' => 'Web',
|
||||
'version' => '14.0.2',
|
||||
'version' => '15.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-web',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -138,7 +138,7 @@ return [
|
||||
[
|
||||
'key' => 'react-native',
|
||||
'name' => 'React Native',
|
||||
'version' => '0.3.2',
|
||||
'version' => '0.4.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-react-native',
|
||||
'package' => 'https://npmjs.com/package/react-native-appwrite',
|
||||
'enabled' => true,
|
||||
@@ -267,7 +267,7 @@ return [
|
||||
[
|
||||
'key' => 'deno',
|
||||
'name' => 'Deno',
|
||||
'version' => '10.0.2',
|
||||
'version' => '11.0.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
||||
'package' => 'https://deno.land/x/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -375,7 +375,7 @@ return [
|
||||
[
|
||||
'key' => 'dotnet',
|
||||
'name' => '.NET',
|
||||
'version' => '0.8.2',
|
||||
'version' => '0.8.3',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
|
||||
'package' => 'https://www.nuget.org/packages/Appwrite',
|
||||
'enabled' => true,
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -162,13 +162,31 @@ return [
|
||||
],
|
||||
[
|
||||
'name' => '_APP_SYSTEM_SECURITY_EMAIL_ADDRESS',
|
||||
'description' => 'This is the email address used to issue SSL certificates for custom domains or the user agent in your webhooks payload.',
|
||||
'description' => 'Deprecated since 1.5.1 use _APP_EMAIL_SECURITY and _APP_EMAIL_CERTIFICATES instead',
|
||||
'introduction' => '0.7.0',
|
||||
'default' => 'certs@appwrite.io',
|
||||
'required' => false,
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'name' => '_APP_EMAIL_SECURITY',
|
||||
'description' => 'This is the email address used as the user agent in your webhooks payload.',
|
||||
'introduction' => '1.5.1',
|
||||
'default' => '',
|
||||
'required' => false,
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'name' => '_APP_EMAIL_CERTIFICATES',
|
||||
'description' => 'This is the email address used to issue SSL certificates for custom domains',
|
||||
'introduction' => '1.5.1',
|
||||
'default' => '',
|
||||
'required' => true,
|
||||
'question' => '',
|
||||
'filter' => ''
|
||||
],
|
||||
[
|
||||
'name' => '_APP_USAGE_STATS',
|
||||
'description' => 'This variable allows you to disable the collection and displaying of usage stats. This value is set to \'enabled\' by default, to disable the usage stats set the value to \'disabled\'. When disabled, it\'s recommended to turn off the Worker Usage container to reduce resource usage.',
|
||||
@@ -450,7 +468,7 @@ return [
|
||||
],
|
||||
[
|
||||
'name' => '_APP_SMS_FROM',
|
||||
'description' => 'Phone number used for sending out messages. Must start with a leading \'+\' and maximum of 15 digits without spaces (+123456789).',
|
||||
'description' => 'Phone number used for sending out messages. If using Twilio, this may be a Messaging Service SID, starting with MG. Otherwise, the number must start with a leading \'+\' and maximum of 15 digits without spaces (+123456789). ',
|
||||
'introduction' => '0.15.0',
|
||||
'default' => '',
|
||||
'required' => false,
|
||||
|
||||
+1
-1
Submodule app/console updated: 5169fe16d6...0959b594b3
@@ -86,8 +86,8 @@ $createSession = function (string $userId, string $secret, Request $request, Res
|
||||
$factor = (match ($verifiedToken->getAttribute('type')) {
|
||||
Auth::TOKEN_TYPE_MAGIC_URL,
|
||||
Auth::TOKEN_TYPE_OAUTH2,
|
||||
Auth::TOKEN_TYPE_EMAIL => 'email',
|
||||
Auth::TOKEN_TYPE_PHONE => 'phone',
|
||||
Auth::TOKEN_TYPE_EMAIL => Type::EMAIL,
|
||||
Auth::TOKEN_TYPE_PHONE => Type::PHONE,
|
||||
Auth::TOKEN_TYPE_GENERIC => 'token',
|
||||
default => throw new Exception(Exception::USER_INVALID_TOKEN)
|
||||
});
|
||||
@@ -290,7 +290,9 @@ App::post('/v1/account')
|
||||
$existingTarget = $dbForProject->findOne('targets', [
|
||||
Query::equal('identifier', [$email]),
|
||||
]);
|
||||
$user->setAttribute('targets', [...$user->getAttribute('targets', []), $existingTarget]);
|
||||
if($existingTarget) {
|
||||
$user->setAttribute('targets', $existingTarget, Document::SET_TYPE_APPEND);
|
||||
}
|
||||
}
|
||||
|
||||
$dbForProject->purgeCachedDocument('users', $user->getId());
|
||||
@@ -1506,7 +1508,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
||||
'secret' => Auth::hash($secret), // One way hash encryption to protect DB leak
|
||||
'userAgent' => $request->getUserAgent('UNKNOWN'),
|
||||
'ip' => $request->getIP(),
|
||||
'factors' => ['email'],
|
||||
'factors' => [TYPE::EMAIL, 'oauth2'], // include a special oauth2 factor to bypass MFA checks
|
||||
'countryCode' => ($record) ? \strtolower($record['country']['iso_code']) : '--',
|
||||
'expire' => DateTime::addSeconds(new \DateTime(), $duration)
|
||||
], $detector->getOS(), $detector->getClient(), $detector->getDevice()));
|
||||
@@ -1670,10 +1672,10 @@ App::post('/v1/account/tokens/magic-url')
|
||||
->inject('queueForEvents')
|
||||
->inject('queueForMails')
|
||||
->action(function (string $userId, string $email, string $url, bool $phrase, Request $request, Response $response, Document $user, Document $project, Database $dbForProject, Locale $locale, Event $queueForEvents, Mail $queueForMails) {
|
||||
|
||||
if (empty(System::getEnv('_APP_SMTP_HOST'))) {
|
||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP disabled');
|
||||
}
|
||||
$url = htmlentities($url);
|
||||
|
||||
if ($phrase === true) {
|
||||
$phrase = Phrase::generate();
|
||||
@@ -2524,6 +2526,7 @@ App::patch('/v1/account/password')
|
||||
->label('sdk.response.model', Response::MODEL_USER)
|
||||
->label('sdk.offline.model', '/account')
|
||||
->label('sdk.offline.key', 'current')
|
||||
->label('abuse-limit', 10)
|
||||
->param('password', '', fn ($project, $passwordsDictionary) => new PasswordDictionary($passwordsDictionary, $project->getAttribute('auths', [])['passwordDictionary'] ?? false), 'New user password. Must be at least 8 chars.', false, ['project', 'passwordsDictionary'])
|
||||
->param('oldPassword', '', new Password(), 'Current user password. Must be at least 8 chars.', true)
|
||||
->inject('requestTimestamp')
|
||||
@@ -2857,6 +2860,7 @@ App::post('/v1/account/recovery')
|
||||
if (empty(System::getEnv('_APP_SMTP_HOST'))) {
|
||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
||||
}
|
||||
$url = htmlentities($url);
|
||||
|
||||
$roles = Authorization::getRoles();
|
||||
$isPrivilegedUser = Auth::isPrivilegedUser($roles);
|
||||
@@ -3120,6 +3124,7 @@ App::post('/v1/account/verification')
|
||||
throw new Exception(Exception::GENERAL_SMTP_DISABLED, 'SMTP Disabled');
|
||||
}
|
||||
|
||||
$url = htmlentities($url);
|
||||
if ($user->getAttribute('emailVerification')) {
|
||||
throw new Exception(Exception::USER_EMAIL_ALREADY_VERIFIED);
|
||||
}
|
||||
@@ -3426,7 +3431,7 @@ App::post('/v1/account/verification/phone')
|
||||
});
|
||||
|
||||
App::put('/v1/account/verification/phone')
|
||||
->desc('Create phone verification (confirmation)')
|
||||
->desc('Update phone verification (confirmation)')
|
||||
->groups(['api', 'account'])
|
||||
->label('scope', 'public')
|
||||
->label('event', 'users.[userId].verification.[tokenId].update')
|
||||
@@ -3569,7 +3574,7 @@ App::get('/v1/account/mfa/factors')
|
||||
});
|
||||
|
||||
App::post('/v1/account/mfa/authenticators/:type')
|
||||
->desc('Add Authenticator')
|
||||
->desc('Create Authenticator')
|
||||
->groups(['api', 'account'])
|
||||
->label('event', 'users.[userId].update.mfa')
|
||||
->label('scope', 'account')
|
||||
@@ -3879,7 +3884,7 @@ App::delete('/v1/account/mfa/authenticators/:type')
|
||||
});
|
||||
|
||||
App::post('/v1/account/mfa/challenge')
|
||||
->desc('Create 2FA Challenge')
|
||||
->desc('Create MFA Challenge')
|
||||
->groups(['api', 'account', 'mfa'])
|
||||
->label('scope', 'account')
|
||||
->label('event', 'users.[userId].challenges.[challengeId].create')
|
||||
|
||||
@@ -321,7 +321,7 @@ App::get('/v1/avatars/favicon')
|
||||
->setUserAgent(\sprintf(
|
||||
APP_USERAGENT,
|
||||
System::getEnv('_APP_VERSION', 'UNKNOWN'),
|
||||
System::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', APP_EMAIL_SECURITY)
|
||||
System::getEnv('_APP_EMAIL_SECURITY', System::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', APP_EMAIL_SECURITY))
|
||||
))
|
||||
->fetch($url);
|
||||
} catch (\Throwable) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user