feat(api): add Athena workgroups and a query editor to the cloud explorer
CI / checks (pull_request) Successful in 28m25s

Create and delete Athena workgroups (with a result folder, optionally
enforced), and run SQL in one: pick a database from the Glue Data Catalog,
preview a table, run with Ctrl+Enter, cancel a running query, read up to 1,000
rows and download the full result CSV from S3. Recent queries in the workgroup
can be reopened. TheCloud runs the SQL for real over the files a Glue table
points at. The Glue page links to the editor.
This commit is contained in:
Zakaria
2026-10-25 18:10:33 -04:00
parent 69d80c60a3
commit 5eee0b7e9b
25 changed files with 1291 additions and 121 deletions
+137 -119
View File
@@ -22,6 +22,9 @@ importers:
'@aws-sdk/client-appconfig':
specifier: ^3.1076.0
version: 3.1130.0
'@aws-sdk/client-athena':
specifier: ^3.1146.0
version: 3.1156.0
'@aws-sdk/client-auto-scaling':
specifier: ^3.1146.0
version: 3.1156.0
@@ -329,6 +332,10 @@ packages:
resolution: {integrity: sha512-CPVT+sEZLpYYLs6gIUr+O76QWzwjCIMp8ih7VZOQTzUhM8jXlDBwarupCMOkk830STVmKu5zhQjCzYI8i+XU3A==}
engines: {node: '>=20.0.0'}
'@aws-sdk/client-athena@3.1156.0':
resolution: {integrity: sha512-rqebnBvY6c9DuSKZz99dI0BS01HZl3iqXYTWTqbEbu02C1YCiYoho7tW7buAnNqIhZ1laB+EJh/JncO59pruJA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/client-auto-scaling@3.1156.0':
resolution: {integrity: sha512-iv4obhbLigmUcxWnUNd1CJ+jQ8QtCbPg9Ae0dSmv7D1hq/jw50eoMXW8UblNKnOl4FSwWeCtWs4aoUUQYTl7IQ==}
engines: {node: '>=20.0.0'}
@@ -2919,15 +2926,15 @@ snapshots:
'@aws-crypto/util@5.2.0':
dependencies:
'@aws-sdk/types': 3.974.5
'@aws-sdk/types': 3.975.0
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
'@aws-sdk/checksums@3.1000.13':
dependencies:
'@aws-sdk/core': 3.978.1
'@aws-sdk/types': 3.974.6
'@smithy/core': 3.35.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
@@ -2976,6 +2983,17 @@ snapshots:
'@smithy/types': 4.17.2
tslib: 2.8.1
'@aws-sdk/client-athena@3.1156.0':
dependencies:
'@aws-sdk/core': 3.978.5
'@aws-sdk/credential-provider-node': 3.972.88
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/fetch-http-handler': 5.8.0
'@smithy/node-http-handler': 4.12.1
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/client-auto-scaling@3.1156.0':
dependencies:
'@aws-sdk/core': 3.978.5
@@ -3489,34 +3507,34 @@ snapshots:
'@aws-sdk/credential-provider-env@3.972.54':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.62':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.69':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.70':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.972.71':
@@ -3545,42 +3563,42 @@ snapshots:
'@aws-sdk/credential-provider-http@3.972.56':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/fetch-http-handler': 5.7.2
'@smithy/node-http-handler': 4.11.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/fetch-http-handler': 5.8.0
'@smithy/node-http-handler': 4.12.1
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.64':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/fetch-http-handler': 5.7.2
'@smithy/node-http-handler': 4.11.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/fetch-http-handler': 5.8.0
'@smithy/node-http-handler': 4.12.1
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.71':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/fetch-http-handler': 5.7.2
'@smithy/node-http-handler': 4.11.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/fetch-http-handler': 5.8.0
'@smithy/node-http-handler': 4.12.1
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.72':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/fetch-http-handler': 5.7.2
'@smithy/node-http-handler': 4.11.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/fetch-http-handler': 5.8.0
'@smithy/node-http-handler': 4.12.1
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.972.73':
@@ -3615,7 +3633,7 @@ snapshots:
'@aws-sdk/credential-provider-ini@3.972.61':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/credential-provider-env': 3.972.71
'@aws-sdk/credential-provider-http': 3.972.73
'@aws-sdk/credential-provider-login': 3.972.60
@@ -3623,15 +3641,15 @@ snapshots:
'@aws-sdk/credential-provider-sso': 3.973.15
'@aws-sdk/credential-provider-web-identity': 3.972.77
'@aws-sdk/nested-clients': 3.997.28
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/credential-provider-imds': 4.5.0
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.973.14':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/credential-provider-env': 3.972.71
'@aws-sdk/credential-provider-http': 3.972.73
'@aws-sdk/credential-provider-login': 3.972.76
@@ -3639,15 +3657,15 @@ snapshots:
'@aws-sdk/credential-provider-sso': 3.973.15
'@aws-sdk/credential-provider-web-identity': 3.972.77
'@aws-sdk/nested-clients': 3.997.43
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/credential-provider-imds': 4.5.0
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.973.15':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/credential-provider-env': 3.972.71
'@aws-sdk/credential-provider-http': 3.972.73
'@aws-sdk/credential-provider-login': 3.972.77
@@ -3655,10 +3673,10 @@ snapshots:
'@aws-sdk/credential-provider-sso': 3.973.15
'@aws-sdk/credential-provider-web-identity': 3.972.77
'@aws-sdk/nested-clients': 3.997.44
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/credential-provider-imds': 4.5.0
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.973.16':
@@ -3711,7 +3729,7 @@ snapshots:
'@aws-sdk/credential-provider-ini@3.973.7':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/credential-provider-env': 3.972.62
'@aws-sdk/credential-provider-http': 3.972.64
'@aws-sdk/credential-provider-login': 3.972.69
@@ -3719,10 +3737,10 @@ snapshots:
'@aws-sdk/credential-provider-sso': 3.973.6
'@aws-sdk/credential-provider-web-identity': 3.972.68
'@aws-sdk/nested-clients': 3.997.36
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/credential-provider-imds': 4.4.14
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-login@3.972.60':
@@ -3902,34 +3920,34 @@ snapshots:
'@aws-sdk/credential-provider-process@3.972.54':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.62':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.69':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.70':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/core': 3.978.5
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.972.71':
@@ -3958,32 +3976,32 @@ snapshots:
'@aws-sdk/credential-provider-sso@3.972.60':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.28
'@aws-sdk/token-providers': 3.1080.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.973.13':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.43
'@aws-sdk/token-providers': 3.1111.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.973.14':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.44
'@aws-sdk/token-providers': 3.1116.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.973.15':
@@ -4018,48 +4036,48 @@ snapshots:
'@aws-sdk/credential-provider-sso@3.973.6':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.36
'@aws-sdk/token-providers': 3.1096.0
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.60':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.28
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.68':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.36
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.75':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.43
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.76':
dependencies:
'@aws-sdk/core': 3.978.0
'@aws-sdk/core': 3.978.5
'@aws-sdk/nested-clients': 3.997.44
'@aws-sdk/types': 3.974.5
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@aws-sdk/types': 3.975.0
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.972.77':
@@ -4370,17 +4388,17 @@ snapshots:
'@aws-sdk/xml-builder@3.972.33':
dependencies:
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/xml-builder@3.972.37':
dependencies:
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/xml-builder@3.972.39':
dependencies:
'@smithy/types': 4.17.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@aws-sdk/xml-builder@3.972.40':
@@ -4863,14 +4881,14 @@ snapshots:
'@smithy/credential-provider-imds@4.4.14':
dependencies:
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@smithy/credential-provider-imds@4.4.6':
dependencies:
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@smithy/credential-provider-imds@4.5.0':
@@ -4958,14 +4976,14 @@ snapshots:
'@smithy/signature-v4@5.6.10':
dependencies:
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@smithy/signature-v4@5.6.2':
dependencies:
'@smithy/core': 3.33.3
'@smithy/types': 4.17.2
'@smithy/core': 3.36.2
'@smithy/types': 4.19.0
tslib: 2.8.1
'@smithy/signature-v4@5.7.0':