Commit Graph

26 Commits

Author SHA1 Message Date
Zakaria 5eee0b7e9b 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.
2026-10-25 18:10:33 -04:00
Zakaria 69d80c60a3 feat(api): add the Glue Data Catalog to the cloud explorer
CI / checks (pull_request) Successful in 28m15s
Create and delete Glue databases, and describe a folder of CSV, JSON-lines or
Parquet files in S3 as a table: its columns, and for CSV the delimiter and
whether the first line is a header. Tables are written with the storage
settings Athena expects, so TheCloud's Athena can query one as soon as it
exists. Glue jobs and crawlers are not offered: the runtime stores them but
never runs them.
2026-10-25 17:51:16 -04:00
Zakaria 26b635db0b feat(api): add EFS file systems to the cloud explorer
CI / checks (pull_request) Successful in 28m26s
Create file systems (with a mount target in each default subnet unless asked
not to), add and remove mount targets, create and delete access points, and
attach a file system to a Lambda function through an access point. A function
not yet in a VPC is put in the file system's mount target subnets with the
default security group, as Lambda requires. TheCloud's mounts are real, so two
functions on one access point share files.

Deleting a file system removes its access points and mount targets first, and
is refused while a function still mounts it.
2026-10-25 17:33:19 -04:00
Zakaria 70cfd4bc96 feat(api): add EC2 Auto Scaling groups to the cloud explorer
CI / checks (pull_request) Successful in 26m54s
Create groups from a launch template (in the default subnets unless given),
change their minimum, desired and maximum capacity, replace or remove an
instance, and follow the launches and terminations TheCloud's reconciler makes.
Deleting a group terminates its instances. Scaling policies are not offered:
the runtime stores them but its alarms only drive ECS scaling.
2026-10-25 13:02:49 -04:00
Zakaria 12b50f4868 feat(api): add EventBridge Pipes to the cloud explorer
CI / checks (pull_request) Successful in 27m2s
Create pipes from SQS, Kinesis, DynamoDB streams or MSK to Lambda, SQS, SNS,
EventBridge buses or Step Functions, with an optional filter, enrichment and
input template; start and stop them, see the flow with links to each resource,
and send a test message to an SQS source. Sources and targets the runtime's
poller cannot deliver between are refused on create.
2026-10-25 13:00:13 -04:00
Zakaria 6e0bb98844 feat(api): add ACM certificates to the cloud explorer
CI / checks (pull_request) Successful in 27m28s
Request public certificates (optionally exportable) or import your own, see
each domain's DNS validation records and what uses a certificate, download the
certificate and chain, export an exportable one with its encrypted key, and
revoke it. ListCertificates asks for every key type, since AWS otherwise
leaves EC certificates out.
2026-10-25 12:41:42 -04:00
Zakaria bb5ca85a88 feat(api): add HTTP and WebSocket APIs (API Gateway v2) to the API Gateway page
CI / checks (pull_request) Successful in 26m49s
API Gateway v2 is a separate AWS API from REST APIs, so HTTP and WebSocket APIs
made with the SDK, SAM, CDK or Terraform never showed up. The API Gateway page
now lists all three kinds with a Type column, creates each from the same form,
and opens HTTP and WebSocket APIs in their own panel:

- Quick create: an HTTP API with a Lambda gets a catch-all route on an
  auto-deployed $default stage, plus the Lambda permission.
- Routes to Lambda (payload 2.0) or HTTP backends; deleting a route removes
  the integration and Lambda permission only it used.
- Stages with or without automatic deployment, and deploy on demand.
- JWT authorizers filled in from a Cognito pool's OpenID Connect discovery
  document and an app client, or from any issuer; protect routes with them.
- CORS configuration.
- A tester that sends a real request to a stage, and for WebSocket APIs one
  that connects, sends a message and collects the replies.

Capabilities are advertised under a new httpApiActions group, covered by the
cloudProxy guard test. Verified end to end against TheCloud's runtime.
2026-10-25 09:18:50 -04:00
Zakaria 6dd33b8f65 feat(api): add CloudWatch alarms and metric charts to the cloud explorer
CI / checks (pull_request) Successful in 27m29s
2026-10-24 22:48:41 -04:00
Zakaria 6586f48539 feat(api): add CloudFront distributions to the cloud explorer
CI / checks (pull_request) Successful in 26m22s
2026-10-24 14:10:16 -04:00
Zakaria 2b4d4b146d feat(api): add Route 53 hosted zones and DNS records to the cloud explorer
CI / checks (pull_request) Successful in 25m40s
2026-10-24 13:07:57 -04:00
Zakaria ce444f0851 feat(frontend): newest emails first, mailbox above the SES tools
CI / checks (pull_request) Failing after 12m24s
2026-10-24 02:01:14 -04:00
Zakaria bafe799d00 feat(frontend): manage Cognito users and groups, and test sign-in
CI / checks (pull_request) Failing after 12m24s
The Cognito panel gains a test sign-in that shows the decoded ID and
access token claims, a groups section, and a per-user panel to enable or
disable, confirm, sign out everywhere, reset or set a password and change
group membership.

Delete confirmations (row and bulk) now say what else goes, driven by
the schema's deleteImpact, and the inspector follows list refreshes
instead of the click-time snapshot.
2026-10-23 17:54:15 -04:00
Zakaria fe70e88bcc feat(frontend): manage Cognito app clients and users
Adds a users panel under the selected user pool: copyable app client ids, a create-user form that follows the pool's sign-in method, and the user list with delete. Maps the userpools icon key to the Cognito artwork.
2026-10-23 12:12:40 -04:00
Zakaria ca1e845cb6 feat: Lightsail + svg animation 2026-10-11 14:19:00 -04:00
Zakaria c86b4554c0 feat: ElastiCache 2026-10-05 16:03:05 -04:00
Zakaria c0d3e5f402 feat: MSK, MSK CONNECT and SES 2026-10-05 11:06:57 -04:00
Zakaria 2d8ff50a99 feat: Fargate 2026-10-02 09:53:45 -04:00
Zakaria 7f0d707578 CI/CD - CodeBuild + CodeDeploy + CodePipeline 2026-10-01 09:18:04 -04:00
Zakaria 7764ea0dc1 feat: Cloudformation + RDS 2026-09-30 17:43:42 -04:00
Zakaria 548a15d7ec feat: Step Function + small fixes + more services + color matching the services 2026-09-28 18:38:22 -04:00
Zakaria 0d613ae256 feat: Step Function + hardning 2026-09-27 23:26:00 -04:00
Zakaria b474e823ce feat: CORS enable button...ish still now understanding this 2026-09-27 14:46:04 -04:00
Zakaria 8470b8d17a feat: fully functioning ALB 2026-09-26 16:14:24 -04:00
Zakaria 093afb9b2b feat: EC2 UI polished + storage persisting 2026-09-25 18:18:33 -04:00
Zakaria 1b129e9dcf feat: add SQS + EventBridge 2026-09-24 22:34:04 -04:00
Zakaria 7e49be27f1 first commit 2026-09-22 16:13:21 -04:00