appwrite-cli 0.18.5 → 1.0.0-RC2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish.yml +8 -1
- package/LICENSE.md +1 -1
- package/README.md +4 -4
- package/docs/examples/account/create-phone-session.md +1 -1
- package/docs/examples/account/get-logs.md +0 -1
- package/docs/examples/account/update-phone.md +1 -1
- package/docs/examples/avatars/get-initials.md +0 -1
- package/docs/examples/databases/create-collection.md +2 -3
- package/docs/examples/databases/create-datetime-attribute.md +7 -0
- package/docs/examples/databases/create-document.md +0 -1
- package/docs/examples/databases/list-collection-logs.md +0 -1
- package/docs/examples/databases/list-collections.md +0 -4
- package/docs/examples/databases/list-document-logs.md +0 -1
- package/docs/examples/databases/list-documents.md +0 -6
- package/docs/examples/databases/list-logs.md +0 -1
- package/docs/examples/databases/list.md +0 -4
- package/docs/examples/databases/update-collection.md +0 -1
- package/docs/examples/databases/update-document.md +0 -1
- package/docs/examples/functions/create-variable.md +4 -0
- package/docs/examples/functions/create.md +1 -2
- package/docs/examples/functions/delete-variable.md +3 -0
- package/docs/examples/functions/get-function-usage.md +3 -0
- package/docs/examples/functions/get-usage.md +0 -1
- package/docs/examples/functions/get-variable.md +3 -0
- package/docs/examples/functions/list-deployments.md +0 -4
- package/docs/examples/functions/list-executions.md +0 -3
- package/docs/examples/functions/list-variables.md +4 -0
- package/docs/examples/functions/list.md +0 -4
- package/docs/examples/functions/update-variable.md +5 -0
- package/docs/examples/functions/update.md +1 -2
- package/docs/examples/projects/list.md +0 -4
- package/docs/examples/storage/create-bucket.md +1 -1
- package/docs/examples/storage/create-file.md +0 -1
- package/docs/examples/storage/list-buckets.md +0 -4
- package/docs/examples/storage/list-files.md +0 -4
- package/docs/examples/storage/update-bucket.md +1 -1
- package/docs/examples/storage/update-file.md +0 -1
- package/docs/examples/teams/get-memberships.md +0 -4
- package/docs/examples/teams/list-logs.md +0 -1
- package/docs/examples/teams/list.md +0 -4
- package/docs/examples/users/create-argon2user.md +5 -0
- package/docs/examples/users/create-bcrypt-user.md +5 -0
- package/docs/examples/users/create-m-d5user.md +5 -0
- package/docs/examples/users/create-p-h-pass-user.md +5 -0
- package/docs/examples/users/create-s-h-a-user.md +6 -0
- package/docs/examples/users/create-scrypt-modified-user.md +8 -0
- package/docs/examples/users/create-scrypt-user.md +10 -0
- package/docs/examples/users/create.md +3 -2
- package/docs/examples/users/get-logs.md +0 -1
- package/docs/examples/users/list.md +0 -4
- package/install.ps1 +2 -2
- package/install.sh +1 -1
- package/lib/client.js +6 -3
- package/lib/commands/account.js +17 -22
- package/lib/commands/avatars.js +2 -7
- package/lib/commands/databases.js +154 -210
- package/lib/commands/functions.js +226 -92
- package/lib/commands/generic.js +3 -3
- package/lib/commands/projects.js +10 -30
- package/lib/commands/storage.js +53 -105
- package/lib/commands/teams.js +17 -62
- package/lib/commands/users.js +414 -36
- package/lib/questions.js +1 -1
- package/package.json +1 -1
package/lib/commands/users.js
CHANGED
|
@@ -12,39 +12,67 @@ const { localConfig, globalConfig } = require("../config");
|
|
|
12
12
|
|
|
13
13
|
const users = new Command("users").description(commandDescriptions['users'])
|
|
14
14
|
|
|
15
|
-
const usersList = async ({
|
|
15
|
+
const usersList = async ({ queries, search, parseOutput = true, sdk = undefined}) => {
|
|
16
|
+
/* @param {string[]} queries */
|
|
16
17
|
/* @param {string} search */
|
|
17
|
-
/* @param {number} limit */
|
|
18
|
-
/* @param {number} offset */
|
|
19
|
-
/* @param {string} cursor */
|
|
20
|
-
/* @param {string} cursorDirection */
|
|
21
|
-
/* @param {string} orderType */
|
|
22
18
|
|
|
23
19
|
let client = !sdk ? await sdkForProject() : sdk;
|
|
24
20
|
let path = '/users';
|
|
25
21
|
let payload = {};
|
|
26
22
|
|
|
27
23
|
/** Query Params */
|
|
24
|
+
if (typeof queries !== 'undefined') {
|
|
25
|
+
payload['queries'] = queries;
|
|
26
|
+
}
|
|
28
27
|
if (typeof search !== 'undefined') {
|
|
29
28
|
payload['search'] = search;
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
let response = undefined;
|
|
31
|
+
response = await client.call('get', path, {
|
|
32
|
+
'content-type': 'application/json',
|
|
33
|
+
}, payload);
|
|
34
|
+
|
|
35
|
+
if (parseOutput) {
|
|
36
|
+
parse(response)
|
|
37
|
+
success()
|
|
38
|
+
}
|
|
39
|
+
return response;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const usersCreate = async ({ userId, email, phone, password, name, parseOutput = true, sdk = undefined}) => {
|
|
43
|
+
/* @param {string} userId */
|
|
44
|
+
/* @param {string} email */
|
|
45
|
+
/* @param {string} phone */
|
|
46
|
+
/* @param {string} password */
|
|
47
|
+
/* @param {string} name */
|
|
48
|
+
|
|
49
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
50
|
+
let path = '/users';
|
|
51
|
+
let payload = {};
|
|
52
|
+
|
|
53
|
+
/** Body Params */
|
|
54
|
+
if (typeof userId !== 'undefined') {
|
|
55
|
+
payload['userId'] = userId;
|
|
33
56
|
}
|
|
34
|
-
|
|
35
|
-
|
|
57
|
+
|
|
58
|
+
if (typeof email !== 'undefined') {
|
|
59
|
+
payload['email'] = email;
|
|
36
60
|
}
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
|
|
62
|
+
if (typeof phone !== 'undefined') {
|
|
63
|
+
payload['phone'] = phone;
|
|
39
64
|
}
|
|
40
|
-
|
|
41
|
-
|
|
65
|
+
|
|
66
|
+
if (typeof password !== 'undefined') {
|
|
67
|
+
payload['password'] = password;
|
|
42
68
|
}
|
|
43
|
-
|
|
44
|
-
|
|
69
|
+
|
|
70
|
+
if (typeof name !== 'undefined') {
|
|
71
|
+
payload['name'] = name;
|
|
45
72
|
}
|
|
73
|
+
|
|
46
74
|
let response = undefined;
|
|
47
|
-
response = await client.call('
|
|
75
|
+
response = await client.call('post', path, {
|
|
48
76
|
'content-type': 'application/json',
|
|
49
77
|
}, payload);
|
|
50
78
|
|
|
@@ -55,14 +83,289 @@ const usersList = async ({ search, limit, offset, cursor, cursorDirection, order
|
|
|
55
83
|
return response;
|
|
56
84
|
}
|
|
57
85
|
|
|
58
|
-
const
|
|
86
|
+
const usersCreateArgon2User = async ({ userId, email, password, name, parseOutput = true, sdk = undefined}) => {
|
|
59
87
|
/* @param {string} userId */
|
|
60
88
|
/* @param {string} email */
|
|
61
89
|
/* @param {string} password */
|
|
62
90
|
/* @param {string} name */
|
|
63
91
|
|
|
64
92
|
let client = !sdk ? await sdkForProject() : sdk;
|
|
65
|
-
let path = '/users';
|
|
93
|
+
let path = '/users/argon2';
|
|
94
|
+
let payload = {};
|
|
95
|
+
|
|
96
|
+
/** Body Params */
|
|
97
|
+
if (typeof userId !== 'undefined') {
|
|
98
|
+
payload['userId'] = userId;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (typeof email !== 'undefined') {
|
|
102
|
+
payload['email'] = email;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (typeof password !== 'undefined') {
|
|
106
|
+
payload['password'] = password;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (typeof name !== 'undefined') {
|
|
110
|
+
payload['name'] = name;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
let response = undefined;
|
|
114
|
+
response = await client.call('post', path, {
|
|
115
|
+
'content-type': 'application/json',
|
|
116
|
+
}, payload);
|
|
117
|
+
|
|
118
|
+
if (parseOutput) {
|
|
119
|
+
parse(response)
|
|
120
|
+
success()
|
|
121
|
+
}
|
|
122
|
+
return response;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const usersCreateBcryptUser = async ({ userId, email, password, name, parseOutput = true, sdk = undefined}) => {
|
|
126
|
+
/* @param {string} userId */
|
|
127
|
+
/* @param {string} email */
|
|
128
|
+
/* @param {string} password */
|
|
129
|
+
/* @param {string} name */
|
|
130
|
+
|
|
131
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
132
|
+
let path = '/users/bcrypt';
|
|
133
|
+
let payload = {};
|
|
134
|
+
|
|
135
|
+
/** Body Params */
|
|
136
|
+
if (typeof userId !== 'undefined') {
|
|
137
|
+
payload['userId'] = userId;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (typeof email !== 'undefined') {
|
|
141
|
+
payload['email'] = email;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (typeof password !== 'undefined') {
|
|
145
|
+
payload['password'] = password;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (typeof name !== 'undefined') {
|
|
149
|
+
payload['name'] = name;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
let response = undefined;
|
|
153
|
+
response = await client.call('post', path, {
|
|
154
|
+
'content-type': 'application/json',
|
|
155
|
+
}, payload);
|
|
156
|
+
|
|
157
|
+
if (parseOutput) {
|
|
158
|
+
parse(response)
|
|
159
|
+
success()
|
|
160
|
+
}
|
|
161
|
+
return response;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const usersCreateMD5User = async ({ userId, email, password, name, parseOutput = true, sdk = undefined}) => {
|
|
165
|
+
/* @param {string} userId */
|
|
166
|
+
/* @param {string} email */
|
|
167
|
+
/* @param {string} password */
|
|
168
|
+
/* @param {string} name */
|
|
169
|
+
|
|
170
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
171
|
+
let path = '/users/md5';
|
|
172
|
+
let payload = {};
|
|
173
|
+
|
|
174
|
+
/** Body Params */
|
|
175
|
+
if (typeof userId !== 'undefined') {
|
|
176
|
+
payload['userId'] = userId;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (typeof email !== 'undefined') {
|
|
180
|
+
payload['email'] = email;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (typeof password !== 'undefined') {
|
|
184
|
+
payload['password'] = password;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (typeof name !== 'undefined') {
|
|
188
|
+
payload['name'] = name;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
let response = undefined;
|
|
192
|
+
response = await client.call('post', path, {
|
|
193
|
+
'content-type': 'application/json',
|
|
194
|
+
}, payload);
|
|
195
|
+
|
|
196
|
+
if (parseOutput) {
|
|
197
|
+
parse(response)
|
|
198
|
+
success()
|
|
199
|
+
}
|
|
200
|
+
return response;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const usersCreatePHPassUser = async ({ userId, email, password, name, parseOutput = true, sdk = undefined}) => {
|
|
204
|
+
/* @param {string} userId */
|
|
205
|
+
/* @param {string} email */
|
|
206
|
+
/* @param {string} password */
|
|
207
|
+
/* @param {string} name */
|
|
208
|
+
|
|
209
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
210
|
+
let path = '/users/phpass';
|
|
211
|
+
let payload = {};
|
|
212
|
+
|
|
213
|
+
/** Body Params */
|
|
214
|
+
if (typeof userId !== 'undefined') {
|
|
215
|
+
payload['userId'] = userId;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
if (typeof email !== 'undefined') {
|
|
219
|
+
payload['email'] = email;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (typeof password !== 'undefined') {
|
|
223
|
+
payload['password'] = password;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
if (typeof name !== 'undefined') {
|
|
227
|
+
payload['name'] = name;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
let response = undefined;
|
|
231
|
+
response = await client.call('post', path, {
|
|
232
|
+
'content-type': 'application/json',
|
|
233
|
+
}, payload);
|
|
234
|
+
|
|
235
|
+
if (parseOutput) {
|
|
236
|
+
parse(response)
|
|
237
|
+
success()
|
|
238
|
+
}
|
|
239
|
+
return response;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const usersCreateScryptUser = async ({ userId, email, password, passwordSalt, passwordCpu, passwordMemory, passwordParallel, passwordLength, name, parseOutput = true, sdk = undefined}) => {
|
|
243
|
+
/* @param {string} userId */
|
|
244
|
+
/* @param {string} email */
|
|
245
|
+
/* @param {string} password */
|
|
246
|
+
/* @param {string} passwordSalt */
|
|
247
|
+
/* @param {number} passwordCpu */
|
|
248
|
+
/* @param {number} passwordMemory */
|
|
249
|
+
/* @param {number} passwordParallel */
|
|
250
|
+
/* @param {number} passwordLength */
|
|
251
|
+
/* @param {string} name */
|
|
252
|
+
|
|
253
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
254
|
+
let path = '/users/scrypt';
|
|
255
|
+
let payload = {};
|
|
256
|
+
|
|
257
|
+
/** Body Params */
|
|
258
|
+
if (typeof userId !== 'undefined') {
|
|
259
|
+
payload['userId'] = userId;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (typeof email !== 'undefined') {
|
|
263
|
+
payload['email'] = email;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (typeof password !== 'undefined') {
|
|
267
|
+
payload['password'] = password;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (typeof passwordSalt !== 'undefined') {
|
|
271
|
+
payload['passwordSalt'] = passwordSalt;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (typeof passwordCpu !== 'undefined') {
|
|
275
|
+
payload['passwordCpu'] = passwordCpu;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (typeof passwordMemory !== 'undefined') {
|
|
279
|
+
payload['passwordMemory'] = passwordMemory;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (typeof passwordParallel !== 'undefined') {
|
|
283
|
+
payload['passwordParallel'] = passwordParallel;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (typeof passwordLength !== 'undefined') {
|
|
287
|
+
payload['passwordLength'] = passwordLength;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (typeof name !== 'undefined') {
|
|
291
|
+
payload['name'] = name;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
let response = undefined;
|
|
295
|
+
response = await client.call('post', path, {
|
|
296
|
+
'content-type': 'application/json',
|
|
297
|
+
}, payload);
|
|
298
|
+
|
|
299
|
+
if (parseOutput) {
|
|
300
|
+
parse(response)
|
|
301
|
+
success()
|
|
302
|
+
}
|
|
303
|
+
return response;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
const usersCreateScryptModifiedUser = async ({ userId, email, password, passwordSalt, passwordSaltSeparator, passwordSignerKey, name, parseOutput = true, sdk = undefined}) => {
|
|
307
|
+
/* @param {string} userId */
|
|
308
|
+
/* @param {string} email */
|
|
309
|
+
/* @param {string} password */
|
|
310
|
+
/* @param {string} passwordSalt */
|
|
311
|
+
/* @param {string} passwordSaltSeparator */
|
|
312
|
+
/* @param {string} passwordSignerKey */
|
|
313
|
+
/* @param {string} name */
|
|
314
|
+
|
|
315
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
316
|
+
let path = '/users/scrypt-modified';
|
|
317
|
+
let payload = {};
|
|
318
|
+
|
|
319
|
+
/** Body Params */
|
|
320
|
+
if (typeof userId !== 'undefined') {
|
|
321
|
+
payload['userId'] = userId;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
if (typeof email !== 'undefined') {
|
|
325
|
+
payload['email'] = email;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
if (typeof password !== 'undefined') {
|
|
329
|
+
payload['password'] = password;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (typeof passwordSalt !== 'undefined') {
|
|
333
|
+
payload['passwordSalt'] = passwordSalt;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
if (typeof passwordSaltSeparator !== 'undefined') {
|
|
337
|
+
payload['passwordSaltSeparator'] = passwordSaltSeparator;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
if (typeof passwordSignerKey !== 'undefined') {
|
|
341
|
+
payload['passwordSignerKey'] = passwordSignerKey;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (typeof name !== 'undefined') {
|
|
345
|
+
payload['name'] = name;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
let response = undefined;
|
|
349
|
+
response = await client.call('post', path, {
|
|
350
|
+
'content-type': 'application/json',
|
|
351
|
+
}, payload);
|
|
352
|
+
|
|
353
|
+
if (parseOutput) {
|
|
354
|
+
parse(response)
|
|
355
|
+
success()
|
|
356
|
+
}
|
|
357
|
+
return response;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const usersCreateSHAUser = async ({ userId, email, password, passwordVersion, name, parseOutput = true, sdk = undefined}) => {
|
|
361
|
+
/* @param {string} userId */
|
|
362
|
+
/* @param {string} email */
|
|
363
|
+
/* @param {string} password */
|
|
364
|
+
/* @param {string} passwordVersion */
|
|
365
|
+
/* @param {string} name */
|
|
366
|
+
|
|
367
|
+
let client = !sdk ? await sdkForProject() : sdk;
|
|
368
|
+
let path = '/users/sha';
|
|
66
369
|
let payload = {};
|
|
67
370
|
|
|
68
371
|
/** Body Params */
|
|
@@ -78,6 +381,10 @@ const usersCreate = async ({ userId, email, password, name, parseOutput = true,
|
|
|
78
381
|
payload['password'] = password;
|
|
79
382
|
}
|
|
80
383
|
|
|
384
|
+
if (typeof passwordVersion !== 'undefined') {
|
|
385
|
+
payload['passwordVersion'] = passwordVersion;
|
|
386
|
+
}
|
|
387
|
+
|
|
81
388
|
if (typeof name !== 'undefined') {
|
|
82
389
|
payload['name'] = name;
|
|
83
390
|
}
|
|
@@ -182,21 +489,17 @@ const usersUpdateEmail = async ({ userId, email, parseOutput = true, sdk = undef
|
|
|
182
489
|
return response;
|
|
183
490
|
}
|
|
184
491
|
|
|
185
|
-
const usersGetLogs = async ({ userId,
|
|
492
|
+
const usersGetLogs = async ({ userId, queries, parseOutput = true, sdk = undefined}) => {
|
|
186
493
|
/* @param {string} userId */
|
|
187
|
-
/* @param {
|
|
188
|
-
/* @param {number} offset */
|
|
494
|
+
/* @param {string[]} queries */
|
|
189
495
|
|
|
190
496
|
let client = !sdk ? await sdkForProject() : sdk;
|
|
191
497
|
let path = '/users/{userId}/logs'.replace('{userId}', userId);
|
|
192
498
|
let payload = {};
|
|
193
499
|
|
|
194
500
|
/** Query Params */
|
|
195
|
-
if (typeof
|
|
196
|
-
payload['
|
|
197
|
-
}
|
|
198
|
-
if (typeof offset !== 'undefined') {
|
|
199
|
-
payload['offset'] = offset;
|
|
501
|
+
if (typeof queries !== 'undefined') {
|
|
502
|
+
payload['queries'] = queries;
|
|
200
503
|
}
|
|
201
504
|
let response = undefined;
|
|
202
505
|
response = await client.call('get', path, {
|
|
@@ -480,23 +783,92 @@ const usersUpdatePhoneVerification = async ({ userId, phoneVerification, parseOu
|
|
|
480
783
|
users
|
|
481
784
|
.command(`list`)
|
|
482
785
|
.description(`Get a list of all the project's users. You can use the query params to filter your results.`)
|
|
786
|
+
.option(`--queries <queries...>`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification`)
|
|
483
787
|
.option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`)
|
|
484
|
-
.option(`--limit <limit>`, `Maximum number of users to return in response. By default will return maximum 25 results. Maximum of 100 results allowed per request.`, parseInteger)
|
|
485
|
-
.option(`--offset <offset>`, `Offset value. The default value is 0. Use this param to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)`, parseInteger)
|
|
486
|
-
.option(`--cursor <cursor>`, `ID of the user used as the starting point for the query, excluding the user itself. Should be used for efficient pagination when working with large sets of data. [learn more about pagination](https://appwrite.io/docs/pagination)`)
|
|
487
|
-
.option(`--cursorDirection <cursorDirection>`, `Direction of the cursor, can be either 'before' or 'after'.`)
|
|
488
|
-
.option(`--orderType <orderType>`, `Order result by ASC or DESC order.`)
|
|
489
788
|
.action(actionRunner(usersList))
|
|
490
789
|
|
|
491
790
|
users
|
|
492
791
|
.command(`create`)
|
|
493
792
|
.description(`Create a new user.`)
|
|
494
793
|
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
495
|
-
.
|
|
496
|
-
.
|
|
794
|
+
.option(`--email <email>`, `User email.`)
|
|
795
|
+
.option(`--phone <phone>`, `Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.`)
|
|
796
|
+
.option(`--password <password>`, `Plain text user password. Must be at least 8 chars.`)
|
|
497
797
|
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
498
798
|
.action(actionRunner(usersCreate))
|
|
499
799
|
|
|
800
|
+
users
|
|
801
|
+
.command(`createArgon2User`)
|
|
802
|
+
.description(`Create a new user. Password provided must be hashed with the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
803
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
804
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
805
|
+
.requiredOption(`--password <password>`, `User password hashed using Argon2.`)
|
|
806
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
807
|
+
.action(actionRunner(usersCreateArgon2User))
|
|
808
|
+
|
|
809
|
+
users
|
|
810
|
+
.command(`createBcryptUser`)
|
|
811
|
+
.description(`Create a new user. Password provided must be hashed with the [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
812
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
813
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
814
|
+
.requiredOption(`--password <password>`, `User password hashed using Bcrypt.`)
|
|
815
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
816
|
+
.action(actionRunner(usersCreateBcryptUser))
|
|
817
|
+
|
|
818
|
+
users
|
|
819
|
+
.command(`createMD5User`)
|
|
820
|
+
.description(`Create a new user. Password provided must be hashed with the [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
821
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
822
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
823
|
+
.requiredOption(`--password <password>`, `User password hashed using MD5.`)
|
|
824
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
825
|
+
.action(actionRunner(usersCreateMD5User))
|
|
826
|
+
|
|
827
|
+
users
|
|
828
|
+
.command(`createPHPassUser`)
|
|
829
|
+
.description(`Create a new user. Password provided must be hashed with the [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
830
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
831
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
832
|
+
.requiredOption(`--password <password>`, `User password hashed using PHPass.`)
|
|
833
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
834
|
+
.action(actionRunner(usersCreatePHPassUser))
|
|
835
|
+
|
|
836
|
+
users
|
|
837
|
+
.command(`createScryptUser`)
|
|
838
|
+
.description(`Create a new user. Password provided must be hashed with the [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
839
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
840
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
841
|
+
.requiredOption(`--password <password>`, `User password hashed using Scrypt.`)
|
|
842
|
+
.requiredOption(`--passwordSalt <passwordSalt>`, `Optional salt used to hash password.`)
|
|
843
|
+
.requiredOption(`--passwordCpu <passwordCpu>`, `Optional CPU cost used to hash password.`, parseInteger)
|
|
844
|
+
.requiredOption(`--passwordMemory <passwordMemory>`, `Optional memory cost used to hash password.`, parseInteger)
|
|
845
|
+
.requiredOption(`--passwordParallel <passwordParallel>`, `Optional parallelization cost used to hash password.`, parseInteger)
|
|
846
|
+
.requiredOption(`--passwordLength <passwordLength>`, `Optional hash length used to hash password.`, parseInteger)
|
|
847
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
848
|
+
.action(actionRunner(usersCreateScryptUser))
|
|
849
|
+
|
|
850
|
+
users
|
|
851
|
+
.command(`createScryptModifiedUser`)
|
|
852
|
+
.description(`Create a new user. Password provided must be hashed with the [Scrypt Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
853
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
854
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
855
|
+
.requiredOption(`--password <password>`, `User password hashed using Scrypt Modified.`)
|
|
856
|
+
.requiredOption(`--passwordSalt <passwordSalt>`, `Salt used to hash password.`)
|
|
857
|
+
.requiredOption(`--passwordSaltSeparator <passwordSaltSeparator>`, `Salt separator used to hash password.`)
|
|
858
|
+
.requiredOption(`--passwordSignerKey <passwordSignerKey>`, `Signer key used to hash password.`)
|
|
859
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
860
|
+
.action(actionRunner(usersCreateScryptModifiedUser))
|
|
861
|
+
|
|
862
|
+
users
|
|
863
|
+
.command(`createSHAUser`)
|
|
864
|
+
.description(`Create a new user. Password provided must be hashed with the [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use the [POST /users](/docs/server/users#usersCreate) endpoint to create users with a plain text password.`)
|
|
865
|
+
.requiredOption(`--userId <userId>`, `User ID. Choose your own unique ID or pass the string "unique()" to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`)
|
|
866
|
+
.requiredOption(`--email <email>`, `User email.`)
|
|
867
|
+
.requiredOption(`--password <password>`, `User password hashed using SHA.`)
|
|
868
|
+
.option(`--passwordVersion <passwordVersion>`, `Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512/224', 'sha512/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'`)
|
|
869
|
+
.option(`--name <name>`, `User name. Max length: 128 chars.`)
|
|
870
|
+
.action(actionRunner(usersCreateSHAUser))
|
|
871
|
+
|
|
500
872
|
users
|
|
501
873
|
.command(`getUsage`)
|
|
502
874
|
.description(``)
|
|
@@ -527,8 +899,7 @@ users
|
|
|
527
899
|
.command(`getLogs`)
|
|
528
900
|
.description(`Get the user activity logs list by its unique ID.`)
|
|
529
901
|
.requiredOption(`--userId <userId>`, `User ID.`)
|
|
530
|
-
.option(`--
|
|
531
|
-
.option(`--offset <offset>`, `Offset value. The default value is 0. Use this value to manage pagination. [learn more about pagination](https://appwrite.io/docs/pagination)`, parseInteger)
|
|
902
|
+
.option(`--queries <queries...>`, `Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Only supported methods are limit and offset`)
|
|
532
903
|
.action(actionRunner(usersGetLogs))
|
|
533
904
|
|
|
534
905
|
users
|
|
@@ -616,6 +987,13 @@ module.exports = {
|
|
|
616
987
|
users,
|
|
617
988
|
usersList,
|
|
618
989
|
usersCreate,
|
|
990
|
+
usersCreateArgon2User,
|
|
991
|
+
usersCreateBcryptUser,
|
|
992
|
+
usersCreateMD5User,
|
|
993
|
+
usersCreatePHPassUser,
|
|
994
|
+
usersCreateScryptUser,
|
|
995
|
+
usersCreateScryptModifiedUser,
|
|
996
|
+
usersCreateSHAUser,
|
|
619
997
|
usersGetUsage,
|
|
620
998
|
usersGet,
|
|
621
999
|
usersDelete,
|
package/lib/questions.js
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "appwrite-cli",
|
|
3
3
|
"homepage": "https://appwrite.io/support",
|
|
4
4
|
"description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "1.0.0-RC2",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"bin": {
|