mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge remote-tracking branch 'upstream/0.7.x' into frontend-ui-deletion
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
_APP_ENV=production
|
||||
_APP_ENV=development
|
||||
_APP_SYSTEM_EMAIL_NAME=Appwrite
|
||||
_APP_SYSTEM_EMAIL_ADDRESS=team@appwrite.io
|
||||
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=security@appwrite.io
|
||||
_APP_OPTIONS_ABUSE=disabled
|
||||
_APP_OPTIONS_FORCE_HTTPS=disabled
|
||||
_APP_OPENSSL_KEY_V1=your-secret-key
|
||||
|
||||
+8
-11
@@ -1,11 +1,7 @@
|
||||
language: php
|
||||
arch:
|
||||
- amd64
|
||||
|
||||
php:
|
||||
- '7.4'
|
||||
|
||||
addons:
|
||||
hosts:
|
||||
- appwrite.test
|
||||
os: linux
|
||||
|
||||
notifications:
|
||||
email:
|
||||
@@ -15,10 +11,11 @@ services:
|
||||
- docker
|
||||
|
||||
before_install:
|
||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||
- sudo apt-get update
|
||||
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
||||
- curl -fsSL https://get.docker.com | sh
|
||||
- echo '{"experimental":"enabled"}' | sudo tee /etc/docker/daemon.json
|
||||
- mkdir -p $HOME/.docker
|
||||
- echo '{"experimental":"enabled"}' | sudo tee $HOME/.docker/config.json
|
||||
- sudo service docker start
|
||||
|
||||
# cache:
|
||||
# directories:
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- Added option to delete team from the console
|
||||
- Added option to view team members from the console
|
||||
- Added option to join a user to any team from the console
|
||||
- Added option to delete user from the API (@TorstenDittmann)
|
||||
- Added support for Brotli compression (@PedroCisnerosSantana, @Rohitub222)
|
||||
- New UI micro-interactions and CSS fixes (@AnatoleLucet)
|
||||
- UI performance & accessibility improvments (#406)
|
||||
@@ -30,10 +31,14 @@
|
||||
- API Key name max length is now 128 chars and not 256 for better API consistency
|
||||
- Task name max length is now 128 chars and not 256 for better API consistency
|
||||
- Platform name max length is now 128 chars and not 256 for better API consistency
|
||||
- Added new locale: Marathi -mr (@spielers)
|
||||
- New and consistent response format for all API object + new response examples in the docs
|
||||
- Removed user roles attribute from user object (can be fetched from /v1/teams/memberships) **
|
||||
- Removed type attribute from session object response (used only internally)
|
||||
- ** - might be changed before merging to master
|
||||
- Upgraded Traefik image to version 2.3
|
||||
- Upgraded Redis Docker image to version 6.0 (alpine)
|
||||
- Upgraded Influxdb Docker image to version 1.8 (alpine)
|
||||
|
||||
## Breaking Changes (Read before upgrading!)
|
||||
- **Deprecated** `first` and `last` query params for documents list route in the database API
|
||||
|
||||
+100
-1
@@ -10,6 +10,52 @@ If you are worried or don’t know where to start, check out our next section ex
|
||||
|
||||
Help us keep Appwrite open and inclusive. Please read and follow our [Code of Conduct](/CODE_OF_CONDUCT.md).
|
||||
|
||||
## Submit a Pull Request 🚀
|
||||
|
||||
Branch naming convention is as following
|
||||
|
||||
`TYPE-ISSUE_ID-DESCRIPTION`
|
||||
|
||||
example:
|
||||
```
|
||||
doc-548-submit-a-pull-request-section-to-contribution-guide
|
||||
```
|
||||
|
||||
When `TYPE` can be:
|
||||
|
||||
- **feat** - is a new feature
|
||||
- **doc** - documentation only changes
|
||||
- **cicd** - changes related to CI/CD system
|
||||
- **fix** - a bug fix
|
||||
- **refactor** - code change that neither fixes a bug nor adds a feature
|
||||
|
||||
**All PRs must include commit message with the changes description!**
|
||||
|
||||
For the initial start, fork the project and use git clone command to download the repository to your computer. A standard procedure for working on an issue would be to:
|
||||
|
||||
1. `git pull`, before creating a new branch, pull the changes from upstream. Your master needs to be up to date.
|
||||
```
|
||||
$ git pull
|
||||
```
|
||||
2. Create new branch from `master` like: `doc-548-submit-a-pull-request-section-to-contribution-guide`<br/>
|
||||
```
|
||||
$ git checkout -b [name_of_your_new_branch]
|
||||
```
|
||||
3. Work - commit - repeat ( be sure to be in your branch )
|
||||
|
||||
4. Push changes to GitHub
|
||||
```
|
||||
$ git push origin [name_of_your_new_branch]
|
||||
```
|
||||
|
||||
6. Submit your changes for review
|
||||
If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button.
|
||||
7. Start a Pull Request
|
||||
Now submit the pull request and , click on `Create pull request`.
|
||||
6. Get a code review approval / reject
|
||||
7. After approval, merge your PR
|
||||
8. GitHub will automatically delete the branch, after the merge is done. (they can still be restored).
|
||||
|
||||
## Setup From Source
|
||||
|
||||
To set up a working **development environment**, just fork the project git repository and install the backend and frontend dependencies using the proper package manager and create run the docker-compose stack.
|
||||
@@ -32,6 +78,59 @@ After finishing the installation process, you can start writing and editing code
|
||||
|
||||
Appwrite's current structure is a combination of both [Monolithic](https://en.wikipedia.org/wiki/Monolithic_application) and [Microservice](https://en.wikipedia.org/wiki/Microservices) architectures, but our final goal, as we grow, is to be using only microservices.
|
||||
|
||||
### File Structure
|
||||
|
||||
```bash
|
||||
.
|
||||
├── app # Main application
|
||||
│ ├── config # Config files
|
||||
│ ├── controllers # API & dashboard controllers
|
||||
│ │ ├── api
|
||||
│ │ ├── shared
|
||||
│ │ └── web
|
||||
│ ├── db # DB schemas
|
||||
│ ├── sdks # SDKs generated copies (used for generating code examples)
|
||||
│ ├── tasks # Server CLI commands
|
||||
│ ├── views # HTML server-side templates
|
||||
│ └── workers # Background workers
|
||||
├── bin # Server executables (tasks & workers)
|
||||
├── docker # Docker related resources and configs
|
||||
├── docs # Docs and tutorials
|
||||
│ ├── examples
|
||||
│ ├── references
|
||||
│ ├── sdks
|
||||
│ ├── services
|
||||
│ ├── specs
|
||||
│ └── tutorials
|
||||
├── public # Public files
|
||||
│ ├── dist
|
||||
│ ├── fonts
|
||||
│ ├── images
|
||||
│ ├── scripts
|
||||
│ └── styles
|
||||
├── src # Supporting libraries (each lib has one role, common libs are released as individual projects)
|
||||
│ └── Appwrite
|
||||
│ ├── Auth
|
||||
│ ├── Database
|
||||
│ ├── Docker
|
||||
│ ├── Event
|
||||
│ ├── Extend
|
||||
│ ├── Network
|
||||
│ ├── OpenSSL
|
||||
│ ├── Preloader
|
||||
│ ├── Resize
|
||||
│ ├── Storage
|
||||
│ ├── Swoole
|
||||
│ ├── Task
|
||||
│ ├── Template
|
||||
│ ├── URL
|
||||
│ └── Utopia
|
||||
└── tests # End to end & unit tests
|
||||
├── e2e
|
||||
├── resources
|
||||
└── unit
|
||||
```
|
||||
|
||||
---
|
||||

|
||||
---
|
||||
@@ -135,7 +234,7 @@ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t appwrite/
|
||||
|
||||
## Tests
|
||||
|
||||
To run tests manually, run phpunit from your command line:
|
||||
To run tests manually, use the Appwrite Docker CLI from your terminal:
|
||||
|
||||
```bash
|
||||
docker exec appwrite test
|
||||
|
||||
@@ -124,6 +124,12 @@ Below is a list of currently supported platforms and languages. If you wish to h
|
||||
|
||||
Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)!
|
||||
|
||||
## Contributing
|
||||
|
||||
All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.
|
||||
|
||||
We truly ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
|
||||
|
||||
## Security
|
||||
|
||||
For security issues, kindly email us [security@appwrite.io](mailto:security@appwrite.io) instead of posting a public issue in GitHub.
|
||||
@@ -132,12 +138,6 @@ For security issues, kindly email us [security@appwrite.io](mailto:security@appw
|
||||
|
||||
Join our growing community around the world! Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) or join our live [Discord server](https://discord.gg/GSeTUeA) for more help, ideas, and discussions.
|
||||
|
||||
## Contributing
|
||||
|
||||
All code contributions - including those of people having commit access - must go through a pull request and approved by a core developer before being merged. This is to ensure proper review of all the code.
|
||||
|
||||
We truly ❤️ pull requests! If you wish to help, you can learn more about how you can contribute to this project in the [contribution guide](CONTRIBUTING.md).
|
||||
|
||||
## License
|
||||
|
||||
This repository is available under the [BSD 3-Clause License](./LICENSE).
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'AF' => 'अफ़्रीका',
|
||||
'AN' => 'अंटार्कटिका',
|
||||
'AS' => 'एशिया',
|
||||
'EU' => 'यूरोप',
|
||||
'NA' => 'उत्तर अमेरिका',
|
||||
'OC' => 'ओशिनिया',
|
||||
'SA' => 'दक्षिण अमेरिका',
|
||||
];
|
||||
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'AF' => 'अफगानिस्तान',
|
||||
'AO' => 'अंगोला',
|
||||
'AL' => 'अल्बानिया',
|
||||
'AD' => 'अंडोरा',
|
||||
'AE' => 'संयुक्त अरब अमीरात',
|
||||
'AR' => 'अर्जेंटीना',
|
||||
'AM' => 'आर्मेनिया',
|
||||
'AG' => 'एंटीगुआ और बारबुडा',
|
||||
'AU' => 'ऑस्ट्रेलिया',
|
||||
'AT' => 'ऑस्ट्रिया',
|
||||
'AZ' => 'अजरबैजान',
|
||||
|
||||
'BI' => 'बुरुंडी',
|
||||
'BE' => 'बेल्जियम',
|
||||
'BJ' => 'बेनिन',
|
||||
'BF' => 'बुर्किना फ़ासो',
|
||||
'BD' => 'बांग्लादेश',
|
||||
'BG' => 'बुल्गारिया',
|
||||
'BH' => 'बहरीन',
|
||||
'BS' => 'बहामास',
|
||||
'BA' => 'बोस्निया और हर्ज़ेगोविना',
|
||||
'BY' => 'बेलारूस',
|
||||
'BZ' => 'बेलीज',
|
||||
'BO' => 'बोलीविया',
|
||||
'BR' => 'ब्राज़ील',
|
||||
'BB' => 'बारबाडोस',
|
||||
'BN' => 'ब्रुनेई',
|
||||
'BT' => 'भूटान',
|
||||
'BW' => 'बोत्सवाना',
|
||||
'CF' => 'मध्य अफ्रीकी गणराज्य',
|
||||
'CA' => 'कनाडा',
|
||||
'CH' => 'स्विटज़रलैंड',
|
||||
'CL' => 'चिली',
|
||||
'CN' => 'चीन',
|
||||
'CI' => 'आइवरी कोस्ट',
|
||||
'CM' => 'कैमरून',
|
||||
'CD' => 'डीआर कांगो',
|
||||
'CG' => 'कांगो गणराज्य',
|
||||
'CO' => 'कोलंबिया',
|
||||
'KM' => 'कोमोरोस',
|
||||
'CV' => 'केप वर्डे',
|
||||
'CR' => 'कोस्टा रिका',
|
||||
'CU' => 'क्यूबा',
|
||||
'CY' => 'साइप्रस',
|
||||
'CZ' => 'चेकिया',
|
||||
'DE' => 'जर्मनी',
|
||||
'DJ' => 'जिबूती',
|
||||
'DM' => 'डोमिनिका',
|
||||
'DK' => 'डेनमार्क',
|
||||
'DO' => 'डोमिनिकन रिपब्लिक',
|
||||
'DZ' => 'अल्जीरिया',
|
||||
'ER' => 'इरिट्रिया',
|
||||
'EC' => 'इक्वाडोर',
|
||||
'EG' => 'मिस्र',
|
||||
'IR' => 'इरिट्रिया',
|
||||
'ES' => 'स्पेन',
|
||||
'EE' => 'एस्टोनिया',
|
||||
'ET' => 'इथियोपिया',
|
||||
'FI' => 'फिनलैंड',
|
||||
'FJ' => 'फिजी',
|
||||
'FR' => 'फ्रांस',
|
||||
'FM' => 'माइक्रोनेशिया',
|
||||
'GA' => 'गैबॉन',
|
||||
'GB' => 'यूनाइटेड किंगडम',
|
||||
'GE' => 'जॉर्जिया',
|
||||
'GH' => 'घाना',
|
||||
'GN' => 'गिनी',
|
||||
'GM' => 'गाम्बिया',
|
||||
'GW' => 'गिनी-बिसाऊ',
|
||||
'GQ' => 'इक्वेटोरियल गिनी',
|
||||
'GR' => 'ग्रीस',
|
||||
'GD' => 'ग्रेनाडा',
|
||||
'GT' => 'ग्वाटेमाला',
|
||||
'GY' => 'गुयाना',
|
||||
'HN' => 'होंडुरास',
|
||||
'HR' => 'क्रोएशिया',
|
||||
'HT' => 'हैती',
|
||||
'HU' => 'हंगरी',
|
||||
'ID' => 'इंडोनेशिया',
|
||||
'IN' => 'भारत',
|
||||
'IE' => 'आयरलैंड',
|
||||
'IR' => 'ईरान',
|
||||
'IQ' => 'इराक',
|
||||
'IS' => 'आइसलैंड',
|
||||
'IL' => 'इज़राइल',
|
||||
'IT' => 'इटली',
|
||||
'JM' => 'जमैका',
|
||||
'JO' => 'जॉर्डन',
|
||||
'JP' => 'जापान',
|
||||
'KZ' => 'कजाकिस्तान',
|
||||
'KE' => 'केन्या',
|
||||
'KG' => 'किर्गिस्तान',
|
||||
'KH' => 'कंबोडिया',
|
||||
'KI' => 'किरीबाती',
|
||||
'KN' => 'सेंट किट्स एंड नेविस',
|
||||
'KR' => 'दक्षिण कोरिया',
|
||||
'KW' => 'कुवैत',
|
||||
|
||||
'LA' => 'लाओस',
|
||||
'LB' => 'लेबनान',
|
||||
'LR' => 'लाइबेरिया',
|
||||
'LY' => 'लीबिया',
|
||||
'LC' => 'सेंट लूसिया',
|
||||
'LI' => 'लिकटेंस्टीन',
|
||||
'LK' => 'श्रीलंका',
|
||||
'LS' => 'लेसोथो',
|
||||
'LT' => 'लिथुआनिया',
|
||||
'LU' => 'लक्ज़मबर्ग',
|
||||
'LV' => 'लातविया',
|
||||
'MA' => 'मोरक्को',
|
||||
'MC' => 'मोनाको',
|
||||
'MD' => 'मोल्दोवा',
|
||||
'MG' => 'मेडागास्कर',
|
||||
'MV' => 'मालदीव',
|
||||
'MX' => 'मेक्सिको',
|
||||
'MH' => 'मार्शल आइलैंड्स',
|
||||
'MK' => 'मैसिडोनिया',
|
||||
'ML' => 'रक्त',
|
||||
'MT' => 'माल्टा',
|
||||
'MM' => 'म्यांमार',
|
||||
'ME' => 'मोंटेनेग्रो',
|
||||
'MN' => 'मंगोलिया',
|
||||
'MZ' => 'मोज़ाम्बिक',
|
||||
'MR' => 'मॉरिटानिया',
|
||||
'MU' => 'मॉरीशस',
|
||||
'MW' => 'मलावी',
|
||||
'MY' => 'मलेशिया',
|
||||
'NA' => 'नामीबिया',
|
||||
'NE' => 'नाइजर',
|
||||
'NG' => 'नाइजीरिया',
|
||||
'NI' => 'निकारागुआ',
|
||||
'NL' => 'नीदरलैंड',
|
||||
'NO' => 'नॉर्वे',
|
||||
'NP' => 'नेपाल',
|
||||
'NR' => 'नारू',
|
||||
'NZ' => 'न्यूजीलैंड',
|
||||
'OM' => 'ओमान',
|
||||
'PK' => 'पाकिस्तान',
|
||||
'PA' => 'पनामा',
|
||||
'PE' => 'पेरू',
|
||||
'PH' => 'फिलीपींस',
|
||||
'PW' => 'पलाऊ',
|
||||
'PG' => 'पापुआ न्यू गिनी',
|
||||
'PL' => 'पोलैंड',
|
||||
'KP' => 'उत्तर कोरिया',
|
||||
'PT' => 'पुर्तगाल',
|
||||
'PY' => 'पराग्वे',
|
||||
|
||||
'QA' => 'कतर',
|
||||
'RO' => 'रोमानिया',
|
||||
'RU' => 'रूस',
|
||||
'RW' => 'रवांडा',
|
||||
'SA' => 'सऊदी अरब',
|
||||
'SD' => 'सूडान',
|
||||
'SN' => 'सेनेगल',
|
||||
'SG' => 'सिंगापुर',
|
||||
'SB' => 'सोलोमन द्वीप',
|
||||
'SL' => 'सिएरा लियोन',
|
||||
'SV' => 'अल साल्वाडोर',
|
||||
'SM' => 'सैन मैरिनो',
|
||||
'SO' => 'सोमालिया',
|
||||
'RS' => 'सर्बिया',
|
||||
'SS' => 'दक्षिण सूडान',
|
||||
'ST' => 'साओ तोमे और प्रिंसिपे',
|
||||
'SR' => 'सूरीनाम',
|
||||
'SK' => 'स्लोवाकिया',
|
||||
'SI' => 'स्लोवेनिया',
|
||||
'SE' => 'स्वीडन',
|
||||
'SZ' => 'स्वाज़ीलैंड',
|
||||
'SC' => 'सेशेल्स',
|
||||
'SY' => 'सीरिया',
|
||||
'TD' => 'चाड',
|
||||
'TG' => 'टोगो',
|
||||
'TH' => 'थाईलैंड',
|
||||
'TJ' => 'ताजिकिस्तान',
|
||||
'TM' => 'तुर्कमेनिस्तान',
|
||||
'TL' => 'तिमोर-लेस्ते',
|
||||
'TO' => 'टोंगा',
|
||||
'TT' => 'त्रिनिदाद और टोबैगो',
|
||||
'TN' => 'ट्यूनीशिया',
|
||||
'TR' => 'तुर्की',
|
||||
'TV' => 'तुवालु',
|
||||
'TZ' => 'तंजानिया',
|
||||
'UG' => 'युगांडा',
|
||||
'UA' => 'यूक्रेन',
|
||||
'UY' => 'उरुग्वे',
|
||||
'US' => 'संयुक्त राज्य अमेरिका',
|
||||
'UZ' => 'उज्बेकिस्तान',
|
||||
'VA' => 'वेटिकन सिटी',
|
||||
'VC' => 'सेंट विंसेंट और ग्रेनेडाइंस',
|
||||
'VE' => 'वेनेजुएला',
|
||||
'VN' => 'वियतनाम',
|
||||
'VU' => 'वानुअतु',
|
||||
'WS' => 'समोआ',
|
||||
'YE' => 'यमन',
|
||||
'ZA' => 'दक्षिण अफ्रीका',
|
||||
'ZM' => 'ज़ाम्बिया',
|
||||
'ZW' => 'जिम्बाब्वे',
|
||||
];
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'settings.inspire' => '"हुशार असण्याची कला म्हणजे कोणत्या गोष्टीकडे दुर्लक्ष करावे हे जाणून घेण्याची कला."', // Tmrs is the line printed in the homepage and console 'view-source'
|
||||
'settings.locale' => 'mr',
|
||||
'settings.direction' => 'ltr',
|
||||
|
||||
// Service - Users
|
||||
'account.emails.team' => '%s टीम',
|
||||
'account.emails.verification.title' => 'अकाउंट कन्फर्मेशन ',
|
||||
'account.emails.verification.body' => 'mr.email.auth.confirm.tpl',
|
||||
'account.emails.recovery.title' => 'पासवर्ड रिसेट ',
|
||||
'account.emails.recovery.body' => 'mr.email.auth.recovery.tpl',
|
||||
'account.emails.invitation.title' => 'इनविटेशन %s टीम %s',
|
||||
'account.emails.invitation.body' => 'mr.email.auth.invitation.tpl',
|
||||
|
||||
'locale.country.unknown' => 'अज्ञात',
|
||||
|
||||
'countries' => include 'mr.countries.php',
|
||||
'continents' => include 'mr.continents.php',
|
||||
];
|
||||
@@ -0,0 +1,16 @@
|
||||
<p>
|
||||
|
||||
नमस्कार {{name}},
|
||||
</p>
|
||||
<p>
|
||||
आपला ईमेल पत्ता वेरीफाई करण्यासाठी या लिंक वर क्लिक करा.
|
||||
</p>
|
||||
{{cta}}
|
||||
<p>
|
||||
आपण हे ईमेल वेरीफाई करण्यास सांगितले नसल्यास आपण या संदेशाकडे दुर्लक्ष करू शकता.
|
||||
</p>
|
||||
<p>
|
||||
धन्यवाद,
|
||||
<br />
|
||||
{{project}} टीम
|
||||
</p>
|
||||
@@ -0,0 +1,18 @@
|
||||
<p>
|
||||
नमस्कार,
|
||||
</p>
|
||||
<p>
|
||||
हा मेल आपल्याला पाठविला गेला कारण <b>{{owner}}</b> आपल्याला {{project}} या कारणास्तव <b>{{team}}</b> येथे सदस्य होण्यासाठी आमंत्रित करू इच्छित होते.
|
||||
</p>
|
||||
<p>
|
||||
टीम <b>{{team}}</b>मध्ये सामील होण्यासाठी या लिंक वर क्लिक करा :
|
||||
</p>
|
||||
{{cta}}
|
||||
<p>
|
||||
आपल्याला स्वारस्य नसल्यास आपण या संदेशाकडे दुर्लक्ष करू शकता.
|
||||
</p>
|
||||
<p>
|
||||
धन्यवाद,
|
||||
<br />
|
||||
{{project}} टीम
|
||||
</p>
|
||||
@@ -0,0 +1,15 @@
|
||||
<p>
|
||||
नमस्कार {{name}},
|
||||
</p>
|
||||
<p>
|
||||
{{project}} पासवर्ड रीसेट करण्यासाठी या लिंक वर क्लिक करा.
|
||||
</p>
|
||||
{{cta}}
|
||||
<p>
|
||||
आपण आपला पासवर्ड रीसेट करण्यास सांगितले नसेल तर, आपण हा संदेश दुर्लक्षित करू शकता.
|
||||
</p>
|
||||
<p>
|
||||
धन्यवाद,
|
||||
<br />
|
||||
{{project}} टीम
|
||||
</p>
|
||||
@@ -236,16 +236,16 @@
|
||||
</form>
|
||||
</span>
|
||||
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowercase}}?width=120&height=120&project={{env.PROJECT}},title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowercase}}?width=120&height=120&project={{env.PROJECT}},title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
|
||||
|
||||
<span data-ls-bind="{{session.client.name}}"></span> <span data-ls-bind="{{session.client.version}}"></span> on <span data-ls-bind="{{session.model}}"></span> <span data-ls-bind="{{session.OS.name}}"></span> <span data-ls-bind="{{session.OS.version}}"></span>
|
||||
<span data-ls-if="({{session.client.name}})" data-ls-bind="{{session.client.name}}"></span> <span data-ls-if="(!{{session.client.name}})">Unknown</span> <span data-ls-bind="{{session.client.version}}"></span> on <span data-ls-bind="{{session.model}}"></span> <span data-ls-if="(!{{session.OS.name}})">Unknown</span> <span data-ls-if="({{session.OS.name}})" data-ls-bind="{{session.OS.name}}"></span> <span data-ls-bind="{{session.OS.version}}"></span>
|
||||
|
||||
<span data-ls-if="true == {{session.current}}">
|
||||
<span class="tag green">Current Session</span>
|
||||
</span>
|
||||
|
||||
<div class="margin-top-small">
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/flags/{{session.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs margin-end-small inline" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/flags/{{session.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs margin-end-small inline" />
|
||||
<small data-ls-bind="{{session.ip}}"></small> / <small data-ls-bind="{{session.geo.country}}"></small>
|
||||
</div>
|
||||
</li>
|
||||
@@ -294,11 +294,11 @@
|
||||
<td data-title="Date: "><span data-ls-bind="{{log.time|dateTime}}"></span></td>
|
||||
<td data-title="Event: "><span data-ls-bind="{{log.event}}"></span></td>
|
||||
<td data-title="Client: ">
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowercase}}?width=80&height=80&project={{env.PROJECT}},title={{log.client.name}},alt={{log.client.name}}" class="avatar xxs inline margin-end-small" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowercase}}?width=80&height=80&project={{env.PROJECT}},title={{log.client.name}},alt={{log.client.name}}" class="avatar xxs inline margin-end-small" />
|
||||
<span data-ls-bind="{{log.client.name}} {{log.client.version}} on {{log.model}} {{log.OS.name}} {{log.OS.version}}"></span>
|
||||
</td>
|
||||
<td data-title="Location: ">
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/flags/{{log.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs inline" style="margin-top: 10px;" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/flags/{{log.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs inline margin-end-small" style="margin-top: 10px;" />
|
||||
<span data-ls-bind="{{log.geo.country}}"></span>
|
||||
</td>
|
||||
<td data-title="IP: "><span data-ls-bind="{{log.ip}}"></span></td>
|
||||
|
||||
@@ -224,12 +224,12 @@
|
||||
<button class="danger">Logout</button>
|
||||
</form>
|
||||
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowercase}}?width=120&height=120&project={{env.PROJECT}},title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowercase}}?width=120&height=120&project={{env.PROJECT}},title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
|
||||
|
||||
<span data-ls-bind="{{session.client.name}}"></span> <span data-ls-bind="{{session.client.version}}"></span> on <span data-ls-bind="{{session.model}}"></span> <span data-ls-bind="{{session.OS.name}}"></span> <span data-ls-bind="{{session.OS.version}}"></span>
|
||||
<span data-ls-if="({{session.client.name}})" data-ls-bind="{{session.client.name}}"></span> <span data-ls-if="(!{{session.client.name}})">Unknown</span> <span data-ls-bind="{{session.client.version}}"></span> on <span data-ls-bind="{{session.model}}"></span> <span data-ls-if="(!{{session.OS.name}})">Unknown</span> <span data-ls-if="({{session.OS.name}})" data-ls-bind="{{session.OS.name}}"></span> <span data-ls-bind="{{session.OS.version}}"></span>
|
||||
|
||||
<div class="margin-top-small">
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/flags/{{session.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs margin-end-small inline" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/flags/{{session.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs margin-end-small inline" />
|
||||
<small data-ls-bind="{{session.ip}}"></small> / <small data-ls-bind="{{session.geo.country}}"></small>
|
||||
</div>
|
||||
</li>
|
||||
@@ -284,12 +284,12 @@
|
||||
<td data-title="Date: "><span data-ls-bind="{{log.time|dateTime}}"></span></td>
|
||||
<td data-title="Event: "><span data-ls-bind="{{log.event}}"></span></td>
|
||||
<td data-title="Client: ">
|
||||
<img data-ls-if="({{log.client.short_name}})" data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowercase}}?width=80&height=80&project={{env.PROJECT}},title={{log.client.name}},alt={{log.client.name}}" class="avatar xxs inline margin-end-small" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-if="({{log.client.short_name}})" data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowercase}}?width=80&height=80&project={{env.PROJECT}},title={{log.client.name}},alt={{log.client.name}}" class="avatar xxs inline margin-end-small" />
|
||||
<span data-ls-if="({{log.client.name}})" data-ls-bind="{{log.client.name}} {{log.client.version}} on {{log.model}} {{log.OS.name}} {{log.OS.version}}"></span>
|
||||
<div data-ls-if="(!{{log.client.name}})" class="text-align-center text-fade">Unknown</div>
|
||||
</td>
|
||||
<td data-title="Location: ">
|
||||
<img data-ls-attrs="src={{env.API}}/avatars/flags/{{log.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs inline margin-end-small" />
|
||||
<img onerror="this.onerror=null;this.src='/images/unknown.svg'" data-ls-attrs="src={{env.API}}/avatars/flags/{{log.geo.isoCode}}?width=80&height=80&project={{env.PROJECT}}" class="avatar xxs inline margin-end-small" />
|
||||
<span data-ls-bind="{{log.geo.country}}"></span>
|
||||
</td>
|
||||
<td data-title="IP: "><span data-ls-bind="{{log.ip}}"></span></td>
|
||||
|
||||
@@ -7,7 +7,7 @@ $version = $this->getParam('version', '');
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:2.2
|
||||
image: traefik:2.3
|
||||
container_name: appwrite-traefik
|
||||
command:
|
||||
- --providers.file.directory=/storage/config
|
||||
@@ -52,6 +52,9 @@ services:
|
||||
- influxdb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_EMAIL_NAME
|
||||
- _APP_SYSTEM_EMAIL_ADDRESS
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_OPTIONS_ABUSE
|
||||
- _APP_OPTIONS_FORCE_HTTPS
|
||||
- _APP_OPENSSL_KEY_V1
|
||||
@@ -119,6 +122,7 @@ services:
|
||||
- mariadb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -139,6 +143,7 @@ services:
|
||||
- mariadb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -185,6 +190,7 @@ services:
|
||||
- appwrite-certificates:/storage/certificates:rw
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -231,6 +237,8 @@ services:
|
||||
- smtp
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_EMAIL_NAME
|
||||
- _APP_SYSTEM_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_SMTP_HOST
|
||||
@@ -278,7 +286,7 @@ services:
|
||||
- RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16
|
||||
|
||||
redis:
|
||||
image: redis:5.0
|
||||
image: redis:6.0-alpine3.12
|
||||
container_name: appwrite-redis
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
@@ -296,7 +304,7 @@ services:
|
||||
- appwrite-uploads:/storage/uploads
|
||||
|
||||
influxdb:
|
||||
image: influxdb:1.6
|
||||
image: influxdb:1.8-alpine
|
||||
container_name: appwrite-influxdb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
|
||||
@@ -115,7 +115,7 @@ class CertificatesV1
|
||||
$staging = (App::isProduction()) ? '' : ' --dry-run';
|
||||
|
||||
$response = \shell_exec("certbot certonly --webroot --noninteractive --agree-tos{$staging} \
|
||||
--email ".App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', 'security@localhost.test')." \
|
||||
--email ".App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', 'security@localhost.test')." \
|
||||
-w ".APP_STORAGE_CERTIFICATES." \
|
||||
-d {$domain->get()}");
|
||||
|
||||
|
||||
+20
-9
@@ -2,7 +2,7 @@ version: '3'
|
||||
|
||||
services:
|
||||
traefik:
|
||||
image: traefik:2.2
|
||||
image: traefik:2.3
|
||||
container_name: appwrite-traefik
|
||||
command:
|
||||
- --log.level=DEBUG
|
||||
@@ -66,6 +66,9 @@ services:
|
||||
- influxdb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_EMAIL_NAME
|
||||
- _APP_SYSTEM_EMAIL_ADDRESS
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_OPTIONS_ABUSE
|
||||
- _APP_OPTIONS_FORCE_HTTPS
|
||||
- _APP_OPENSSL_KEY_V1
|
||||
@@ -136,6 +139,7 @@ services:
|
||||
- mariadb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -157,6 +161,7 @@ services:
|
||||
- mariadb
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -205,6 +210,7 @@ services:
|
||||
- appwrite-certificates:/storage/certificates:rw
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_DB_HOST
|
||||
@@ -254,6 +260,8 @@ services:
|
||||
# - smtp
|
||||
environment:
|
||||
- _APP_ENV
|
||||
- _APP_SYSTEM_EMAIL_NAME
|
||||
- _APP_SYSTEM_EMAIL_ADDRESS
|
||||
- _APP_REDIS_HOST
|
||||
- _APP_REDIS_PORT
|
||||
- _APP_SMTP_HOST
|
||||
@@ -290,6 +298,7 @@ services:
|
||||
- MYSQL_USER=user
|
||||
- MYSQL_PASSWORD=password
|
||||
command: 'mysqld --innodb-flush-method=fsync'
|
||||
# command: mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bu && mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bu
|
||||
|
||||
maildev:
|
||||
image: djfarrelly/maildev
|
||||
@@ -301,17 +310,19 @@ services:
|
||||
- appwrite
|
||||
|
||||
# smtp:
|
||||
# image: appwrite/smtp:1.0.1
|
||||
# image: appwrite/smtp:1.2.0
|
||||
# container_name: appwrite-smtp
|
||||
# restart: unless-stopped
|
||||
# networks:
|
||||
# - appwrite
|
||||
# environment:
|
||||
# - MAILNAME=appwrite
|
||||
# - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16
|
||||
|
||||
# - LOCAL_DOMAINS=@
|
||||
# - RELAY_FROM_HOSTS=192.168.0.0/16 ; *.yourdomain.com
|
||||
# - SMARTHOST_HOST=smtp
|
||||
# - SMARTHOST_PORT=587
|
||||
|
||||
redis:
|
||||
image: redis:5.0
|
||||
image: redis:6.0-alpine
|
||||
container_name: appwrite-redis
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
@@ -327,9 +338,9 @@ services:
|
||||
- appwrite
|
||||
volumes:
|
||||
- appwrite-uploads:/storage/uploads
|
||||
|
||||
|
||||
influxdb:
|
||||
image: influxdb:1.6
|
||||
image: influxdb:1.8-alpine
|
||||
container_name: appwrite-influxdb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
@@ -355,7 +366,7 @@ services:
|
||||
# - "8081:8081"
|
||||
|
||||
# resque:
|
||||
# image: registry.gitlab.com/appwrite/appwrite/resque-web:v1.0.2
|
||||
# image: appwrite/resque-web:1.1.0
|
||||
# restart: unless-stopped
|
||||
# networks:
|
||||
# - appwrite
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Adding a New OAuth2 Provider
|
||||
|
||||
This document is part of the Appwrite contributors' guide. Before you continue reading this document make sure you have read the [Code of Conduct](../CODE_OF_CONDUCT.md) and the [Contributing Guide](../CONTRIBUTING.md).
|
||||
This document is part of the Appwrite contributors' guide. Before you continue reading this document make sure you have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md) and the [Contributing Guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md).
|
||||
|
||||
## Getting Started
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
### Thats Your Place To create Your First Issue
|
||||
Generated
+699
-734
File diff suppressed because it is too large
Load Diff
+3
-2
@@ -4,12 +4,13 @@
|
||||
"license": "BSD-3-Clause",
|
||||
"repository": "public",
|
||||
"devDependencies": {
|
||||
"gulp": "^4.0.0",
|
||||
"yargs-parser": ">=13.1.2",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-clean-css": "^4.3.0",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-jsmin": "^0.1.5",
|
||||
"gulp-less": "^4.0.1",
|
||||
"jest": "^25.1.0",
|
||||
"jest": "^26.4.2",
|
||||
"ls-service-form2json": "^1.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-1
@@ -432,7 +432,8 @@ let path='/users';let payload={};if(email){payload['email']=email;}
|
||||
if(password){payload['password']=password;}
|
||||
if(name){payload['name']=name;}
|
||||
return http.post(path,{'content-type':'application/json',},payload);},get:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);},getLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},getPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},updatePrefs:function(userId,prefs){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');}
|
||||
|
||||
Vendored
+2
-1
@@ -432,7 +432,8 @@ let path='/users';let payload={};if(email){payload['email']=email;}
|
||||
if(password){payload['password']=password;}
|
||||
if(name){payload['name']=name;}
|
||||
return http.post(path,{'content-type':'application/json',},payload);},get:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},getLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},deleteUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.delete(path,{'content-type':'application/json',},payload);},getLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},getPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json',},payload);},updatePrefs:function(userId,prefs){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
|
||||
if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="1024.000000pt" height="1024.000000pt" viewBox="0 0 1024.000000 1024.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g transform="translate(0.000000,1024.000000) scale(0.100000,-0.100000)"
|
||||
fill="#96b7eb" stroke="none">
|
||||
<path d="M5000 10143 c-904 -20 -1805 -293 -2565 -776 -1163 -740 -1970 -1911
|
||||
-2240 -3252 -68 -337 -96 -634 -96 -1000 0 -483 55 -896 180 -1350 268 -971
|
||||
836 -1854 1609 -2501 868 -726 1911 -1129 3032 -1173 700 -27 1388 85 2020
|
||||
331 1324 514 2364 1554 2878 2878 197 508 309 1052 331 1610 42 1074 -243
|
||||
2099 -830 2983 -742 1118 -1887 1889 -3194 2152 -354 71 -756 106 -1125 98z
|
||||
m375 -673 c778 -48 1359 -279 1826 -728 377 -361 594 -768 676 -1267 25 -156
|
||||
25 -525 -1 -680 -36 -221 -88 -386 -182 -583 -175 -368 -480 -723 -1099 -1281
|
||||
-310 -279 -556 -524 -649 -647 -84 -111 -194 -331 -235 -474 -51 -175 -81
|
||||
-419 -97 -803 l-7 -157 -506 2 -506 3 1 300 c1 508 55 822 199 1160 175 408
|
||||
417 696 1105 1316 645 582 814 806 890 1181 39 188 26 461 -31 653 -122 415
|
||||
-477 811 -894 997 -252 113 -552 162 -849 138 -373 -29 -659 -142 -929 -368
|
||||
-301 -253 -521 -690 -621 -1237 -19 -103 -25 -120 -42 -122 -10 -2 -253 26
|
||||
-539 60 l-520 62 3 60 c3 73 43 289 83 447 98 390 273 757 497 1043 84 107
|
||||
305 322 417 405 120 90 277 185 402 245 446 213 1020 311 1608 275z m355
|
||||
-8130 l0 -600 -600 0 -600 0 0 600 0 600 600 0 600 0 0 -600z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -4750,6 +4750,30 @@
|
||||
}, payload);
|
||||
},
|
||||
|
||||
/**
|
||||
* Delete User
|
||||
*
|
||||
* Delete a user by its unique ID.
|
||||
*
|
||||
* @param {string} userId
|
||||
* @throws {Error}
|
||||
* @return {Promise}
|
||||
*/
|
||||
deleteUser: function(userId) {
|
||||
if(userId === undefined) {
|
||||
throw new Error('Missing required parameter: "userId"');
|
||||
}
|
||||
|
||||
let path = '/users/{userId}'.replace(new RegExp('{userId}', 'g'), userId);
|
||||
|
||||
let payload = {};
|
||||
|
||||
return http
|
||||
.delete(path, {
|
||||
'content-type': 'application/json',
|
||||
}, payload);
|
||||
},
|
||||
|
||||
/**
|
||||
* Get User Logs
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user