@tigrisdata/cli 2.18.0-beta.1 → 2.18.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 (88) hide show
  1. package/README.md +491 -49
  2. package/SKILL.md +1 -13
  3. package/dist/auth/iam.js +1 -1
  4. package/dist/auth/provider.js +1 -1
  5. package/dist/{chunk-ZXX72WRN.js → chunk-27KYKU5U.js} +1 -1
  6. package/dist/{chunk-WGLMOOT6.js → chunk-3L2I7HZB.js} +1 -1
  7. package/dist/{chunk-MKAP3BKU.js → chunk-7ZHRXMPK.js} +1 -1
  8. package/dist/chunk-DQMSOC2W.js +8 -0
  9. package/dist/{chunk-PG746YF3.js → chunk-JP3PXFIQ.js} +1 -1
  10. package/dist/{chunk-TRRXHLUE.js → chunk-QWBEROER.js} +1 -1
  11. package/dist/{chunk-VAVMX5DC.js → chunk-SMBIT5FI.js} +1 -1
  12. package/dist/{chunk-H5UM42LZ.js → chunk-T2QR4QOR.js} +1 -1
  13. package/dist/{chunk-ZADGAARW.js → chunk-XCZPPS7H.js} +1 -1
  14. package/dist/cli-core.js +1 -1
  15. package/dist/cli.js +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/lib/access-keys/assign.js +1 -1
  18. package/dist/lib/access-keys/attach-policy.js +1 -1
  19. package/dist/lib/access-keys/create.js +1 -1
  20. package/dist/lib/access-keys/delete.js +1 -1
  21. package/dist/lib/access-keys/detach-policy.js +1 -1
  22. package/dist/lib/access-keys/get.js +1 -1
  23. package/dist/lib/access-keys/list-policies.js +1 -1
  24. package/dist/lib/access-keys/list.js +1 -1
  25. package/dist/lib/access-keys/rotate.js +1 -1
  26. package/dist/lib/buckets/create.js +1 -1
  27. package/dist/lib/buckets/delete.js +1 -1
  28. package/dist/lib/buckets/get.js +1 -1
  29. package/dist/lib/buckets/list.js +1 -1
  30. package/dist/lib/buckets/migrate.js +3 -0
  31. package/dist/lib/buckets/set-cors.js +1 -1
  32. package/dist/lib/buckets/set-locations.js +1 -1
  33. package/dist/lib/buckets/set-migration.js +1 -1
  34. package/dist/lib/buckets/set-notifications.js +1 -1
  35. package/dist/lib/buckets/set-transition.js +1 -1
  36. package/dist/lib/buckets/set-ttl.js +1 -1
  37. package/dist/lib/buckets/set.js +1 -1
  38. package/dist/lib/bundle.js +1 -1
  39. package/dist/lib/configure/index.js +1 -1
  40. package/dist/lib/cp.js +1 -1
  41. package/dist/lib/credentials/test.js +1 -1
  42. package/dist/lib/forks/create.js +1 -1
  43. package/dist/lib/forks/list.js +1 -1
  44. package/dist/lib/iam/policies/create.js +1 -1
  45. package/dist/lib/iam/policies/delete.js +1 -1
  46. package/dist/lib/iam/policies/edit.js +1 -1
  47. package/dist/lib/iam/policies/get.js +1 -1
  48. package/dist/lib/iam/policies/link-key.js +1 -1
  49. package/dist/lib/iam/policies/list-keys.js +1 -1
  50. package/dist/lib/iam/policies/list.js +1 -1
  51. package/dist/lib/iam/policies/select-policy.js +1 -1
  52. package/dist/lib/iam/policies/unlink-key.js +1 -1
  53. package/dist/lib/iam/users/invite.js +1 -1
  54. package/dist/lib/iam/users/list.js +1 -1
  55. package/dist/lib/iam/users/remove.js +1 -1
  56. package/dist/lib/iam/users/revoke-invitation.js +1 -1
  57. package/dist/lib/iam/users/update-role.js +1 -1
  58. package/dist/lib/login/credentials.js +1 -1
  59. package/dist/lib/login/oauth.js +1 -1
  60. package/dist/lib/login/select.js +1 -1
  61. package/dist/lib/logout.js +1 -1
  62. package/dist/lib/ls.js +1 -1
  63. package/dist/lib/mk.js +1 -1
  64. package/dist/lib/mv.js +1 -1
  65. package/dist/lib/objects/delete.js +1 -1
  66. package/dist/lib/objects/get.js +1 -1
  67. package/dist/lib/objects/info.js +1 -1
  68. package/dist/lib/objects/list.js +1 -1
  69. package/dist/lib/objects/put.js +1 -1
  70. package/dist/lib/objects/set.js +1 -1
  71. package/dist/lib/organizations/create.js +1 -1
  72. package/dist/lib/organizations/list.js +1 -1
  73. package/dist/lib/organizations/select.js +1 -1
  74. package/dist/lib/presign.js +1 -1
  75. package/dist/lib/rm.js +1 -1
  76. package/dist/lib/snapshots/list.js +1 -1
  77. package/dist/lib/snapshots/take.js +1 -1
  78. package/dist/lib/stat.js +1 -1
  79. package/dist/lib/touch.js +1 -1
  80. package/dist/lib/update.js +1 -1
  81. package/dist/lib/whoami.js +1 -1
  82. package/dist/specs.yaml +26 -0
  83. package/dist/utils/exit.js +1 -1
  84. package/dist/utils/messages.js +1 -1
  85. package/dist/utils/update-check.js +1 -1
  86. package/package.json +11 -11
  87. package/dist/chunk-HILRSPGJ.js +0 -8
  88. /package/dist/{chunk-OA5TEBJ4.js → chunk-EKLR55EQ.js} +0 -0
package/README.md CHANGED
@@ -8,6 +8,12 @@ Command line interface for Tigris object storage.
8
8
  npm install -g @tigrisdata/cli
9
9
  ```
10
10
 
11
+ You can also install CLI using brew
12
+
13
+ ```sh
14
+ brew install tigrisdata/tap/tigris
15
+ ```
16
+
11
17
  ## Usage
12
18
 
13
19
  ```
@@ -25,6 +31,8 @@ Run `tigris help` to see all available commands, or `tigris <command> help` for
25
31
  - `tigris mv <src> <dest>` - Move (rename) objects within Tigris. Both source and destination must be remote t3:// paths
26
32
  - `tigris rm <path>` - Remove a bucket, folder, or object from Tigris. A bare bucket name deletes the bucket itself
27
33
  - `tigris stat [path]` - Show storage stats (no args), bucket info, or object metadata
34
+ - `tigris presign <path>` - Generate a presigned URL for temporary access to an object without credentials
35
+ - `tigris bundle <bucket>` - Download multiple objects as a streaming tar archive in a single request. Designed for batch workloads that need many objects without per-object HTTP overhead
28
36
 
29
37
  ### Authentication
30
38
 
@@ -33,13 +41,17 @@ Run `tigris help` to see all available commands, or `tigris <command> help` for
33
41
  - `tigris whoami` - Print the currently authenticated user, organization, and auth method
34
42
  - `tigris configure` - Save access-key credentials to ~/.tigris/config.json for persistent use across all commands
35
43
 
44
+ ### Other
45
+
46
+ - `tigris update` - Update the CLI to the latest version
47
+
36
48
  ### Resources
37
49
 
38
50
  - `tigris organizations` - List, create, and switch between organizations. An organization is a workspace that contains your resources like buckets and access keys
39
51
  - `tigris access-keys` - Create, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access
40
52
  - `tigris credentials` - Test whether your current credentials can reach Tigris and optionally verify access to a specific bucket
41
53
  - `tigris buckets` - Create, inspect, update, and delete buckets. Buckets are top-level containers that hold objects
42
- - `tigris forks` - List and create forks. A fork is a writable copy-on-write clone of a bucket, useful for testing or branching data
54
+ - `tigris forks` - (Deprecated, use "buckets create --fork-of" and "buckets list --forks-of") List and create forks
43
55
  - `tigris snapshots` - List and take snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state
44
56
  - `tigris objects` - Low-level object operations for listing, downloading, uploading, and deleting individual objects in a bucket
45
57
  - `tigris iam` - Identity and Access Management - manage policies, users, and permissions
@@ -53,9 +65,17 @@ Run `tigris help` to see all available commands, or `tigris <command> help` for
53
65
  List all buckets (no arguments) or objects under a bucket/prefix path. Accepts bare names or t3:// URIs
54
66
 
55
67
  ```
56
- tigris ls [path]
68
+ tigris ls [path] [flags]
57
69
  ```
58
70
 
71
+ | Flag | Description |
72
+ |------|-------------|
73
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
74
+ | `--format` | Output format |
75
+ | `--limit` | Maximum number of items to return per page |
76
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
77
+ | `--source` | List objects from a specific storage source on buckets with shadow migration enabled |
78
+
59
79
  **Examples:**
60
80
  ```bash
61
81
  tigris ls
@@ -78,8 +98,11 @@ tigris mk <path> [flags]
78
98
  | `--public` | Shorthand for --access public (only applies when creating a bucket) |
79
99
  | `-s, --enable-snapshots` | Enable snapshots for the bucket (only applies when creating a bucket) |
80
100
  | `-t, --default-tier` | Default storage tier (only applies when creating a bucket) |
81
- | `-c, --consistency` | Consistency level (only applies when creating a bucket) |
82
- | `-r, --region` | Region (only applies when creating a bucket) |
101
+ | `-c, --consistency` | (Deprecated, use --locations) Consistency level (only applies when creating a bucket) |
102
+ | `-r, --region` | (Deprecated, use --locations) Region (only applies when creating a bucket) |
103
+ | `-l, --locations` | Location for the bucket (only applies when creating a bucket) |
104
+ | `-fork, --fork-of` | Create this bucket as a fork (copy-on-write clone) of the named source bucket |
105
+ | `-source-snap, --source-snapshot` | Fork from a specific snapshot of the source bucket. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464). Requires --fork-of |
83
106
 
84
107
  **Examples:**
85
108
  ```bash
@@ -87,6 +110,8 @@ tigris mk my-bucket
87
110
  tigris mk my-bucket --access public --region iad
88
111
  tigris mk my-bucket/images/
89
112
  tigris mk t3://my-bucket
113
+ tigris mk my-fork --fork-of my-bucket
114
+ tigris mk my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
90
115
  ```
91
116
 
92
117
  ### `touch`
@@ -134,7 +159,7 @@ tigris mv <src> <dest> [flags]
134
159
  | Flag | Description |
135
160
  |------|-------------|
136
161
  | `-r, --recursive` | Move directories recursively |
137
- | `-f, --force` | Skip confirmation prompt |
162
+ | `-f, --force` | Skip confirmation prompts (alias for --yes) |
138
163
 
139
164
  **Examples:**
140
165
  ```bash
@@ -154,7 +179,7 @@ tigris rm <path> [flags]
154
179
  | Flag | Description |
155
180
  |------|-------------|
156
181
  | `-r, --recursive` | Remove directories recursively |
157
- | `-f, --force` | Skip confirmation prompt |
182
+ | `-f, --force` | Skip confirmation prompts (alias for --yes) |
158
183
 
159
184
  **Examples:**
160
185
  ```bash
@@ -174,7 +199,8 @@ tigris stat [path] [flags]
174
199
 
175
200
  | Flag | Description |
176
201
  |------|-------------|
177
- | `-f, --format` | Output format |
202
+ | `--format` | Output format |
203
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
178
204
 
179
205
  **Examples:**
180
206
  ```bash
@@ -183,6 +209,53 @@ tigris stat t3://my-bucket
183
209
  tigris stat t3://my-bucket/my-object.json
184
210
  ```
185
211
 
212
+ ### `presign`
213
+
214
+ Generate a presigned URL for temporary access to an object without credentials
215
+
216
+ ```
217
+ tigris presign <path> [flags]
218
+ ```
219
+
220
+ | Flag | Description |
221
+ |------|-------------|
222
+ | `-m, --method` | HTTP method for the presigned URL |
223
+ | `-e, --expires-in` | URL expiry time in seconds |
224
+ | `--access-key` | Access key ID to use for signing. If not provided, resolved from credentials or auto-selected |
225
+ | `--select` | Interactively select an access key (OAuth only) |
226
+ | `--format` | Output format |
227
+
228
+ **Examples:**
229
+ ```bash
230
+ tigris presign my-bucket/file.txt
231
+ tigris presign t3://my-bucket/report.pdf --method put --expires-in 7200
232
+ tigris presign my-bucket/image.png --format json
233
+ tigris presign my-bucket/data.csv --access-key tid_AaBb
234
+ ```
235
+
236
+ ### `bundle`
237
+
238
+ Download multiple objects as a streaming tar archive in a single request. Designed for batch workloads that need many objects without per-object HTTP overhead
239
+
240
+ ```
241
+ tigris bundle <bucket> [flags]
242
+ ```
243
+
244
+ | Flag | Description |
245
+ |------|-------------|
246
+ | `-k, --keys` | Comma-separated object keys, or path to a file with one key per line. If a local file matching the value exists, it is read as a keys file. If omitted, reads keys from stdin |
247
+ | `-o, --output` | Output file path. Defaults to stdout (for piping) |
248
+ | `--compression` | Compression algorithm for the archive. Auto-detected from output file extension when not specified |
249
+ | `--on-error` | How to handle missing objects. 'skip' omits them, 'fail' aborts the request |
250
+
251
+ **Examples:**
252
+ ```bash
253
+ tigris bundle my-bucket --keys key1.jpg,key2.jpg --output archive.tar
254
+ tigris bundle my-bucket --keys keys.txt --output archive.tar
255
+ tigris bundle t3://my-bucket --keys keys.txt --compression gzip -o archive.tar.gz
256
+ cat keys.txt | tigris bundle my-bucket > archive.tar
257
+ ```
258
+
186
259
  ## Authentication
187
260
 
188
261
  ### `login` | `l`
@@ -295,7 +368,7 @@ tigris organizations list [flags]
295
368
 
296
369
  | Flag | Description |
297
370
  |------|-------------|
298
- | `-f, --format` | Output format (default: select) |
371
+ | `--format` | Output format (default: select) |
299
372
  | `-i, --select` | Interactive selection mode |
300
373
 
301
374
  **Examples:**
@@ -337,13 +410,23 @@ Create, list, inspect, delete, and assign roles to access keys. Access keys are
337
410
  | `access-keys delete` (d) | Permanently delete an access key by its ID. This revokes all access immediately |
338
411
  | `access-keys get` (g) | Show details for an access key including its name, creation date, and assigned bucket roles |
339
412
  | `access-keys assign` (a) | Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor or ReadOnly), or use --admin for org-wide access |
413
+ | `access-keys rotate` (r) | Rotate an access key's secret. The current secret is immediately invalidated and a new one is returned (shown only once) |
414
+ | `access-keys attach-policy` (ap) | Attach an IAM policy to an access key. If no policy ARN is provided, shows interactive selection of available policies |
415
+ | `access-keys detach-policy` (dp) | Detach an IAM policy from an access key. If no policy ARN is provided, shows interactive selection of attached policies |
416
+ | `access-keys list-policies` (lp) | List all IAM policies attached to an access key |
340
417
 
341
418
  #### `access-keys list`
342
419
 
343
420
  ```
344
- tigris access-keys list
421
+ tigris access-keys list [flags]
345
422
  ```
346
423
 
424
+ | Flag | Description |
425
+ |------|-------------|
426
+ | `--format` | Output format (default: table) |
427
+ | `--limit` | Maximum number of items to return per page |
428
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
429
+
347
430
  **Examples:**
348
431
  ```bash
349
432
  tigris access-keys list
@@ -363,12 +446,16 @@ tigris access-keys create my-ci-key
363
446
  #### `access-keys delete`
364
447
 
365
448
  ```
366
- tigris access-keys delete <id>
449
+ tigris access-keys delete <id> [flags]
367
450
  ```
368
451
 
452
+ | Flag | Description |
453
+ |------|-------------|
454
+ | `--force` | Skip confirmation prompts (alias for --yes) |
455
+
369
456
  **Examples:**
370
457
  ```bash
371
- tigris access-keys delete tid_AaBbCcDdEeFf
458
+ tigris access-keys delete tid_AaBbCcDdEeFf --yes
372
459
  ```
373
460
 
374
461
  #### `access-keys get`
@@ -403,6 +490,71 @@ tigris access-keys assign tid_AaBb --admin
403
490
  tigris access-keys assign tid_AaBb --revoke-roles
404
491
  ```
405
492
 
493
+ #### `access-keys rotate`
494
+
495
+ ```
496
+ tigris access-keys rotate <id> [flags]
497
+ ```
498
+
499
+ | Flag | Description |
500
+ |------|-------------|
501
+ | `--force` | Skip confirmation prompts (alias for --yes) |
502
+
503
+ **Examples:**
504
+ ```bash
505
+ tigris access-keys rotate tid_AaBbCcDdEeFf --yes
506
+ ```
507
+
508
+ #### `access-keys attach-policy`
509
+
510
+ ```
511
+ tigris access-keys attach-policy <id> [flags]
512
+ ```
513
+
514
+ | Flag | Description |
515
+ |------|-------------|
516
+ | `--policy-arn` | ARN of the policy to attach |
517
+
518
+ **Examples:**
519
+ ```bash
520
+ tigris access-keys attach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy
521
+ tigris access-keys attach-policy tid_AaBb
522
+ ```
523
+
524
+ #### `access-keys detach-policy`
525
+
526
+ ```
527
+ tigris access-keys detach-policy <id> [flags]
528
+ ```
529
+
530
+ | Flag | Description |
531
+ |------|-------------|
532
+ | `--policy-arn` | ARN of the policy to detach |
533
+ | `--force` | Skip confirmation prompts (alias for --yes) |
534
+
535
+ **Examples:**
536
+ ```bash
537
+ tigris access-keys detach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy --yes
538
+ tigris access-keys detach-policy tid_AaBb
539
+ ```
540
+
541
+ #### `access-keys list-policies`
542
+
543
+ ```
544
+ tigris access-keys list-policies <id> [flags]
545
+ ```
546
+
547
+ | Flag | Description |
548
+ |------|-------------|
549
+ | `--format` | Output format (default: table) |
550
+ | `--limit` | Maximum number of items to return per page |
551
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
552
+
553
+ **Examples:**
554
+ ```bash
555
+ tigris access-keys list-policies tid_AaBbCcDdEeFf
556
+ ```
557
+
406
558
  ### `credentials` | `creds`
407
559
 
408
560
  Test whether your current credentials can reach Tigris and optionally verify access to a specific bucket
@@ -438,10 +590,17 @@ Create, inspect, update, and delete buckets. Buckets are top-level containers th
438
590
  | Command | Description |
439
591
  |---------|-------------|
440
592
  | `buckets list` (l) | List all buckets in the current organization |
441
- | `buckets create` (c) | Create a new bucket with optional access, tier, consistency, and region settings |
593
+ | `buckets create` (c) | Create a new bucket with optional access, tier, and location settings |
442
594
  | `buckets get` (g) | Show details for a bucket including access level, region, tier, and custom domain |
443
595
  | `buckets delete` (d) | Delete one or more buckets by name. The bucket must be empty or delete-protection must be off |
444
- | `buckets set` (s) | Update settings on an existing bucket such as access level, region, caching, or custom domain |
596
+ | `buckets set` (s) | Update settings on an existing bucket such as access level, location, caching, or custom domain |
597
+ | `buckets set-ttl` | Configure object expiration (TTL) on a bucket. Objects expire after a number of days or on a specific date |
598
+ | `buckets set-locations` | Set the data locations for a bucket |
599
+ | `buckets set-migration` | Configure data migration from an external S3-compatible source bucket. Tigris will pull objects on demand from the source |
600
+ | `buckets migrate` | Actively migrate all objects from a shadow bucket to Tigris by scheduling server-side migration for unmigrated objects |
601
+ | `buckets set-transition` | Configure a lifecycle transition rule on a bucket. Automatically move objects to a different storage class after a number of days or on a specific date |
602
+ | `buckets set-notifications` | Configure object event notifications on a bucket. Sends webhook requests to a URL when objects are created, updated, or deleted |
603
+ | `buckets set-cors` | Configure CORS rules on a bucket. Each invocation adds a rule unless --override or --reset is used |
445
604
 
446
605
  ##### `buckets list`
447
606
 
@@ -451,12 +610,16 @@ tigris buckets list [flags]
451
610
 
452
611
  | Flag | Description |
453
612
  |------|-------------|
454
- | `-f, --format` | Output format (default: table) |
613
+ | `--format` | Output format (default: table) |
614
+ | `--forks-of` | Only list buckets that are forks of the named source bucket |
615
+ | `--limit` | Maximum number of items to return per page |
616
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
455
617
 
456
618
  **Examples:**
457
619
  ```bash
458
620
  tigris buckets list
459
621
  tigris buckets list --format json
622
+ tigris buckets list --forks-of my-bucket
460
623
  ```
461
624
 
462
625
  ##### `buckets create`
@@ -471,22 +634,31 @@ tigris buckets create [name] [flags]
471
634
  | `--public` | Shorthand for --access public |
472
635
  | `-s, --enable-snapshots` | Enable snapshots for the bucket (default: false) |
473
636
  | `-t, --default-tier` | Choose the default tier for the bucket (default: STANDARD) |
474
- | `-c, --consistency` | Choose the consistency level for the bucket (default: default) |
475
- | `-r, --region` | Region (default: global) |
637
+ | `-c, --consistency` | (Deprecated, use --locations) Choose the consistency level for the bucket |
638
+ | `-r, --region` | (Deprecated, use --locations) Region |
639
+ | `-l, --locations` | Location for the bucket (default: global) |
640
+ | `-fork, --fork-of` | Create this bucket as a fork (copy-on-write clone) of the named source bucket |
641
+ | `-source-snap, --source-snapshot` | Fork from a specific snapshot of the source bucket. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464). Requires --fork-of |
476
642
 
477
643
  **Examples:**
478
644
  ```bash
479
645
  tigris buckets create my-bucket
480
- tigris buckets create my-bucket --access public --region iad
646
+ tigris buckets create my-bucket --access public --locations iad
481
647
  tigris buckets create my-bucket --enable-snapshots --default-tier STANDARD_IA
648
+ tigris buckets create my-fork --fork-of my-bucket
649
+ tigris buckets create my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
482
650
  ```
483
651
 
484
652
  ##### `buckets get`
485
653
 
486
654
  ```
487
- tigris buckets get <name>
655
+ tigris buckets get <name> [flags]
488
656
  ```
489
657
 
658
+ | Flag | Description |
659
+ |------|-------------|
660
+ | `--format` | Output format (default: table) |
661
+
490
662
  **Examples:**
491
663
  ```bash
492
664
  tigris buckets get my-bucket
@@ -495,13 +667,17 @@ tigris buckets get my-bucket
495
667
  ##### `buckets delete`
496
668
 
497
669
  ```
498
- tigris buckets delete <name>
670
+ tigris buckets delete <name> [flags]
499
671
  ```
500
672
 
673
+ | Flag | Description |
674
+ |------|-------------|
675
+ | `--force` | Skip confirmation prompts (alias for --yes) |
676
+
501
677
  **Examples:**
502
678
  ```bash
503
- tigris buckets delete my-bucket
504
- tigris buckets delete bucket-a,bucket-b
679
+ tigris buckets delete my-bucket --yes
680
+ tigris buckets delete bucket-a,bucket-b --yes
505
681
  ```
506
682
 
507
683
  ##### `buckets set`
@@ -513,28 +689,177 @@ tigris buckets set <name> [flags]
513
689
  | Flag | Description |
514
690
  |------|-------------|
515
691
  | `--access` | Bucket access level |
516
- | `--region` | Allowed regions (can specify multiple) |
692
+ | `--region` | (Deprecated, use --locations) Allowed regions (can specify multiple) |
693
+ | `--locations` | Bucket location (see https://www.tigrisdata.com/docs/buckets/locations/ for more details) |
517
694
  | `--allow-object-acl` | Enable object-level ACL |
518
695
  | `--disable-directory-listing` | Disable directory listing |
519
696
  | `--cache-control` | Default cache-control header value |
520
697
  | `--custom-domain` | Custom domain for the bucket |
521
698
  | `--enable-delete-protection` | Enable delete protection |
699
+ | `--enable-additional-headers` | Enable additional HTTP headers (X-Content-Type-Options nosniff) |
522
700
 
523
701
  **Examples:**
524
702
  ```bash
525
703
  tigris buckets set my-bucket --access public
526
- tigris buckets set my-bucket --region iad,fra --cache-control 'max-age=3600'
704
+ tigris buckets set my-bucket --locations iad,fra --cache-control 'max-age=3600'
527
705
  tigris buckets set my-bucket --custom-domain assets.example.com
528
706
  ```
529
707
 
708
+ ##### `buckets set-ttl`
709
+
710
+ ```
711
+ tigris buckets set-ttl <name> [flags]
712
+ ```
713
+
714
+ | Flag | Description |
715
+ |------|-------------|
716
+ | `-d, --days` | Expire objects after this many days |
717
+ | `--date` | Expire objects on this date (ISO-8601, e.g. 2026-06-01) |
718
+ | `--enable` | Enable TTL on the bucket (uses existing lifecycle rules) |
719
+ | `--disable` | Disable TTL on the bucket |
720
+
721
+ **Examples:**
722
+ ```bash
723
+ tigris buckets set-ttl my-bucket --days 30
724
+ tigris buckets set-ttl my-bucket --date 2026-06-01
725
+ tigris buckets set-ttl my-bucket --disable
726
+ ```
727
+
728
+ ##### `buckets set-locations`
729
+
730
+ ```
731
+ tigris buckets set-locations <name> [flags]
732
+ ```
733
+
734
+ | Flag | Description |
735
+ |------|-------------|
736
+ | `-l, --locations` | Bucket location |
737
+
738
+ **Examples:**
739
+ ```bash
740
+ tigris buckets set-locations my-bucket --locations iad
741
+ tigris buckets set-locations my-bucket --locations iad,fra
742
+ tigris buckets set-locations my-bucket --locations global
743
+ ```
744
+
745
+ ##### `buckets set-migration`
746
+
747
+ ```
748
+ tigris buckets set-migration <name> [flags]
749
+ ```
750
+
751
+ | Flag | Description |
752
+ |------|-------------|
753
+ | `-b, --bucket` | Name of the source bucket to migrate from |
754
+ | `-e, --endpoint` | Endpoint URL of the source S3-compatible service |
755
+ | `-r, --region` | Region of the source bucket |
756
+ | `-key, --access-key` | Access key for the source bucket |
757
+ | `-secret, --secret-key` | Secret key for the source bucket |
758
+ | `--write-through` | Enable write-through mode (writes go to both source and Tigris) |
759
+ | `--disable` | Disable migration and clear all migration settings |
760
+
761
+ **Examples:**
762
+ ```bash
763
+ tigris buckets set-migration my-bucket --bucket source-bucket --endpoint https://s3.amazonaws.com --region us-east-1 --access-key AKIA... --secret-key wJal...
764
+ tigris buckets set-migration my-bucket --bucket source-bucket --endpoint https://s3.amazonaws.com --region us-east-1 --access-key AKIA... --secret-key wJal... --write-through
765
+ tigris buckets set-migration my-bucket --disable
766
+ ```
767
+
768
+ ##### `buckets migrate`
769
+
770
+ ```
771
+ tigris buckets migrate <path>
772
+ ```
773
+
774
+ **Examples:**
775
+ ```bash
776
+ tigris buckets migrate my-bucket
777
+ tigris buckets migrate my-bucket/images/
778
+ tigris buckets migrate t3://my-bucket/prefix/
779
+ ```
780
+
781
+ ##### `buckets set-transition`
782
+
783
+ ```
784
+ tigris buckets set-transition <name> [flags]
785
+ ```
786
+
787
+ | Flag | Description |
788
+ |------|-------------|
789
+ | `-s, --storage-class` | Target storage class to transition objects to |
790
+ | `-d, --days` | Transition objects after this many days |
791
+ | `--date` | Transition objects on this date (ISO-8601, e.g. 2026-06-01) |
792
+ | `--enable` | Enable lifecycle transition rules on the bucket |
793
+ | `--disable` | Disable lifecycle transition rules on the bucket |
794
+
795
+ **Examples:**
796
+ ```bash
797
+ tigris buckets set-transition my-bucket --storage-class STANDARD_IA --days 30
798
+ tigris buckets set-transition my-bucket --storage-class GLACIER --date 2026-06-01
799
+ tigris buckets set-transition my-bucket --enable
800
+ tigris buckets set-transition my-bucket --disable
801
+ ```
802
+
803
+ ##### `buckets set-notifications`
804
+
805
+ ```
806
+ tigris buckets set-notifications <name> [flags]
807
+ ```
808
+
809
+ | Flag | Description |
810
+ |------|-------------|
811
+ | `-u, --url` | Webhook URL to send notifications to (must be http or https) |
812
+ | `-f, --filter` | SQL WHERE clause to filter events by key (e.g. WHERE `key` REGEXP "^images") |
813
+ | `-t, --token` | Token for webhook authentication |
814
+ | `--username` | Username for basic webhook authentication |
815
+ | `--password` | Password for basic webhook authentication |
816
+ | `--enable` | Enable notifications on the bucket (uses existing config) |
817
+ | `--disable` | Disable notifications on the bucket (preserves existing config) |
818
+ | `--reset` | Clear all notification settings on the bucket |
819
+
820
+ **Examples:**
821
+ ```bash
822
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook
823
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --token secret123
824
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --username admin --password secret
825
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --filter "WHERE `key` REGEXP \"^images\""
826
+ tigris buckets set-notifications my-bucket --enable
827
+ tigris buckets set-notifications my-bucket --disable
828
+ tigris buckets set-notifications my-bucket --reset
829
+ ```
830
+
831
+ ##### `buckets set-cors`
832
+
833
+ ```
834
+ tigris buckets set-cors <name> [flags]
835
+ ```
836
+
837
+ | Flag | Description |
838
+ |------|-------------|
839
+ | `-o, --origins` | Allowed origins (comma-separated, or '*' for all) |
840
+ | `-m, --methods` | Allowed HTTP methods (comma-separated, e.g. GET,POST,PUT) |
841
+ | `--headers` | Allowed request headers (comma-separated, or '*' for all) |
842
+ | `--expose-headers` | Response headers to expose (comma-separated) |
843
+ | `--max-age` | Preflight cache duration in seconds (default: 3600) |
844
+ | `--override` | Replace all existing CORS rules instead of appending |
845
+ | `--reset` | Clear all CORS rules on the bucket |
846
+
847
+ **Examples:**
848
+ ```bash
849
+ tigris buckets set-cors my-bucket --origins '*' --methods GET,HEAD
850
+ tigris buckets set-cors my-bucket --origins https://example.com --methods GET,POST --headers Content-Type,Authorization --max-age 3600
851
+ tigris buckets set-cors my-bucket --origins https://example.com --override
852
+ tigris buckets set-cors my-bucket --reset
853
+ ```
854
+
530
855
  #### `forks` | `f`
531
856
 
532
- List and create forks. A fork is a writable copy-on-write clone of a bucket, useful for testing or branching data
857
+ (Deprecated, use "buckets create --fork-of" and "buckets list --forks-of") List and create forks
533
858
 
534
859
  | Command | Description |
535
860
  |---------|-------------|
536
- | `forks list` (l) | List all forks created from the given source bucket |
537
- | `forks create` (c) | Create a new fork (copy-on-write clone) of the source bucket. Optionally fork from a specific snapshot |
861
+ | `forks list` (l) | (Deprecated, use "buckets list --forks-of") List all forks created from the given source bucket |
862
+ | `forks create` (c) | (Deprecated, use "buckets create --fork-of") Create a new fork (copy-on-write clone) of the source bucket |
538
863
 
539
864
  ##### `forks list`
540
865
 
@@ -544,7 +869,7 @@ tigris forks list <name> [flags]
544
869
 
545
870
  | Flag | Description |
546
871
  |------|-------------|
547
- | `-f, --format` | Output format (default: table) |
872
+ | `--format` | Output format (default: table) |
548
873
 
549
874
  **Examples:**
550
875
  ```bash
@@ -560,12 +885,12 @@ tigris forks create <name> <fork-name> [flags]
560
885
 
561
886
  | Flag | Description |
562
887
  |------|-------------|
563
- | `-s, --snapshot` | Create fork from a specific snapshot |
888
+ | `-s, --snapshot` | Create fork from a specific snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
564
889
 
565
890
  **Examples:**
566
891
  ```bash
567
892
  tigris forks create my-bucket my-fork
568
- tigris forks create my-bucket my-fork --snapshot snap-2025-01-01
893
+ tigris forks create my-bucket my-fork --snapshot 1765889000501544464
569
894
  ```
570
895
 
571
896
  #### `snapshots` | `s`
@@ -585,7 +910,9 @@ tigris snapshots list <name> [flags]
585
910
 
586
911
  | Flag | Description |
587
912
  |------|-------------|
588
- | `-f, --format` | Output format (default: table) |
913
+ | `--format` | Output format (default: table) |
914
+ | `--limit` | Maximum number of items to return per page |
915
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
589
916
 
590
917
  **Examples:**
591
918
  ```bash
@@ -616,6 +943,7 @@ Low-level object operations for listing, downloading, uploading, and deleting in
616
943
  | `objects put` (p) | Upload a local file as an object. Content-type is auto-detected from extension unless overridden |
617
944
  | `objects delete` (d) | Delete one or more objects by key from the given bucket |
618
945
  | `objects set` (s) | Update settings on an existing object such as access level |
946
+ | `objects info` (i) | Show metadata for an object (content type, size, modified date) |
619
947
 
620
948
  #### `objects list`
621
949
 
@@ -626,11 +954,17 @@ tigris objects list <bucket> [flags]
626
954
  | Flag | Description |
627
955
  |------|-------------|
628
956
  | `-p, --prefix` | Filter objects by key prefix (e.g. "images/" to list only images) |
629
- | `-f, --format` | Output format (default: table) |
957
+ | `--format` | Output format (default: table) |
958
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
959
+ | `--limit` | Maximum number of items to return per page |
960
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
961
+ | `--source` | List objects from a specific storage source on buckets with shadow migration enabled |
630
962
 
631
963
  **Examples:**
632
964
  ```bash
633
965
  tigris objects list my-bucket
966
+ tigris objects list t3://my-bucket
967
+ tigris objects list t3://my-bucket/images/
634
968
  tigris objects list my-bucket --prefix images/
635
969
  tigris objects list my-bucket --format json
636
970
  ```
@@ -638,54 +972,62 @@ tigris objects list my-bucket --format json
638
972
  #### `objects get`
639
973
 
640
974
  ```
641
- tigris objects get <bucket> <key> [flags]
975
+ tigris objects get <bucket> [key] [flags]
642
976
  ```
643
977
 
644
978
  | Flag | Description |
645
979
  |------|-------------|
646
980
  | `-o, --output` | Output file path (if not specified, prints to stdout) |
647
981
  | `-m, --mode` | Response mode: "string" loads into memory, "stream" writes in chunks (auto-detected from extension if not specified) |
982
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
648
983
 
649
984
  **Examples:**
650
985
  ```bash
651
986
  tigris objects get my-bucket config.json
987
+ tigris objects get t3://my-bucket/config.json
652
988
  tigris objects get my-bucket archive.zip --output ./archive.zip --mode stream
653
989
  ```
654
990
 
655
991
  #### `objects put`
656
992
 
657
993
  ```
658
- tigris objects put <bucket> <key> [file] [flags]
994
+ tigris objects put <bucket> [key] [file] [flags]
659
995
  ```
660
996
 
661
997
  | Flag | Description |
662
998
  |------|-------------|
663
999
  | `-a, --access` | Access level (default: private) |
664
1000
  | `-t, --content-type` | Content type (auto-detected from extension if omitted) |
665
- | `-f, --format` | Output format (default: table) |
1001
+ | `--format` | Output format (default: table) |
666
1002
 
667
1003
  **Examples:**
668
1004
  ```bash
669
1005
  tigris objects put my-bucket report.pdf ./report.pdf
1006
+ tigris objects put t3://my-bucket/report.pdf ./report.pdf
670
1007
  tigris objects put my-bucket logo.png ./logo.png --access public --content-type image/png
671
1008
  ```
672
1009
 
673
1010
  #### `objects delete`
674
1011
 
675
1012
  ```
676
- tigris objects delete <bucket> <key>
1013
+ tigris objects delete <bucket> [key] [flags]
677
1014
  ```
678
1015
 
1016
+ | Flag | Description |
1017
+ |------|-------------|
1018
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1019
+
679
1020
  **Examples:**
680
1021
  ```bash
681
- tigris objects delete my-bucket old-file.txt
682
- tigris objects delete my-bucket file-a.txt,file-b.txt
1022
+ tigris objects delete my-bucket old-file.txt --yes
1023
+ tigris objects delete t3://my-bucket/old-file.txt --yes
1024
+ tigris objects delete my-bucket file-a.txt,file-b.txt --yes
683
1025
  ```
684
1026
 
685
1027
  #### `objects set`
686
1028
 
687
1029
  ```
688
- tigris objects set <bucket> <key> [flags]
1030
+ tigris objects set <bucket> [key] [flags]
689
1031
  ```
690
1032
 
691
1033
  | Flag | Description |
@@ -696,9 +1038,28 @@ tigris objects set <bucket> <key> [flags]
696
1038
  **Examples:**
697
1039
  ```bash
698
1040
  tigris objects set my-bucket my-file.txt --access public
1041
+ tigris objects set t3://my-bucket/my-file.txt --access public
699
1042
  tigris objects set my-bucket my-file.txt --access private
700
1043
  ```
701
1044
 
1045
+ #### `objects info`
1046
+
1047
+ ```
1048
+ tigris objects info <bucket> [key] [flags]
1049
+ ```
1050
+
1051
+ | Flag | Description |
1052
+ |------|-------------|
1053
+ | `--format` | Output format (default: table) |
1054
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot |
1055
+
1056
+ **Examples:**
1057
+ ```bash
1058
+ tigris objects info my-bucket report.pdf
1059
+ tigris objects info t3://my-bucket/report.pdf
1060
+ tigris objects info my-bucket report.pdf --format json
1061
+ ```
1062
+
702
1063
  ### `iam`
703
1064
 
704
1065
  Identity and Access Management - manage policies, users, and permissions
@@ -719,6 +1080,9 @@ Manage IAM policies. Policies define permissions for access keys
719
1080
  | `iam policies create` (c) | Create a new policy with the given name and policy document. Document can be provided via file, inline JSON, or stdin |
720
1081
  | `iam policies edit` (e) | Update an existing policy's document. Document can be provided via file, inline JSON, or stdin. If no ARN provided, shows interactive selection |
721
1082
  | `iam policies delete` (d) | Delete a policy. If no ARN provided, shows interactive selection |
1083
+ | `iam policies link-key` (lnk) | Link an access key to a policy. If no policy ARN is provided, shows interactive selection. If no access key ID is provided, shows interactive selection of unlinked keys |
1084
+ | `iam policies unlink-key` (ulnk) | Unlink an access key from a policy. If no policy ARN is provided, shows interactive selection. If no access key ID is provided, shows interactive selection of linked keys |
1085
+ | `iam policies list-keys` (lk) | List all access keys attached to a policy. If no policy ARN is provided, shows interactive selection |
722
1086
 
723
1087
  ##### `iam policies list`
724
1088
 
@@ -728,7 +1092,9 @@ tigris iam policies list [flags]
728
1092
 
729
1093
  | Flag | Description |
730
1094
  |------|-------------|
731
- | `-f, --format` | Output format (default: table) |
1095
+ | `--format` | Output format (default: table) |
1096
+ | `--limit` | Maximum number of items to return per page |
1097
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
732
1098
 
733
1099
  **Examples:**
734
1100
  ```bash
@@ -743,7 +1109,7 @@ tigris iam policies get [resource] [flags]
743
1109
 
744
1110
  | Flag | Description |
745
1111
  |------|-------------|
746
- | `-f, --format` | Output format (default: table) |
1112
+ | `--format` | Output format (default: table) |
747
1113
 
748
1114
  **Examples:**
749
1115
  ```bash
@@ -790,13 +1156,66 @@ cat policy.json | tigris iam policies edit arn:aws:iam::org_id:policy/my-policy
790
1156
  ##### `iam policies delete`
791
1157
 
792
1158
  ```
793
- tigris iam policies delete [resource]
1159
+ tigris iam policies delete [resource] [flags]
794
1160
  ```
795
1161
 
1162
+ | Flag | Description |
1163
+ |------|-------------|
1164
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1165
+
796
1166
  **Examples:**
797
1167
  ```bash
798
1168
  tigris iam policies delete
799
- tigris iam policies delete arn:aws:iam::org_id:policy/my-policy
1169
+ tigris iam policies delete arn:aws:iam::org_id:policy/my-policy --yes
1170
+ ```
1171
+
1172
+ ##### `iam policies link-key`
1173
+
1174
+ ```
1175
+ tigris iam policies link-key [resource] [flags]
1176
+ ```
1177
+
1178
+ | Flag | Description |
1179
+ |------|-------------|
1180
+ | `--id` | Access key ID to attach |
1181
+
1182
+ **Examples:**
1183
+ ```bash
1184
+ tigris iam policies link-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb
1185
+ tigris iam policies link-key
1186
+ ```
1187
+
1188
+ ##### `iam policies unlink-key`
1189
+
1190
+ ```
1191
+ tigris iam policies unlink-key [resource] [flags]
1192
+ ```
1193
+
1194
+ | Flag | Description |
1195
+ |------|-------------|
1196
+ | `--id` | Access key ID to detach |
1197
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1198
+
1199
+ **Examples:**
1200
+ ```bash
1201
+ tigris iam policies unlink-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb --yes
1202
+ tigris iam policies unlink-key
1203
+ ```
1204
+
1205
+ ##### `iam policies list-keys`
1206
+
1207
+ ```
1208
+ tigris iam policies list-keys [resource] [flags]
1209
+ ```
1210
+
1211
+ | Flag | Description |
1212
+ |------|-------------|
1213
+ | `--format` | Output format (default: table) |
1214
+
1215
+ **Examples:**
1216
+ ```bash
1217
+ tigris iam policies list-keys arn:aws:iam::org_id:policy/my-policy
1218
+ tigris iam policies list-keys
800
1219
  ```
801
1220
 
802
1221
  #### `iam users` | `u`
@@ -819,7 +1238,7 @@ tigris iam users list [flags]
819
1238
 
820
1239
  | Flag | Description |
821
1240
  |------|-------------|
822
- | `-f, --format` | Output format (default: table) |
1241
+ | `--format` | Output format (default: table) |
823
1242
 
824
1243
  **Examples:**
825
1244
  ```bash
@@ -847,14 +1266,18 @@ tigris iam users invite user1@example.com,user2@example.com
847
1266
  ##### `iam users revoke-invitation`
848
1267
 
849
1268
  ```
850
- tigris iam users revoke-invitation [resource]
1269
+ tigris iam users revoke-invitation [resource] [flags]
851
1270
  ```
852
1271
 
1272
+ | Flag | Description |
1273
+ |------|-------------|
1274
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1275
+
853
1276
  **Examples:**
854
1277
  ```bash
855
1278
  tigris iam users revoke-invitation
856
- tigris iam users revoke-invitation invitation_id
857
- tigris iam users revoke-invitation id1,id2,id3
1279
+ tigris iam users revoke-invitation invitation_id --yes
1280
+ tigris iam users revoke-invitation id1,id2,id3 --yes
858
1281
  ```
859
1282
 
860
1283
  ##### `iam users update-role`
@@ -878,14 +1301,33 @@ tigris iam users update-role id1,id2 --role admin,member
878
1301
  ##### `iam users remove`
879
1302
 
880
1303
  ```
881
- tigris iam users remove [resource]
1304
+ tigris iam users remove [resource] [flags]
882
1305
  ```
883
1306
 
1307
+ | Flag | Description |
1308
+ |------|-------------|
1309
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1310
+
884
1311
  **Examples:**
885
1312
  ```bash
886
1313
  tigris iam users remove
887
- tigris iam users remove user@example.com
888
- tigris iam users remove user@example.com,user@example.net
1314
+ tigris iam users remove user@example.com --yes
1315
+ tigris iam users remove user@example.com,user@example.net --yes
1316
+ ```
1317
+
1318
+ ## Other
1319
+
1320
+ ### `update`
1321
+
1322
+ Update the CLI to the latest version
1323
+
1324
+ ```
1325
+ tigris update
1326
+ ```
1327
+
1328
+ **Examples:**
1329
+ ```bash
1330
+ tigris update
889
1331
  ```
890
1332
 
891
1333
  ## License