feat: add AWS S3 createBucket, getBucket and deleteBucket components#5703
Draft
felixgateru wants to merge 1 commit into
Draft
feat: add AWS S3 createBucket, getBucket and deleteBucket components#5703felixgateru wants to merge 1 commit into
felixgateru wants to merge 1 commit into
Conversation
Add an S3 service package with three new actions: - aws.s3.createBucket: create a bucket (sends LocationConstraint for non us-east-1 regions) - aws.s3.getBucket: resolve a bucket's region via GetBucketLocation and emit name/region/ARN - aws.s3.deleteBucket: delete an empty bucket Includes a SigV4-signed S3 REST client, an s3.bucket resource picker (ListBuckets), example outputs, backend tests, frontend mappers with spec tests, registration in aws.go/resources.go/mappers index, and regenerated docs. Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
|
👋 Commands for maintainers:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Added a new AWS S3 service integration with three action components for managing buckets:
aws.s3.createBucket) — creates a new S3 bucket.aws.s3.getBucket) — retrieves a bucket's resolved region and ARN.aws.s3.deleteBucket) — deletes an (empty) S3 bucket.Why
To let workflows manage S3 buckets directly — provisioning storage as part of infrastructure flows, verifying a bucket's region/existence before downstream steps, and tearing down buckets during cleanup or rollback.
How
Backend
Added
pkg/integrations/aws/s3/:client.go— a SigV4-signed S3 REST/XML client (CreateBucket,GetBucketLocation,DeleteBucket,ListBuckets) using the regional path-style endpoint, mirroring the existing SQS client's signing approach.create_bucket.go—aws.s3.createBucket; sends aCreateBucketConfigurationwithLocationConstraintfor regions other thanus-east-1. Emits the bucket name, region, and ARN.get_bucket.go—aws.s3.getBucket; resolves the bucket's region viaGetBucketLocation(empty constraint →us-east-1) and emits name/region/ARN.delete_bucket.go—aws.s3.deleteBucket; deletes the bucket and emits a deletion confirmation.resources.go—ListBuckets, backing thes3.bucketresource picker used by the get/delete bucket selectors.example.go+ example output JSON for each component.aws.goand added thes3.bucketcase toresources.go(ListResources dispatch).Frontend
Added
web_src/src/pages/app/mappers/aws/s3/:create_bucket.ts,get_bucket.ts,delete_bucket.ts— node mappers with metadata, execution details, and event sections.index.tsbarrel; registered the three mappers and their event-state entries inaws/index.ts.Docs regenerated (
docs/components/AWS.mdx).Notes
aws.svgicon since there is no dedicatedaws.s3.svgasset yet; happy to switch to a proper S3 logo if one is added.getBucketreturns name/region/ARN viaGetBucketLocation(S3 has no single "describe bucket" API);deleteBucketrequires the bucket to be empty (an AWS constraint). The region selector is used to sign requests, consistent with the SQS/EC2 components.