@tigrisdata/cli 2.6.1 → 2.7.0

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.
Files changed (62) hide show
  1. package/README.md +248 -77
  2. package/dist/auth/client.js +1 -1
  3. package/dist/auth/config.js +1 -1
  4. package/dist/auth/s3-client.js +1 -1
  5. package/dist/auth/storage.js +1 -1
  6. package/dist/{chunk-NYAHHQ3A.js → chunk-7F4WI32C.js} +1 -1
  7. package/dist/chunk-BP52O7NB.js +1 -0
  8. package/dist/{chunk-WE6NZ2ZK.js → chunk-DC3ZKGQV.js} +1 -1
  9. package/dist/chunk-EXTBL5CE.js +12 -0
  10. package/dist/{chunk-IACJQZUD.js → chunk-HCOG24E2.js} +1 -1
  11. package/dist/chunk-LCWHZUZZ.js +1 -0
  12. package/dist/chunk-NYQG3EX3.js +8 -0
  13. package/dist/chunk-PRJKBTQP.js +2 -0
  14. package/dist/{chunk-PKWQDQLT.js → chunk-UUITLEOI.js} +1 -1
  15. package/dist/{chunk-DYTBLGO7.js → chunk-VT3KZHZZ.js} +1 -1
  16. package/dist/cli.js +1 -1
  17. package/dist/constants.js +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/lib/_stat.js +1 -1
  20. package/dist/lib/access-keys/assign.js +2 -2
  21. package/dist/lib/access-keys/create.js +2 -2
  22. package/dist/lib/access-keys/delete.js +2 -2
  23. package/dist/lib/access-keys/get.js +2 -2
  24. package/dist/lib/access-keys/list.js +2 -2
  25. package/dist/lib/buckets/create.js +1 -1
  26. package/dist/lib/buckets/delete.js +1 -1
  27. package/dist/lib/buckets/get.js +1 -1
  28. package/dist/lib/buckets/list.js +1 -1
  29. package/dist/lib/buckets/set.js +1 -1
  30. package/dist/lib/configure/index.js +1 -1
  31. package/dist/lib/cp.js +1 -1
  32. package/dist/lib/credentials/test.js +1 -1
  33. package/dist/lib/forks/create.js +1 -1
  34. package/dist/lib/forks/list.js +1 -1
  35. package/dist/lib/login/credentials.js +1 -1
  36. package/dist/lib/login/oauth.js +1 -1
  37. package/dist/lib/login/select.js +1 -1
  38. package/dist/lib/logout.js +1 -1
  39. package/dist/lib/ls.js +1 -1
  40. package/dist/lib/mk.js +1 -1
  41. package/dist/lib/mv.js +1 -1
  42. package/dist/lib/objects/delete.js +1 -1
  43. package/dist/lib/objects/get.js +1 -1
  44. package/dist/lib/objects/list.js +1 -1
  45. package/dist/lib/objects/put.js +1 -1
  46. package/dist/lib/organizations/create.js +2 -2
  47. package/dist/lib/organizations/list.js +2 -2
  48. package/dist/lib/organizations/select.js +3 -3
  49. package/dist/lib/rm.js +1 -1
  50. package/dist/lib/snapshots/list.js +1 -1
  51. package/dist/lib/snapshots/take.js +1 -1
  52. package/dist/lib/touch.js +1 -1
  53. package/dist/lib/whoami.js +1 -1
  54. package/dist/specs.yaml +244 -77
  55. package/dist/utils/path.js +1 -1
  56. package/dist/utils/update-check.js +1 -0
  57. package/package.json +3 -1
  58. package/postinstall.cjs +32 -0
  59. package/dist/chunk-4BZ377KV.js +0 -1
  60. package/dist/chunk-I3FOSZPG.js +0 -1
  61. package/dist/chunk-IY46B353.js +0 -12
  62. package/dist/chunk-TQWT7ROJ.js +0 -1
package/dist/specs.yaml CHANGED
@@ -79,8 +79,11 @@ commands:
79
79
  #########################
80
80
  # configure
81
81
  - name: configure
82
- description: Save credentials permanently. After running this, all commands uses these credentials.
82
+ description: Save access-key credentials to ~/.tigris/config.json for persistent use across all commands
83
83
  alias: c
84
+ examples:
85
+ - "tigris configure --access-key tid_AaBb --access-secret tsec_XxYy"
86
+ - "tigris configure --endpoint https://custom.endpoint.dev"
84
87
  messages:
85
88
  onStart: 'Saving credentials...'
86
89
  onSuccess: 'Credentials saved to ~/.tigris/config.json. You can now use all tigris commands.'
@@ -101,7 +104,11 @@ commands:
101
104
 
102
105
  # login
103
106
  - name: login
104
- description: Start a session. Use OAuth (default) or temporary credentials that override your saved config
107
+ description: Start a session via OAuth (default) or temporary credentials. Session state is cleared on logout
108
+ examples:
109
+ - "tigris login"
110
+ - "tigris login oauth"
111
+ - "tigris login credentials --access-key tid_AaBb --access-secret tsec_XxYy"
105
112
  messages:
106
113
  onStart: ''
107
114
  onSuccess: 'Login successful'
@@ -126,8 +133,10 @@ commands:
126
133
  onFailure: 'Login failed'
127
134
  # oauth
128
135
  - name: oauth
129
- description: Login via browser (OAuth2 device flow). Best for interactive use
136
+ description: Login via browser using OAuth2 device flow. Best for interactive use
130
137
  alias: o
138
+ examples:
139
+ - "tigris login oauth"
131
140
  messages:
132
141
  onStart: 'Opening browser for authentication...'
133
142
  onSuccess: "Logged in successfully\nOrganization '{{org}}' selected"
@@ -136,8 +145,11 @@ commands:
136
145
  hint: "You have {{count}} organizations.\nRun \"tigris orgs list\" to switch."
137
146
  # credentials
138
147
  - name: credentials
139
- description: Login with access key + secret. Creates a temporary session (cleared on logout)
148
+ description: Login with an access key and secret. Creates a temporary session that is cleared on logout
140
149
  alias: c
150
+ examples:
151
+ - "tigris login credentials --access-key tid_AaBb --access-secret tsec_XxYy"
152
+ - "tigris login credentials"
141
153
  messages:
142
154
  onStart: 'Authenticating...'
143
155
  onSuccess: 'Logged in with credentials'
@@ -155,8 +167,10 @@ commands:
155
167
 
156
168
  # whoami
157
169
  - name: whoami
158
- description: Show information about the current user
170
+ description: Print the currently authenticated user, organization, and auth method
159
171
  alias: w
172
+ examples:
173
+ - "tigris whoami"
160
174
  messages:
161
175
  onStart: ''
162
176
  onSuccess: ''
@@ -165,7 +179,9 @@ commands:
165
179
 
166
180
  # logout
167
181
  - name: logout
168
- description: End your session. Clears login state but keeps credentials from 'configure'
182
+ description: End the current session and clear login state. Credentials saved via 'configure' are kept
183
+ examples:
184
+ - "tigris logout"
169
185
  messages:
170
186
  onStart: 'Logging out...'
171
187
  onSuccess: 'Logged out. Your configured credentials are still saved.'
@@ -173,12 +189,18 @@ commands:
173
189
 
174
190
  # credentials
175
191
  - name: credentials
176
- description: Manage and test credentials
192
+ description: Test whether your current credentials can reach Tigris and optionally verify access to a specific bucket
177
193
  alias: creds
194
+ examples:
195
+ - "tigris credentials test"
196
+ - "tigris credentials test --bucket my-bucket"
178
197
  operations:
179
198
  - name: test
180
- description: Test if credentials have access to Tigris (optionally to a specific bucket)
199
+ description: Verify that current credentials are valid. Optionally checks access to a specific bucket
181
200
  alias: t
201
+ examples:
202
+ - "tigris credentials test"
203
+ - "tigris credentials test --bucket my-bucket"
182
204
  messages:
183
205
  onStart: 'Testing credentials...'
184
206
  onSuccess: 'Credentials are valid'
@@ -195,96 +217,145 @@ commands:
195
217
  #########################
196
218
  # ls
197
219
  - name: ls
198
- description: List buckets or objects in a bucket or path
220
+ description: List all buckets (no arguments) or objects under a bucket/prefix path. Accepts bare names or t3:// URIs
199
221
  alias: list
222
+ examples:
223
+ - "tigris ls"
224
+ - "tigris ls my-bucket"
225
+ - "tigris ls my-bucket/images/"
226
+ - "tigris ls t3://my-bucket/prefix/"
227
+ messages:
228
+ onFailure: 'Failed to list. Verify the bucket exists and your credentials have access'
229
+ onEmpty: 'No results found. Run "tigris ls" to see all buckets'
200
230
  arguments:
201
231
  - name: path
202
232
  type: positional
203
- description: a bucket or path in a bucket (if not provided, lists all buckets)
233
+ description: A bucket name or bucket/prefix path. Omit to list all buckets. Supports t3:// and tigris:// prefixes
204
234
  examples:
205
235
  - my-bucket
206
236
  - my-bucket/my-path
237
+ - t3://my-bucket
238
+ - t3://my-bucket/my-path
207
239
 
208
240
  # mk
209
241
  - name: mk
210
- description: Create a bucket or a folder in a bucket
242
+ description: Create a bucket (bare name) or a folder inside a bucket (bucket/folder/ with trailing slash)
211
243
  alias: create
244
+ examples:
245
+ - "tigris mk my-bucket"
246
+ - "tigris mk my-bucket/images/"
247
+ - "tigris mk t3://my-bucket"
248
+ messages:
249
+ onFailure: 'Failed to create. Check the name is valid and your credentials have write access'
212
250
  arguments:
213
251
  - name: path
214
252
  required: true
215
253
  type: positional
216
- description: a bucket or a folder in a bucket
254
+ description: A bucket name or bucket/folder/ path. Trailing slash creates a folder inside the bucket. Supports t3:// and tigris:// prefixes
217
255
  examples:
218
256
  - my-bucket
219
257
  - my-bucket/my-path
258
+ - t3://my-bucket
259
+ - t3://my-bucket/my-path
220
260
 
221
261
  # touch
222
262
  - name: touch
223
- description: Create an empty object in a bucket
263
+ description: Create an empty (zero-byte) object at the given bucket/key path
264
+ examples:
265
+ - "tigris touch my-bucket/placeholder.txt"
266
+ - "tigris touch t3://my-bucket/logs/"
267
+ messages:
268
+ onFailure: 'Failed to create object. Verify the bucket exists and your credentials have write access'
224
269
  arguments:
225
270
  - name: path
226
271
  required: true
227
272
  type: positional
228
- description: path to the object (bucket/key)
273
+ description: Object path as bucket/key. Supports t3:// and tigris:// prefixes
229
274
  examples:
230
275
  - my-bucket/my-file.txt
276
+ - t3://my-bucket/my-file.txt
231
277
 
232
278
  # stat
233
279
  - name: stat
234
- description: Get the details of a bucket or a folder in a bucket or an object in a bucket or path
280
+ description: Show metadata (size, last-modified, content-type, storage tier) for a bucket, folder, or object
235
281
  arguments:
236
282
  - name: path
237
283
  required: true
238
284
  type: positional
239
- description: a bucket or a folder in a bucket or an object in a bucket or path
285
+ description: A bucket name, folder path, or object key. Supports t3:// and tigris:// prefixes
240
286
  examples:
241
287
  - my-bucket
242
288
  - my-bucket/my-path
289
+ - t3://my-bucket
290
+ - t3://my-bucket/my-path
243
291
  - my-bucket/my-path/my-object.json
244
292
 
245
293
  # cp
246
294
  - name: cp
247
- description: Copy a folder or an object
295
+ description: Copy files between local filesystem and Tigris, or between paths within Tigris. At least one side must be a remote t3:// path
248
296
  alias: copy
297
+ examples:
298
+ - "tigris cp ./file.txt t3://my-bucket/file.txt"
299
+ - "tigris cp t3://my-bucket/file.txt ./local-copy.txt"
300
+ - "tigris cp t3://my-bucket/src/ t3://my-bucket/dest/ -r"
301
+ - "tigris cp ./images/ t3://my-bucket/images/ -r"
302
+ messages:
303
+ onFailure: 'Copy failed. Verify both paths are correct and credentials have access'
249
304
  arguments:
250
305
  - name: src
251
306
  required: true
252
307
  type: positional
253
- description: a bucket, a folder in a bucket, an object in a bucket / path. Wildcard is supported.
308
+ description: Source path. Use t3:// (or tigris://) prefix for remote Tigris paths, bare paths for local files. At least one side must be remote. Quote wildcard patterns to prevent shell expansion
254
309
  examples:
255
- - my-bucket
256
- - my-bucket/my-path
257
- - my-bucket/my-path/my-object.json
310
+ - ./file.txt
311
+ - ./dir/
312
+ - '"./dir/*.jpg"'
313
+ - t3://my-bucket/my-path/my-object.json
314
+ - t3://my-bucket/my-path/*
258
315
  - name: dest
259
316
  required: true
260
317
  type: positional
261
- description: path to copy to
318
+ description: Destination path. Use t3:// (or tigris://) prefix for remote Tigris paths, bare paths for local files
262
319
  examples:
263
- - my-bucket
264
- - my-bucket/my-path
265
- - my-bucket/my-path/*
266
- - my-bucket/my-path/my-object.json
320
+ - .
321
+ - ./local-dir/
322
+ - t3://my-bucket
323
+ - t3://my-bucket/my-path/
324
+ - name: recursive
325
+ type: flag
326
+ alias: r
327
+ description: Copy directories recursively
267
328
 
268
329
  # mv
269
330
  - name: mv
270
- description: Move a folder or an object
331
+ description: Move (rename) objects within Tigris. Both source and destination must be remote t3:// paths
271
332
  alias: move
333
+ examples:
334
+ - "tigris mv t3://my-bucket/old.txt t3://my-bucket/new.txt -f"
335
+ - "tigris mv t3://my-bucket/old-dir/ t3://my-bucket/new-dir/ -rf"
336
+ - "tigris mv my-bucket/a.txt my-bucket/b.txt -f"
337
+ messages:
338
+ onFailure: 'Move failed. Verify both paths are remote and credentials have access'
272
339
  arguments:
273
340
  - name: src
274
341
  type: positional
275
342
  required: true
276
- description: path to move from
343
+ description: Remote source path. Use t3:// (or tigris://) prefix. Quote wildcard patterns to prevent shell expansion
277
344
  examples:
278
- - my-bucket/my-path
279
- - my-bucket/my-path/*
280
- - my-bucket/my-path/my-object.json
345
+ - t3://my-bucket/my-path/my-object.json
346
+ - t3://my-bucket/my-path/
347
+ - '"t3://my-bucket/my-path/*.jpg"'
281
348
  - name: dest
282
349
  type: positional
283
350
  required: true
284
- description: path to move to
351
+ description: Remote destination path. Use t3:// (or tigris://) prefix
285
352
  examples:
286
- - my-bucket
287
- - my-bucket/new-path
353
+ - t3://my-bucket
354
+ - t3://my-bucket/new-path/
355
+ - name: recursive
356
+ type: flag
357
+ alias: r
358
+ description: Move directories recursively
288
359
  - name: force
289
360
  type: flag
290
361
  alias: f
@@ -292,18 +363,29 @@ commands:
292
363
 
293
364
  # rm
294
365
  - name: rm
295
- description: Remove a bucket or a folder in a bucket or an object in a bucket or path
366
+ description: Remove a bucket, folder, or object from Tigris. A bare bucket name deletes the bucket itself
296
367
  alias: remove
368
+ examples:
369
+ - "tigris rm t3://my-bucket/file.txt -f"
370
+ - "tigris rm t3://my-bucket/folder/ -rf"
371
+ - "tigris rm t3://my-bucket -f"
372
+ - 'tigris rm "t3://my-bucket/logs/*.tmp" -f'
373
+ messages:
374
+ onFailure: 'Remove failed. Verify the path exists and credentials have delete access'
297
375
  arguments:
298
376
  - name: path
299
377
  type: positional
300
378
  required: true
301
- description: a bucket, a folder in a bucket, an object in a bucket / path. Wildcard is supported.
379
+ description: Remote path to remove. A bucket-only path removes the bucket. Use t3:// (or tigris://) prefix. Quote wildcard patterns to prevent shell expansion
302
380
  examples:
303
- - my-bucket
304
- - my-bucket/my-path
305
- - my-bucket/my-path/*
306
- - my-bucket/my-path/my-object.json
381
+ - t3://my-bucket
382
+ - t3://my-bucket/my-path/my-object.json
383
+ - t3://my-bucket/my-path/
384
+ - '"t3://my-bucket/my-path/*.jpg"'
385
+ - name: recursive
386
+ type: flag
387
+ alias: r
388
+ description: Remove directories recursively
307
389
  - name: force
308
390
  type: flag
309
391
  alias: f
@@ -314,12 +396,19 @@ commands:
314
396
  #########################
315
397
  - name: organizations
316
398
  alias: orgs
317
- description: Manage organizations
399
+ description: List, create, and switch between organizations. An organization is a workspace that contains your resources like buckets and access keys
400
+ examples:
401
+ - "tigris orgs list"
402
+ - "tigris orgs create my-org"
403
+ - "tigris orgs select my-org"
318
404
  operations:
319
405
  # list
320
406
  - name: list
321
- description: List organizations
407
+ description: List all organizations you belong to and interactively select one as active
322
408
  alias: l
409
+ examples:
410
+ - "tigris orgs list"
411
+ - "tigris orgs list --format json"
323
412
  messages:
324
413
  onStart: 'Listing organizations...'
325
414
  onSuccess: "Organization '{{name}}' selected"
@@ -327,7 +416,7 @@ commands:
327
416
  onEmpty: "No organizations found. You may need to re-authenticate.\nRun: tigris login"
328
417
  arguments:
329
418
  - name: format
330
- description: Format
419
+ description: Output format
331
420
  alias: f
332
421
  options: [json, table, xml, select]
333
422
  default: select
@@ -336,8 +425,10 @@ commands:
336
425
  alias: i
337
426
  type: flag
338
427
  - name: create
339
- description: Create organization
428
+ description: Create a new organization with the given name
340
429
  alias: c
430
+ examples:
431
+ - "tigris orgs create my-org"
341
432
  messages:
342
433
  onStart: 'Creating organization...'
343
434
  onSuccess: "Organization '{{name}}' created successfully\nOrganization ID: {{id}}"
@@ -351,8 +442,10 @@ commands:
351
442
  examples:
352
443
  - my-organization
353
444
  - name: select
354
- description: Select the organization to use
445
+ description: Set the named organization as your active org for all subsequent commands
355
446
  alias: s
447
+ examples:
448
+ - "tigris orgs select my-org"
356
449
  messages:
357
450
  onStart: ''
358
451
  onSuccess: "Organization '{{name}}' selected"
@@ -369,13 +462,21 @@ commands:
369
462
  # Manage buckets
370
463
  #########################
371
464
  - name: buckets
372
- description: Manage buckets
465
+ description: Create, inspect, update, and delete buckets. Buckets are top-level containers that hold objects
373
466
  alias: b
467
+ examples:
468
+ - "tigris buckets list"
469
+ - "tigris buckets create my-bucket"
470
+ - "tigris buckets get my-bucket"
471
+ - "tigris buckets delete my-bucket"
374
472
  operations:
375
473
  # list
376
474
  - name: list
377
- description: List buckets
475
+ description: List all buckets in the current organization
378
476
  alias: l
477
+ examples:
478
+ - "tigris buckets list"
479
+ - "tigris buckets list --format json"
379
480
  messages:
380
481
  onStart: 'Listing buckets...'
381
482
  onSuccess: 'Found {{count}} bucket(s)'
@@ -383,14 +484,18 @@ commands:
383
484
  onEmpty: 'No buckets found'
384
485
  arguments:
385
486
  - name: format
386
- description: Format
487
+ description: Output format
387
488
  alias: f
388
489
  options: [json, table, xml]
389
490
  default: table
390
491
  # create
391
492
  - name: create
392
- description: Create bucket
493
+ description: Create a new bucket with optional access, tier, consistency, and region settings
393
494
  alias: c
495
+ examples:
496
+ - "tigris buckets create my-bucket"
497
+ - "tigris buckets create my-bucket --access public --region iad"
498
+ - "tigris buckets create my-bucket --enable-snapshots --default-tier STANDARD_IA"
394
499
  messages:
395
500
  onStart: 'Creating bucket...'
396
501
  onSuccess: "Bucket '{{name}}' created successfully"
@@ -429,8 +534,10 @@ commands:
429
534
  default: 'global'
430
535
  # get
431
536
  - name: get
432
- description: Get bucket details
537
+ description: Show details for a bucket including access level, region, tier, and custom domain
433
538
  alias: g
539
+ examples:
540
+ - "tigris buckets get my-bucket"
434
541
  messages:
435
542
  onStart: 'Getting bucket details...'
436
543
  onSuccess: ''
@@ -444,8 +551,11 @@ commands:
444
551
  - my-bucket
445
552
  # delete
446
553
  - name: delete
447
- description: Delete bucket
554
+ description: Delete one or more buckets by name. The bucket must be empty or delete-protection must be off
448
555
  alias: d
556
+ examples:
557
+ - "tigris buckets delete my-bucket"
558
+ - "tigris buckets delete bucket-a,bucket-b"
449
559
  messages:
450
560
  onStart: 'Deleting bucket...'
451
561
  onSuccess: "Bucket '{{name}}' deleted successfully"
@@ -460,8 +570,12 @@ commands:
460
570
  - my-bucket
461
571
  # set
462
572
  - name: set
463
- description: Update bucket settings
573
+ description: Update settings on an existing bucket such as access level, region, caching, or custom domain
464
574
  alias: s
575
+ examples:
576
+ - "tigris buckets set my-bucket --access public"
577
+ - "tigris buckets set my-bucket --region iad,fra --cache-control 'max-age=3600'"
578
+ - "tigris buckets set my-bucket --custom-domain assets.example.com"
465
579
  messages:
466
580
  onStart: 'Updating bucket...'
467
581
  onSuccess: 'Bucket {{name}} updated successfully'
@@ -498,13 +612,19 @@ commands:
498
612
  # Manage forks
499
613
  #########################
500
614
  - name: forks
501
- description: Manage forks
615
+ description: List and create forks. A fork is a writable copy-on-write clone of a bucket, useful for testing or branching data
502
616
  alias: f
617
+ examples:
618
+ - "tigris forks list my-bucket"
619
+ - "tigris forks create my-bucket my-fork"
503
620
  operations:
504
621
  # list
505
622
  - name: list
506
- description: List forks of a bucket
623
+ description: List all forks created from the given source bucket
507
624
  alias: l
625
+ examples:
626
+ - "tigris forks list my-bucket"
627
+ - "tigris forks list my-bucket --format json"
508
628
  messages:
509
629
  onStart: 'Listing forks...'
510
630
  onSuccess: 'Found {{count}} fork(s)'
@@ -524,8 +644,11 @@ commands:
524
644
  default: table
525
645
  # create
526
646
  - name: create
527
- description: Create a fork of a bucket
647
+ description: Create a new fork (copy-on-write clone) of the source bucket. Optionally fork from a specific snapshot
528
648
  alias: c
649
+ examples:
650
+ - "tigris forks create my-bucket my-fork"
651
+ - "tigris forks create my-bucket my-fork --snapshot snap-2025-01-01"
529
652
  messages:
530
653
  onStart: 'Creating fork...'
531
654
  onSuccess: "Fork '{{forkName}}' created from '{{name}}'"
@@ -551,13 +674,19 @@ commands:
551
674
  # Manage snapshots
552
675
  #########################
553
676
  - name: snapshots
554
- description: Manage snapshots
677
+ description: List and take snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state
555
678
  alias: s
679
+ examples:
680
+ - "tigris snapshots list my-bucket"
681
+ - "tigris snapshots take my-bucket"
556
682
  operations:
557
683
  # list
558
684
  - name: list
559
- description: List snapshots of a bucket
685
+ description: List all snapshots for the given bucket, ordered by creation time
560
686
  alias: l
687
+ examples:
688
+ - "tigris snapshots list my-bucket"
689
+ - "tigris snapshots list my-bucket --format json"
561
690
  messages:
562
691
  onStart: 'Listing snapshots...'
563
692
  onSuccess: 'Found {{count}} snapshot(s)'
@@ -577,8 +706,11 @@ commands:
577
706
  default: table
578
707
  # take
579
708
  - name: take
580
- description: Take a snapshot of a bucket
709
+ description: Take a new snapshot of the bucket's current state. Optionally provide a name for the snapshot
581
710
  alias: t
711
+ examples:
712
+ - "tigris snapshots take my-bucket"
713
+ - "tigris snapshots take my-bucket my-snapshot"
582
714
  messages:
583
715
  onStart: 'Taking snapshot...'
584
716
  onSuccess: "Snapshot '{{snapshotName}}' taken for bucket '{{name}}'"
@@ -591,7 +723,7 @@ commands:
591
723
  examples:
592
724
  - my-bucket
593
725
  - name: snapshot-name
594
- description: Name of the snapshot (optional)
726
+ description: Name of the snapshot (optional, auto-generated if omitted)
595
727
  type: positional
596
728
  required: false
597
729
  examples:
@@ -601,13 +733,22 @@ commands:
601
733
  # Manage objects
602
734
  #########################
603
735
  - name: objects
604
- description: Manage objects
736
+ description: Low-level object operations for listing, downloading, uploading, and deleting individual objects in a bucket
605
737
  alias: o
738
+ examples:
739
+ - "tigris objects list my-bucket"
740
+ - "tigris objects get my-bucket report.pdf --output ./report.pdf"
741
+ - "tigris objects put my-bucket report.pdf ./report.pdf"
742
+ - "tigris objects delete my-bucket report.pdf"
606
743
  operations:
607
744
  # list
608
745
  - name: list
609
- description: List objects in a bucket
746
+ description: List objects in a bucket, optionally filtered by a key prefix
610
747
  alias: l
748
+ examples:
749
+ - "tigris objects list my-bucket"
750
+ - "tigris objects list my-bucket --prefix images/"
751
+ - "tigris objects list my-bucket --format json"
611
752
  messages:
612
753
  onStart: 'Listing objects...'
613
754
  onSuccess: 'Found {{count}} object(s)'
@@ -621,7 +762,7 @@ commands:
621
762
  examples:
622
763
  - my-bucket
623
764
  - name: prefix
624
- description: Filter objects by prefix
765
+ description: Filter objects by key prefix (e.g. "images/" to list only images)
625
766
  alias: p
626
767
  - name: format
627
768
  description: Output format
@@ -630,8 +771,11 @@ commands:
630
771
  default: table
631
772
  # get
632
773
  - name: get
633
- description: Get an object
774
+ description: Download an object by key. Prints to stdout by default, or saves to a file with --output
634
775
  alias: g
776
+ examples:
777
+ - "tigris objects get my-bucket config.json"
778
+ - "tigris objects get my-bucket archive.zip --output ./archive.zip --mode stream"
635
779
  messages:
636
780
  onStart: 'Getting object...'
637
781
  onSuccess: ''
@@ -653,13 +797,16 @@ commands:
653
797
  description: Output file path (if not specified, prints to stdout)
654
798
  alias: o
655
799
  - name: mode
656
- description: Response mode (auto-detected from extension if not specified)
800
+ description: 'Response mode: "string" loads into memory, "stream" writes in chunks (auto-detected from extension if not specified)'
657
801
  alias: m
658
802
  options: [string, stream]
659
803
  # put
660
804
  - name: put
661
- description: Upload an object
805
+ description: Upload a local file as an object. Content-type is auto-detected from extension unless overridden
662
806
  alias: p
807
+ examples:
808
+ - "tigris objects put my-bucket report.pdf ./report.pdf"
809
+ - "tigris objects put my-bucket logo.png ./logo.png --access public --content-type image/png"
663
810
  messages:
664
811
  onStart: 'Uploading object...'
665
812
  onSuccess: "Object '{{key}}' uploaded successfully"
@@ -678,7 +825,7 @@ commands:
678
825
  examples:
679
826
  - my-file.txt
680
827
  - name: file
681
- description: Path to the file to upload
828
+ description: Path to the local file to upload
682
829
  type: positional
683
830
  examples:
684
831
  - ./my-file.txt
@@ -688,7 +835,7 @@ commands:
688
835
  options: *access_options
689
836
  default: private
690
837
  - name: content-type
691
- description: Content type
838
+ description: Content type (auto-detected from extension if omitted)
692
839
  alias: t
693
840
  - name: format
694
841
  description: Output format
@@ -697,8 +844,11 @@ commands:
697
844
  default: table
698
845
  # delete
699
846
  - name: delete
700
- description: Delete an object
847
+ description: Delete one or more objects by key from the given bucket
701
848
  alias: d
849
+ examples:
850
+ - "tigris objects delete my-bucket old-file.txt"
851
+ - "tigris objects delete my-bucket file-a.txt,file-b.txt"
702
852
  messages:
703
853
  onStart: 'Deleting object...'
704
854
  onSuccess: "Object '{{key}}' deleted successfully"
@@ -722,20 +872,28 @@ commands:
722
872
  # Manage access keys
723
873
  #########################
724
874
  - name: access-keys
725
- description: Manage access keys
875
+ description: Create, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access
726
876
  alias: keys
877
+ examples:
878
+ - "tigris access-keys list"
879
+ - "tigris access-keys create my-ci-key"
880
+ - "tigris access-keys assign tid_AaBb --bucket my-bucket --role Editor"
727
881
  operations:
728
882
  - name: list
729
- description: List all access keys
883
+ description: List all access keys in the current organization
730
884
  alias: l
885
+ examples:
886
+ - "tigris access-keys list"
731
887
  messages:
732
888
  onStart: ''
733
889
  onSuccess: ''
734
890
  onFailure: 'Failed to list access keys'
735
891
  onEmpty: 'No access keys found'
736
892
  - name: create
737
- description: Create a new access key
893
+ description: Create a new access key with the given name. Returns the key ID and secret (shown only once)
738
894
  alias: c
895
+ examples:
896
+ - "tigris access-keys create my-ci-key"
739
897
  messages:
740
898
  onStart: 'Creating access key...'
741
899
  onSuccess: 'Access key created'
@@ -748,8 +906,10 @@ commands:
748
906
  examples:
749
907
  - my-key
750
908
  - name: delete
751
- description: Delete an access key
909
+ description: Permanently delete an access key by its ID. This revokes all access immediately
752
910
  alias: d
911
+ examples:
912
+ - "tigris access-keys delete tid_AaBbCcDdEeFf"
753
913
  messages:
754
914
  onStart: 'Deleting access key...'
755
915
  onSuccess: 'Access key deleted'
@@ -762,8 +922,10 @@ commands:
762
922
  examples:
763
923
  - tid_AaBbCcDdEeFf
764
924
  - name: get
765
- description: Get details of an access key
925
+ description: Show details for an access key including its name, creation date, and assigned bucket roles
766
926
  alias: g
927
+ examples:
928
+ - "tigris access-keys get tid_AaBbCcDdEeFf"
767
929
  messages:
768
930
  onStart: ''
769
931
  onSuccess: ''
@@ -776,8 +938,13 @@ commands:
776
938
  examples:
777
939
  - tid_AaBbCcDdEeFf
778
940
  - name: assign
779
- description: Assign bucket roles to an access key
941
+ description: Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor or ReadOnly), or use --admin for org-wide access
780
942
  alias: a
943
+ examples:
944
+ - "tigris access-keys assign tid_AaBb --bucket my-bucket --role Editor"
945
+ - "tigris access-keys assign tid_AaBb --bucket a,b --role Editor,ReadOnly"
946
+ - "tigris access-keys assign tid_AaBb --admin"
947
+ - "tigris access-keys assign tid_AaBb --revoke-roles"
781
948
  messages:
782
949
  onStart: 'Assigning bucket roles...'
783
950
  onSuccess: 'Bucket roles assigned'
@@ -791,11 +958,11 @@ commands:
791
958
  - tid_AaBbCcDdEeFf
792
959
  - name: bucket
793
960
  alias: b
794
- description: Bucket name (can specify multiple)
961
+ description: Bucket name (can specify multiple, comma-separated). Each bucket is paired positionally with a --role value
795
962
  multiple: true
796
963
  - name: role
797
964
  alias: r
798
- description: Role to assign (can specify multiple to pair with buckets)
965
+ description: Role to assign (can specify multiple, comma-separated). Each role pairs with the corresponding --bucket value
799
966
  multiple: true
800
967
  options:
801
968
  - Editor
@@ -805,4 +972,4 @@ commands:
805
972
  type: flag
806
973
  - name: revoke-roles
807
974
  description: Revoke all bucket roles from the access key
808
- type: flag
975
+ type: flag