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