@tigrisdata/cli 2.17.0 → 2.18.0-beta.2

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 (94) hide show
  1. package/README.md +675 -187
  2. package/SKILL.md +2 -11
  3. package/dist/auth/iam.js +1 -1
  4. package/dist/auth/provider.js +1 -1
  5. package/dist/{chunk-7ERBLTNY.js → chunk-27KYKU5U.js} +1 -1
  6. package/dist/{chunk-P4RBPX26.js → chunk-7ZHRXMPK.js} +1 -1
  7. package/dist/chunk-BBX3M4S2.js +8 -0
  8. package/dist/{chunk-PG746YF3.js → chunk-JP3PXFIQ.js} +1 -1
  9. package/dist/{chunk-TRRXHLUE.js → chunk-QWBEROER.js} +1 -1
  10. package/dist/chunk-S6KFKBMY.js +1 -0
  11. package/dist/{chunk-VAVMX5DC.js → chunk-SMBIT5FI.js} +1 -1
  12. package/dist/{chunk-7TRUGAFK.js → chunk-T2QR4QOR.js} +1 -1
  13. package/dist/chunk-TUDALPGD.js +1 -0
  14. package/dist/{chunk-ZADGAARW.js → chunk-XCZPPS7H.js} +1 -1
  15. package/dist/{chunk-PNSKHQX4.js → chunk-ZUJOS5T2.js} +1 -1
  16. package/dist/cli-core.js +1 -1
  17. package/dist/cli.js +1 -1
  18. package/dist/index.js +1 -1
  19. package/dist/lib/access-keys/assign.js +1 -1
  20. package/dist/lib/access-keys/attach-policy.js +1 -1
  21. package/dist/lib/access-keys/create.js +1 -1
  22. package/dist/lib/access-keys/delete.js +1 -1
  23. package/dist/lib/access-keys/detach-policy.js +1 -1
  24. package/dist/lib/access-keys/get.js +1 -1
  25. package/dist/lib/access-keys/list-policies.js +1 -1
  26. package/dist/lib/access-keys/list.js +1 -1
  27. package/dist/lib/access-keys/rotate.js +1 -1
  28. package/dist/lib/buckets/create.js +1 -1
  29. package/dist/lib/buckets/delete.js +1 -1
  30. package/dist/lib/buckets/get.js +1 -1
  31. package/dist/lib/buckets/list.js +1 -1
  32. package/dist/lib/buckets/migrate.js +3 -0
  33. package/dist/lib/buckets/set-cors.js +1 -1
  34. package/dist/lib/buckets/set-locations.js +1 -1
  35. package/dist/lib/buckets/set-migration.js +1 -1
  36. package/dist/lib/buckets/set-notifications.js +1 -1
  37. package/dist/lib/buckets/set-transition.js +1 -1
  38. package/dist/lib/buckets/set-ttl.js +1 -1
  39. package/dist/lib/buckets/set.js +1 -1
  40. package/dist/lib/bundle.js +3 -0
  41. package/dist/lib/configure/index.js +1 -1
  42. package/dist/lib/cp.js +1 -1
  43. package/dist/lib/credentials/test.js +1 -1
  44. package/dist/lib/forks/create.js +1 -1
  45. package/dist/lib/forks/list.js +1 -1
  46. package/dist/lib/iam/policies/create.js +1 -1
  47. package/dist/lib/iam/policies/delete.js +1 -1
  48. package/dist/lib/iam/policies/edit.js +1 -1
  49. package/dist/lib/iam/policies/get.js +1 -1
  50. package/dist/lib/iam/policies/link-key.js +1 -1
  51. package/dist/lib/iam/policies/list-keys.js +1 -1
  52. package/dist/lib/iam/policies/list.js +1 -1
  53. package/dist/lib/iam/policies/select-policy.js +1 -1
  54. package/dist/lib/iam/policies/unlink-key.js +1 -1
  55. package/dist/lib/iam/policies/utils.js +1 -1
  56. package/dist/lib/iam/users/invite.js +1 -1
  57. package/dist/lib/iam/users/list.js +1 -1
  58. package/dist/lib/iam/users/remove.js +1 -1
  59. package/dist/lib/iam/users/revoke-invitation.js +1 -1
  60. package/dist/lib/iam/users/update-role.js +1 -1
  61. package/dist/lib/login/credentials.js +1 -1
  62. package/dist/lib/login/oauth.js +1 -1
  63. package/dist/lib/login/select.js +1 -1
  64. package/dist/lib/logout.js +1 -1
  65. package/dist/lib/ls.js +1 -1
  66. package/dist/lib/mk.js +1 -1
  67. package/dist/lib/mv.js +1 -1
  68. package/dist/lib/objects/delete.js +1 -1
  69. package/dist/lib/objects/get.js +1 -1
  70. package/dist/lib/objects/info.js +1 -1
  71. package/dist/lib/objects/list.js +1 -1
  72. package/dist/lib/objects/put.js +1 -1
  73. package/dist/lib/objects/set.js +1 -1
  74. package/dist/lib/organizations/create.js +1 -1
  75. package/dist/lib/organizations/list.js +1 -1
  76. package/dist/lib/organizations/select.js +1 -1
  77. package/dist/lib/presign.js +1 -1
  78. package/dist/lib/rm.js +1 -1
  79. package/dist/lib/snapshots/list.js +1 -1
  80. package/dist/lib/snapshots/take.js +1 -1
  81. package/dist/lib/stat.js +1 -1
  82. package/dist/lib/touch.js +1 -1
  83. package/dist/lib/update.js +1 -1
  84. package/dist/lib/whoami.js +1 -1
  85. package/dist/specs.yaml +60 -0
  86. package/dist/utils/exit.js +1 -1
  87. package/dist/utils/messages.js +1 -1
  88. package/dist/utils/options.js +1 -1
  89. package/dist/utils/update-check.js +1 -1
  90. package/package.json +3 -3
  91. package/dist/chunk-4D33BI67.js +0 -8
  92. package/dist/chunk-Y7MJZRR4.js +0 -1
  93. package/dist/chunk-YFMOI263.js +0 -1
  94. /package/dist/{chunk-YOKGP6YU.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,10 +65,18 @@ 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
+
59
78
  **Examples:**
79
+
60
80
  ```bash
61
81
  tigris ls
62
82
  tigris ls my-bucket
@@ -72,21 +92,27 @@ Create a bucket (bare name) or a folder inside a bucket (bucket/folder/ with tra
72
92
  tigris mk <path> [flags]
73
93
  ```
74
94
 
75
- | Flag | Description |
76
- |------|-------------|
77
- | `-a, --access` | Access level (only applies when creating a bucket) |
78
- | `--public` | Shorthand for --access public (only applies when creating a bucket) |
79
- | `-s, --enable-snapshots` | Enable snapshots for the bucket (only applies when creating a bucket) |
80
- | `-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) |
95
+ | Flag | Description |
96
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
97
+ | `-a, --access` | Access level (only applies when creating a bucket) |
98
+ | `--public` | Shorthand for --access public (only applies when creating a bucket) |
99
+ | `-s, --enable-snapshots` | Enable snapshots for the bucket (only applies when creating a bucket) |
100
+ | `-t, --default-tier` | Default storage tier (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:**
108
+
85
109
  ```bash
86
110
  tigris mk my-bucket
87
111
  tigris mk my-bucket --access public --region iad
88
112
  tigris mk my-bucket/images/
89
113
  tigris mk t3://my-bucket
114
+ tigris mk my-fork --fork-of my-bucket
115
+ tigris mk my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
90
116
  ```
91
117
 
92
118
  ### `touch`
@@ -98,6 +124,7 @@ tigris touch <path>
98
124
  ```
99
125
 
100
126
  **Examples:**
127
+
101
128
  ```bash
102
129
  tigris touch my-bucket/placeholder.txt
103
130
  tigris touch t3://my-bucket/logs/
@@ -111,11 +138,12 @@ Copy files between local filesystem and Tigris, or between paths within Tigris.
111
138
  tigris cp <src> <dest> [flags]
112
139
  ```
113
140
 
114
- | Flag | Description |
115
- |------|-------------|
141
+ | Flag | Description |
142
+ | ----------------- | ---------------------------- |
116
143
  | `-r, --recursive` | Copy directories recursively |
117
144
 
118
145
  **Examples:**
146
+
119
147
  ```bash
120
148
  tigris cp ./file.txt t3://my-bucket/file.txt
121
149
  tigris cp t3://my-bucket/file.txt ./local-copy.txt
@@ -131,12 +159,13 @@ Move (rename) objects within Tigris. Both source and destination must be remote
131
159
  tigris mv <src> <dest> [flags]
132
160
  ```
133
161
 
134
- | Flag | Description |
135
- |------|-------------|
136
- | `-r, --recursive` | Move directories recursively |
137
- | `-f, --force` | Skip confirmation prompt |
162
+ | Flag | Description |
163
+ | ----------------- | ------------------------------------------- |
164
+ | `-r, --recursive` | Move directories recursively |
165
+ | `-f, --force` | Skip confirmation prompts (alias for --yes) |
138
166
 
139
167
  **Examples:**
168
+
140
169
  ```bash
141
170
  tigris mv t3://my-bucket/old.txt t3://my-bucket/new.txt -f
142
171
  tigris mv t3://my-bucket/old-dir/ t3://my-bucket/new-dir/ -rf
@@ -151,12 +180,13 @@ Remove a bucket, folder, or object from Tigris. A bare bucket name deletes the b
151
180
  tigris rm <path> [flags]
152
181
  ```
153
182
 
154
- | Flag | Description |
155
- |------|-------------|
156
- | `-r, --recursive` | Remove directories recursively |
157
- | `-f, --force` | Skip confirmation prompt |
183
+ | Flag | Description |
184
+ | ----------------- | ------------------------------------------- |
185
+ | `-r, --recursive` | Remove directories recursively |
186
+ | `-f, --force` | Skip confirmation prompts (alias for --yes) |
158
187
 
159
188
  **Examples:**
189
+
160
190
  ```bash
161
191
  tigris rm t3://my-bucket/file.txt -f
162
192
  tigris rm t3://my-bucket/folder/ -rf
@@ -172,27 +202,78 @@ Show storage stats (no args), bucket info, or object metadata
172
202
  tigris stat [path] [flags]
173
203
  ```
174
204
 
175
- | Flag | Description |
176
- |------|-------------|
177
- | `-f, --format` | Output format |
205
+ | Flag | Description |
206
+ | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
207
+ | `--format` | Output format |
208
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
178
209
 
179
210
  **Examples:**
211
+
180
212
  ```bash
181
213
  tigris stat
182
214
  tigris stat t3://my-bucket
183
215
  tigris stat t3://my-bucket/my-object.json
184
216
  ```
185
217
 
218
+ ### `presign`
219
+
220
+ Generate a presigned URL for temporary access to an object without credentials
221
+
222
+ ```
223
+ tigris presign <path> [flags]
224
+ ```
225
+
226
+ | Flag | Description |
227
+ | ------------------ | --------------------------------------------------------------------------------------------- |
228
+ | `-m, --method` | HTTP method for the presigned URL |
229
+ | `-e, --expires-in` | URL expiry time in seconds |
230
+ | `--access-key` | Access key ID to use for signing. If not provided, resolved from credentials or auto-selected |
231
+ | `--select` | Interactively select an access key (OAuth only) |
232
+ | `--format` | Output format |
233
+
234
+ **Examples:**
235
+
236
+ ```bash
237
+ tigris presign my-bucket/file.txt
238
+ tigris presign t3://my-bucket/report.pdf --method put --expires-in 7200
239
+ tigris presign my-bucket/image.png --format json
240
+ tigris presign my-bucket/data.csv --access-key tid_AaBb
241
+ ```
242
+
243
+ ### `bundle`
244
+
245
+ 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
246
+
247
+ ```
248
+ tigris bundle <bucket> [flags]
249
+ ```
250
+
251
+ | Flag | Description |
252
+ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
253
+ | `-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 |
254
+ | `-o, --output` | Output file path. Defaults to stdout (for piping) |
255
+ | `--compression` | Compression algorithm for the archive. Auto-detected from output file extension when not specified |
256
+ | `--on-error` | How to handle missing objects. 'skip' omits them, 'fail' aborts the request |
257
+
258
+ **Examples:**
259
+
260
+ ```bash
261
+ tigris bundle my-bucket --keys key1.jpg,key2.jpg --output archive.tar
262
+ tigris bundle my-bucket --keys keys.txt --output archive.tar
263
+ tigris bundle t3://my-bucket --keys keys.txt --compression gzip -o archive.tar.gz
264
+ cat keys.txt | tigris bundle my-bucket > archive.tar
265
+ ```
266
+
186
267
  ## Authentication
187
268
 
188
269
  ### `login` | `l`
189
270
 
190
271
  Start a session via OAuth (default) or temporary credentials. Session state is cleared on logout
191
272
 
192
- | Command | Description |
193
- |---------|-------------|
194
- | `login select` | Choose how to login - OAuth (browser) or credentials (access key) |
195
- | `login oauth` (o) | Login via browser using OAuth2 device flow. Best for interactive use |
273
+ | Command | Description |
274
+ | ----------------------- | ------------------------------------------------------------------------------------------ |
275
+ | `login select` | Choose how to login - OAuth (browser) or credentials (access key) |
276
+ | `login oauth` (o) | Login via browser using OAuth2 device flow. Best for interactive use |
196
277
  | `login credentials` (c) | Login with an access key and secret. Creates a temporary session that is cleared on logout |
197
278
 
198
279
  #### `login select`
@@ -208,6 +289,7 @@ tigris login oauth
208
289
  ```
209
290
 
210
291
  **Examples:**
292
+
211
293
  ```bash
212
294
  tigris login oauth
213
295
  ```
@@ -218,12 +300,13 @@ tigris login oauth
218
300
  tigris login credentials [flags]
219
301
  ```
220
302
 
221
- | Flag | Description |
222
- |------|-------------|
223
- | `-key, --access-key` | Your access key ID (will prompt if not provided) |
303
+ | Flag | Description |
304
+ | -------------------------- | ---------------------------------------------------- |
305
+ | `-key, --access-key` | Your access key ID (will prompt if not provided) |
224
306
  | `-secret, --access-secret` | Your secret access key (will prompt if not provided) |
225
307
 
226
308
  **Examples:**
309
+
227
310
  ```bash
228
311
  tigris login credentials --access-key tid_AaBb --access-secret tsec_XxYy
229
312
  tigris login credentials
@@ -238,6 +321,7 @@ tigris logout
238
321
  ```
239
322
 
240
323
  **Examples:**
324
+
241
325
  ```bash
242
326
  tigris logout
243
327
  ```
@@ -251,6 +335,7 @@ tigris whoami
251
335
  ```
252
336
 
253
337
  **Examples:**
338
+
254
339
  ```bash
255
340
  tigris whoami
256
341
  ```
@@ -263,13 +348,14 @@ Save access-key credentials to ~/.tigris/config.json for persistent use across a
263
348
  tigris configure [flags]
264
349
  ```
265
350
 
266
- | Flag | Description |
267
- |------|-------------|
268
- | `-key, --access-key` | Your Tigris access key ID |
269
- | `-secret, --access-secret` | Your Tigris secret access key |
270
- | `-e, --endpoint` | Tigris API endpoint (default: https://t3.storage.dev) |
351
+ | Flag | Description |
352
+ | -------------------------- | ----------------------------------------------------- |
353
+ | `-key, --access-key` | Your Tigris access key ID |
354
+ | `-secret, --access-secret` | Your Tigris secret access key |
355
+ | `-e, --endpoint` | Tigris API endpoint (default: https://t3.storage.dev) |
271
356
 
272
357
  **Examples:**
358
+
273
359
  ```bash
274
360
  tigris configure --access-key tid_AaBb --access-secret tsec_XxYy
275
361
  tigris configure --endpoint https://custom.endpoint.dev
@@ -281,11 +367,11 @@ tigris configure --endpoint https://custom.endpoint.dev
281
367
 
282
368
  List, create, and switch between organizations. An organization is a workspace that contains your resources like buckets and access keys
283
369
 
284
- | Command | Description |
285
- |---------|-------------|
286
- | `organizations list` (l) | List all organizations you belong to and interactively select one as active |
287
- | `organizations create` (c) | Create a new organization with the given name |
288
- | `organizations select` (s) | Set the named organization as your active org for all subsequent commands |
370
+ | Command | Description |
371
+ | -------------------------- | --------------------------------------------------------------------------- |
372
+ | `organizations list` (l) | List all organizations you belong to and interactively select one as active |
373
+ | `organizations create` (c) | Create a new organization with the given name |
374
+ | `organizations select` (s) | Set the named organization as your active org for all subsequent commands |
289
375
 
290
376
  #### `organizations list`
291
377
 
@@ -293,12 +379,13 @@ List, create, and switch between organizations. An organization is a workspace t
293
379
  tigris organizations list [flags]
294
380
  ```
295
381
 
296
- | Flag | Description |
297
- |------|-------------|
298
- | `-f, --format` | Output format (default: select) |
299
- | `-i, --select` | Interactive selection mode |
382
+ | Flag | Description |
383
+ | -------------- | ------------------------------- |
384
+ | `--format` | Output format (default: select) |
385
+ | `-i, --select` | Interactive selection mode |
300
386
 
301
387
  **Examples:**
388
+
302
389
  ```bash
303
390
  tigris orgs list
304
391
  tigris orgs list --format json
@@ -311,6 +398,7 @@ tigris organizations create <name>
311
398
  ```
312
399
 
313
400
  **Examples:**
401
+
314
402
  ```bash
315
403
  tigris orgs create my-org
316
404
  ```
@@ -322,6 +410,7 @@ tigris organizations select <name>
322
410
  ```
323
411
 
324
412
  **Examples:**
413
+
325
414
  ```bash
326
415
  tigris orgs select my-org
327
416
  ```
@@ -330,21 +419,32 @@ tigris orgs select my-org
330
419
 
331
420
  Create, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access
332
421
 
333
- | Command | Description |
334
- |---------|-------------|
335
- | `access-keys list` (l) | List all access keys in the current organization |
336
- | `access-keys create` (c) | Create a new access key with the given name. Returns the key ID and secret (shown only once) |
337
- | `access-keys delete` (d) | Permanently delete an access key by its ID. This revokes all access immediately |
338
- | `access-keys get` (g) | Show details for an access key including its name, creation date, and assigned bucket roles |
339
- | `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 |
422
+ | Command | Description |
423
+ | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
424
+ | `access-keys list` (l) | List all access keys in the current organization |
425
+ | `access-keys create` (c) | Create a new access key with the given name. Returns the key ID and secret (shown only once) |
426
+ | `access-keys delete` (d) | Permanently delete an access key by its ID. This revokes all access immediately |
427
+ | `access-keys get` (g) | Show details for an access key including its name, creation date, and assigned bucket roles |
428
+ | `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 |
429
+ | `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) |
430
+ | `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 |
431
+ | `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 |
432
+ | `access-keys list-policies` (lp) | List all IAM policies attached to an access key |
340
433
 
341
434
  #### `access-keys list`
342
435
 
343
436
  ```
344
- tigris access-keys list
437
+ tigris access-keys list [flags]
345
438
  ```
346
439
 
440
+ | Flag | Description |
441
+ | ------------------- | --------------------------------------------------------------- |
442
+ | `--format` | Output format (default: table) |
443
+ | `--limit` | Maximum number of items to return per page |
444
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
445
+
347
446
  **Examples:**
447
+
348
448
  ```bash
349
449
  tigris access-keys list
350
450
  ```
@@ -356,6 +456,7 @@ tigris access-keys create <name>
356
456
  ```
357
457
 
358
458
  **Examples:**
459
+
359
460
  ```bash
360
461
  tigris access-keys create my-ci-key
361
462
  ```
@@ -363,12 +464,17 @@ tigris access-keys create my-ci-key
363
464
  #### `access-keys delete`
364
465
 
365
466
  ```
366
- tigris access-keys delete <id>
467
+ tigris access-keys delete <id> [flags]
367
468
  ```
368
469
 
470
+ | Flag | Description |
471
+ | --------- | ------------------------------------------- |
472
+ | `--force` | Skip confirmation prompts (alias for --yes) |
473
+
369
474
  **Examples:**
475
+
370
476
  ```bash
371
- tigris access-keys delete tid_AaBbCcDdEeFf
477
+ tigris access-keys delete tid_AaBbCcDdEeFf --yes
372
478
  ```
373
479
 
374
480
  #### `access-keys get`
@@ -378,6 +484,7 @@ tigris access-keys get <id>
378
484
  ```
379
485
 
380
486
  **Examples:**
487
+
381
488
  ```bash
382
489
  tigris access-keys get tid_AaBbCcDdEeFf
383
490
  ```
@@ -388,14 +495,15 @@ tigris access-keys get tid_AaBbCcDdEeFf
388
495
  tigris access-keys assign <id> [flags]
389
496
  ```
390
497
 
391
- | Flag | Description |
392
- |------|-------------|
393
- | `-b, --bucket` | Bucket name (can specify multiple, comma-separated). Each bucket is paired positionally with a --role value |
394
- | `-r, --role` | Role to assign (can specify multiple, comma-separated). Each role pairs with the corresponding --bucket value |
395
- | `--admin` | Grant admin access to all buckets in the organization |
396
- | `--revoke-roles` | Revoke all bucket roles from the access key |
498
+ | Flag | Description |
499
+ | ---------------- | ------------------------------------------------------------------------------------------------------------- |
500
+ | `-b, --bucket` | Bucket name (can specify multiple, comma-separated). Each bucket is paired positionally with a --role value |
501
+ | `-r, --role` | Role to assign (can specify multiple, comma-separated). Each role pairs with the corresponding --bucket value |
502
+ | `--admin` | Grant admin access to all buckets in the organization |
503
+ | `--revoke-roles` | Revoke all bucket roles from the access key |
397
504
 
398
505
  **Examples:**
506
+
399
507
  ```bash
400
508
  tigris access-keys assign tid_AaBb --bucket my-bucket --role Editor
401
509
  tigris access-keys assign tid_AaBb --bucket a,b --role Editor,ReadOnly
@@ -403,12 +511,81 @@ tigris access-keys assign tid_AaBb --admin
403
511
  tigris access-keys assign tid_AaBb --revoke-roles
404
512
  ```
405
513
 
514
+ #### `access-keys rotate`
515
+
516
+ ```
517
+ tigris access-keys rotate <id> [flags]
518
+ ```
519
+
520
+ | Flag | Description |
521
+ | --------- | ------------------------------------------- |
522
+ | `--force` | Skip confirmation prompts (alias for --yes) |
523
+
524
+ **Examples:**
525
+
526
+ ```bash
527
+ tigris access-keys rotate tid_AaBbCcDdEeFf --yes
528
+ ```
529
+
530
+ #### `access-keys attach-policy`
531
+
532
+ ```
533
+ tigris access-keys attach-policy <id> [flags]
534
+ ```
535
+
536
+ | Flag | Description |
537
+ | -------------- | --------------------------- |
538
+ | `--policy-arn` | ARN of the policy to attach |
539
+
540
+ **Examples:**
541
+
542
+ ```bash
543
+ tigris access-keys attach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy
544
+ tigris access-keys attach-policy tid_AaBb
545
+ ```
546
+
547
+ #### `access-keys detach-policy`
548
+
549
+ ```
550
+ tigris access-keys detach-policy <id> [flags]
551
+ ```
552
+
553
+ | Flag | Description |
554
+ | -------------- | ------------------------------------------- |
555
+ | `--policy-arn` | ARN of the policy to detach |
556
+ | `--force` | Skip confirmation prompts (alias for --yes) |
557
+
558
+ **Examples:**
559
+
560
+ ```bash
561
+ tigris access-keys detach-policy tid_AaBb --policy-arn arn:aws:iam::org_id:policy/my-policy --yes
562
+ tigris access-keys detach-policy tid_AaBb
563
+ ```
564
+
565
+ #### `access-keys list-policies`
566
+
567
+ ```
568
+ tigris access-keys list-policies <id> [flags]
569
+ ```
570
+
571
+ | Flag | Description |
572
+ | ------------------- | --------------------------------------------------------------- |
573
+ | `--format` | Output format (default: table) |
574
+ | `--limit` | Maximum number of items to return per page |
575
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
576
+
577
+ **Examples:**
578
+
579
+ ```bash
580
+ tigris access-keys list-policies tid_AaBbCcDdEeFf
581
+ ```
582
+
406
583
  ### `credentials` | `creds`
407
584
 
408
585
  Test whether your current credentials can reach Tigris and optionally verify access to a specific bucket
409
586
 
410
- | Command | Description |
411
- |---------|-------------|
587
+ | Command | Description |
588
+ | ---------------------- | ---------------------------------------------------------------------------------------- |
412
589
  | `credentials test` (t) | Verify that current credentials are valid. Optionally checks access to a specific bucket |
413
590
 
414
591
  #### `credentials test`
@@ -417,11 +594,12 @@ Test whether your current credentials can reach Tigris and optionally verify acc
417
594
  tigris credentials test [flags]
418
595
  ```
419
596
 
420
- | Flag | Description |
421
- |------|-------------|
597
+ | Flag | Description |
598
+ | -------------- | --------------------------------------------- |
422
599
  | `-b, --bucket` | Bucket name to test access against (optional) |
423
600
 
424
601
  **Examples:**
602
+
425
603
  ```bash
426
604
  tigris credentials test
427
605
  tigris credentials test --bucket my-bucket
@@ -435,13 +613,19 @@ Buckets are containers for objects. You can also create forks and snapshots of b
435
613
 
436
614
  Create, inspect, update, and delete buckets. Buckets are top-level containers that hold objects
437
615
 
438
- | Command | Description |
439
- |---------|-------------|
440
- | `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 |
442
- | `buckets get` (g) | Show details for a bucket including access level, region, tier, and custom domain |
443
- | `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 |
616
+ | Command | Description |
617
+ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
618
+ | `buckets list` (l) | List all buckets in the current organization |
619
+ | `buckets create` (c) | Create a new bucket with optional access, tier, and location settings |
620
+ | `buckets get` (g) | Show details for a bucket including access level, region, tier, and custom domain |
621
+ | `buckets delete` (d) | Delete one or more buckets by name. The bucket must be empty or delete-protection must be off |
622
+ | `buckets set` (s) | Update settings on an existing bucket such as access level, location, caching, or custom domain |
623
+ | `buckets set-ttl` | Configure object expiration (TTL) on a bucket. Objects expire after a number of days or on a specific date |
624
+ | `buckets set-locations` | Set the data locations for a bucket |
625
+ | `buckets set-migration` | Configure data migration from an external S3-compatible source bucket. Tigris will pull objects on demand from the source |
626
+ | `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 |
627
+ | `buckets set-notifications` | Configure object event notifications on a bucket. Sends webhook requests to a URL when objects are created, updated, or deleted |
628
+ | `buckets set-cors` | Configure CORS rules on a bucket. Each invocation adds a rule unless --override or --reset is used |
445
629
 
446
630
  ##### `buckets list`
447
631
 
@@ -449,14 +633,19 @@ Create, inspect, update, and delete buckets. Buckets are top-level containers th
449
633
  tigris buckets list [flags]
450
634
  ```
451
635
 
452
- | Flag | Description |
453
- |------|-------------|
454
- | `-f, --format` | Output format (default: table) |
636
+ | Flag | Description |
637
+ | ------------------- | --------------------------------------------------------------- |
638
+ | `--format` | Output format (default: table) |
639
+ | `--forks-of` | Only list buckets that are forks of the named source bucket |
640
+ | `--limit` | Maximum number of items to return per page |
641
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
455
642
 
456
643
  **Examples:**
644
+
457
645
  ```bash
458
646
  tigris buckets list
459
647
  tigris buckets list --format json
648
+ tigris buckets list --forks-of my-bucket
460
649
  ```
461
650
 
462
651
  ##### `buckets create`
@@ -465,29 +654,40 @@ tigris buckets list --format json
465
654
  tigris buckets create [name] [flags]
466
655
  ```
467
656
 
468
- | Flag | Description |
469
- |------|-------------|
470
- | `-a, --access` | Access level (default: private) |
471
- | `--public` | Shorthand for --access public |
472
- | `-s, --enable-snapshots` | Enable snapshots for the bucket (default: false) |
473
- | `-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) |
657
+ | Flag | Description |
658
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
659
+ | `-a, --access` | Access level (default: private) |
660
+ | `--public` | Shorthand for --access public |
661
+ | `-s, --enable-snapshots` | Enable snapshots for the bucket (default: false) |
662
+ | `-t, --default-tier` | Choose the default tier for the bucket (default: STANDARD) |
663
+ | `-c, --consistency` | (Deprecated, use --locations) Choose the consistency level for the bucket |
664
+ | `-r, --region` | (Deprecated, use --locations) Region |
665
+ | `-l, --locations` | Location for the bucket (default: global) |
666
+ | `-fork, --fork-of` | Create this bucket as a fork (copy-on-write clone) of the named source bucket |
667
+ | `-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
668
 
477
669
  **Examples:**
670
+
478
671
  ```bash
479
672
  tigris buckets create my-bucket
480
- tigris buckets create my-bucket --access public --region iad
673
+ tigris buckets create my-bucket --access public --locations iad
481
674
  tigris buckets create my-bucket --enable-snapshots --default-tier STANDARD_IA
675
+ tigris buckets create my-fork --fork-of my-bucket
676
+ tigris buckets create my-fork --fork-of my-bucket --source-snapshot 1765889000501544464
482
677
  ```
483
678
 
484
679
  ##### `buckets get`
485
680
 
486
681
  ```
487
- tigris buckets get <name>
682
+ tigris buckets get <name> [flags]
488
683
  ```
489
684
 
685
+ | Flag | Description |
686
+ | ---------- | ------------------------------ |
687
+ | `--format` | Output format (default: table) |
688
+
490
689
  **Examples:**
690
+
491
691
  ```bash
492
692
  tigris buckets get my-bucket
493
693
  ```
@@ -495,13 +695,18 @@ tigris buckets get my-bucket
495
695
  ##### `buckets delete`
496
696
 
497
697
  ```
498
- tigris buckets delete <name>
698
+ tigris buckets delete <name> [flags]
499
699
  ```
500
700
 
701
+ | Flag | Description |
702
+ | --------- | ------------------------------------------- |
703
+ | `--force` | Skip confirmation prompts (alias for --yes) |
704
+
501
705
  **Examples:**
706
+
502
707
  ```bash
503
- tigris buckets delete my-bucket
504
- tigris buckets delete bucket-a,bucket-b
708
+ tigris buckets delete my-bucket --yes
709
+ tigris buckets delete bucket-a,bucket-b --yes
505
710
  ```
506
711
 
507
712
  ##### `buckets set`
@@ -510,31 +715,174 @@ tigris buckets delete bucket-a,bucket-b
510
715
  tigris buckets set <name> [flags]
511
716
  ```
512
717
 
513
- | Flag | Description |
514
- |------|-------------|
515
- | `--access` | Bucket access level |
516
- | `--region` | Allowed regions (can specify multiple) |
517
- | `--allow-object-acl` | Enable object-level ACL |
518
- | `--disable-directory-listing` | Disable directory listing |
519
- | `--cache-control` | Default cache-control header value |
520
- | `--custom-domain` | Custom domain for the bucket |
521
- | `--enable-delete-protection` | Enable delete protection |
718
+ | Flag | Description |
719
+ | ----------------------------- | ----------------------------------------------------------------------------------------- |
720
+ | `--access` | Bucket access level |
721
+ | `--region` | (Deprecated, use --locations) Allowed regions (can specify multiple) |
722
+ | `--locations` | Bucket location (see https://www.tigrisdata.com/docs/buckets/locations/ for more details) |
723
+ | `--allow-object-acl` | Enable object-level ACL |
724
+ | `--disable-directory-listing` | Disable directory listing |
725
+ | `--cache-control` | Default cache-control header value |
726
+ | `--custom-domain` | Custom domain for the bucket |
727
+ | `--enable-delete-protection` | Enable delete protection |
728
+ | `--enable-additional-headers` | Enable additional HTTP headers (X-Content-Type-Options nosniff) |
522
729
 
523
730
  **Examples:**
731
+
524
732
  ```bash
525
733
  tigris buckets set my-bucket --access public
526
- tigris buckets set my-bucket --region iad,fra --cache-control 'max-age=3600'
734
+ tigris buckets set my-bucket --locations iad,fra --cache-control 'max-age=3600'
527
735
  tigris buckets set my-bucket --custom-domain assets.example.com
528
736
  ```
529
737
 
738
+ ##### `buckets set-ttl`
739
+
740
+ ```
741
+ tigris buckets set-ttl <name> [flags]
742
+ ```
743
+
744
+ | Flag | Description |
745
+ | ------------ | -------------------------------------------------------- |
746
+ | `-d, --days` | Expire objects after this many days |
747
+ | `--date` | Expire objects on this date (ISO-8601, e.g. 2026-06-01) |
748
+ | `--enable` | Enable TTL on the bucket (uses existing lifecycle rules) |
749
+ | `--disable` | Disable TTL on the bucket |
750
+
751
+ **Examples:**
752
+
753
+ ```bash
754
+ tigris buckets set-ttl my-bucket --days 30
755
+ tigris buckets set-ttl my-bucket --date 2026-06-01
756
+ tigris buckets set-ttl my-bucket --disable
757
+ ```
758
+
759
+ ##### `buckets set-locations`
760
+
761
+ ```
762
+ tigris buckets set-locations <name> [flags]
763
+ ```
764
+
765
+ | Flag | Description |
766
+ | ----------------- | --------------- |
767
+ | `-l, --locations` | Bucket location |
768
+
769
+ **Examples:**
770
+
771
+ ```bash
772
+ tigris buckets set-locations my-bucket --locations iad
773
+ tigris buckets set-locations my-bucket --locations iad,fra
774
+ tigris buckets set-locations my-bucket --locations global
775
+ ```
776
+
777
+ ##### `buckets set-migration`
778
+
779
+ ```
780
+ tigris buckets set-migration <name> [flags]
781
+ ```
782
+
783
+ | Flag | Description |
784
+ | ----------------------- | --------------------------------------------------------------- |
785
+ | `-b, --bucket` | Name of the source bucket to migrate from |
786
+ | `-e, --endpoint` | Endpoint URL of the source S3-compatible service |
787
+ | `-r, --region` | Region of the source bucket |
788
+ | `-key, --access-key` | Access key for the source bucket |
789
+ | `-secret, --secret-key` | Secret key for the source bucket |
790
+ | `--write-through` | Enable write-through mode (writes go to both source and Tigris) |
791
+ | `--disable` | Disable migration and clear all migration settings |
792
+
793
+ **Examples:**
794
+
795
+ ```bash
796
+ tigris buckets set-migration my-bucket --bucket source-bucket --endpoint https://s3.amazonaws.com --region us-east-1 --access-key AKIA... --secret-key wJal...
797
+ 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
798
+ tigris buckets set-migration my-bucket --disable
799
+ ```
800
+
801
+ ##### `buckets set-transition`
802
+
803
+ ```
804
+ tigris buckets set-transition <name> [flags]
805
+ ```
806
+
807
+ | Flag | Description |
808
+ | --------------------- | ----------------------------------------------------------- |
809
+ | `-s, --storage-class` | Target storage class to transition objects to |
810
+ | `-d, --days` | Transition objects after this many days |
811
+ | `--date` | Transition objects on this date (ISO-8601, e.g. 2026-06-01) |
812
+ | `--enable` | Enable lifecycle transition rules on the bucket |
813
+ | `--disable` | Disable lifecycle transition rules on the bucket |
814
+
815
+ **Examples:**
816
+
817
+ ```bash
818
+ tigris buckets set-transition my-bucket --storage-class STANDARD_IA --days 30
819
+ tigris buckets set-transition my-bucket --storage-class GLACIER --date 2026-06-01
820
+ tigris buckets set-transition my-bucket --enable
821
+ tigris buckets set-transition my-bucket --disable
822
+ ```
823
+
824
+ ##### `buckets set-notifications`
825
+
826
+ ```
827
+ tigris buckets set-notifications <name> [flags]
828
+ ```
829
+
830
+ | Flag | Description |
831
+ | -------------- | ---------------------------------------------------------------------------- |
832
+ | `-u, --url` | Webhook URL to send notifications to (must be http or https) |
833
+ | `-f, --filter` | SQL WHERE clause to filter events by key (e.g. WHERE `key` REGEXP "^images") |
834
+ | `-t, --token` | Token for webhook authentication |
835
+ | `--username` | Username for basic webhook authentication |
836
+ | `--password` | Password for basic webhook authentication |
837
+ | `--enable` | Enable notifications on the bucket (uses existing config) |
838
+ | `--disable` | Disable notifications on the bucket (preserves existing config) |
839
+ | `--reset` | Clear all notification settings on the bucket |
840
+
841
+ **Examples:**
842
+
843
+ ```bash
844
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook
845
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --token secret123
846
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --username admin --password secret
847
+ tigris buckets set-notifications my-bucket --url https://example.com/webhook --filter "WHERE `key` REGEXP \"^images\""
848
+ tigris buckets set-notifications my-bucket --enable
849
+ tigris buckets set-notifications my-bucket --disable
850
+ tigris buckets set-notifications my-bucket --reset
851
+ ```
852
+
853
+ ##### `buckets set-cors`
854
+
855
+ ```
856
+ tigris buckets set-cors <name> [flags]
857
+ ```
858
+
859
+ | Flag | Description |
860
+ | ------------------ | ---------------------------------------------------------- |
861
+ | `-o, --origins` | Allowed origins (comma-separated, or '\*' for all) |
862
+ | `-m, --methods` | Allowed HTTP methods (comma-separated, e.g. GET,POST,PUT) |
863
+ | `--headers` | Allowed request headers (comma-separated, or '\*' for all) |
864
+ | `--expose-headers` | Response headers to expose (comma-separated) |
865
+ | `--max-age` | Preflight cache duration in seconds (default: 3600) |
866
+ | `--override` | Replace all existing CORS rules instead of appending |
867
+ | `--reset` | Clear all CORS rules on the bucket |
868
+
869
+ **Examples:**
870
+
871
+ ```bash
872
+ tigris buckets set-cors my-bucket --origins '*' --methods GET,HEAD
873
+ tigris buckets set-cors my-bucket --origins https://example.com --methods GET,POST --headers Content-Type,Authorization --max-age 3600
874
+ tigris buckets set-cors my-bucket --origins https://example.com --override
875
+ tigris buckets set-cors my-bucket --reset
876
+ ```
877
+
530
878
  #### `forks` | `f`
531
879
 
532
- List and create forks. A fork is a writable copy-on-write clone of a bucket, useful for testing or branching data
880
+ (Deprecated, use "buckets create --fork-of" and "buckets list --forks-of") List and create forks
533
881
 
534
- | Command | Description |
535
- |---------|-------------|
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 |
882
+ | Command | Description |
883
+ | ------------------ | --------------------------------------------------------------------------------------------------------- |
884
+ | `forks list` (l) | (Deprecated, use "buckets list --forks-of") List all forks created from the given source bucket |
885
+ | `forks create` (c) | (Deprecated, use "buckets create --fork-of") Create a new fork (copy-on-write clone) of the source bucket |
538
886
 
539
887
  ##### `forks list`
540
888
 
@@ -542,11 +890,12 @@ List and create forks. A fork is a writable copy-on-write clone of a bucket, use
542
890
  tigris forks list <name> [flags]
543
891
  ```
544
892
 
545
- | Flag | Description |
546
- |------|-------------|
547
- | `-f, --format` | Output format (default: table) |
893
+ | Flag | Description |
894
+ | ---------- | ------------------------------ |
895
+ | `--format` | Output format (default: table) |
548
896
 
549
897
  **Examples:**
898
+
550
899
  ```bash
551
900
  tigris forks list my-bucket
552
901
  tigris forks list my-bucket --format json
@@ -558,23 +907,24 @@ tigris forks list my-bucket --format json
558
907
  tigris forks create <name> <fork-name> [flags]
559
908
  ```
560
909
 
561
- | Flag | Description |
562
- |------|-------------|
563
- | `-s, --snapshot` | Create fork from a specific snapshot |
910
+ | Flag | Description |
911
+ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
912
+ | `-s, --snapshot` | Create fork from a specific snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
564
913
 
565
914
  **Examples:**
915
+
566
916
  ```bash
567
917
  tigris forks create my-bucket my-fork
568
- tigris forks create my-bucket my-fork --snapshot snap-2025-01-01
918
+ tigris forks create my-bucket my-fork --snapshot 1765889000501544464
569
919
  ```
570
920
 
571
921
  #### `snapshots` | `s`
572
922
 
573
923
  List and take snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state
574
924
 
575
- | Command | Description |
576
- |---------|-------------|
577
- | `snapshots list` (l) | List all snapshots for the given bucket, ordered by creation time |
925
+ | Command | Description |
926
+ | -------------------- | --------------------------------------------------------------------------------------------- |
927
+ | `snapshots list` (l) | List all snapshots for the given bucket, ordered by creation time |
578
928
  | `snapshots take` (t) | Take a new snapshot of the bucket's current state. Optionally provide a name for the snapshot |
579
929
 
580
930
  ##### `snapshots list`
@@ -583,11 +933,14 @@ List and take snapshots. A snapshot is a point-in-time, read-only copy of a buck
583
933
  tigris snapshots list <name> [flags]
584
934
  ```
585
935
 
586
- | Flag | Description |
587
- |------|-------------|
588
- | `-f, --format` | Output format (default: table) |
936
+ | Flag | Description |
937
+ | ------------------- | --------------------------------------------------------------- |
938
+ | `--format` | Output format (default: table) |
939
+ | `--limit` | Maximum number of items to return per page |
940
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
589
941
 
590
942
  **Examples:**
943
+
591
944
  ```bash
592
945
  tigris snapshots list my-bucket
593
946
  tigris snapshots list my-bucket --format json
@@ -600,6 +953,7 @@ tigris snapshots take <name> [snapshot-name]
600
953
  ```
601
954
 
602
955
  **Examples:**
956
+
603
957
  ```bash
604
958
  tigris snapshots take my-bucket
605
959
  tigris snapshots take my-bucket my-snapshot
@@ -609,13 +963,14 @@ tigris snapshots take my-bucket my-snapshot
609
963
 
610
964
  Low-level object operations for listing, downloading, uploading, and deleting individual objects in a bucket
611
965
 
612
- | Command | Description |
613
- |---------|-------------|
614
- | `objects list` (l) | List objects in a bucket, optionally filtered by a key prefix |
615
- | `objects get` (g) | Download an object by key. Prints to stdout by default, or saves to a file with --output |
616
- | `objects put` (p) | Upload a local file as an object. Content-type is auto-detected from extension unless overridden |
617
- | `objects delete` (d) | Delete one or more objects by key from the given bucket |
618
- | `objects set` (s) | Update settings on an existing object such as access level |
966
+ | Command | Description |
967
+ | -------------------- | ------------------------------------------------------------------------------------------------ |
968
+ | `objects list` (l) | List objects in a bucket, optionally filtered by a key prefix |
969
+ | `objects get` (g) | Download an object by key. Prints to stdout by default, or saves to a file with --output |
970
+ | `objects put` (p) | Upload a local file as an object. Content-type is auto-detected from extension unless overridden |
971
+ | `objects delete` (d) | Delete one or more objects by key from the given bucket |
972
+ | `objects set` (s) | Update settings on an existing object such as access level |
973
+ | `objects info` (i) | Show metadata for an object (content type, size, modified date) |
619
974
 
620
975
  #### `objects list`
621
976
 
@@ -623,14 +978,20 @@ Low-level object operations for listing, downloading, uploading, and deleting in
623
978
  tigris objects list <bucket> [flags]
624
979
  ```
625
980
 
626
- | Flag | Description |
627
- |------|-------------|
628
- | `-p, --prefix` | Filter objects by key prefix (e.g. "images/" to list only images) |
629
- | `-f, --format` | Output format (default: table) |
981
+ | Flag | Description |
982
+ | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
983
+ | `-p, --prefix` | Filter objects by key prefix (e.g. "images/" to list only images) |
984
+ | `--format` | Output format (default: table) |
985
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
986
+ | `--limit` | Maximum number of items to return per page |
987
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
630
988
 
631
989
  **Examples:**
990
+
632
991
  ```bash
633
992
  tigris objects list my-bucket
993
+ tigris objects list t3://my-bucket
994
+ tigris objects list t3://my-bucket/images/
634
995
  tigris objects list my-bucket --prefix images/
635
996
  tigris objects list my-bucket --format json
636
997
  ```
@@ -638,87 +999,122 @@ tigris objects list my-bucket --format json
638
999
  #### `objects get`
639
1000
 
640
1001
  ```
641
- tigris objects get <bucket> <key> [flags]
1002
+ tigris objects get <bucket> [key] [flags]
642
1003
  ```
643
1004
 
644
- | Flag | Description |
645
- |------|-------------|
646
- | `-o, --output` | Output file path (if not specified, prints to stdout) |
647
- | `-m, --mode` | Response mode: "string" loads into memory, "stream" writes in chunks (auto-detected from extension if not specified) |
1005
+ | Flag | Description |
1006
+ | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
1007
+ | `-o, --output` | Output file path (if not specified, prints to stdout) |
1008
+ | `-m, --mode` | Response mode: "string" loads into memory, "stream" writes in chunks (auto-detected from extension if not specified) |
1009
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot. Accepts a snapshot version string or any UNIX nanosecond-precision timestamp (e.g. 1765889000501544464) |
648
1010
 
649
1011
  **Examples:**
1012
+
650
1013
  ```bash
651
1014
  tigris objects get my-bucket config.json
1015
+ tigris objects get t3://my-bucket/config.json
652
1016
  tigris objects get my-bucket archive.zip --output ./archive.zip --mode stream
653
1017
  ```
654
1018
 
655
1019
  #### `objects put`
656
1020
 
657
1021
  ```
658
- tigris objects put <bucket> <key> [file] [flags]
1022
+ tigris objects put <bucket> [key] [file] [flags]
659
1023
  ```
660
1024
 
661
- | Flag | Description |
662
- |------|-------------|
663
- | `-a, --access` | Access level (default: private) |
1025
+ | Flag | Description |
1026
+ | -------------------- | ------------------------------------------------------ |
1027
+ | `-a, --access` | Access level (default: private) |
664
1028
  | `-t, --content-type` | Content type (auto-detected from extension if omitted) |
665
- | `-f, --format` | Output format (default: table) |
1029
+ | `--format` | Output format (default: table) |
666
1030
 
667
1031
  **Examples:**
1032
+
668
1033
  ```bash
669
1034
  tigris objects put my-bucket report.pdf ./report.pdf
1035
+ tigris objects put t3://my-bucket/report.pdf ./report.pdf
670
1036
  tigris objects put my-bucket logo.png ./logo.png --access public --content-type image/png
671
1037
  ```
672
1038
 
673
1039
  #### `objects delete`
674
1040
 
675
1041
  ```
676
- tigris objects delete <bucket> <key>
1042
+ tigris objects delete <bucket> [key] [flags]
677
1043
  ```
678
1044
 
1045
+ | Flag | Description |
1046
+ | --------- | ------------------------------------------- |
1047
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1048
+
679
1049
  **Examples:**
1050
+
680
1051
  ```bash
681
- tigris objects delete my-bucket old-file.txt
682
- tigris objects delete my-bucket file-a.txt,file-b.txt
1052
+ tigris objects delete my-bucket old-file.txt --yes
1053
+ tigris objects delete t3://my-bucket/old-file.txt --yes
1054
+ tigris objects delete my-bucket file-a.txt,file-b.txt --yes
683
1055
  ```
684
1056
 
685
1057
  #### `objects set`
686
1058
 
687
1059
  ```
688
- tigris objects set <bucket> <key> [flags]
1060
+ tigris objects set <bucket> [key] [flags]
689
1061
  ```
690
1062
 
691
- | Flag | Description |
692
- |------|-------------|
693
- | `-a, --access` | Access level |
1063
+ | Flag | Description |
1064
+ | --------------- | ------------------------------ |
1065
+ | `-a, --access` | Access level |
694
1066
  | `-n, --new-key` | Rename the object to a new key |
695
1067
 
696
1068
  **Examples:**
1069
+
697
1070
  ```bash
698
1071
  tigris objects set my-bucket my-file.txt --access public
1072
+ tigris objects set t3://my-bucket/my-file.txt --access public
699
1073
  tigris objects set my-bucket my-file.txt --access private
700
1074
  ```
701
1075
 
1076
+ #### `objects info`
1077
+
1078
+ ```
1079
+ tigris objects info <bucket> [key] [flags]
1080
+ ```
1081
+
1082
+ | Flag | Description |
1083
+ | ------------------------------- | ------------------------------------ |
1084
+ | `--format` | Output format (default: table) |
1085
+ | `-snapshot, --snapshot-version` | Read from a specific bucket snapshot |
1086
+
1087
+ **Examples:**
1088
+
1089
+ ```bash
1090
+ tigris objects info my-bucket report.pdf
1091
+ tigris objects info t3://my-bucket/report.pdf
1092
+ tigris objects info my-bucket report.pdf --format json
1093
+ ```
1094
+
702
1095
  ### `iam`
703
1096
 
704
1097
  Identity and Access Management - manage policies, users, and permissions
705
1098
 
706
- | Command | Description |
707
- |---------|-------------|
1099
+ | Command | Description |
1100
+ | ------------------ | ---------------------------------------------------------------- |
708
1101
  | `iam policies` (p) | Manage IAM policies. Policies define permissions for access keys |
709
- | `iam users` (u) | Manage organization users and invitations |
1102
+ | `iam users` (u) | Manage organization users and invitations |
710
1103
 
711
1104
  #### `iam policies` | `p`
712
1105
 
713
1106
  Manage IAM policies. Policies define permissions for access keys
714
1107
 
715
- | Command | Description |
716
- |---------|-------------|
717
- | `iam policies list` (l) | List all policies in the current organization |
718
- | `iam policies get` (g) | Show details for a policy including its document and attached users. If no ARN provided, shows interactive selection |
719
- | `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
- | `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
- | `iam policies delete` (d) | Delete a policy. If no ARN provided, shows interactive selection |
1108
+ | Command | Description |
1109
+ | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1110
+ | `iam policies list` (l) | List all policies in the current organization |
1111
+ | `iam policies get` (g) | Show details for a policy including its document and attached users. If no ARN provided, shows interactive selection |
1112
+ | `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 |
1113
+ | `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 |
1114
+ | `iam policies delete` (d) | Delete a policy. If no ARN provided, shows interactive selection |
1115
+ | `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 |
1116
+ | `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 |
1117
+ | `iam policies list-keys` (lk) | List all access keys attached to a policy. If no policy ARN is provided, shows interactive selection |
722
1118
 
723
1119
  ##### `iam policies list`
724
1120
 
@@ -726,11 +1122,14 @@ Manage IAM policies. Policies define permissions for access keys
726
1122
  tigris iam policies list [flags]
727
1123
  ```
728
1124
 
729
- | Flag | Description |
730
- |------|-------------|
731
- | `-f, --format` | Output format (default: table) |
1125
+ | Flag | Description |
1126
+ | ------------------- | --------------------------------------------------------------- |
1127
+ | `--format` | Output format (default: table) |
1128
+ | `--limit` | Maximum number of items to return per page |
1129
+ | `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
732
1130
 
733
1131
  **Examples:**
1132
+
734
1133
  ```bash
735
1134
  tigris iam policies list
736
1135
  ```
@@ -741,11 +1140,12 @@ tigris iam policies list
741
1140
  tigris iam policies get [resource] [flags]
742
1141
  ```
743
1142
 
744
- | Flag | Description |
745
- |------|-------------|
746
- | `-f, --format` | Output format (default: table) |
1143
+ | Flag | Description |
1144
+ | ---------- | ------------------------------ |
1145
+ | `--format` | Output format (default: table) |
747
1146
 
748
1147
  **Examples:**
1148
+
749
1149
  ```bash
750
1150
  tigris iam policies get
751
1151
  tigris iam policies get arn:aws:iam::org_id:policy/my-policy
@@ -757,12 +1157,13 @@ tigris iam policies get arn:aws:iam::org_id:policy/my-policy
757
1157
  tigris iam policies create <name> [flags]
758
1158
  ```
759
1159
 
760
- | Flag | Description |
761
- |------|-------------|
1160
+ | Flag | Description |
1161
+ | ---------------- | ----------------------------------------------------------------------------- |
762
1162
  | `-d, --document` | Policy document (JSON file path or inline JSON). If omitted, reads from stdin |
763
- | `--description` | Policy description |
1163
+ | `--description` | Policy description |
764
1164
 
765
1165
  **Examples:**
1166
+
766
1167
  ```bash
767
1168
  tigris iam policies create my-policy --document policy.json
768
1169
  tigris iam policies create my-policy --document '{"Version":"2012-10-17","Statement":[...]}'
@@ -775,12 +1176,13 @@ cat policy.json | tigris iam policies create my-policy
775
1176
  tigris iam policies edit [resource] [flags]
776
1177
  ```
777
1178
 
778
- | Flag | Description |
779
- |------|-------------|
1179
+ | Flag | Description |
1180
+ | ---------------- | --------------------------------------------------------------------------------- |
780
1181
  | `-d, --document` | New policy document (JSON file path or inline JSON). If omitted, reads from stdin |
781
- | `--description` | Update policy description |
1182
+ | `--description` | Update policy description |
782
1183
 
783
1184
  **Examples:**
1185
+
784
1186
  ```bash
785
1187
  tigris iam policies edit --document policy.json
786
1188
  tigris iam policies edit arn:aws:iam::org_id:policy/my-policy --document policy.json
@@ -790,26 +1192,83 @@ cat policy.json | tigris iam policies edit arn:aws:iam::org_id:policy/my-policy
790
1192
  ##### `iam policies delete`
791
1193
 
792
1194
  ```
793
- tigris iam policies delete [resource]
1195
+ tigris iam policies delete [resource] [flags]
794
1196
  ```
795
1197
 
1198
+ | Flag | Description |
1199
+ | --------- | ------------------------------------------- |
1200
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1201
+
796
1202
  **Examples:**
1203
+
797
1204
  ```bash
798
1205
  tigris iam policies delete
799
- tigris iam policies delete arn:aws:iam::org_id:policy/my-policy
1206
+ tigris iam policies delete arn:aws:iam::org_id:policy/my-policy --yes
1207
+ ```
1208
+
1209
+ ##### `iam policies link-key`
1210
+
1211
+ ```
1212
+ tigris iam policies link-key [resource] [flags]
1213
+ ```
1214
+
1215
+ | Flag | Description |
1216
+ | ------ | ----------------------- |
1217
+ | `--id` | Access key ID to attach |
1218
+
1219
+ **Examples:**
1220
+
1221
+ ```bash
1222
+ tigris iam policies link-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb
1223
+ tigris iam policies link-key
1224
+ ```
1225
+
1226
+ ##### `iam policies unlink-key`
1227
+
1228
+ ```
1229
+ tigris iam policies unlink-key [resource] [flags]
1230
+ ```
1231
+
1232
+ | Flag | Description |
1233
+ | --------- | ------------------------------------------- |
1234
+ | `--id` | Access key ID to detach |
1235
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1236
+
1237
+ **Examples:**
1238
+
1239
+ ```bash
1240
+ tigris iam policies unlink-key arn:aws:iam::org_id:policy/my-policy --id tid_AaBb --yes
1241
+ tigris iam policies unlink-key
1242
+ ```
1243
+
1244
+ ##### `iam policies list-keys`
1245
+
1246
+ ```
1247
+ tigris iam policies list-keys [resource] [flags]
1248
+ ```
1249
+
1250
+ | Flag | Description |
1251
+ | ---------- | ------------------------------ |
1252
+ | `--format` | Output format (default: table) |
1253
+
1254
+ **Examples:**
1255
+
1256
+ ```bash
1257
+ tigris iam policies list-keys arn:aws:iam::org_id:policy/my-policy
1258
+ tigris iam policies list-keys
800
1259
  ```
801
1260
 
802
1261
  #### `iam users` | `u`
803
1262
 
804
1263
  Manage organization users and invitations
805
1264
 
806
- | Command | Description |
807
- |---------|-------------|
808
- | `iam users list` (l) | List all users and pending invitations in the organization |
809
- | `iam users invite` (i) | Invite users to the organization by email |
810
- | `iam users revoke-invitation` (ri) | Revoke pending invitations. If no invitation ID provided, shows interactive selection |
811
- | `iam users update-role` (ur) | Update user roles in the organization. If no user ID provided, shows interactive selection |
812
- | `iam users remove` (rm) | Remove users from the organization. If no user ID provided, shows interactive selection |
1265
+ | Command | Description |
1266
+ | ---------------------------------- | ------------------------------------------------------------------------------------------ |
1267
+ | `iam users list` (l) | List all users and pending invitations in the organization |
1268
+ | `iam users invite` (i) | Invite users to the organization by email |
1269
+ | `iam users revoke-invitation` (ri) | Revoke pending invitations. If no invitation ID provided, shows interactive selection |
1270
+ | `iam users update-role` (ur) | Update user roles in the organization. If no user ID provided, shows interactive selection |
1271
+ | `iam users remove` (rm) | Remove users from the organization. If no user ID provided, shows interactive selection |
813
1272
 
814
1273
  ##### `iam users list`
815
1274
 
@@ -817,11 +1276,12 @@ Manage organization users and invitations
817
1276
  tigris iam users list [flags]
818
1277
  ```
819
1278
 
820
- | Flag | Description |
821
- |------|-------------|
822
- | `-f, --format` | Output format (default: table) |
1279
+ | Flag | Description |
1280
+ | ---------- | ------------------------------ |
1281
+ | `--format` | Output format (default: table) |
823
1282
 
824
1283
  **Examples:**
1284
+
825
1285
  ```bash
826
1286
  tigris iam users list
827
1287
  tigris iam users list --format json
@@ -833,11 +1293,12 @@ tigris iam users list --format json
833
1293
  tigris iam users invite <email> [flags]
834
1294
  ```
835
1295
 
836
- | Flag | Description |
837
- |------|-------------|
1296
+ | Flag | Description |
1297
+ | ------------ | ------------------------------------------------------- |
838
1298
  | `-r, --role` | Role to assign to the invited user(s) (default: member) |
839
1299
 
840
1300
  **Examples:**
1301
+
841
1302
  ```bash
842
1303
  tigris iam users invite user@example.com
843
1304
  tigris iam users invite user@example.com --role admin
@@ -847,14 +1308,19 @@ tigris iam users invite user1@example.com,user2@example.com
847
1308
  ##### `iam users revoke-invitation`
848
1309
 
849
1310
  ```
850
- tigris iam users revoke-invitation [resource]
1311
+ tigris iam users revoke-invitation [resource] [flags]
851
1312
  ```
852
1313
 
1314
+ | Flag | Description |
1315
+ | --------- | ------------------------------------------- |
1316
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1317
+
853
1318
  **Examples:**
1319
+
854
1320
  ```bash
855
1321
  tigris iam users revoke-invitation
856
- tigris iam users revoke-invitation invitation_id
857
- tigris iam users revoke-invitation id1,id2,id3
1322
+ tigris iam users revoke-invitation invitation_id --yes
1323
+ tigris iam users revoke-invitation id1,id2,id3 --yes
858
1324
  ```
859
1325
 
860
1326
  ##### `iam users update-role`
@@ -863,11 +1329,12 @@ tigris iam users revoke-invitation id1,id2,id3
863
1329
  tigris iam users update-role [resource] [flags]
864
1330
  ```
865
1331
 
866
- | Flag | Description |
867
- |------|-------------|
1332
+ | Flag | Description |
1333
+ | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
868
1334
  | `-r, --role` | Role(s) to assign (comma-separated). Each role pairs with the corresponding user ID. If one role is given, it applies to all users |
869
1335
 
870
1336
  **Examples:**
1337
+
871
1338
  ```bash
872
1339
  tigris iam users update-role --role admin
873
1340
  tigris iam users update-role user_id --role member
@@ -878,14 +1345,35 @@ tigris iam users update-role id1,id2 --role admin,member
878
1345
  ##### `iam users remove`
879
1346
 
880
1347
  ```
881
- tigris iam users remove [resource]
1348
+ tigris iam users remove [resource] [flags]
882
1349
  ```
883
1350
 
1351
+ | Flag | Description |
1352
+ | --------- | ------------------------------------------- |
1353
+ | `--force` | Skip confirmation prompts (alias for --yes) |
1354
+
884
1355
  **Examples:**
1356
+
885
1357
  ```bash
886
1358
  tigris iam users remove
887
- tigris iam users remove user@example.com
888
- tigris iam users remove user@example.com,user@example.net
1359
+ tigris iam users remove user@example.com --yes
1360
+ tigris iam users remove user@example.com,user@example.net --yes
1361
+ ```
1362
+
1363
+ ## Other
1364
+
1365
+ ### `update`
1366
+
1367
+ Update the CLI to the latest version
1368
+
1369
+ ```
1370
+ tigris update
1371
+ ```
1372
+
1373
+ **Examples:**
1374
+
1375
+ ```bash
1376
+ tigris update
889
1377
  ```
890
1378
 
891
1379
  ## License