Skip to content

Add AWS S3 module with upload, download, and bucket scaffolding#160

Open
maxn990 wants to merge 9 commits into
mainfrom
mn-139-s3-module
Open

Add AWS S3 module with upload, download, and bucket scaffolding#160
maxn990 wants to merge 9 commits into
mainfrom
mn-139-s3-module

Conversation

@maxn990
Copy link
Copy Markdown
Member

@maxn990 maxn990 commented May 13, 2026

ℹ️ Issue

Closes #139

📝 Description

Write a short summary of what you added. Why is it important? Any member of C4C should be able to read this and understand your contribution -- not just your team members.

  • Support for uploading, downloading files from S3
  • Options for multiple buckets

✔️ Verification

What steps did you take to verify your changes work? These should be clear enough for someone to be able to clone the branch and follow the steps themselves.

  • Unit testing

🏕️ (Optional) Future Work / Notes

Included two other small cleanup items - stopped tracking unnecessary nx workspace stuff and finally fixed ts config thing

@maxn990 maxn990 marked this pull request as ready for review May 13, 2026 17:24
@dburkhart07 dburkhart07 self-requested a review May 28, 2026 06:24
Copy link
Copy Markdown
Contributor

@dburkhart07 dburkhart07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great so far, really thorough documentation for a somewhat more challenging aws service! could you update the tests for any changes you end up implementing in the service file?

Add these variables to `.env` and `example.env`:

```
AWS_REGION=us-east-2
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this always be us-east-2? some of our projects have some materials on us-east-1, not sure if we are trying to shift away from that and standardize it. if so, feel free to ignore this

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only ssf uses 1 i believe, i think we should try and standardize it to avoid some of the issues that ssf faced with that


Because `mapBucket` uses a `Record<s3Buckets, string>`, TypeScript will produce a compile error if you add an enum entry without adding the corresponding mapping — catching missed steps at build time.

## Required IAM Permissions
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think we should add instructions for how to create the bucket within AWS and where these permissions json should go in the AWS console (S3 -> bucket_name -> Permissions -> Bucket Policy -> Edit)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have that in the notion documentation already

Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts
Comment thread example.env Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
@chnnick chnnick self-requested a review May 28, 2026 17:42
@maxn990 maxn990 requested a review from dburkhart07 June 1, 2026 14:58
Copy link
Copy Markdown
Contributor

@chnnick chnnick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly looks good to me, I like that we have READMEs for all the different modules I think they're super informative. There are already good input validation checks on the file name and size, my only comments are for possibly possibly two more checks on fields? The fixes are not necessary, but rather suggestions for more input validation. I understand this is a scaffolding repo so the MIME recommendation may limit the upload file-type flexibility.

Comment thread apps/backend/src/aws/s3/aws-s3.service.ts
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Copy link
Copy Markdown
Contributor

@dburkhart07 dburkhart07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few more things, but looking much better!

Comment thread .nx/cache/terminalOutputs/9746092569333069633
Comment thread example.env Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts Outdated
Comment thread apps/backend/src/aws/s3/aws-s3.service.ts
@maxn990 maxn990 requested a review from dburkhart07 June 4, 2026 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

S3 Module

3 participants