@tigrisdata/cli 3.9.1 → 3.11.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 +84 -7
- package/dist/auth/iam.js +1 -1
- package/dist/auth/provider.js +1 -1
- package/dist/{chunk-YS3BDOPE.js → chunk-5AGM4LUA.js} +1 -1
- package/dist/{chunk-LNMRG2VH.js → chunk-5QNWWNPL.js} +1 -1
- package/dist/{chunk-R5SYFHP5.js → chunk-6TTEDYLD.js} +1 -1
- package/dist/{chunk-L3733IUI.js → chunk-7BUC7A7V.js} +1 -1
- package/dist/{chunk-AJOTB3MR.js → chunk-7Q44GQ2Y.js} +1 -1
- package/dist/{chunk-3IH53DPU.js → chunk-GMZ3URGL.js} +1 -1
- package/dist/{chunk-VBFFBPYR.js → chunk-GZMEHP36.js} +1 -1
- package/dist/{chunk-IOA742JD.js → chunk-IEFUKJDE.js} +1 -1
- package/dist/chunk-IUIKP2LU.js +1 -0
- package/dist/chunk-KJXUEGXY.js +8 -0
- package/dist/{chunk-MKQ7H3JV.js → chunk-PUHRE62R.js} +1 -1
- package/dist/chunk-QPUL2AAI.js +1 -0
- package/dist/{chunk-RH5OMEH2.js → chunk-TVH7NCXE.js} +2 -2
- package/dist/{chunk-WX7P2JTJ.js → chunk-VPELL4UB.js} +1 -1
- package/dist/chunk-Z54TMLIH.js +1 -0
- package/dist/{chunk-KNQIS63O.js → chunk-Z5DYQHN2.js} +1 -1
- package/dist/cli-core.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/access-keys/assign.js +1 -1
- package/dist/lib/access-keys/attach-policy.js +1 -1
- package/dist/lib/access-keys/create.js +1 -1
- package/dist/lib/access-keys/delete.js +1 -1
- package/dist/lib/access-keys/detach-policy.js +1 -1
- package/dist/lib/access-keys/get.js +1 -1
- package/dist/lib/access-keys/list-policies.js +1 -1
- package/dist/lib/access-keys/list.js +1 -1
- package/dist/lib/access-keys/rotate.js +1 -1
- package/dist/lib/buckets/create.js +1 -1
- package/dist/lib/buckets/delete.js +1 -1
- package/dist/lib/buckets/disable-snapshots.js +1 -1
- package/dist/lib/buckets/enable-snapshots.js +1 -1
- package/dist/lib/buckets/get.js +1 -1
- package/dist/lib/buckets/lifecycle/create.js +1 -1
- package/dist/lib/buckets/lifecycle/edit.js +1 -1
- package/dist/lib/buckets/lifecycle/list.js +1 -1
- package/dist/lib/buckets/lifecycle/shared.js +1 -1
- package/dist/lib/buckets/list.js +1 -1
- package/dist/lib/buckets/merge.js +1 -1
- package/dist/lib/buckets/migrate.js +1 -1
- package/dist/lib/buckets/rebase.js +1 -1
- package/dist/lib/buckets/restore.js +1 -1
- package/dist/lib/buckets/set-cors.js +1 -1
- package/dist/lib/buckets/set-locations.js +1 -1
- package/dist/lib/buckets/set-migration.js +1 -1
- package/dist/lib/buckets/set-notifications.js +1 -1
- package/dist/lib/buckets/set.js +1 -1
- package/dist/lib/buckets/share.js +1 -0
- package/dist/lib/bundle.js +1 -1
- package/dist/lib/configure/index.js +1 -1
- package/dist/lib/cp.js +1 -1
- package/dist/lib/credentials/test.js +1 -1
- package/dist/lib/iam/policies/create.js +1 -1
- package/dist/lib/iam/policies/delete.js +1 -1
- package/dist/lib/iam/policies/edit.js +1 -1
- package/dist/lib/iam/policies/get.js +1 -1
- package/dist/lib/iam/policies/link-key.js +1 -1
- package/dist/lib/iam/policies/list-keys.js +1 -1
- package/dist/lib/iam/policies/list.js +1 -1
- package/dist/lib/iam/policies/select-policy.js +1 -1
- package/dist/lib/iam/policies/unlink-key.js +1 -1
- package/dist/lib/iam/teams/create.js +1 -1
- package/dist/lib/iam/teams/edit.js +1 -1
- package/dist/lib/iam/teams/list.js +1 -1
- package/dist/lib/iam/teams/shared.js +1 -1
- package/dist/lib/iam/users/invite.js +1 -1
- package/dist/lib/iam/users/list.js +1 -1
- package/dist/lib/iam/users/remove.js +1 -1
- package/dist/lib/iam/users/revoke-invitation.js +1 -1
- package/dist/lib/iam/users/update-role.js +1 -1
- package/dist/lib/init/index.js +1 -1
- package/dist/lib/login/credentials.js +1 -1
- package/dist/lib/login/oauth.js +1 -1
- package/dist/lib/login/select.js +1 -1
- package/dist/lib/logout.js +1 -1
- package/dist/lib/ls.js +1 -1
- package/dist/lib/mk.js +1 -1
- package/dist/lib/mv.js +1 -1
- package/dist/lib/objects/delete.js +1 -1
- package/dist/lib/objects/get.js +1 -1
- package/dist/lib/objects/info.js +1 -1
- package/dist/lib/objects/list-versions.js +4 -4
- package/dist/lib/objects/list.js +1 -1
- package/dist/lib/objects/purge.js +1 -0
- package/dist/lib/objects/put.js +1 -1
- package/dist/lib/objects/restore-deleted.js +1 -0
- package/dist/lib/objects/restore-info.js +1 -1
- package/dist/lib/objects/restore.js +1 -1
- package/dist/lib/objects/set-access.js +1 -1
- package/dist/lib/objects/set.js +1 -1
- package/dist/lib/organizations/create.js +1 -1
- package/dist/lib/organizations/list.js +1 -1
- package/dist/lib/organizations/select.js +1 -1
- package/dist/lib/presign.js +2 -2
- package/dist/lib/rm.js +1 -1
- package/dist/lib/snapshots/delete.js +1 -1
- package/dist/lib/snapshots/list.js +1 -1
- package/dist/lib/snapshots/take.js +1 -1
- package/dist/lib/stat.js +1 -1
- package/dist/lib/telemetry/disable.js +1 -1
- package/dist/lib/telemetry/enable.js +1 -1
- package/dist/lib/telemetry/status.js +1 -1
- package/dist/lib/touch.js +1 -1
- package/dist/lib/update.js +1 -1
- package/dist/lib/whoami.js +1 -1
- package/dist/specs.yaml +134 -3
- package/dist/utils/analytics.js +1 -1
- package/dist/utils/bucket-info.js +1 -1
- package/dist/utils/exit.js +1 -1
- package/dist/utils/telemetry.js +1 -1
- package/dist/utils/update-check.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-JNSFDQGG.js +0 -1
- package/dist/chunk-L6RBXP7Z.js +0 -1
- package/dist/chunk-UPKISX4L.js +0 -8
- package/dist/chunk-V6JZFDRE.js +0 -1
package/README.md
CHANGED
|
@@ -390,11 +390,13 @@ tigris cp <src> <dest> [flags]
|
|
|
390
390
|
|------|-------------|
|
|
391
391
|
| `-r, --recursive` | Copy directories recursively |
|
|
392
392
|
| `-a, --access` | Access level for uploaded objects (only applies to local-to-remote uploads) |
|
|
393
|
+
| `--cache-control` | Cache-Control header stored with uploaded objects (only applies to local-to-remote uploads) |
|
|
393
394
|
|
|
394
395
|
**Examples:**
|
|
395
396
|
```bash
|
|
396
397
|
tigris cp ./file.txt t3://my-bucket/file.txt
|
|
397
398
|
tigris cp ./logo.png t3://my-bucket/logo.png --access public
|
|
399
|
+
tigris cp ./dist/ t3://my-bucket/assets/ -r --cache-control 'public, max-age=31536000, immutable'
|
|
398
400
|
tigris cp t3://my-bucket/file.txt ./local-copy.txt
|
|
399
401
|
tigris cp t3://my-bucket/src/ t3://my-bucket/dest/ -r
|
|
400
402
|
tigris cp ./images/ t3://my-bucket/images/ -r
|
|
@@ -541,6 +543,7 @@ Create, inspect, update, and delete buckets. Buckets are top-level containers th
|
|
|
541
543
|
| `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 |
|
|
542
544
|
| `tigris buckets set-notifications` | Configure object event notifications on a bucket. Sends webhook requests to a URL when objects are created, updated, or deleted |
|
|
543
545
|
| `tigris buckets set-cors` | Configure CORS rules on a bucket. Each invocation adds a rule unless --override or --reset is used |
|
|
546
|
+
| `tigris buckets share` | Share a bucket with your whole organization, specific teams, or specific users. Existing shares are kept unless --override or --reset is used |
|
|
544
547
|
|
|
545
548
|
#### `tigris buckets list` (l)
|
|
546
549
|
|
|
@@ -938,6 +941,33 @@ tigris buckets set-cors my-bucket --origins https://example.com --override
|
|
|
938
941
|
tigris buckets set-cors my-bucket --reset
|
|
939
942
|
```
|
|
940
943
|
|
|
944
|
+
#### `tigris buckets share`
|
|
945
|
+
|
|
946
|
+
Share a bucket with your whole organization, specific teams, or specific users. Existing shares are kept unless --override or --reset is used
|
|
947
|
+
|
|
948
|
+
```
|
|
949
|
+
tigris buckets share <name> [flags]
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
| Flag | Description |
|
|
953
|
+
|------|-------------|
|
|
954
|
+
| `-org, --organization` | Give access to everyone in your organization. Takes exactly one --role and cannot be combined with --team or --user |
|
|
955
|
+
| `-t, --team` | Team ID to share with (can specify multiple, comma-separated). Each team is paired positionally with a --role value |
|
|
956
|
+
| `-u, --user` | User ID to share with (can specify multiple, comma-separated). Each user is paired positionally with a --role value |
|
|
957
|
+
| `-r, --role` | Role to grant (can specify multiple, comma-separated). A single role applies to every target; otherwise each role pairs with the corresponding --team or --user value |
|
|
958
|
+
| `--override` | Replace all existing shares instead of merging with them |
|
|
959
|
+
| `--reset` | Remove all shares from the bucket |
|
|
960
|
+
|
|
961
|
+
**Examples:**
|
|
962
|
+
```bash
|
|
963
|
+
tigris buckets share my-bucket --organization --role ReadOnly
|
|
964
|
+
tigris buckets share my-bucket --team tmid_MQQUhV --role Editor
|
|
965
|
+
tigris buckets share my-bucket --user uid_MQQUhV --role ReadOnly
|
|
966
|
+
tigris buckets share my-bucket --team tmid_A,tmid_B --role Editor,ReadOnly
|
|
967
|
+
tigris buckets share my-bucket --team tmid_MQQUhV --role Editor --override
|
|
968
|
+
tigris buckets share my-bucket --reset
|
|
969
|
+
```
|
|
970
|
+
|
|
941
971
|
### `tigris snapshots` (s)
|
|
942
972
|
|
|
943
973
|
List, take, and delete snapshots. A snapshot is a point-in-time, read-only copy of a bucket's state
|
|
@@ -1007,7 +1037,7 @@ Low-level object operations for listing, downloading, uploading, and deleting in
|
|
|
1007
1037
|
| Command | Description |
|
|
1008
1038
|
|---------|-------------|
|
|
1009
1039
|
| `tigris objects list` (l) | List objects in a bucket, optionally filtered by a key prefix |
|
|
1010
|
-
| `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 |
|
|
1040
|
+
| `tigris objects list-versions` (lv) | List object versions and delete markers in a bucket (requires bucket versioning), or with --deleted the recoverable versions of soft-deleted objects. Returns both arrays separately to match the S3 ListObjectVersions response |
|
|
1011
1041
|
| `tigris objects get` (g) | Download an object by key. Prints to stdout by default, or saves to a file with --output |
|
|
1012
1042
|
| `tigris objects put` (p) | Upload a local file — or data piped via stdin — as an object. Content-type is auto-detected from the file extension unless overridden |
|
|
1013
1043
|
| `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 |
|
|
@@ -1016,6 +1046,8 @@ Low-level object operations for listing, downloading, uploading, and deleting in
|
|
|
1016
1046
|
| `tigris objects info` (i) | Show metadata for an object (content type, size, modified date) |
|
|
1017
1047
|
| `tigris objects restore` (rs) | Restore an archived object (e.g. one in the GLACIER tier) into an actively-readable copy for a number of days |
|
|
1018
1048
|
| `tigris objects restore-info` (ri) | Show the restore state of an archived object (archived, in-progress, or restored) |
|
|
1049
|
+
| `tigris objects restore-deleted` (rd) | Restore a soft-deleted object within its retention window. List recoverable objects with "tigris objects list --deleted", then pick a version with "tigris objects list-versions --deleted" |
|
|
1050
|
+
| `tigris objects purge` (pg) | Permanently destroy a soft-deleted object version before its retention period expires. This cannot be undone — the version can no longer be restored with "tigris objects restore-deleted" |
|
|
1019
1051
|
|
|
1020
1052
|
#### `tigris objects list` (l)
|
|
1021
1053
|
|
|
@@ -1033,6 +1065,7 @@ tigris objects list <bucket> [flags]
|
|
|
1033
1065
|
| `--limit` | Maximum number of items to return per page |
|
|
1034
1066
|
| `-pt, --page-token` | Pagination token from a previous request to fetch the next page |
|
|
1035
1067
|
| `--source` | List objects from a specific storage source on buckets with shadow migration enabled |
|
|
1068
|
+
| `--deleted` | List soft-deleted objects instead of live ones. Requires soft delete on the bucket. On a snapshot bucket a plain delete records a delete marker instead, so use "tigris objects list-versions" for those |
|
|
1036
1069
|
|
|
1037
1070
|
**Examples:**
|
|
1038
1071
|
```bash
|
|
@@ -1041,11 +1074,12 @@ tigris objects list t3://my-bucket
|
|
|
1041
1074
|
tigris objects list t3://my-bucket/images/
|
|
1042
1075
|
tigris objects list my-bucket --prefix images/
|
|
1043
1076
|
tigris objects list my-bucket --format json
|
|
1077
|
+
tigris objects list my-bucket --deleted
|
|
1044
1078
|
```
|
|
1045
1079
|
|
|
1046
1080
|
#### `tigris objects list-versions` (lv)
|
|
1047
1081
|
|
|
1048
|
-
List object versions and delete markers in a bucket (requires bucket versioning). Returns both arrays separately to match the S3 ListObjectVersions response
|
|
1082
|
+
List object versions and delete markers in a bucket (requires bucket versioning), or with --deleted the recoverable versions of soft-deleted objects. Returns both arrays separately to match the S3 ListObjectVersions response
|
|
1049
1083
|
|
|
1050
1084
|
```
|
|
1051
1085
|
tigris objects list-versions <bucket> [flags]
|
|
@@ -1059,6 +1093,7 @@ tigris objects list-versions <bucket> [flags]
|
|
|
1059
1093
|
| `--limit` | Maximum number of items to return per page |
|
|
1060
1094
|
| `--key-marker` | Pagination marker — the key to start listing from (from a prior nextKeyMarker) |
|
|
1061
1095
|
| `--version-id-marker` | Pagination marker — the version id to start listing from (from a prior nextVersionIdMarker) |
|
|
1096
|
+
| `--deleted` | List the recoverable versions of soft-deleted objects. Use the version id with "tigris objects restore-deleted" or "tigris objects purge" |
|
|
1062
1097
|
|
|
1063
1098
|
**Examples:**
|
|
1064
1099
|
```bash
|
|
@@ -1066,6 +1101,7 @@ tigris objects list-versions my-bucket
|
|
|
1066
1101
|
tigris objects list-versions t3://my-bucket/logs/
|
|
1067
1102
|
tigris objects list-versions my-bucket --prefix images/
|
|
1068
1103
|
tigris objects list-versions my-bucket --format json
|
|
1104
|
+
tigris objects list-versions my-bucket --prefix report.pdf --deleted
|
|
1069
1105
|
```
|
|
1070
1106
|
|
|
1071
1107
|
#### `tigris objects get` (g)
|
|
@@ -1102,6 +1138,7 @@ tigris objects put <bucket> [key] [file] [flags]
|
|
|
1102
1138
|
|------|-------------|
|
|
1103
1139
|
| `-a, --access` | Access level (default: private) |
|
|
1104
1140
|
| `-t, --content-type` | Content type (auto-detected from extension if omitted) |
|
|
1141
|
+
| `--cache-control` | Cache-Control header stored with the object and returned on every read (e.g. "public, max-age=31536000, immutable") |
|
|
1105
1142
|
| `--format` | Output format (default: table) |
|
|
1106
1143
|
|
|
1107
1144
|
**Examples:**
|
|
@@ -1109,6 +1146,7 @@ tigris objects put <bucket> [key] [file] [flags]
|
|
|
1109
1146
|
tigris objects put my-bucket report.pdf ./report.pdf
|
|
1110
1147
|
tigris objects put t3://my-bucket/report.pdf ./report.pdf
|
|
1111
1148
|
tigris objects put my-bucket logo.png ./logo.png --access public --content-type image/png
|
|
1149
|
+
tigris objects put my-bucket app.js ./app.js --cache-control 'public, max-age=31536000, immutable'
|
|
1112
1150
|
echo 'hello' | tigris objects put t3://my-bucket/hello.txt
|
|
1113
1151
|
cat report.pdf | tigris objects put my-bucket report.pdf --content-type application/pdf
|
|
1114
1152
|
```
|
|
@@ -1123,7 +1161,7 @@ tigris objects delete <bucket> [key] [flags]
|
|
|
1123
1161
|
|
|
1124
1162
|
| Flag | Description |
|
|
1125
1163
|
|------|-------------|
|
|
1126
|
-
| `--version-id` | Hard-delete a specific object version (requires bucket versioning). Targets a single key |
|
|
1164
|
+
| `--version-id` | Hard-delete a specific object version (requires bucket versioning). Targets a single key. To destroy a soft-deleted version, use "tigris objects purge" |
|
|
1127
1165
|
| `--all-versions` | Hard-delete every version and delete marker for the given key(s). Mutually exclusive with --version-id |
|
|
1128
1166
|
| `--force` | Skip confirmation prompts (alias for --yes) |
|
|
1129
1167
|
|
|
@@ -1146,7 +1184,7 @@ tigris objects set <bucket> [key] [flags]
|
|
|
1146
1184
|
|
|
1147
1185
|
| Flag | Description |
|
|
1148
1186
|
|------|-------------|
|
|
1149
|
-
| `-a, --access` | Access level |
|
|
1187
|
+
| `-a, --access` | Access level **(required)** |
|
|
1150
1188
|
| `-n, --new-key` | Rename the object to a new key |
|
|
1151
1189
|
|
|
1152
1190
|
**Examples:**
|
|
@@ -1240,6 +1278,45 @@ tigris objects restore-info t3://my-bucket/archived.bin --format json
|
|
|
1240
1278
|
tigris objects restore-info my-bucket archived.bin --snapshot-version 1765889000501544464
|
|
1241
1279
|
```
|
|
1242
1280
|
|
|
1281
|
+
#### `tigris objects restore-deleted` (rd)
|
|
1282
|
+
|
|
1283
|
+
Restore a soft-deleted object within its retention window. List recoverable objects with "tigris objects list --deleted", then pick a version with "tigris objects list-versions --deleted"
|
|
1284
|
+
|
|
1285
|
+
```
|
|
1286
|
+
tigris objects restore-deleted <bucket> [key] [flags]
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
| Flag | Description |
|
|
1290
|
+
|------|-------------|
|
|
1291
|
+
| `--version-id` | The soft-deleted version to bring back, from "tigris objects list-versions --deleted" **(required)** |
|
|
1292
|
+
| `--format` | Output format (default: table) |
|
|
1293
|
+
|
|
1294
|
+
**Examples:**
|
|
1295
|
+
```bash
|
|
1296
|
+
tigris objects restore-deleted my-bucket report.pdf --version-id 1787749774802410496
|
|
1297
|
+
tigris objects restore-deleted t3://my-bucket/report.pdf --version-id 1787749774802410496
|
|
1298
|
+
```
|
|
1299
|
+
|
|
1300
|
+
#### `tigris objects purge` (pg)
|
|
1301
|
+
|
|
1302
|
+
Permanently destroy a soft-deleted object version before its retention period expires. This cannot be undone — the version can no longer be restored with "tigris objects restore-deleted"
|
|
1303
|
+
|
|
1304
|
+
```
|
|
1305
|
+
tigris objects purge <bucket> [key] [flags]
|
|
1306
|
+
```
|
|
1307
|
+
|
|
1308
|
+
| Flag | Description |
|
|
1309
|
+
|------|-------------|
|
|
1310
|
+
| `--version-id` | The soft-deleted version to destroy, from "tigris objects list-versions --deleted" **(required)** |
|
|
1311
|
+
| `--force` | Skip confirmation prompts (alias for --yes) |
|
|
1312
|
+
| `--format` | Output format (default: table) |
|
|
1313
|
+
|
|
1314
|
+
**Examples:**
|
|
1315
|
+
```bash
|
|
1316
|
+
tigris objects purge my-bucket report.pdf --version-id 1787749774802410496 --yes
|
|
1317
|
+
tigris objects purge t3://my-bucket/report.pdf --version-id 1787749774802410496 --yes
|
|
1318
|
+
```
|
|
1319
|
+
|
|
1243
1320
|
### `tigris access-keys` (keys)
|
|
1244
1321
|
|
|
1245
1322
|
Create, list, inspect, delete, and assign roles to access keys. Access keys are credentials used for programmatic API access
|
|
@@ -1250,7 +1327,7 @@ Create, list, inspect, delete, and assign roles to access keys. Access keys are
|
|
|
1250
1327
|
| `tigris access-keys create` (c) | Create a new access key with the given name. Returns the key ID and secret (shown only once) |
|
|
1251
1328
|
| `tigris access-keys delete` (d) | Permanently delete an access key by its ID. This revokes all access immediately |
|
|
1252
1329
|
| `tigris access-keys get` (g) | Show details for an access key including its name, creation date, and assigned bucket roles |
|
|
1253
|
-
| `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 |
|
|
1330
|
+
| `tigris access-keys assign` (a) | Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor, ReadWrite, or ReadOnly), or use --admin for org-wide access |
|
|
1254
1331
|
| `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) |
|
|
1255
1332
|
| `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 |
|
|
1256
1333
|
| `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 |
|
|
@@ -1320,7 +1397,7 @@ tigris access-keys get tid_AaBbCcDdEeFf
|
|
|
1320
1397
|
|
|
1321
1398
|
#### `tigris access-keys assign` (a)
|
|
1322
1399
|
|
|
1323
|
-
Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor or ReadOnly), or use --admin for org-wide access
|
|
1400
|
+
Assign per-bucket roles to an access key. Pair each --bucket with a --role (Editor, ReadWrite, or ReadOnly), or use --admin for org-wide access
|
|
1324
1401
|
|
|
1325
1402
|
```
|
|
1326
1403
|
tigris access-keys assign <id> [flags]
|
|
@@ -1667,7 +1744,7 @@ tigris iam users update-role [resource] [flags]
|
|
|
1667
1744
|
|
|
1668
1745
|
| Flag | Description |
|
|
1669
1746
|
|------|-------------|
|
|
1670
|
-
| `-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 |
|
|
1747
|
+
| `-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 **(required)** |
|
|
1671
1748
|
|
|
1672
1749
|
**Examples:**
|
|
1673
1750
|
```bash
|
package/dist/auth/iam.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as b,b as c}from"../chunk-
|
|
1
|
+
import{a as b,b as c}from"../chunk-GZMEHP36.js";import"../chunk-5AGM4LUA.js";import"../chunk-6TTEDYLD.js";import"../chunk-D7WXNA2O.js";import"../chunk-NI4EYBQH.js";import"../chunk-7Q44GQ2Y.js";import"../chunk-DV3LCXRH.js";import"../chunk-Z54TMLIH.js";import"../chunk-BMWWPXMU.js";import"../chunk-APJUJ6TW.js";import"../chunk-QPUL2AAI.js";import"../chunk-J3MAV7JB.js";import{a}from"../chunk-KJBSIIND.js";import"../chunk-F4AGJWCK.js";export{c as getIAMConfig,b as getOAuthIAMConfig,a as isFlyOrganization};
|
package/dist/auth/provider.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g}from"../chunk-5AGM4LUA.js";import"../chunk-QPUL2AAI.js";import"../chunk-J3MAV7JB.js";import"../chunk-F4AGJWCK.js";export{c as getEnvCredentials,b as getEnvForcePathStyle,e as getStorageConfig,f as getStorageConfigWithOrg,a as getTigrisConfig,g as requireOAuthLogin,d as resolveAuthMethod};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as o,b as a,c as g}from"./chunk-
|
|
1
|
+
import{a as o,b as a,c as g}from"./chunk-QPUL2AAI.js";import{a as A,c as I}from"./chunk-J3MAV7JB.js";import{i as c,j as l,k as y,l as i,p as d}from"./chunk-F4AGJWCK.js";import{fromIni as S}from"@aws-sdk/credential-providers";function _(){return process.env.AWS_ENDPOINT_URL_S3||process.env.AWS_ENDPOINT_URL_IAM?{endpoint:process.env.AWS_ENDPOINT_URL_S3||o,iamEndpoint:process.env.AWS_ENDPOINT_URL_IAM||a,mgmtEndpoint:process.env.AWS_ENDPOINT_URL_MGMT||g}:{endpoint:process.env.TIGRIS_STORAGE_ENDPOINT||o,iamEndpoint:process.env.TIGRIS_IAM_ENDPOINT||a,mgmtEndpoint:process.env.TIGRIS_MGMT_ENDPOINT||g}}function K(){let e=process.env.TIGRIS_FORCE_PATH_STYLE?.trim().toLowerCase();return e==="1"||e==="true"||e==="yes"||e==="on"}var r=_(),T=A();function p(){if(process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY){let e=process.env.AWS_ENDPOINT_URL_S3||o;return{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,endpoint:e,source:"aws"}}if(process.env.TIGRIS_STORAGE_ACCESS_KEY_ID&&process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY){let e=process.env.TIGRIS_STORAGE_ENDPOINT||o;return{accessKeyId:process.env.TIGRIS_STORAGE_ACCESS_KEY_ID,secretAccessKey:process.env.TIGRIS_STORAGE_SECRET_ACCESS_KEY,endpoint:e,source:"tigris"}}return null}var f=!1;async function C(){if(f||!process.stdin.isTTY)return!1;f=!0,console.log(`Not authenticated. Starting login...
|
|
2
2
|
`);let{default:e}=await import("./lib/login/select.js");return await e({}),console.log(),!0}async function h(){if(l()){let s=process.env.AWS_PROFILE||"default",u=await S({profile:s})();return{type:"aws-profile",profile:s,accessKeyId:u.accessKeyId,secretAccessKey:u.secretAccessKey}}let e=p();if(e)return{type:"environment",accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,source:e.source};let t=d();if(t==="oauth")return{type:"oauth"};if(t==="credentials"){let s=i();if(s)return{type:"credentials",accessKeyId:s.accessKeyId,secretAccessKey:s.secretAccessKey}}let n=i();return n?{type:"configured",accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey}:{type:"none"}}async function m(e){let t=await E(e);return K()?{...t,forcePathStyle:!0}:t}async function E(e){let t=await h();switch(t.type){case"aws-profile":{let n=await y(t.profile);return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:n.endpoint||r.endpoint||o,iamEndpoint:n.iamEndpoint||r.iamEndpoint}}case"oauth":{let n=I(),s=c();if(!s)throw new Error('No organization selected. Please run "tigris orgs select" first.');return{sessionToken:await n.getAccessToken(),accessKeyId:"",secretAccessKey:"",...e?.withCredentialProvider&&{credentialProvider:async()=>({accessKeyId:"",secretAccessKey:"",sessionToken:await n.getAccessToken(),expiration:new Date(Date.now()+600*1e3)})},endpoint:r.endpoint,organizationId:s,iamEndpoint:r.iamEndpoint,authDomain:T.domain}}case"credentials":{let n=c();return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:i()?.endpoint||o,organizationId:n??void 0,iamEndpoint:r.iamEndpoint}}case"environment":return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:p()?.endpoint||o};case"configured":{let n=c();return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,endpoint:i()?.endpoint||o,organizationId:n??void 0,iamEndpoint:r.iamEndpoint}}case"none":{if(await C())return E(e);throw new Error('Not authenticated. Please run "tigris login" or "tigris configure" first.')}}}async function O(){let e=await m(),t=c();return{...e,...t&&!e.organizationId?{organizationId:t}:{}}}function R(e){return d()==="oauth"?!1:(p()||i()?console.log(`You are using access key credentials, which belong to a single organization.
|
|
3
3
|
${e} is only available with OAuth login.
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,b as o}from"./chunk-
|
|
1
|
+
import{a as d,b as o}from"./chunk-IUIKP2LU.js";import{a}from"./chunk-S6KFKBMY.js";import{b as i}from"./chunk-6TTEDYLD.js";import{getBucketInfo as l,setBucketLifecycle as g}from"@tigrisdata/storage";var f=["STANDARD_IA","GLACIER","GLACIER_IR"];function c(e){return f.includes(e)}function u(e){return/^\d{4}-\d{2}-\d{2}/.test(e)&&!Number.isNaN(new Date(e).getTime())}function C(e){return{prefix:a(e,["prefix"]),storageClass:a(e,["storage-class","storageClass"]),days:a(e,["days"]),date:a(e,["date"]),expireDays:a(e,["expire-days","expireDays"]),expireDate:a(e,["expire-date","expireDate"]),enable:a(e,["enable"]),disable:a(e,["disable"])}}function p(e,{requireStorageClassForTiming:r=!0}={}){if(e.enable&&e.disable)return"Cannot use both --enable and --disable";if(r&&(e.days!==void 0||e.date!==void 0)&&!e.storageClass)return"--storage-class is required when setting --days or --date";if(e.storageClass&&!c(e.storageClass))return`--storage-class must be one of: ${f.join(", ")} (STANDARD is not a valid transition target)`;if(e.days!==void 0&&e.date!==void 0)return"Cannot specify both --days and --date";if(e.days!==void 0&&(Number.isNaN(Number(e.days))||Number(e.days)<=0))return"--days must be a positive number";if(e.date!==void 0&&!u(e.date))return"--date must be a valid ISO-8601 date (e.g. 2026-06-01)";if(e.expireDays!==void 0&&e.expireDate!==void 0)return"Cannot specify both --expire-days and --expire-date";if(e.expireDays!==void 0&&(Number.isNaN(Number(e.expireDays))||Number(e.expireDays)<=0))return"--expire-days must be a positive number";if(e.expireDate!==void 0&&!u(e.expireDate))return"--expire-date must be a valid ISO-8601 date (e.g. 2026-06-01)";if(e.prefix!==void 0&&e.prefix==="")return"--prefix cannot be empty"}function D(e){let r={};return e.storageClass&&(r.storageClass=e.storageClass),e.days!==void 0?(r.days=Number(e.days),r.date=void 0):e.date!==void 0&&(r.date=e.date,r.days=void 0),r}function R(e){if(e.expireDays!==void 0)return{days:Number(e.expireDays),date:void 0};if(e.expireDate!==void 0)return{date:e.expireDate,days:void 0}}function I(e){if(e.enable)return!0;if(e.disable)return!1}async function N(e,r,n){let{data:t,error:s}=await l(r,{config:n});return s&&i(e,s),t?.settings.lifecycleRules??[]}async function T(e,r,n,t){let{error:s}=await g(r,{lifecycleRules:n,config:t});s&&i(e,s)}function S(e){return d(e)??"-"}function A(e){return o(e)??"-"}export{C as a,p as b,D as c,R as d,I as e,N as f,T as g,S as h,A as i};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as r,d as a}from"./chunk-D7WXNA2O.js";import{c}from"./chunk-NI4EYBQH.js";import{d as m}from"./chunk-
|
|
1
|
+
import{a as r,d as a}from"./chunk-D7WXNA2O.js";import{c}from"./chunk-NI4EYBQH.js";import{d as m}from"./chunk-7Q44GQ2Y.js";import{b as i}from"./chunk-DV3LCXRH.js";function p(){return globalThis.__TIGRIS_JSON_MODE===!0}function g(){return process.stderr.isTTY===!0}function f(){return process.stdout.isTTY===!0}function u(t,o,n){let e=i(t);if(p()){let s={error:{message:e.message,code:e.exitCode,category:e.category}};e.nextActions.length>0&&(s.nextActions=e.nextActions),console.error(JSON.stringify(s))}else if(o||console.error(`
|
|
2
2
|
Error: ${e.message}`),g()&&e.nextActions.length>0){console.error(`
|
|
3
3
|
Next steps:`);for(let s of e.nextActions)console.error(` \u2192 ${s.command} ${s.description}`)}n?.skipCapture||m(t,{category:e.category,command:o?.command,exitCode:e.exitCode}),process.exit(e.exitCode)}function M(t,o){let n=o instanceof Error?o.message:String(o);a(t,n),u(o,t)}function x(t,o){let n=c(t.command,t.operation);return n?.messages?.nextActions?n.messages.nextActions.map(e=>({command:r(e.command,o),description:r(e.description,o)})):[]}function T(t,o){if(!f()||p())return;let n=x(t,o);if(n.length!==0){console.log(`
|
|
4
4
|
Next steps:`);for(let e of n)console.log(` \u2192 ${e.command} ${e.description}`)}}export{u as a,M as b,x as c,T as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as p,b as a}from"./chunk-G4OJTPSI.js";import{a as r}from"./chunk-
|
|
1
|
+
import{a as p,b as a}from"./chunk-G4OJTPSI.js";import{a as r}from"./chunk-Z54TMLIH.js";import{b as f}from"./chunk-BMWWPXMU.js";import{e as c,f as I,h as _,i as g}from"./chunk-APJUJ6TW.js";import{j as l,k as m}from"./chunk-QPUL2AAI.js";import{request as O}from"http";import{request as v}from"https";var E="/i/v0/e/",N=1e3;function y(){return process.env.TIGRIS_POSTHOG_KEY?.trim()||l}function R(){return process.env.TIGRIS_POSTHOG_HOST?.trim()||m}var C=["CI","CONTINUOUS_INTEGRATION","BUILD_NUMBER","GITHUB_ACTIONS","GITLAB_CI","CIRCLECI","TRAVIS","JENKINS_URL","BUILDKITE","TEAMCITY_VERSION","TF_BUILD"];function w(){return C.some(e=>{let t=process.env[e];return t!==void 0&&t!==""&&t!=="0"&&t.toLowerCase()!=="false"})}var k=/^[a-z0-9][a-z0-9-]*$/i;function M(e){let t=new Set;for(let o of e){if(o==="--")break;if(!o.startsWith("-")||o==="-")continue;let n=o.split("=")[0].replace(/^--?/,"");k.test(n)&&t.add(n)}return[...t].sort()}function b(e){try{let t=e.split(".")[1];if(!t)return;let n=JSON.parse(Buffer.from(t,"base64url").toString("utf8"))?.email;return typeof n=="string"&&n.length>0?n:void 0}catch{return}}async function h(){let e=I(),t={distinctId:e,anonymousId:e,isIdentified:!1,authMethod:"none"};try{let o=await import("./auth/storage.js"),n=await o.getTokens(),i=n?.idToken?b(n.idToken):void 0;return{distinctId:i??e,anonymousId:e,isIdentified:i!==void 0,authMethod:o.getLoginMethod()??"none",organizationId:o.getSelectedOrganization()??void 0}}catch{return t}}function T(){return{$lib:"tigris-cli",$lib_version:r,interface:"cli",cli_version:r,runtime:p()?"binary":"node",install_method:a(),node_version:process.version,os:process.platform,arch:process.arch,is_ci:w(),is_tty:process.stdout.isTTY===!0}}function S(e){return new Promise(t=>{let o=!1,n=()=>{o||(o=!0,t())};try{let i=new URL(E,R()),u=JSON.stringify(e),s=(i.protocol==="http:"?O:v)({protocol:i.protocol,hostname:i.hostname,port:i.port||void 0,path:i.pathname,method:"POST",timeout:N,headers:{"content-type":"application/json","content-length":Buffer.byteLength(u),"user-agent":`tigris-cli/${r}`}},d=>{d.resume(),d.on("end",n),d.on("error",n)});s.on("error",n),s.on("timeout",()=>{s.destroy(),n()}),s.end(u)}catch{n()}})}var L=`
|
|
2
2
|
Tigris CLI collects usage analytics (which commands you run and their
|
|
3
3
|
arguments, CLI version, OS) and error reports, to help us decide what to
|
|
4
4
|
improve. Credentials \u2014 access keys, secrets, tokens \u2014 are never collected.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c}from"./chunk-
|
|
1
|
+
import{a as c}from"./chunk-Z54TMLIH.js";import{a as u,b as y}from"./chunk-BMWWPXMU.js";import{e as l}from"./chunk-APJUJ6TW.js";import{i as m}from"./chunk-QPUL2AAI.js";import*as t from"@sentry/node";var g=new Set(["general","network"]),p=!1,a=!1;function S(){return process.env.TIGRIS_SENTRY_DSN?.trim()||m}var E=process.env.TIGRIS_ENV==="development"?"development":"production";function h(r){let e=r[0];return e&&!e.startsWith("-")?e:void 0}var T=new Set(["OnUncaughtException","OnUnhandledRejection","LocalVariables","LocalVariablesAsync","Console","ChildProcess"]);function f(r){if(typeof r=="string")return u(r);if(Array.isArray(r))return r.map(f);if(r!==null&&typeof r=="object"){let e=r;for(let n of Object.keys(e))e[n]=f(e[n]);return e}return r}function R(r){return r.server_name=void 0,f(r)}function w(){if(p)return;p=!0;let r=S();if(!(!r||l()))try{t.init({dsn:r,release:`@tigrisdata/cli@${c}`,environment:E,tracesSampleRate:0,sendDefaultPii:!1,integrations:i=>i.filter(s=>!T.has(s.name)),beforeSend:R}),t.setContext("cli",{version:c,node:process.version,platform:process.platform,arch:process.arch});let e=process.argv.slice(2);t.setContext("invocation",{command:y(e).join(" ")});let n=h(e);n&&t.setTag("command",n),a=!0}catch{a=!1}}function A(r,e={}){if(!a)return;let{category:n,command:i,crash:s,exitCode:d}=e;if(!(!s&&n&&!g.has(n)))try{t.captureException(r,o=>(o.setTag("crash",s===!0),n&&o.setTag("error.category",n),i&&o.setTag("command",i),d!==void 0&&o.setTag("exit_code",d),o))}catch{}}async function I(r=2e3){if(a)try{await t.flush(r)}catch{}}export{h as a,R as b,w as c,A as d,I as e};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as h}from"./chunk-S6KFKBMY.js";import{f as c}from"./chunk-
|
|
1
|
+
import{b as h}from"./chunk-S6KFKBMY.js";import{f as c}from"./chunk-7BUC7A7V.js";import{a as d,d as e}from"./chunk-6TTEDYLD.js";import{b as l,c as r,d as f,g as m,j as p}from"./chunk-D7WXNA2O.js";import{c as u}from"./chunk-J3MAV7JB.js";import{h as g,r as s}from"./chunk-F4AGJWCK.js";var o=p("login","oauth");async function O(w={}){l(o);let a=h(w);try{let t=u();await t.login({onDeviceCode:(i,y)=>{console.log(`
|
|
2
2
|
Your confirmation code: ${i}
|
|
3
3
|
`),console.log(`If browser doesn't open, visit: ${y}`)},onWaiting:()=>console.log(`
|
|
4
4
|
Waiting for authentication...`)}),await s();let n=await t.getOrganizations();if(n.length>0){let i=n[0];await g(i.id),a==="json"&&console.log(JSON.stringify({action:"logged_in"})),r(o,{org:i.name}),e(o),n.length>1&&m(o,{count:n.length})}else a==="json"&&console.log(JSON.stringify({action:"logged_in"})),r(o,{org:"none"}),e(o);c()}catch(t){f(o),d(t,o)}}var j=O;export{O as a,j as b};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as o,d as a}from"./chunk-
|
|
1
|
+
import{a as o,d as a}from"./chunk-5AGM4LUA.js";import{b as i}from"./chunk-6TTEDYLD.js";import{c as r}from"./chunk-J3MAV7JB.js";import{i as n,p as s}from"./chunk-F4AGJWCK.js";async function d(e){s()!=="oauth"&&i(e,`This operation requires OAuth login.
|
|
2
2
|
Run "tigris login oauth" first.`);let t=r();await t.isAuthenticated()||i(e,'Not authenticated. Run "tigris login oauth" first.');let c=n(),{iamEndpoint:g,mgmtEndpoint:u}=o();return{sessionToken:await t.getAccessToken(),organizationId:c??void 0,iamEndpoint:g,mgmtEndpoint:u}}async function A(e){let t=await a();switch(t.type){case"oauth":return d(e);case"aws-profile":case"credentials":case"environment":case"configured":return{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,organizationId:n()??void 0,iamEndpoint:o().iamEndpoint};case"none":i(e,'Not authenticated. Run "tigris login" or "tigris configure" first.')}}export{d as a,A as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n}from"./chunk-S77OAN6Y.js";import{b as s}from"./chunk-
|
|
1
|
+
import{a as n}from"./chunk-S77OAN6Y.js";import{b as s}from"./chunk-6TTEDYLD.js";import{e as o}from"./chunk-D7WXNA2O.js";import m from"enquirer";import{listPolicies as f}from"@tigrisdata/iam";var{prompt:p}=m;async function h(a,t,c="Select a policy:"){let{data:e,error:r}=await f({config:a});if(r&&s(t,r),!e.policies||e.policies.length===0){o(t);return}n("Provide the policy ARN as a positional argument");let{selected:l}=await p({type:"select",name:"selected",message:c,choices:e.policies.map(i=>({name:i.resource,message:`${i.name} (${i.resource})`}))});return l}export{h as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-AFM3TY2D.js";import{b as r}from"./chunk-N3Y6RFSK.js";function a(e){if(e.storageClass)return e.days!==void 0?`${e.storageClass} after ${e.days}d`:e.date!==void 0?`${e.storageClass} on ${e.date}`:e.storageClass}function f(e){if(e.expiration){if(e.expiration.days!==void 0)return`${e.expiration.days}d`;if(e.expiration.date!==void 0)return e.expiration.date}}function u(e){let i=[],t=a(e);t&&i.push(t);let s=f(e);s&&i.push(e.expiration?.days!==void 0?`expire after ${s}`:`expire on ${s}`);let n=[];e.filter?.prefix&&n.push(`prefix=${e.filter.prefix}`),e.enabled===!1&&n.push("disabled");let o=i.join(", ");return n.length>0?`${o} (${n.join(", ")})`:o}function p(e){let i=[{label:"Number of Objects",value:e.sizeInfo.numberOfObjects?.toString()??"N/A"},{label:"Total Size",value:e.sizeInfo.size!==void 0?l(e.sizeInfo.size):"N/A"},{label:"All Versions Count",value:e.sizeInfo.numberOfObjectsAllVersions?.toString()??"N/A"},{label:"Default Tier",value:e.settings.defaultTier},{label:"Locations",value:r(e.locations)},{label:"Snapshots Enabled",value:e.isSnapshotEnabled?"Yes":"No"},{label:"Delete Protection",value:e.settings.deleteProtection?"Yes":"No"},{label:"Soft Delete",value:e.settings.softDelete.enabled?`Enabled (${e.settings.softDelete.retentionDays} day retention)`:"Disabled"},{label:"Allow Object ACL",value:e.settings.allowObjectAcl?"Yes":"No"},{label:"Custom Domain",value:e.settings.customDomain??"None"},{label:"Has Forks",value:e.forkInfo?.hasChildren?"Yes":"No"}];e.forkInfo?.parents?.length&&(i.push({label:"Forked From",value:e.forkInfo.parents[0].bucketName}),i.push({label:"Fork Snapshot",value:e.forkInfo.parents[0].snapshot})),e.settings.lifecycleRules?.length&&i.push({label:"Lifecycle Rules",value:e.settings.lifecycleRules.map(n=>u(n)).join(", ")}),e.settings.additionalHeaders&&i.push({label:"Additional Headers",value:Object.entries(e.settings.additionalHeaders).map(([n,o])=>`${n}: ${o}`).join(", ")}),e.settings.corsRules.length&&i.push({label:"CORS Rules",value:`${e.settings.corsRules.length} rule(s)`});let t=e.settings.shares,s=[...t.organization?[`Everyone in organization (${t.organization.role})`]:[],...t.team.map(n=>`${n.teamId} (${n.role})`),...t.user.map(n=>`${n.userId} (${n.role})`)];return s.length&&i.push({label:"Shared With",value:s.join(", ")}),e.settings.notifications&&i.push({label:"Notifications",value:e.settings.notifications.enabled!==!1?"Enabled":"Disabled"}),e.settings.dataMigration&&i.push({label:"Data Migration",value:e.settings.dataMigration.endpoint?`${e.settings.dataMigration.name??"N/A"} (${e.settings.dataMigration.endpoint})`:e.settings.dataMigration.name??"Configured"}),i}export{a,f as b,p as c};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{b as g}from"./chunk-G4OJTPSI.js";import{a as p}from"./chunk-Z54TMLIH.js";import{d as m,e as f,f as d,g as h}from"./chunk-QPUL2AAI.js";import{mkdirSync as I,readFileSync as S,writeFileSync as U}from"fs";import b from"https";import{homedir as C}from"os";import{join as N}from"path";var _=N(C(),".tigris","update-check.json");function E(){try{let r=S(_,"utf-8"),o=JSON.parse(r);return typeof o.latestVersion=="string"&&typeof o.lastChecked=="number"?o:null}catch{return null}}function T(r){try{I(N(C(),".tigris"),{recursive:!0}),U(_,JSON.stringify(r),"utf-8")}catch{}}function w(r,o){let i=s=>{let n=s.startsWith("v")?s.slice(1):s,c=null,a=n.indexOf("-");a!==-1&&(c=n.slice(a+1),n=n.slice(0,a));let l=n.split(".");if(l.length!==3)return null;let u=l.map(Number);return u.some(Number.isNaN)?null:{major:u[0],minor:u[1],patch:u[2],prerelease:c}},t=i(r),e=i(o);return!t||!e?!1:e.major>t.major?!0:e.major<t.major?!1:e.minor>t.minor?!0:e.minor<t.minor?!1:e.patch>t.patch?!0:e.patch<t.patch?!1:t.prerelease&&!e.prerelease?!0:(!t.prerelease&&e.prerelease,!1)}function D(){switch(g()){case"npm":return"npm install -g @tigrisdata/cli";case"homebrew":return"brew upgrade tigris";default:return process.platform==="win32"?`irm ${f}/install.ps1 | iex`:`curl -fsSL ${f}/install.sh | sh`}}function y(r={}){return new Promise((o,i)=>{let t=b.get(m,{timeout:1e4},e=>{let s="";e.on("data",n=>{s+=n}),e.on("end",()=>{try{let n=JSON.parse(s);typeof n.version=="string"?(T({...E(),latestVersion:n.version,lastChecked:Date.now()}),o(n.version)):i(new Error("Unexpected registry response"))}catch{i(new Error("Failed to parse registry response"))}})});t.on("error",e=>{i(e)}),t.on("timeout",()=>{t.destroy(),i(new Error("Request timed out"))}),r.unref&&t.on("socket",e=>{e.unref()}),t.end()})}function k(){y({unref:!0}).catch(()=>{})}function M(){if(process.env.TIGRIS_NO_UPDATE_CHECK==="1"||!process.stdout.isTTY)return;let r=E(),o=Number(process.env.TIGRIS_UPDATE_NOTIFY_INTERVAL_MS)||36e5;if(r&&w(p,r.latestVersion)&&(!r.lastNotified||Date.now()-r.lastNotified>o)){let t=`Update available: ${p} \u2192 ${r.latestVersion}`,e='Run "tigris update" to upgrade.',s=Math.max(t.length,e.length)+4,n=`\u250C${"\u2500".repeat(s-2)}\u2510`,c=`\u2514${"\u2500".repeat(s-2)}\u2518`,a=l=>`\u2502 ${l.padEnd(s-4)} \u2502`;console.log(`
|
|
2
|
+
${n}
|
|
3
|
+
${a("")}
|
|
4
|
+
${a(t)}
|
|
5
|
+
${a(e)}
|
|
6
|
+
${a("")}
|
|
7
|
+
${c}
|
|
8
|
+
`),T({...r,lastNotified:Date.now()})}let i=Number(process.env.TIGRIS_UPDATE_CHECK_INTERVAL_MS)||216e5;(!r||Date.now()-r.lastChecked>i)&&k()}export{E as a,w as b,D as c,y as d,M as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as n}from"./chunk-
|
|
1
|
+
import{b as n}from"./chunk-6TTEDYLD.js";function o(s,e){if(e===void 0)return;let t=(Array.isArray(e)?e:[e]).map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0);return t.length===0&&n(s,"--members requires at least one email address"),t}export{o as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t="https://t3.storage.dev",o="https://iam.storageapi.dev",s="https://mgmt.storageapi.dev",e="https://registry.npmjs.org/@tigrisdata/cli/latest",p="https://get.t3.storage.dev",_=216e5,r=36e5,T="TIGRIS_NO_BANNER",E="https://c3a84c6a2811c557d70e42412cda4ffa@o4507410155896832.ingest.us.sentry.io/4511767771545600",N="phc_6a2zd9w9hGzIqYl527bL4dXk3Wz8J9pEHyXTwP1hHq4",c="https://ph.tigrisdata.com";export{t as a,o as b,s as c,e as d,p as e,_ as f,r as g,T as h,E as i,N as j,c as k};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{e as x}from"./chunk-
|
|
1
|
+
import{e as x}from"./chunk-7BUC7A7V.js";import{a as S}from"./chunk-6TTEDYLD.js";import{h as C}from"./chunk-D7WXNA2O.js";import{c as b,d as k,e as E}from"./chunk-7Q44GQ2Y.js";import{b as v}from"./chunk-DV3LCXRH.js";import{Command as V,Option as H}from"commander";function y(n,o,e,a,t){let r=n[n.length-1],i=typeof r=="object"&&r!==null&&"args"in r?r.args:n.filter(m=>typeof m=="string");if(i.length===0)return i;let l=i[0],d=(o.commands??[]).filter(m=>g(m,[...e,m.name],t));if(!new Set(d.flatMap(m=>[m.name,...Array.isArray(m.alias)?m.alias:m.alias?[m.alias]:[]])).has(l)){let m=d.map(u=>u.name),p=e.length>0?`'${l}' for '${e.join(" ")}'`:`'${l}'`;console.error(`Unknown command ${p}.`),m.length>0&&console.error(`Available commands: ${m.join(", ")}`);let f=e.length>0?`${a.name} ${e.join(" ")} help`:`${a.name} help`;console.error(`
|
|
2
2
|
Run "${f}" for usage.`),process.exit(1)}return i}function Z(){b();let n=!1,o=async e=>{n&&process.exit(1),n=!0,k(e,{crash:!0,exitCode:v(e).exitCode}),await E(),S(e,void 0,{skipCapture:!0})};process.on("unhandledRejection",e=>{(e===""||e===void 0)&&(console.error(`
|
|
3
3
|
Operation cancelled`),process.exit(1)),o(e)}),process.on("uncaughtException",e=>{o(e)})}function T(n){return/^[a-zA-Z0-9_-]+$/.test(n)}function W(n){let o;n.type==="positional"?o=` ${n.name}`:(o=` --${n.name}`,n.alias&&typeof n.alias=="string"&&(o+=n.alias.length===1?`, -${n.alias}`:`, --${n.alias}`));let e=26,a=o.length>=e?`${o} `:o.padEnd(e),t=n.description;return n.options&&(Array.isArray(n.options)&&typeof n.options[0]=="string"?t+=` (options: ${n.options.join(", ")})`:t+=` (options: ${n.options.map(r=>r.value).join(", ")})`),n.default&&(t+=` [default: ${n.default}]`),n.required&&(t+=" [required]"),n.deprecated&&(t+=n.replaced_by?` [deprecated: use ${n.replaced_by}]`:" [deprecated]"),n["required-when"]&&(t+=` [required when: ${n["required-when"]}]`),n.multiple&&(t+=" [multiple values: comma-separated]"),n.type==="positional"&&(t+=" [positional argument]"),n.examples&&n.examples.length>0&&(t+=` (examples: ${n.examples.join(", ")})`),`${a}${t}`}function g(n,o,e){return n.removed||e(o)?!0:n.commands?n.commands.some(a=>g(a,[...o,a.name],e)):!1}function D(n,o){let e=o?` Use ${o} instead.`:" See the changelog for migration guidance.";console.error(`${n} was removed in this version.${e}`),process.exit(1)}function j(n,o){if(n)for(let e of n){if(!e.removed)continue;h(o,e.name,n)!==void 0&&D(`--${e.name}`,e.replaced_by)}}function I(n,o,e,a){let t=e.join(" ");if(console.log(`
|
|
4
4
|
${n.name} ${t} - ${o.description??""}
|
|
5
5
|
`),o.commands&&o.commands.length>0){let l=o.commands.filter(s=>!s.removed&&g(s,[...e,s.name],a));l.length>0&&(console.log("Commands:"),l.forEach(s=>{let d=` ${s.name}`;if(s.alias){let m=Array.isArray(s.alias)?s.alias:[s.alias];d+=` (${m.join(", ")})`}let c=d.padEnd(24);console.log(`${c}${s.description??""}`)}),console.log())}let r=n.definitions?.global_arguments??[],i=w(r,o.arguments).filter(l=>!l.removed);i.length>0&&(console.log("Arguments:"),i.forEach(l=>{console.log(W(l))}),console.log()),o.examples&&o.examples.length>0&&(console.log("Examples:"),o.examples.forEach(l=>{console.log(` ${l}`)}),console.log()),o.commands&&o.commands.length>0&&console.log(`Use "${n.name} ${t} <command> help" for more information about a command.`)}function R(n,o,e){console.log(`Tigris CLI Version: ${o}
|
|
6
6
|
`),console.log(`Usage: tigris [command] [options]
|
|
7
7
|
`),console.log("Commands:"),n.commands.filter(t=>!t.removed&&g(t,[t.name],e)).forEach(t=>{let r=` ${t.name}`;if(t.alias){let l=Array.isArray(t.alias)?t.alias:[t.alias];r+=` (${l.join(", ")})`}let i=r.padEnd(24);console.log(`${i}${t.description??""}`)}),console.log(`
|
|
8
|
-
Use "${n.name} <command> help" for more information about a command.`)}function w(n,o){let e=o??[],a=new Set(e.map(i=>i.name)),t=new Set(e.filter(i=>i.alias).map(i=>i.alias)),r=n.filter(i=>!a.has(i.name)&&!(i.alias&&t.has(i.alias)));return[...e,...r]}function _(n,o=[]){o.forEach(e=>{if(e.type==="positional"){let a=e.required?`<${e.name}>`:`[${e.name}]`;n.argument(a,e.description)}else{let a=e.alias&&typeof e.alias=="string"&&e.alias.length===1,t=e.alias&&typeof e.alias=="string"&&e.alias.length>1,r=a?`-${e.alias}, --${e.name}`:t?`--${e.alias}, --${e.name}`:`--${e.name}`;if(e.type==="flag"||(e.type==="boolean"?r+=" [value]":e.options?r+=" <value>":r+=e.required||e["required-when"]?" <value>":" [value]"),e.removed)n.addOption(new H(r,e.description??"").hideHelp());else{let i=e.description??"";if(e.deprecated){let l=e.replaced_by?` Use ${e.replaced_by} instead.`:"";i=`(deprecated) ${i}${l}`}n.option(r,i,e.default)}}})}function G(n){return n.replace(/-([a-z])/g,(o,e)=>e.toUpperCase())}function h(n,o,e){if(e){let t=e.find(r=>r.name===o);if(t?.alias&&typeof t.alias=="string"){let r=t.alias.charAt(0).toUpperCase()+t.alias.slice(1);if(n[r]!==void 0)return n[r]}}let a=[o,o.replace(/-/g,""),o.replace(/-/g,"").toLowerCase(),o.charAt(0).toUpperCase(),G(o)];for(let t of a)if(n[t]!==void 0)return n[t]}function q(n,o){for(let e of n){if(e["required-when"]){let[a,t]=e["required-when"].split("="),r=h(o,a,n),i=h(o,e.name,n);if(r===t&&!i)return console.error(`--${e.name} is required when --${a} is ${t}`),!1}if(e.required&&!h(o,e.name,n))return console.error(`--${e.name} is required`),!1}return!0}function L(n,o,e){let a;"optsWithGlobals"in e&&typeof e.optsWithGlobals=="function"?a=e.optsWithGlobals():"opts"in e&&typeof e.opts=="function"?a=e.opts():a=e;let t={...a};return n.filter(i=>i.type==="positional").forEach((i,l)=>{o[l]!==void 0&&(i.multiple?t[i.name]=o[l].split(",").map(s=>s.trim()):t[i.name]=o[l])}),n.forEach(i=>{i.multiple&&i.type!=="positional"&&t[i.name]&&typeof t[i.name]=="string"&&(t[i.name]=t[i.name].split(",").map(l=>l.trim()))}),t}async function U(n,o,e=[],a={}){(a.json||a.format==="json")&&(globalThis.__TIGRIS_JSON_MODE=!0);let{module:t,error:r}=await n(o);(r||!t)&&(console.error(r),process.exit(1));let i=o[o.length-1],l=t.default||t[i];typeof l!="function"&&(console.error(`Command not implemented: ${o.join(" ")}`),process.exit(1)),x(o),await l({...a,_positional:e})}function M(n,o,e,a=[]){let{specs:t,loadModule:r,hasImplementation:i}=n,l=t.definitions?.global_arguments??[];for(let s of e){T(s.name)||(console.error(`Invalid command name "${s.name}": only alphanumeric, hyphens, and underscores allowed`),process.exit(1));let d=[...a,s.name];if(!g(s,d,i))continue;let c=o.command(s.name,s.removed?{hidden:!0}:void 0).description(s.description??"");if(s.alias&&(Array.isArray(s.alias)?s.alias:[s.alias]).forEach(p=>{c.alias(p)}),s.removed){c.allowUnknownOption(!0),c.allowExcessArguments(!0),c.action(()=>{D(`${t.name} ${d.join(" ")}`,s.replaced_by)});continue}if(s.commands&&s.commands.length>0)if(M(n,c,s.commands,d),s.default){let m=s.commands.find(p=>p.name===s.default);if(m){let p=w(l,[...s.arguments||[],...m.arguments||[]]);_(c,p),c.allowExcessArguments(!0),c.action(async(...f)=>{let u=f.pop(),A=y([u],s,d,t,i),$=L(p,A,u);p.length>0&&!q(p,$)
|
|
8
|
+
Use "${n.name} <command> help" for more information about a command.`)}function w(n,o){let e=o??[],a=new Set(e.map(i=>i.name)),t=new Set(e.filter(i=>i.alias).map(i=>i.alias)),r=n.filter(i=>!a.has(i.name)&&!(i.alias&&t.has(i.alias)));return[...e,...r]}function _(n,o=[]){o.forEach(e=>{if(e.type==="positional"){let a=e.required?`<${e.name}>`:`[${e.name}]`;n.argument(a,e.description)}else{let a=e.alias&&typeof e.alias=="string"&&e.alias.length===1,t=e.alias&&typeof e.alias=="string"&&e.alias.length>1,r=a?`-${e.alias}, --${e.name}`:t?`--${e.alias}, --${e.name}`:`--${e.name}`;if(e.type==="flag"||(e.type==="boolean"?r+=" [value]":e.options?r+=" <value>":r+=e.required||e["required-when"]?" <value>":" [value]"),e.removed)n.addOption(new H(r,e.description??"").hideHelp());else{let i=e.description??"";if(e.deprecated){let l=e.replaced_by?` Use ${e.replaced_by} instead.`:"";i=`(deprecated) ${i}${l}`}n.option(r,i,e.default)}}})}function G(n){return n.replace(/-([a-z])/g,(o,e)=>e.toUpperCase())}function h(n,o,e){if(e){let t=e.find(r=>r.name===o);if(t?.alias&&typeof t.alias=="string"){let r=t.alias.charAt(0).toUpperCase()+t.alias.slice(1);if(n[r]!==void 0)return n[r]}}let a=[o,o.replace(/-/g,""),o.replace(/-/g,"").toLowerCase(),o.charAt(0).toUpperCase(),G(o)];for(let t of a)if(n[t]!==void 0)return n[t]}function q(n,o){for(let e of n){if(e["required-when"]){let[a,t]=e["required-when"].split("="),r=h(o,a,n),i=h(o,e.name,n);if(r===t&&!i)return console.error(`--${e.name} is required when --${a} is ${t}`),!1}if(e.required&&!h(o,e.name,n))return console.error(`--${e.name} is required`),e.description&&console.error(` ${e.description}`),!1}return!0}function L(n,o,e){let a;"optsWithGlobals"in e&&typeof e.optsWithGlobals=="function"?a=e.optsWithGlobals():"opts"in e&&typeof e.opts=="function"?a=e.opts():a=e;let t={...a};return n.filter(i=>i.type==="positional").forEach((i,l)=>{o[l]!==void 0&&(i.multiple?t[i.name]=o[l].split(",").map(s=>s.trim()):t[i.name]=o[l])}),n.forEach(i=>{i.multiple&&i.type!=="positional"&&t[i.name]&&typeof t[i.name]=="string"&&(t[i.name]=t[i.name].split(",").map(l=>l.trim()))}),t}async function U(n,o,e=[],a={}){(a.json||a.format==="json")&&(globalThis.__TIGRIS_JSON_MODE=!0);let{module:t,error:r}=await n(o);(r||!t)&&(console.error(r),process.exit(1));let i=o[o.length-1],l=t.default||t[i];typeof l!="function"&&(console.error(`Command not implemented: ${o.join(" ")}`),process.exit(1)),x(o),await l({...a,_positional:e})}function M(n,o,e,a=[]){let{specs:t,loadModule:r,hasImplementation:i}=n,l=t.definitions?.global_arguments??[];for(let s of e){T(s.name)||(console.error(`Invalid command name "${s.name}": only alphanumeric, hyphens, and underscores allowed`),process.exit(1));let d=[...a,s.name];if(!g(s,d,i))continue;let c=o.command(s.name,s.removed?{hidden:!0}:void 0).description(s.description??"");if(s.alias&&(Array.isArray(s.alias)?s.alias:[s.alias]).forEach(p=>{c.alias(p)}),s.removed){c.allowUnknownOption(!0),c.allowExcessArguments(!0),c.action(()=>{D(`${t.name} ${d.join(" ")}`,s.replaced_by)});continue}if(s.commands&&s.commands.length>0)if(M(n,c,s.commands,d),s.default){let m=s.commands.find(p=>p.name===s.default);if(m){let p=w(l,[...s.arguments||[],...m.arguments||[]]);_(c,p),c.allowExcessArguments(!0),c.action(async(...f)=>{let u=f.pop(),A=y([u],s,d,t,i),$=L(p,A,u);p.length>0&&!q(p,$)&&process.exit(1),j(p,$),m.deprecated&&m.messages?.onDeprecated&&C(m.messages.onDeprecated),await U(r,[...d,m.name],A,$)})}}else c.allowExcessArguments(!0),c.action((...m)=>{y(m,s,d,t,i),I(t,s,d,i)});else _(c,w(l,s.arguments)),c.action(async(...m)=>{let p=m.pop(),f=m,u=L(s.arguments||[],f,p);s.arguments&&!q(s.arguments,u)&&process.exit(1),j(s.arguments,u),s.deprecated&&s.messages?.onDeprecated&&C(s.messages.onDeprecated),await U(r,d,f,u)});c.command("help").description("Show help for this command").action(()=>{I(t,s,d,i)})}}function Q(n){let{specs:o,version:e,hasImplementation:a}=n,t=new V;return t.name(o.name).description(o.description).version(e),M(n,t,o.commands),t.command("help").description("Show general help").action(()=>{R(o,e,a)}),t.command("version").description("Show the CLI version").action(()=>{console.log(e)}),t.allowExcessArguments(!0),t.action((...r)=>{y(r,{commands:o.commands},[],o,a),R(o,e,a)}),t}export{Z as a,T as b,W as c,g as d,I as e,R as f,_ as g,q as h,L as i,M as j,Q as k};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as K}from"./chunk-S77OAN6Y.js";import{a as w}from"./chunk-
|
|
1
|
+
import{a as K}from"./chunk-S77OAN6Y.js";import{a as w}from"./chunk-5AGM4LUA.js";import{b as S}from"./chunk-S6KFKBMY.js";import{b as u,d as l}from"./chunk-6TTEDYLD.js";import{b as f,c as y,j as p}from"./chunk-D7WXNA2O.js";import{a as i}from"./chunk-QPUL2AAI.js";import{l as n,n as o,o as d,q as m,s as g}from"./chunk-F4AGJWCK.js";import C from"enquirer";import{whoami as k}from"@tigrisdata/iam";var{prompt:I}=C,a=p("login","credentials");async function q(e){f(a);let A=S(e),s=e["access-key"]||e.accessKey||e.key||e.Key||e.accesskey,r=e["access-secret"]||e.accessSecret||e.secret||e.Secret||e.accesssecret;if(!s||!r){let t=[];s||t.push({type:"input",name:"accessKey",message:"Access Key ID:",required:!0}),r||t.push({type:"password",name:"accessSecret",message:"Secret Access Key:",required:!0}),K("Provide --access-key and --access-secret");let c=await I(t);s=s||c.accessKey,r=r||c.accessSecret}(!s||!r)&&u(a,"Access key and secret are required");let h=n()?.endpoint||i;await o({accessKeyId:s,secretAccessKey:r,endpoint:h}),await d("credentials"),await g();try{let t=w(),{data:c}=await k({config:{accessKeyId:s,secretAccessKey:r,iamEndpoint:t.iamEndpoint}});c?.organizationId&&await m(c.organizationId,"temporary")}catch{}A==="json"&&console.log(JSON.stringify({action:"logged_in"})),y(a),l(a)}export{q as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e="3.11.0";export{e as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as l}from"./chunk-
|
|
1
|
+
import{e as l}from"./chunk-KJXUEGXY.js";import{a as m,k as s}from"./chunk-TVH7NCXE.js";import{b as i}from"./chunk-NI4EYBQH.js";import{a as t}from"./chunk-Z54TMLIH.js";import{existsSync as c}from"fs";import{dirname as u,join as a}from"path";import{fileURLToPath as f}from"url";m();var j=f(import.meta.url),d=u(j),h=i(),y=o=>{if(o.length===0)return!1;let e=`${a(d,"lib",...o)}.js`;if(c(e))return!0;let r=a(d,"lib",...o,"index.js");return!!c(r)},b=async o=>{let e=[`./lib/${o.join("/")}.js`,`./lib/${o.join("/")}/index.js`];for(let p of e){let n=await import(p).catch(()=>null);if(n)return{module:n,error:null}}return{module:null,error:`Command not found: ${o.join(" ")}`}},x=s({specs:h,version:t,loadModule:b,hasImplementation:y});x.parse();l();
|
package/dist/cli-core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-TVH7NCXE.js";import"./chunk-7BUC7A7V.js";import"./chunk-G4OJTPSI.js";import"./chunk-6TTEDYLD.js";import"./chunk-D7WXNA2O.js";import"./chunk-NI4EYBQH.js";import"./chunk-7Q44GQ2Y.js";import"./chunk-DV3LCXRH.js";import"./chunk-Z54TMLIH.js";import"./chunk-BMWWPXMU.js";import"./chunk-APJUJ6TW.js";import"./chunk-QPUL2AAI.js";export{g as addArgumentsToCommand,d as commandHasAnyImplementation,k as createProgram,i as extractArgumentValues,c as formatArgumentHelp,b as isValidCommandName,j as registerCommands,a as setupErrorHandlers,e as showCommandHelp,f as showMainHelp,h as validateRequiredWhen};
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"./chunk-
|
|
2
|
+
import"./chunk-Z5DYQHN2.js";import"./chunk-KJXUEGXY.js";import"./chunk-TVH7NCXE.js";import"./chunk-7BUC7A7V.js";import"./chunk-G4OJTPSI.js";import"./chunk-6TTEDYLD.js";import"./chunk-D7WXNA2O.js";import"./chunk-NI4EYBQH.js";import"./chunk-7Q44GQ2Y.js";import"./chunk-DV3LCXRH.js";import"./chunk-Z54TMLIH.js";import"./chunk-BMWWPXMU.js";import"./chunk-APJUJ6TW.js";import"./chunk-QPUL2AAI.js";
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-QPUL2AAI.js";export{b as DEFAULT_IAM_ENDPOINT,c as DEFAULT_MGMT_ENDPOINT,a as DEFAULT_STORAGE_ENDPOINT,e as INSTALL_BASE_URL,h as NO_BANNER_ENV,d as NPM_REGISTRY_URL,k as POSTHOG_HOST,j as POSTHOG_KEY,i as SENTRY_DSN,f as UPDATE_CHECK_INTERVAL_MS,g as UPDATE_NOTIFY_INTERVAL_MS};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import"./chunk-Z5DYQHN2.js";import"./chunk-KJXUEGXY.js";import"./chunk-TVH7NCXE.js";import"./chunk-7BUC7A7V.js";import"./chunk-G4OJTPSI.js";import"./chunk-6TTEDYLD.js";import"./chunk-D7WXNA2O.js";import"./chunk-NI4EYBQH.js";import"./chunk-7Q44GQ2Y.js";import"./chunk-DV3LCXRH.js";import"./chunk-Z54TMLIH.js";import"./chunk-BMWWPXMU.js";import"./chunk-APJUJ6TW.js";import"./chunk-QPUL2AAI.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as
|
|
1
|
+
import{b as p}from"../../chunk-GZMEHP36.js";import"../../chunk-5AGM4LUA.js";import{a as r,b as h}from"../../chunk-S6KFKBMY.js";import{b as s,c as R,d as b}from"../../chunk-6TTEDYLD.js";import{b as A,c as f,j as y}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{ACCESS_KEY_ROLES as S,assignBucketRoles as x,revokeAllBucketRoles as N}from"@tigrisdata/iam";var e=y("access-keys","assign");function v(t){return t?Array.isArray(t)?t:[t]:[]}async function w(t){A(e);let g=h(t),i=r(t,["id"]),m=r(t,["admin"]),u=r(t,["revokeRoles","revoke-roles"]),c=v(r(t,["bucket","b"])),n=v(r(t,["role","r"]));i||s(e,"Access key ID is required"),m&&u&&s(e,"Cannot use --admin and --revoke-roles together");let d=await p(e);if(u){let{error:o}=await N(i,{config:d});o&&s(e,o),g==="json"&&console.log(JSON.stringify({action:"revoked",id:i})),f(e);return}let l;if(m)l=[{bucket:"*",role:"NamespaceAdmin"}];else{c.length===0&&s(e,"At least one bucket name is required (or use --admin or --revoke-roles)"),n.length===0&&s(e,"At least one role is required (or use --admin or --revoke-roles)");for(let o of n)S.includes(o)||s(e,`Invalid role "${o}". Valid roles are: ${S.join(", ")}`);n.length===1?l=c.map(o=>({bucket:o,role:n[0]})):n.length===c.length?l=c.map((o,a)=>({bucket:o,role:n[a]})):s(e,`Number of roles (${n.length}) must be 1 or match number of buckets (${c.length})`)}let{error:k}=await x(i,l,{config:d});if(k&&s(e,k),g==="json"){let o=R(e),a={action:"assigned",id:i,assignments:l};o.length>0&&(a.nextActions=o),console.log(JSON.stringify(a))}f(e),b(e)}export{w as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as u}from"../../chunk-
|
|
1
|
+
import{b as u}from"../../chunk-GZMEHP36.js";import{a as d}from"../../chunk-S77OAN6Y.js";import"../../chunk-5AGM4LUA.js";import{a as l,b as h}from"../../chunk-S6KFKBMY.js";import{b as t}from"../../chunk-6TTEDYLD.js";import{b as p,c as y,j as g}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import S from"enquirer";import{attachPolicyToAccessKey as N,listPolicies as R,listPoliciesForAccessKey as q}from"@tigrisdata/iam";var{prompt:k}=S,e=g("access-keys","attach-policy");async function v(s){p(e);let A=h(s),o=l(s,["id"]),r=l(s,["policyArn","policy-arn"]);o||t(e,"Access key ID is required");let c=await u(e);if(!r){d("Use --policy-arn to specify the policy ARN");let[a,n]=await Promise.all([R({config:c}),q(o,{config:c})]);a.error&&t(e,a.error),n.error&&t(e,n.error);let w=new Set(n.data.policies),f=a.data.policies.filter(i=>!w.has(i.name));f.length===0&&t(e,"No unassigned policies available. All policies are already attached to this access key.");let{selected:P}=await k({type:"select",name:"selected",message:"Select a policy to attach:",choices:f.map(i=>({name:i.resource,message:`${i.name} (${i.resource})`}))});r=P}let{error:m}=await N(o,r,{config:c});m&&t(e,m),A==="json"&&console.log(JSON.stringify({action:"attached",id:o,policyArn:r})),y(e)}export{v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as u}from"../../chunk-
|
|
1
|
+
import{b as u}from"../../chunk-GZMEHP36.js";import"../../chunk-5AGM4LUA.js";import{a as d,b as p}from"../../chunk-S6KFKBMY.js";import{b as o,c as g,d as f}from"../../chunk-6TTEDYLD.js";import{b as a,c as m,j as l}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{createAccessKey as w}from"@tigrisdata/iam";var t=l("access-keys","create");async function x(n){a(t);let A=p(n),c=d(n,["name"]);c||o(t,"Access key name is required");let y=await u(t),{data:e,error:s}=await w(c,{config:y});if(s&&o(t,s),A==="json"){let r=g(t,{name:e.name,id:e.id}),i={action:"created",name:e.name,id:e.id,secret:e.secret};r.length>0&&(i.nextActions=r),console.log(JSON.stringify(i))}else console.log(` Name: ${e.name}`),console.log(` Access Key ID: ${e.id}`),console.log(` Secret Access Key: ${e.secret}`),console.log(""),console.log(" Save these credentials securely. The secret will not be shown again.");m(t),f(t,{name:e.name,id:e.id})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as g}from"../../chunk-
|
|
1
|
+
import{b as g}from"../../chunk-GZMEHP36.js";import{a as m,b as a}from"../../chunk-S77OAN6Y.js";import"../../chunk-5AGM4LUA.js";import{a as i,b as d}from"../../chunk-S6KFKBMY.js";import{b as t}from"../../chunk-6TTEDYLD.js";import{b as n,c as s,j as f}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{removeAccessKey as u}from"@tigrisdata/iam";var e=f("access-keys","delete");async function k(r){n(e);let l=d(r),o=i(r,["id"]),p=i(r,["yes","y","force"]);if(o||t(e,"Access key ID is required"),!p&&(m("Use --yes to skip confirmation"),!await a(`Delete access key '${o}'?`))){console.log("Aborted");return}let y=await g(e),{error:c}=await u(o,{config:y});c&&t(e,c),l==="json"&&console.log(JSON.stringify({action:"deleted",id:o})),s(e)}export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as A}from"../../chunk-
|
|
1
|
+
import{b as A}from"../../chunk-GZMEHP36.js";import{a as m,b as h}from"../../chunk-S77OAN6Y.js";import"../../chunk-5AGM4LUA.js";import{a,b as u}from"../../chunk-S6KFKBMY.js";import{b as o}from"../../chunk-6TTEDYLD.js";import{b as p,c as y,j as g}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import N from"enquirer";import{detachPolicyFromAccessKey as $,listPolicies as q,listPoliciesForAccessKey as F}from"@tigrisdata/iam";var{prompt:R}=N,e=g("access-keys","detach-policy");async function I(c){p(e);let w=u(c),t=a(c,["id"]),i=a(c,["policyArn","policy-arn"]),k=a(c,["yes","y","force"]);t||o(e,"Access key ID is required");let n=await A(e);if(!i){m("Use --policy-arn to specify the policy ARN");let[s,l]=await Promise.all([F(t,{config:n}),q({config:n})]);s.error&&o(e,s.error),l.error&&o(e,l.error);let P=new Set(s.data.policies),d=l.data.policies.filter(r=>P.has(r.name));d.length===0&&o(e,"No policies are attached to this access key.");let{selected:S}=await R({type:"select",name:"selected",message:"Select a policy to detach:",choices:d.map(r=>({name:r.resource,message:`${r.name} (${r.resource})`}))});i=S}if(!k&&(m("Use --yes to skip confirmation"),!await h(`Detach policy '${i}' from access key '${t}'?`))){console.log("Aborted");return}let{error:f}=await $(t,i,{config:n});f&&o(e,f),w==="json"&&console.log(JSON.stringify({action:"detached",id:t,policyArn:i})),y(e)}export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as m}from"../../chunk-
|
|
1
|
+
import{b as m}from"../../chunk-GZMEHP36.js";import"../../chunk-5AGM4LUA.js";import{a,b as f}from"../../chunk-S6KFKBMY.js";import{b as t}from"../../chunk-6TTEDYLD.js";import{b as c,c as l,j as g}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{getAccessKey as u}from"@tigrisdata/iam";var e=g("access-keys","get");async function $(s){c(e);let d=f(s),r=a(s,["id"]);r||t(e,"Access key ID is required");let p=await m(e),{data:o,error:n}=await u(r,{config:p});if(n&&t(e,n),d==="json")console.log(JSON.stringify(o));else if(console.log(` Name: ${o.name}`),console.log(` ID: ${o.id}`),console.log(` Status: ${o.status}`),console.log(` Created: ${o.createdAt}`),console.log(` Organization: ${o.organizationId}`),o.roles&&o.roles.length>0){console.log(" Roles:");for(let i of o.roles)console.log(` - ${i.bucket}: ${i.role}`)}else console.log(" Roles: None");l(e)}export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as P}from"../../chunk-
|
|
1
|
+
import{b as P}from"../../chunk-GZMEHP36.js";import{g as A}from"../../chunk-AFM3TY2D.js";import"../../chunk-5AGM4LUA.js";import{a as y,b as k,c as h}from"../../chunk-S6KFKBMY.js";import{b as c}from"../../chunk-6TTEDYLD.js";import{b as m,c as g,e as f,i as d,j as u}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{listPoliciesForAccessKey as E}from"@tigrisdata/iam";var i=u("access-keys","list-policies");async function F(o){m(i);let n=k(o),{limit:s,pageToken:r}=h(o),a=y(o,["id"]);a||c(i,"Access key ID is required");let T=await P(i),{data:t,error:p}=await E(a,{...s!==void 0?{limit:s}:{},...r?{paginationToken:r}:{},config:T});if(p&&c(i,p),!t.policies||t.policies.length===0){f(i);return}let e=t.policies.map(O=>({policy:O})),x=[{key:"policy",header:e.length>1?"Attached Policies":"Attached Policy"}],l=t.paginationToken||void 0,w=A(e,n,"policies","policy",x,{paginationToken:l});console.log(w),n!=="json"&&n!=="xml"&&d(l),g(i,{count:e.length})}export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as h}from"../../chunk-
|
|
1
|
+
import{b as h}from"../../chunk-GZMEHP36.js";import{g as T}from"../../chunk-AFM3TY2D.js";import"../../chunk-5AGM4LUA.js";import{b as k,c as y}from"../../chunk-S6KFKBMY.js";import{b as l}from"../../chunk-6TTEDYLD.js";import{b as d,c as p,e as f,i as g,j as u}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{listAccessKeys as A}from"@tigrisdata/iam";var t=u("access-keys","list");async function P(a){d(t);let o=k(a),{limit:s,pageToken:i}=y(a),x=await h(t),{data:e,error:r}=await A({...s!==void 0?{limit:s}:{},...i?{paginationToken:i}:{},config:x});if(r&&l(t,r),!e.accessKeys||e.accessKeys.length===0){f(t);return}let c=e.accessKeys.map(n=>({name:n.name,id:n.id,status:n.status,created:n.createdAt})),K=[{key:"name",header:"Name"},{key:"id",header:"ID"},{key:"status",header:"Status"},{key:"created",header:"Created"}],m=e.paginationToken||void 0,w=T(c,o,"keys","key",K,{paginationToken:m});console.log(w),o!=="json"&&o!=="xml"&&g(m),p(t,{count:c.length})}export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as w}from"../../chunk-
|
|
1
|
+
import{b as w}from"../../chunk-GZMEHP36.js";import{a as u,b as y}from"../../chunk-S77OAN6Y.js";import"../../chunk-5AGM4LUA.js";import{a as i,b as p}from"../../chunk-S6KFKBMY.js";import{b as n,c as g,d as m}from"../../chunk-6TTEDYLD.js";import{b as f,c as l,j as d}from"../../chunk-D7WXNA2O.js";import"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-KJBSIIND.js";import"../../chunk-F4AGJWCK.js";import{rotateAccessKey as k}from"@tigrisdata/iam";var e=d("access-keys","rotate");async function x(o){f(e);let A=p(o),r=i(o,["id"]),S=i(o,["yes","y","force"]);if(r||n(e,"Access key ID is required"),!S&&(u("Use --yes to skip confirmation"),!await y(`Rotate access key '${r}'? The current secret will be invalidated.`))){console.log("Aborted");return}let h=await w(e),{data:t,error:s}=await k(r,{config:h});if(s&&n(e,s),A==="json"){let c=g(e,{id:t.id}),a={action:"rotated",id:t.id,secret:t.newSecret};c.length>0&&(a.nextActions=c),console.log(JSON.stringify(a))}else console.log(` Access Key ID: ${t.id}`),console.log(` New Secret Access Key: ${t.newSecret}`),console.log(""),console.log(" Save these credentials securely. The secret will not be shown again.");l(e),m(e,{id:t.id})}export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as C,c as j}from"../../chunk-N3Y6RFSK.js";import{a as B}from"../../chunk-S77OAN6Y.js";import{e as T}from"../../chunk-
|
|
1
|
+
import{a as C,c as j}from"../../chunk-N3Y6RFSK.js";import{a as B}from"../../chunk-S77OAN6Y.js";import{e as T}from"../../chunk-5AGM4LUA.js";import{a as t,b as O}from"../../chunk-S6KFKBMY.js";import{b as i,c as x,d as D}from"../../chunk-6TTEDYLD.js";import{b as w,c as v,j as L}from"../../chunk-D7WXNA2O.js";import{d as p,e as g}from"../../chunk-NI4EYBQH.js";import"../../chunk-7Q44GQ2Y.js";import"../../chunk-DV3LCXRH.js";import"../../chunk-Z54TMLIH.js";import"../../chunk-BMWWPXMU.js";import"../../chunk-APJUJ6TW.js";import"../../chunk-QPUL2AAI.js";import"../../chunk-J3MAV7JB.js";import"../../chunk-F4AGJWCK.js";import{createBucket as E}from"@tigrisdata/storage";import F from"enquirer";var{prompt:J}=F,a=L("buckets","create");async function W(e){w(a);let q=O(e),s=t(e,["name"]),b=t(e,["public"])?"public":t(e,["access","a","A"]),d=t(e,["enable-snapshots","enableSnapshots","s","S"]),N=t(e,["allow-object-acl","allowObjectAcl"]),P=t(e,["enable-directory-listing","enableDirectoryListing"]),h=t(e,["default-tier","t","T"]),I=t(e,["locations","l","L"]),o=t(e,["fork-of","forkOf","fork"]),u=t(e,["source-snapshot","sourceSnapshot","source-snap"]),R=!s,S;if(R){B("Provide --name to skip interactive mode");let c=p("buckets","access","create"),n=g(c),f=n?.findIndex(r=>r.value===c?.default),y=p("buckets","default-tier","create"),A=g(y),m=A?.findIndex(r=>r.value===y?.default),l=await J([{type:"input",name:"name",message:"Bucket name:",required:!0},{type:"select",name:"access",message:"Access level:",choices:n||[],initial:f!==void 0&&f>=0?f:0},{type:"select",name:"defaultTier",message:"Default storage tier:",choices:A||[],initial:m!==void 0&&m>=0?m:0},{type:"confirm",name:"enableSnapshots",message:"Enable snapshots?",initial:!0}]);s=l.name,b=l.access,h=l.defaultTier,d=l.enableSnapshots;try{S=await C()}catch(r){i(a,r)}}s||i(a,"Bucket name is required"),u&&!o&&i(a,"--source-snapshot requires --fork-of");let{error:k}=await E(s,{defaultTier:h??"STANDARD",enableSnapshot:d===!0,allowObjectAcl:N===!0,enableDirectoryListing:P===!0,access:b??"private",locations:S??j(I??"global"),...o?{sourceBucketName:o}:{},...u?{sourceBucketSnapshot:u}:{},config:await T()});if(k&&i(a,k),q==="json"){let c=x(a,{name:s}),n={action:"created",name:s,...o?{forkOf:o}:{}};c.length>0&&(n.nextActions=c),console.log(JSON.stringify(n))}v(a,{name:s}),D(a,{name:s})}export{W as default};
|