mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge remote-tracking branch 'origin/1.8.x' into feat-txn
# Conflicts: # composer.json # composer.lock # tests/e2e/Services/Databases/Legacy/DatabasesBase.php
This commit is contained in:
@@ -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
|
||||
|
||||
+1
-1
@@ -16,5 +16,5 @@ app/sdks
|
||||
dev/yasd_init.php
|
||||
.phpunit.result.cache
|
||||
Makefile
|
||||
appwrite.json
|
||||
appwrite.config.json
|
||||
/.zed/
|
||||
+8
-8
@@ -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 && \
|
||||
|
||||
@@ -51,6 +51,15 @@ return [
|
||||
'default' => null,
|
||||
'array' => false,
|
||||
],
|
||||
[
|
||||
'$id' => ID::custom('type'),
|
||||
'type' => Database::VAR_STRING,
|
||||
'size' => 128,
|
||||
'required' => true,
|
||||
'signed' => true,
|
||||
'array' => false,
|
||||
'filters' => [],
|
||||
],
|
||||
],
|
||||
'indexes' => [
|
||||
[
|
||||
|
||||
+43
-21
@@ -11,7 +11,7 @@ return [
|
||||
[
|
||||
'key' => 'web',
|
||||
'name' => 'Web',
|
||||
'version' => '18.1.0',
|
||||
'version' => '18.2.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-web',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -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',
|
||||
@@ -59,7 +60,7 @@ return [
|
||||
[
|
||||
'key' => 'flutter',
|
||||
'name' => 'Flutter',
|
||||
'version' => '17.0.2',
|
||||
'version' => '17.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-flutter',
|
||||
'package' => 'https://pub.dev/packages/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -73,11 +74,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-flutter',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/flutter/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'apple',
|
||||
'name' => 'Apple',
|
||||
'version' => '10.1.1',
|
||||
'version' => '10.2.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-apple',
|
||||
'package' => 'https://github.com/appwrite/sdk-for-apple',
|
||||
'enabled' => true,
|
||||
@@ -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.1.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,11 +134,12 @@ return [
|
||||
'Kotlin' => 'kotlin',
|
||||
'Java' => 'java',
|
||||
],
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/android/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'react-native',
|
||||
'name' => 'React Native',
|
||||
'version' => '0.10.1',
|
||||
'version' => '0.11.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-react-native',
|
||||
'package' => 'https://npmjs.com/package/react-native-appwrite',
|
||||
'enabled' => true,
|
||||
@@ -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.7.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-console',
|
||||
'version' => '0.1.0',
|
||||
'url' => '',
|
||||
'package' => '',
|
||||
'enabled' => true,
|
||||
'beta' => false,
|
||||
@@ -209,15 +217,16 @@ 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',
|
||||
'name' => 'Command Line',
|
||||
'version' => '8.2.2',
|
||||
'version' => '8.3.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-cli',
|
||||
'package' => 'https://www.npmjs.com/package/appwrite-cli',
|
||||
'enabled' => true,
|
||||
@@ -232,6 +241,7 @@ return [
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'repoBranch' => 'master',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/cli/CHANGELOG.md'),
|
||||
'exclude' => [
|
||||
'services' => [
|
||||
['name' => 'assistant'],
|
||||
@@ -251,7 +261,7 @@ return [
|
||||
[
|
||||
'key' => 'nodejs',
|
||||
'name' => 'Node.js',
|
||||
'version' => '17.1.0',
|
||||
'version' => '17.2.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-node',
|
||||
'package' => 'https://www.npmjs.com/package/node-appwrite',
|
||||
'enabled' => true,
|
||||
@@ -265,11 +275,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-node',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/nodejs/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'deno',
|
||||
'name' => 'Deno',
|
||||
'version' => '15.0.0',
|
||||
'version' => '15.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-deno',
|
||||
'package' => 'https://deno.land/x/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -283,11 +294,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-deno',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/deno/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'php',
|
||||
'name' => 'PHP',
|
||||
'version' => '15.0.0',
|
||||
'version' => '15.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-php',
|
||||
'package' => 'https://packagist.org/packages/appwrite/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -301,11 +313,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-php',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/php/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'python',
|
||||
'name' => 'Python',
|
||||
'version' => '11.0.0',
|
||||
'version' => '11.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-python',
|
||||
'package' => 'https://pypi.org/project/appwrite/',
|
||||
'enabled' => true,
|
||||
@@ -319,11 +332,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-python',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/python/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'ruby',
|
||||
'name' => 'Ruby',
|
||||
'version' => '16.0.0',
|
||||
'version' => '16.1.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-ruby',
|
||||
'package' => 'https://rubygems.org/gems/appwrite',
|
||||
'enabled' => true,
|
||||
@@ -337,11 +351,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-ruby',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/ruby/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'go',
|
||||
'name' => 'Go',
|
||||
'version' => '0.8.0',
|
||||
'version' => '0.9.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-go',
|
||||
'package' => 'https://github.com/appwrite/sdk-for-go',
|
||||
'enabled' => true,
|
||||
@@ -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.0',
|
||||
'version' => '0.15.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-dotnet',
|
||||
'package' => 'https://www.nuget.org/packages/Appwrite',
|
||||
'enabled' => true,
|
||||
@@ -373,11 +389,12 @@ return [
|
||||
'gitRepoName' => 'sdk-for-dotnet',
|
||||
'gitUserName' => 'appwrite',
|
||||
'gitBranch' => 'dev',
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/dotnet/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'dart',
|
||||
'name' => 'Dart',
|
||||
'version' => '16.1.0',
|
||||
'version' => '16.2.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-dart',
|
||||
'package' => 'https://pub.dev/packages/dart_appwrite',
|
||||
'enabled' => true,
|
||||
@@ -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.0.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,11 +431,12 @@ return [
|
||||
'Kotlin' => 'kotlin',
|
||||
'Java' => 'java',
|
||||
],
|
||||
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/kotlin/CHANGELOG.md'),
|
||||
],
|
||||
[
|
||||
'key' => 'swift',
|
||||
'name' => 'Swift',
|
||||
'version' => '10.1.0',
|
||||
'version' => '10.2.0',
|
||||
'url' => 'https://github.com/appwrite/sdk-for-swift',
|
||||
'package' => 'https://github.com/appwrite/sdk-for-swift',
|
||||
'enabled' => true,
|
||||
@@ -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'),
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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.',
|
||||
@@ -827,7 +845,7 @@ return [
|
||||
],
|
||||
[
|
||||
'name' => '_APP_FUNCTIONS_TIMEOUT',
|
||||
'description' => 'The maximum number of seconds allowed as a timeout value when creating a new function. The default value is 900 seconds. This is the global limit, timeout for individual functions are configured in the function\'s settings or in appwrite.json.',
|
||||
'description' => 'The maximum number of seconds allowed as a timeout value when creating a new function. The default value is 900 seconds. This is the global limit, timeout for individual functions are configured in the function\'s settings or in appwrite.config.json.',
|
||||
'introduction' => '0.7.0',
|
||||
'default' => '900',
|
||||
'required' => false,
|
||||
@@ -1070,7 +1088,7 @@ return [
|
||||
'variables' => [
|
||||
[
|
||||
'name' => '_APP_SITES_TIMEOUT',
|
||||
'description' => 'The maximum number of seconds allowed as a timeout value when creating a new site. The default value is 900 seconds. This is the global limit, timeout for individual functions are configured in the sites\'s settings or in appwrite.json.',
|
||||
'description' => 'The maximum number of seconds allowed as a timeout value when creating a new site. The default value is 900 seconds. This is the global limit, timeout for individual functions are configured in the sites\'s settings or in appwrite.config.json.',
|
||||
'introduction' => '1.7.0',
|
||||
'default' => '900',
|
||||
'required' => false,
|
||||
|
||||
@@ -2239,7 +2239,30 @@ App::post('/v1/account/tokens/email')
|
||||
]);
|
||||
|
||||
$user->removeAttribute('$sequence');
|
||||
Authorization::skip(fn () => $dbForProject->createDocument('users', $user));
|
||||
$user = Authorization::skip(fn () => $dbForProject->createDocument('users', $user));
|
||||
try {
|
||||
$target = Authorization::skip(fn () => $dbForProject->createDocument('targets', new Document([
|
||||
'$permissions' => [
|
||||
Permission::read(Role::user($user->getId())),
|
||||
Permission::update(Role::user($user->getId())),
|
||||
Permission::delete(Role::user($user->getId())),
|
||||
],
|
||||
'userId' => $user->getId(),
|
||||
'userInternalId' => $user->getSequence(),
|
||||
'providerType' => MESSAGE_TYPE_EMAIL,
|
||||
'identifier' => $email,
|
||||
])));
|
||||
$user->setAttribute('targets', [...$user->getAttribute('targets', []), $target]);
|
||||
} catch (Duplicate) {
|
||||
$existingTarget = $dbForProject->findOne('targets', [
|
||||
Query::equal('identifier', [$email]),
|
||||
]);
|
||||
if (!$existingTarget->isEmpty()) {
|
||||
$user->setAttribute('targets', $existingTarget, Document::SET_TYPE_APPEND);
|
||||
}
|
||||
}
|
||||
|
||||
$dbForProject->purgeCachedDocument('users', $user->getId());
|
||||
}
|
||||
|
||||
$tokenSecret = Auth::codeGenerator(6);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -31,6 +31,7 @@ use Utopia\Database\Helpers\Role;
|
||||
use Utopia\Database\Validator\Authorization;
|
||||
use Utopia\Queue\Publisher;
|
||||
use Utopia\System\System;
|
||||
use Utopia\Telemetry\Adapter as Telemetry;
|
||||
use Utopia\Validator\WhiteList;
|
||||
|
||||
$parseLabel = function (string $label, array $responsePayload, array $requestParams, Document $user) {
|
||||
@@ -421,7 +422,8 @@ App::init()
|
||||
->inject('apiKey')
|
||||
->inject('plan')
|
||||
->inject('devKey')
|
||||
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Publisher $publisher, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, StatsUsage $queueForStatsUsage, Database $dbForProject, callable $timelimit, Document $resourceToken, string $mode, ?Key $apiKey, array $plan, Document $devKey) use ($usageDatabaseListener, $eventDatabaseListener) {
|
||||
->inject('telemetry')
|
||||
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Publisher $publisher, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, StatsUsage $queueForStatsUsage, Database $dbForProject, callable $timelimit, Document $resourceToken, string $mode, ?Key $apiKey, array $plan, Document $devKey, Telemetry $telemetry) use ($usageDatabaseListener, $eventDatabaseListener) {
|
||||
|
||||
$route = $utopia->getRoute();
|
||||
|
||||
@@ -554,6 +556,7 @@ App::init()
|
||||
));
|
||||
|
||||
$useCache = $route->getLabel('cache', false);
|
||||
$storageCacheOperationsCounter = $telemetry->createCounter('storage.cache.operations.load');
|
||||
if ($useCache) {
|
||||
$route = $utopia->match($request);
|
||||
$isImageTransformation = $route->getPath() === '/v1/storage/buckets/:bucketId/files/:fileId/preview';
|
||||
@@ -619,10 +622,12 @@ App::init()
|
||||
->addHeader('Cache-Control', sprintf('private, max-age=%d', $timestamp))
|
||||
->addHeader('X-Appwrite-Cache', 'hit')
|
||||
->setContentType($cacheLog->getAttribute('mimeType'));
|
||||
$storageCacheOperationsCounter->add(1, ['result' => 'hit']);
|
||||
if (!$isImageTransformation || !$isDisabled) {
|
||||
$response->send($data);
|
||||
}
|
||||
} else {
|
||||
$storageCacheOperationsCounter->add(1, ['result' => 'miss']);
|
||||
$response
|
||||
->addHeader('Cache-Control', 'no-cache, no-store, must-revalidate')
|
||||
->addHeader('Pragma', 'no-cache')
|
||||
|
||||
+15
-6
@@ -234,12 +234,12 @@ App::setResource('user', function ($mode, $project, $console, $request, $respons
|
||||
Auth::$unique = $session['id'] ?? '';
|
||||
Auth::$secret = $session['secret'] ?? '';
|
||||
|
||||
if ($mode === APP_MODE_ADMIN) {
|
||||
$user = $dbForPlatform->getDocument('users', Auth::$unique);
|
||||
} else {
|
||||
if ($project->isEmpty()) {
|
||||
$user = new Document([]);
|
||||
} else {
|
||||
$user = new Document([]);
|
||||
|
||||
if (!empty(Auth::$unique)) {
|
||||
if ($mode === APP_MODE_ADMIN) {
|
||||
$user = $dbForPlatform->getDocument('users', Auth::$unique);
|
||||
} elseif (!$project->isEmpty()) {
|
||||
if ($project->getId() === 'console') {
|
||||
$user = $dbForPlatform->getDocument('users', Auth::$unique);
|
||||
} else {
|
||||
@@ -849,11 +849,20 @@ App::setResource('team', function (Document $project, Database $dbForPlatform, A
|
||||
$teamInternalId = $p->getAttribute('teamInternalId', '');
|
||||
} elseif ($path === '/v1/projects') {
|
||||
$teamId = $request->getParam('teamId', '');
|
||||
|
||||
if (empty($teamId)) {
|
||||
return new Document([]);
|
||||
}
|
||||
|
||||
$team = Authorization::skip(fn () => $dbForPlatform->getDocument('teams', $teamId));
|
||||
return $team;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($teamInternalId)) {
|
||||
return new Document([]);
|
||||
}
|
||||
|
||||
$team = Authorization::skip(function () use ($dbForPlatform, $teamInternalId) {
|
||||
return $dbForPlatform->findOne('teams', [
|
||||
Query::equal('$sequence', [$teamInternalId]),
|
||||
|
||||
@@ -95,6 +95,8 @@ $image = $this->getParam('image', '');
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
@@ -472,6 +474,8 @@ $image = $this->getParam('image', '');
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_EMAIL_CERTIFICATES
|
||||
- _APP_REDIS_HOST
|
||||
@@ -629,6 +633,8 @@ $image = $this->getParam('image', '');
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_EMAIL_SECURITY
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
@@ -660,6 +666,8 @@ $image = $this->getParam('image', '');
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_OPENSSL_KEY_V1
|
||||
- _APP_REDIS_HOST
|
||||
|
||||
+5
-3
@@ -52,9 +52,10 @@
|
||||
"utopia-php/cache": "0.13.*",
|
||||
"utopia-php/cli": "0.15.*",
|
||||
"utopia-php/config": "0.2.*",
|
||||
"utopia-php/database": "dev-feat-transaction-pinning as 0.71.6",
|
||||
"utopia-php/database": "0.77.*",
|
||||
"utopia-php/detector": "0.1.*",
|
||||
"utopia-php/domains": "0.8.*",
|
||||
"utopia-php/dns": "0.3.*",
|
||||
"utopia-php/dsn": "0.2.1",
|
||||
"utopia-php/framework": "0.33.*",
|
||||
"utopia-php/fetch": "0.4.*",
|
||||
@@ -62,7 +63,7 @@
|
||||
"utopia-php/locale": "0.4.*",
|
||||
"utopia-php/logger": "0.6.*",
|
||||
"utopia-php/messaging": "0.18.*",
|
||||
"utopia-php/migration": "0.13.*",
|
||||
"utopia-php/migration": "0.14.*",
|
||||
"utopia-php/orchestration": "0.9.*",
|
||||
"utopia-php/platform": "0.7.*",
|
||||
"utopia-php/pools": "0.8.*",
|
||||
@@ -82,7 +83,8 @@
|
||||
"adhocore/jwt": "1.1.*",
|
||||
"spomky-labs/otphp": "^10.0",
|
||||
"webonyx/graphql-php": "14.11.*",
|
||||
"league/csv": "9.14.*"
|
||||
"league/csv": "9.14.*",
|
||||
"enshrined/svg-sanitize": "0.21.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-fileinfo": "*",
|
||||
|
||||
Generated
+211
-83
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "aabb75770fc1377ff5188957653cbdea",
|
||||
"content-hash": "72786a5d87326f396250f18d725dea23",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
@@ -69,16 +69,16 @@
|
||||
},
|
||||
{
|
||||
"name": "appwrite/appwrite",
|
||||
"version": "15.0.0",
|
||||
"version": "15.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/appwrite/sdk-for-php.git",
|
||||
"reference": "deb97b62e0abed8a4fd5c5d48e77365cf89867cf"
|
||||
"reference": "c438b3885071ac7c0329199dce5e6f6a24dd215b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-for-php/zipball/deb97b62e0abed8a4fd5c5d48e77365cf89867cf",
|
||||
"reference": "deb97b62e0abed8a4fd5c5d48e77365cf89867cf",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-for-php/zipball/c438b3885071ac7c0329199dce5e6f6a24dd215b",
|
||||
"reference": "c438b3885071ac7c0329199dce5e6f6a24dd215b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -104,10 +104,10 @@
|
||||
"support": {
|
||||
"email": "team@appwrite.io",
|
||||
"issues": "https://github.com/appwrite/sdk-for-php/issues",
|
||||
"source": "https://github.com/appwrite/sdk-for-php/tree/15.0.0",
|
||||
"source": "https://github.com/appwrite/sdk-for-php/tree/15.1.0",
|
||||
"url": "https://appwrite.io/support"
|
||||
},
|
||||
"time": "2025-05-18T09:47:10+00:00"
|
||||
"time": "2025-08-01T04:50:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "appwrite/php-clamav",
|
||||
@@ -628,6 +628,51 @@
|
||||
],
|
||||
"time": "2023-08-10T19:36:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "enshrined/svg-sanitize",
|
||||
"version": "0.21.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/darylldoyle/svg-sanitizer.git",
|
||||
"reference": "5e477468fac5c5ce933dce53af3e8e4e58dcccc9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/5e477468fac5c5ce933dce53af3e8e4e58dcccc9",
|
||||
"reference": "5e477468fac5c5ce933dce53af3e8e4e58dcccc9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-libxml": "*",
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.5 || ^8.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"enshrined\\svgSanitize\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"GPL-2.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Daryll Doyle",
|
||||
"email": "daryll@enshrined.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "An SVG sanitizer for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/darylldoyle/svg-sanitizer/issues",
|
||||
"source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.21.0"
|
||||
},
|
||||
"time": "2025-01-13T09:32:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "giggsey/libphonenumber-for-php-lite",
|
||||
"version": "8.13.36",
|
||||
@@ -1183,16 +1228,16 @@
|
||||
},
|
||||
{
|
||||
"name": "open-telemetry/context",
|
||||
"version": "1.2.1",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opentelemetry-php/context.git",
|
||||
"reference": "1eb2b837ee9362db064a6b65d5ecce15a9f9f020"
|
||||
"reference": "4d5d98f1d4311a55b8d07e3d4c06d2430b4e6efc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/context/zipball/1eb2b837ee9362db064a6b65d5ecce15a9f9f020",
|
||||
"reference": "1eb2b837ee9362db064a6b65d5ecce15a9f9f020",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/context/zipball/4d5d98f1d4311a55b8d07e3d4c06d2430b4e6efc",
|
||||
"reference": "4d5d98f1d4311a55b8d07e3d4c06d2430b4e6efc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1238,7 +1283,7 @@
|
||||
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
|
||||
"source": "https://github.com/open-telemetry/opentelemetry-php"
|
||||
},
|
||||
"time": "2025-05-07T23:36:50+00:00"
|
||||
"time": "2025-08-04T03:25:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "open-telemetry/exporter-otlp",
|
||||
@@ -1369,16 +1414,16 @@
|
||||
},
|
||||
{
|
||||
"name": "open-telemetry/sdk",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opentelemetry-php/sdk.git",
|
||||
"reference": "1c0371794e4c0700afd4a9d4d8511cb5e3f78e6a"
|
||||
"reference": "86287cf30fd6549444d7b8f7d8758d92e24086ac"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/1c0371794e4c0700afd4a9d4d8511cb5e3f78e6a",
|
||||
"reference": "1c0371794e4c0700afd4a9d4d8511cb5e3f78e6a",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/86287cf30fd6549444d7b8f7d8758d92e24086ac",
|
||||
"reference": "86287cf30fd6549444d7b8f7d8758d92e24086ac",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1397,7 +1442,7 @@
|
||||
"ramsey/uuid": "^3.0 || ^4.0",
|
||||
"symfony/polyfill-mbstring": "^1.23",
|
||||
"symfony/polyfill-php82": "^1.26",
|
||||
"tbachert/spi": "^1.0.1"
|
||||
"tbachert/spi": "^1.0.5"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-gmp": "To support unlimited number of synchronous metric readers",
|
||||
@@ -1411,6 +1456,9 @@
|
||||
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderHttpConfig",
|
||||
"OpenTelemetry\\API\\Instrumentation\\Configuration\\General\\ConfigEnv\\EnvComponentLoaderPeerConfig"
|
||||
],
|
||||
"OpenTelemetry\\SDK\\Common\\Configuration\\Resolver\\ResolverInterface": [
|
||||
"OpenTelemetry\\SDK\\Common\\Configuration\\Resolver\\SdkConfigurationResolver"
|
||||
],
|
||||
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [
|
||||
"OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager"
|
||||
]
|
||||
@@ -1459,20 +1507,20 @@
|
||||
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
|
||||
"source": "https://github.com/open-telemetry/opentelemetry-php"
|
||||
},
|
||||
"time": "2025-06-19T23:36:51+00:00"
|
||||
"time": "2025-08-06T03:07:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "open-telemetry/sem-conv",
|
||||
"version": "1.32.1",
|
||||
"version": "1.36.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opentelemetry-php/sem-conv.git",
|
||||
"reference": "94daa85ea61a8e2b7e1b0af6be0e875bedda7c22"
|
||||
"reference": "60dd18fd21d45e6f4234ecab89c14021b6e3de9a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/94daa85ea61a8e2b7e1b0af6be0e875bedda7c22",
|
||||
"reference": "94daa85ea61a8e2b7e1b0af6be0e875bedda7c22",
|
||||
"url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/60dd18fd21d45e6f4234ecab89c14021b6e3de9a",
|
||||
"reference": "60dd18fd21d45e6f4234ecab89c14021b6e3de9a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1516,7 +1564,7 @@
|
||||
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
|
||||
"source": "https://github.com/open-telemetry/opentelemetry-php"
|
||||
},
|
||||
"time": "2025-06-24T02:32:27+00:00"
|
||||
"time": "2025-08-04T03:22:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
@@ -2547,16 +2595,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client",
|
||||
"version": "v7.3.1",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-client.git",
|
||||
"reference": "4403d87a2c16f33345dca93407a8714ee8c05a64"
|
||||
"reference": "1c064a0c67749923483216b081066642751cc2c7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/4403d87a2c16f33345dca93407a8714ee8c05a64",
|
||||
"reference": "4403d87a2c16f33345dca93407a8714ee8c05a64",
|
||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/1c064a0c67749923483216b081066642751cc2c7",
|
||||
"reference": "1c064a0c67749923483216b081066642751cc2c7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2622,7 +2670,7 @@
|
||||
"http"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/http-client/tree/v7.3.1"
|
||||
"source": "https://github.com/symfony/http-client/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -2633,12 +2681,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-06-28T07:58:39+00:00"
|
||||
"time": "2025-07-15T11:36:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-client-contracts",
|
||||
@@ -3493,16 +3545,16 @@
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/database",
|
||||
"version": "dev-feat-transaction-pinning",
|
||||
"version": "0.77.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/database.git",
|
||||
"reference": "8c764ed339caa60687b2362a96712bb6cbabf1eb"
|
||||
"reference": "a8ab3a7b25a5a1edf7e7afc83eda9f7aec5ba57d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/8c764ed339caa60687b2362a96712bb6cbabf1eb",
|
||||
"reference": "8c764ed339caa60687b2362a96712bb6cbabf1eb",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/a8ab3a7b25a5a1edf7e7afc83eda9f7aec5ba57d",
|
||||
"reference": "a8ab3a7b25a5a1edf7e7afc83eda9f7aec5ba57d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3543,9 +3595,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/database/issues",
|
||||
"source": "https://github.com/utopia-php/database/tree/feat-transaction-pinning"
|
||||
"source": "https://github.com/utopia-php/database/tree/0.77.0"
|
||||
},
|
||||
"time": "2025-06-18T20:49:54+00:00"
|
||||
"time": "2025-08-07T09:30:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/detector",
|
||||
@@ -3592,6 +3644,62 @@
|
||||
},
|
||||
"time": "2025-05-19T11:01:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/dns",
|
||||
"version": "0.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/dns.git",
|
||||
"reference": "8fd4161bc3a8021a670c1101b40f6b09a97f1a54"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/dns/zipball/8fd4161bc3a8021a670c1101b40f6b09a97f1a54",
|
||||
"reference": "8fd4161bc3a8021a670c1101b40f6b09a97f1a54",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0",
|
||||
"utopia-php/cli": "0.15.*",
|
||||
"utopia-php/telemetry": "^0.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"laravel/pint": "1.2.*",
|
||||
"phpstan/phpstan": "1.8.*",
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"rregeer/phpunit-coverage-check": "^0.3.1",
|
||||
"swoole/ide-helper": "4.6.6"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Utopia\\DNS\\": "src/DNS"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Eldad Fux",
|
||||
"email": "eldad@appwrite.io"
|
||||
}
|
||||
],
|
||||
"description": "Lite & fast micro PHP DNS server abstraction that is **easy to use**.",
|
||||
"keywords": [
|
||||
"dns",
|
||||
"framework",
|
||||
"php",
|
||||
"upf",
|
||||
"utopia"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/dns/issues",
|
||||
"source": "https://github.com/utopia-php/dns/tree/0.3.0"
|
||||
},
|
||||
"time": "2025-08-04T11:05:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/domains",
|
||||
"version": "0.8.0",
|
||||
@@ -3993,16 +4101,16 @@
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/migration",
|
||||
"version": "0.13.5",
|
||||
"version": "0.14.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/migration.git",
|
||||
"reference": "8142d722d8eeec443e6d5df91b69ecf89b86df8e"
|
||||
"reference": "c47855518c95f80fde71fec5f6598623eb2fc884"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/migration/zipball/8142d722d8eeec443e6d5df91b69ecf89b86df8e",
|
||||
"reference": "8142d722d8eeec443e6d5df91b69ecf89b86df8e",
|
||||
"url": "https://api.github.com/repos/utopia-php/migration/zipball/c47855518c95f80fde71fec5f6598623eb2fc884",
|
||||
"reference": "c47855518c95f80fde71fec5f6598623eb2fc884",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4043,9 +4151,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/migration/issues",
|
||||
"source": "https://github.com/utopia-php/migration/tree/0.13.5"
|
||||
"source": "https://github.com/utopia-php/migration/tree/0.14.3"
|
||||
},
|
||||
"time": "2025-07-29T04:15:45+00:00"
|
||||
"time": "2025-08-08T13:10:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/orchestration",
|
||||
@@ -4810,16 +4918,16 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "appwrite/sdk-generator",
|
||||
"version": "0.41.8",
|
||||
"version": "0.41.29",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/appwrite/sdk-generator.git",
|
||||
"reference": "93ffb24b25b376ca4423e3a5caf6f916673af4b2"
|
||||
"reference": "4af563f3b0879747efc8434eb8ed8bf97e75039f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/93ffb24b25b376ca4423e3a5caf6f916673af4b2",
|
||||
"reference": "93ffb24b25b376ca4423e3a5caf6f916673af4b2",
|
||||
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/4af563f3b0879747efc8434eb8ed8bf97e75039f",
|
||||
"reference": "4af563f3b0879747efc8434eb8ed8bf97e75039f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4855,9 +4963,9 @@
|
||||
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
|
||||
"support": {
|
||||
"issues": "https://github.com/appwrite/sdk-generator/issues",
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.41.8"
|
||||
"source": "https://github.com/appwrite/sdk-generator/tree/0.41.29"
|
||||
},
|
||||
"time": "2025-06-18T13:20:45+00:00"
|
||||
"time": "2025-08-04T04:34:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/annotations",
|
||||
@@ -5276,16 +5384,16 @@
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.13.3",
|
||||
"version": "1.13.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "faed855a7b5f4d4637717c2b3863e277116beb36"
|
||||
"reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/faed855a7b5f4d4637717c2b3863e277116beb36",
|
||||
"reference": "faed855a7b5f4d4637717c2b3863e277116beb36",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
|
||||
"reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5324,7 +5432,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/DeepCopy/issues",
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.13.3"
|
||||
"source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5332,7 +5440,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-07-05T12:25:42+00:00"
|
||||
"time": "2025-08-01T08:46:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
@@ -7258,16 +7366,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v7.3.1",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "9e27aecde8f506ba0fd1d9989620c04a87697101"
|
||||
"reference": "5f360ebc65c55265a74d23d7fe27f957870158a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/9e27aecde8f506ba0fd1d9989620c04a87697101",
|
||||
"reference": "9e27aecde8f506ba0fd1d9989620c04a87697101",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/5f360ebc65c55265a74d23d7fe27f957870158a1",
|
||||
"reference": "5f360ebc65c55265a74d23d7fe27f957870158a1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7332,7 +7440,7 @@
|
||||
"terminal"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/console/tree/v7.3.1"
|
||||
"source": "https://github.com/symfony/console/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7343,25 +7451,29 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-06-27T19:55:54+00:00"
|
||||
"time": "2025-07-30T17:13:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v7.3.0",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
|
||||
"reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd",
|
||||
"reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7398,7 +7510,7 @@
|
||||
"description": "Provides basic utilities for the filesystem",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/filesystem/tree/v7.3.0"
|
||||
"source": "https://github.com/symfony/filesystem/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7409,25 +7521,29 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-10-25T15:15:23+00:00"
|
||||
"time": "2025-07-07T08:17:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v7.3.0",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d"
|
||||
"reference": "2a6614966ba1074fa93dae0bc804227422df4dfe"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/ec2344cf77a48253bbca6939aa3d2477773ea63d",
|
||||
"reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe",
|
||||
"reference": "2a6614966ba1074fa93dae0bc804227422df4dfe",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7462,7 +7578,7 @@
|
||||
"description": "Finds files and directories via an intuitive fluent interface",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/finder/tree/v7.3.0"
|
||||
"source": "https://github.com/symfony/finder/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7473,25 +7589,29 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-12-30T19:00:26+00:00"
|
||||
"time": "2025-07-15T13:41:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
"version": "v7.3.0",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/options-resolver.git",
|
||||
"reference": "afb9a8038025e5dbc657378bfab9198d75f10fca"
|
||||
"reference": "119bcf13e67dbd188e5dbc74228b1686f66acd37"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/afb9a8038025e5dbc657378bfab9198d75f10fca",
|
||||
"reference": "afb9a8038025e5dbc657378bfab9198d75f10fca",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/119bcf13e67dbd188e5dbc74228b1686f66acd37",
|
||||
"reference": "119bcf13e67dbd188e5dbc74228b1686f66acd37",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7529,7 +7649,7 @@
|
||||
"options"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v7.3.0"
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -7540,12 +7660,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-04-04T13:12:05+00:00"
|
||||
"time": "2025-07-15T11:36:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -7924,16 +8048,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v7.3.0",
|
||||
"version": "v7.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125"
|
||||
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/f3570b8c61ca887a9e2938e85cb6458515d2b125",
|
||||
"reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca",
|
||||
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7991,7 +8115,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v7.3.0"
|
||||
"source": "https://github.com/symfony/string/tree/v7.3.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -8002,12 +8126,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2025-04-20T20:19:01+00:00"
|
||||
"time": "2025-07-10T08:47:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "textalk/websocket",
|
||||
|
||||
@@ -120,6 +120,8 @@ services:
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
@@ -535,6 +537,8 @@ services:
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_EMAIL_CERTIFICATES
|
||||
- _APP_REDIS_HOST
|
||||
@@ -704,6 +708,8 @@ services:
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_EMAIL_SECURITY
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
@@ -738,6 +744,8 @@ services:
|
||||
- _APP_DOMAIN_TARGET_CNAME
|
||||
- _APP_DOMAIN_TARGET_AAAA
|
||||
- _APP_DOMAIN_TARGET_A
|
||||
- _APP_DOMAIN_TARGET_CAA
|
||||
- _APP_DNS
|
||||
- _APP_DOMAIN_FUNCTIONS
|
||||
- _APP_OPENSSL_KEY_V1
|
||||
- _APP_REDIS_HOST
|
||||
|
||||
@@ -15,7 +15,7 @@ functions.createExecution(
|
||||
"<PATH>", // path (optional)
|
||||
ExecutionMethod.GET, // method (optional)
|
||||
mapOf( "a" to "b" ), // headers (optional)
|
||||
"", // scheduledAt (optional)
|
||||
"<SCHEDULED_AT>", // scheduledAt (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
|
||||
@@ -15,5 +15,5 @@ val result = functions.createExecution(
|
||||
path = "<PATH>", // (optional)
|
||||
method = ExecutionMethod.GET, // (optional)
|
||||
headers = mapOf( "a" to "b" ), // (optional)
|
||||
scheduledAt = "", // (optional)
|
||||
scheduledAt = "<SCHEDULED_AT>", // (optional)
|
||||
)
|
||||
@@ -16,7 +16,7 @@ functions.createExecution(
|
||||
"<PATH>", // path (optional)
|
||||
ExecutionMethod.GET, // method (optional)
|
||||
mapOf( "a" to "b" ), // headers (optional)
|
||||
"", // scheduledAt (optional)
|
||||
"<SCHEDULED_AT>", // scheduledAt (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
|
||||
@@ -16,5 +16,5 @@ val response = functions.createExecution(
|
||||
path = "<PATH>", // optional
|
||||
method = "GET", // optional
|
||||
headers = mapOf( "a" to "b" ), // optional
|
||||
scheduledAt = "" // optional
|
||||
scheduledAt = "<SCHEDULED_AT>" // optional
|
||||
)
|
||||
|
||||
@@ -4,9 +4,7 @@ import io.appwrite.services.Databases;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>"); // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Databases databases = new Databases(client);
|
||||
|
||||
|
||||
@@ -4,9 +4,7 @@ import io.appwrite.services.Databases;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>"); // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Databases databases = new Databases(client);
|
||||
|
||||
@@ -14,6 +12,8 @@ databases.upsertDocument(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<COLLECTION_ID>", // collectionId
|
||||
"<DOCUMENT_ID>", // documentId
|
||||
mapOf( "a" to "b" ), // data
|
||||
listOf("read("any")"), // permissions (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
|
||||
@@ -15,7 +15,7 @@ functions.createExecution(
|
||||
"<PATH>", // path (optional)
|
||||
ExecutionMethod.GET, // method (optional)
|
||||
mapOf( "a" to "b" ), // headers (optional)
|
||||
"", // scheduledAt (optional)
|
||||
"<SCHEDULED_AT>", // scheduledAt (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
grids.createRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
mapOf( "a" to "b" ), // data
|
||||
listOf("read("any")"), // permissions (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("Appwrite", result.toString());
|
||||
})
|
||||
);
|
||||
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
tables.deleteRow(
|
||||
grids.deleteRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
tables.getRow(
|
||||
grids.getRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
tables.listRows(
|
||||
grids.listRows(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
listOf(), // queries (optional)
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
tables.updateRow(
|
||||
grids.updateRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
@@ -0,0 +1,26 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Grids;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>"); // Your project ID
|
||||
|
||||
Grids grids = new Grids(client);
|
||||
|
||||
grids.upsertRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
mapOf( "a" to "b" ), // data (optional)
|
||||
listOf("read("any")"), // permissions (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("Appwrite", result.toString());
|
||||
})
|
||||
);
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>"); // Your secret JSON Web Token
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
|
||||
tables.createRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
mapOf( "a" to "b" ), // data
|
||||
listOf("read("any")"), // permissions (optional)
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("Appwrite", result.toString());
|
||||
})
|
||||
);
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setAdmin("") //
|
||||
.setKey(""); //
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
|
||||
tables.createRows(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
listOf(), // rows
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("Appwrite", result.toString());
|
||||
})
|
||||
);
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
import io.appwrite.Client;
|
||||
import io.appwrite.coroutines.CoroutineCallback;
|
||||
import io.appwrite.services.Tables;
|
||||
|
||||
Client client = new Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>"); // Your secret JSON Web Token
|
||||
|
||||
Tables tables = new Tables(client);
|
||||
|
||||
tables.upsertRow(
|
||||
"<DATABASE_ID>", // databaseId
|
||||
"<TABLE_ID>", // tableId
|
||||
"<ROW_ID>", // rowId
|
||||
new CoroutineCallback<>((result, error) -> {
|
||||
if (error != null) {
|
||||
error.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("Appwrite", result.toString());
|
||||
})
|
||||
);
|
||||
|
||||
@@ -4,9 +4,7 @@ import io.appwrite.services.Databases
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val databases = Databases(client)
|
||||
|
||||
|
||||
@@ -4,9 +4,7 @@ import io.appwrite.services.Databases
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val databases = Databases(client)
|
||||
|
||||
@@ -14,4 +12,6 @@ val result = databases.upsertDocument(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
collectionId = "<COLLECTION_ID>",
|
||||
documentId = "<DOCUMENT_ID>",
|
||||
data = mapOf( "a" to "b" ),
|
||||
permissions = listOf("read("any")"), // (optional)
|
||||
)
|
||||
@@ -15,5 +15,5 @@ val result = functions.createExecution(
|
||||
path = "<PATH>", // (optional)
|
||||
method = ExecutionMethod.GET, // (optional)
|
||||
headers = mapOf( "a" to "b" ), // (optional)
|
||||
scheduledAt = "", // (optional)
|
||||
scheduledAt = "<SCHEDULED_AT>", // (optional)
|
||||
)
|
||||
+4
-6
@@ -1,16 +1,14 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val tables = Tables(client)
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = tables.createRow(
|
||||
val result = grids.createRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val tables = Tables(client)
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = tables.deleteRow(
|
||||
val result = grids.deleteRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val tables = Tables(client)
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = tables.getRow(
|
||||
val result = grids.getRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val tables = Tables(client)
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = tables.listRows(
|
||||
val result = grids.listRows(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
queries = listOf(), // (optional)
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val tables = Tables(client)
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = tables.updateRow(
|
||||
val result = grids.updateRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
@@ -0,0 +1,17 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Grids
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
val grids = Grids(client)
|
||||
|
||||
val result = grids.upsertRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
data = mapOf( "a" to "b" ), // (optional)
|
||||
permissions = listOf("read("any")"), // (optional)
|
||||
)
|
||||
@@ -1,16 +0,0 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setAdmin("") //
|
||||
.setKey("") //
|
||||
|
||||
val tables = Tables(client)
|
||||
|
||||
val result = tables.createRows(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rows = listOf(),
|
||||
)
|
||||
@@ -1,17 +0,0 @@
|
||||
import io.appwrite.Client
|
||||
import io.appwrite.coroutines.CoroutineCallback
|
||||
import io.appwrite.services.Tables
|
||||
|
||||
val client = Client(context)
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
|
||||
val tables = Tables(client)
|
||||
|
||||
val result = tables.upsertRow(
|
||||
databaseId = "<DATABASE_ID>",
|
||||
tableId = "<TABLE_ID>",
|
||||
rowId = "<ROW_ID>",
|
||||
)
|
||||
@@ -2,9 +2,7 @@ import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let databases = Databases(client)
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let databases = Databases(client)
|
||||
|
||||
let document = try await databases.upsertDocument(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
collectionId: "<COLLECTION_ID>",
|
||||
documentId: "<DOCUMENT_ID>"
|
||||
documentId: "<DOCUMENT_ID>",
|
||||
data: [:],
|
||||
permissions: ["read("any")"] // optional
|
||||
)
|
||||
|
||||
|
||||
@@ -14,6 +14,6 @@ let execution = try await functions.createExecution(
|
||||
path: "<PATH>", // optional
|
||||
method: .gET, // optional
|
||||
headers: [:], // optional
|
||||
scheduledAt: "" // optional
|
||||
scheduledAt: "<SCHEDULED_AT>" // optional
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let grids = Grids(client)
|
||||
|
||||
let row = try await grids.createRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
data: [:],
|
||||
permissions: ["read("any")"] // optional
|
||||
)
|
||||
|
||||
+2
-2
@@ -4,9 +4,9 @@ let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let tables = Tables(client)
|
||||
let grids = Grids(client)
|
||||
|
||||
let result = try await tables.deleteRow(
|
||||
let result = try await grids.deleteRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>"
|
||||
+2
-2
@@ -4,9 +4,9 @@ let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let tables = Tables(client)
|
||||
let grids = Grids(client)
|
||||
|
||||
let row = try await tables.getRow(
|
||||
let row = try await grids.getRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
+2
-2
@@ -4,9 +4,9 @@ let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let tables = Tables(client)
|
||||
let grids = Grids(client)
|
||||
|
||||
let rowList = try await tables.listRows(
|
||||
let rowList = try await grids.listRows(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
queries: [] // optional
|
||||
+2
-2
@@ -4,9 +4,9 @@ let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let tables = Tables(client)
|
||||
let grids = Grids(client)
|
||||
|
||||
let row = try await tables.updateRow(
|
||||
let row = try await grids.updateRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
@@ -0,0 +1,16 @@
|
||||
import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setProject("<YOUR_PROJECT_ID>") // Your project ID
|
||||
|
||||
let grids = Grids(client)
|
||||
|
||||
let row = try await grids.upsertRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
data: [:], // optional
|
||||
permissions: ["read("any")"] // optional
|
||||
)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setAdmin("") //
|
||||
.setKey("") //
|
||||
|
||||
let tables = Tables(client)
|
||||
|
||||
let rowList = try await tables.createRows(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rows: []
|
||||
)
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
import Appwrite
|
||||
|
||||
let client = Client()
|
||||
.setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint
|
||||
.setSession("") // The user session to authenticate with
|
||||
.setKey("") //
|
||||
.setJWT("<YOUR_JWT>") // Your secret JSON Web Token
|
||||
|
||||
let tables = Tables(client)
|
||||
|
||||
let row = try await tables.upsertRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>"
|
||||
)
|
||||
|
||||
@@ -2,9 +2,7 @@ import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Databases databases = Databases(client);
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@ import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Databases databases = Databases(client);
|
||||
|
||||
@@ -12,4 +10,6 @@ Document result = await databases.upsertDocument(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
collectionId: '<COLLECTION_ID>',
|
||||
documentId: '<DOCUMENT_ID>',
|
||||
data: {},
|
||||
permissions: ["read("any")"], // optional
|
||||
);
|
||||
|
||||
@@ -13,5 +13,5 @@ Execution result = await functions.createExecution(
|
||||
path: '<PATH>', // optional
|
||||
method: ExecutionMethod.gET, // optional
|
||||
headers: {}, // optional
|
||||
scheduledAt: '', // optional
|
||||
scheduledAt: '<SCHEDULED_AT>', // optional
|
||||
);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Grids grids = Grids(client);
|
||||
|
||||
Row result = await grids.createRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
data: {},
|
||||
permissions: ["read("any")"], // optional
|
||||
);
|
||||
+2
-2
@@ -4,9 +4,9 @@ Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Tables tables = Tables(client);
|
||||
Grids grids = Grids(client);
|
||||
|
||||
await tables.deleteRow(
|
||||
await grids.deleteRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
+2
-2
@@ -4,9 +4,9 @@ Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Tables tables = Tables(client);
|
||||
Grids grids = Grids(client);
|
||||
|
||||
Row result = await tables.getRow(
|
||||
Row result = await grids.getRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
+2
-2
@@ -4,9 +4,9 @@ Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Tables tables = Tables(client);
|
||||
Grids grids = Grids(client);
|
||||
|
||||
RowList result = await tables.listRows(
|
||||
RowList result = await grids.listRows(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
queries: [], // optional
|
||||
+2
-2
@@ -4,9 +4,9 @@ Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Tables tables = Tables(client);
|
||||
Grids grids = Grids(client);
|
||||
|
||||
Row result = await tables.updateRow(
|
||||
Row result = await grids.updateRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
@@ -0,0 +1,15 @@
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
Grids grids = Grids(client);
|
||||
|
||||
Row result = await grids.upsertRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
data: {}, // optional
|
||||
permissions: ["read("any")"], // optional
|
||||
);
|
||||
@@ -1,17 +0,0 @@
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
|
||||
Tables tables = Tables(client);
|
||||
|
||||
Row result = await tables.createRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
data: {},
|
||||
permissions: ["read("any")"], // optional
|
||||
);
|
||||
@@ -1,14 +0,0 @@
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setAdmin('') //
|
||||
.setKey(''); //
|
||||
|
||||
Tables tables = Tables(client);
|
||||
|
||||
RowList result = await tables.createRows(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rows: [],
|
||||
);
|
||||
@@ -1,15 +0,0 @@
|
||||
import 'package:appwrite/appwrite.dart';
|
||||
|
||||
Client client = Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
|
||||
Tables tables = Tables(client);
|
||||
|
||||
Row result = await tables.upsertRow(
|
||||
databaseId: '<DATABASE_ID>',
|
||||
tableId: '<TABLE_ID>',
|
||||
rowId: '<ROW_ID>',
|
||||
);
|
||||
@@ -2,7 +2,9 @@ mutation {
|
||||
databasesUpsertDocument(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
collectionId: "<COLLECTION_ID>",
|
||||
documentId: "<DOCUMENT_ID>"
|
||||
documentId: "<DOCUMENT_ID>",
|
||||
data: "{}",
|
||||
permissions: ["read("any")"]
|
||||
) {
|
||||
_id
|
||||
_sequence
|
||||
|
||||
@@ -6,7 +6,7 @@ mutation {
|
||||
path: "<PATH>",
|
||||
method: "GET",
|
||||
headers: "{}",
|
||||
scheduledAt: ""
|
||||
scheduledAt: "<SCHEDULED_AT>"
|
||||
) {
|
||||
_id
|
||||
_createdAt
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
mutation {
|
||||
tablesCreateRow(
|
||||
gridsCreateRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
mutation {
|
||||
tablesDeleteRow(
|
||||
gridsDeleteRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>"
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
mutation {
|
||||
tablesUpdateRow(
|
||||
gridsUpdateRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
@@ -0,0 +1,18 @@
|
||||
mutation {
|
||||
gridsUpsertRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>",
|
||||
data: "{}",
|
||||
permissions: ["read("any")"]
|
||||
) {
|
||||
_id
|
||||
_sequence
|
||||
_tableId
|
||||
_databaseId
|
||||
_createdAt
|
||||
_updatedAt
|
||||
_permissions
|
||||
data
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
POST /v1/storage/buckets/{bucketId}/files HTTP/1.1
|
||||
Host: cloud.appwrite.io
|
||||
Content-Type: multipart/form-data; boundary="cec8e8123c05ba25"
|
||||
X-Appwrite-Response-Format: 1.7.0
|
||||
X-Appwrite-Response-Format: 1.8.0
|
||||
X-Appwrite-Project: <YOUR_PROJECT_ID>
|
||||
X-Appwrite-Session:
|
||||
X-Appwrite-JWT: <YOUR_JWT>
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
mutation {
|
||||
tablesUpsertRow(
|
||||
databaseId: "<DATABASE_ID>",
|
||||
tableId: "<TABLE_ID>",
|
||||
rowId: "<ROW_ID>"
|
||||
) {
|
||||
_id
|
||||
_sequence
|
||||
_tableId
|
||||
_databaseId
|
||||
_createdAt
|
||||
_updatedAt
|
||||
_permissions
|
||||
data
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,7 @@ import { Client, Databases } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const databases = new Databases(client);
|
||||
|
||||
|
||||
@@ -2,16 +2,16 @@ import { Client, Databases } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const databases = new Databases(client);
|
||||
|
||||
const result = await databases.upsertDocument(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<COLLECTION_ID>', // collectionId
|
||||
'<DOCUMENT_ID>' // documentId
|
||||
'<DOCUMENT_ID>', // documentId
|
||||
{}, // data
|
||||
["read("any")"] // permissions (optional)
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
|
||||
@@ -13,7 +13,7 @@ const result = await functions.createExecution(
|
||||
'<PATH>', // path (optional)
|
||||
ExecutionMethod.GET, // method (optional)
|
||||
{}, // headers (optional)
|
||||
'' // scheduledAt (optional)
|
||||
'<SCHEDULED_AT>' // scheduledAt (optional)
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await grids.createRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>', // rowId
|
||||
{}, // data
|
||||
["read("any")"] // permissions (optional)
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
import { Client, Tables } from "@appwrite.io/console";
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const tables = new Tables(client);
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await tables.deleteRow(
|
||||
const result = await grids.deleteRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>' // rowId
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
import { Client, Tables } from "@appwrite.io/console";
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const tables = new Tables(client);
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await tables.getRow(
|
||||
const result = await grids.getRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>', // rowId
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
import { Client, Tables } from "@appwrite.io/console";
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const tables = new Tables(client);
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await tables.listRows(
|
||||
const result = await grids.listRows(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
[] // queries (optional)
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
import { Client, Tables } from "@appwrite.io/console";
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const tables = new Tables(client);
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await tables.updateRow(
|
||||
const result = await grids.updateRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>', // rowId
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Client, Grids } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setProject('<YOUR_PROJECT_ID>'); // Your project ID
|
||||
|
||||
const grids = new Grids(client);
|
||||
|
||||
const result = await grids.upsertRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>', // rowId
|
||||
{}, // data (optional)
|
||||
["read("any")"] // permissions (optional)
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
@@ -1,19 +0,0 @@
|
||||
import { Client, Tables } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
|
||||
const tables = new Tables(client);
|
||||
|
||||
const result = await tables.createRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>', // rowId
|
||||
{}, // data
|
||||
["read("any")"] // permissions (optional)
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
@@ -1,16 +0,0 @@
|
||||
import { Client, Tables } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setAdmin('') //
|
||||
.setKey(''); //
|
||||
|
||||
const tables = new Tables(client);
|
||||
|
||||
const result = await tables.createRows(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
[] // rows
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
@@ -1,17 +0,0 @@
|
||||
import { Client, Tables } from "react-native-appwrite";
|
||||
|
||||
const client = new Client()
|
||||
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
|
||||
.setSession('') // The user session to authenticate with
|
||||
.setKey('') //
|
||||
.setJWT('<YOUR_JWT>'); // Your secret JSON Web Token
|
||||
|
||||
const tables = new Tables(client);
|
||||
|
||||
const result = await tables.upsertRow(
|
||||
'<DATABASE_ID>', // databaseId
|
||||
'<TABLE_ID>', // tableId
|
||||
'<ROW_ID>' // rowId
|
||||
);
|
||||
|
||||
console.log(result);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user