Skip to content

About

All the AWS updates you need, in one place

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

 

History

75 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BigOrange.Cloud/Updates

Keeping up with AWS updates is hard, so I created BigOrange.Cloud/Updates to do it for me.

Before this, the best way I'd found was piping the various RSS feeds in to my Slack (and I'm not the only one), but that's no fun.

Items that have appeared since you last visited will be shown in bold, so you know what's new.

Architecture

Sources

Planned

Layers

Components are deployed via CloudFormation (and SAM) as layers, so that dependencies are managed cleanly.

Note that the CloudFront Distribution is managed separately, as it fronts multiple applications.

Deploy

Data

Updates are stored as items in a DynamoDB table.

make data.template

Scrapers

make scrapers.template

API

This site uses a API Gateway HTTP API.

make scrapers.template

Site

Infrastructure

make site.template

Application

This website follows the Immutable Web Apps standard. The steps to deploy are:

  1. Build the site
  2. Inject configuration variables
  3. Sync the site contents
  4. Update the cache-control on index.html
npm install
NODE_ENV=production npm run build
export API=<ENDPOINT_URL>
sed -i "s~INSERT_API~${API:-API_NOT_SET}~g" dist/index.html
aws s3 sync dist/ s3://$SITE_BUCKET/updates/
aws s3 cp s3://$SITE_BUCKET/updates/index.html \
  s3://$SITE_BUCKET/updates/index.html --metadata-directive REPLACE --cache-control no-cache

Development

To run the front-end locally (with hot reload):

npm run serve

Previews

To check changes before committing, build the site as it would be deployed and serve it locally:

make preview

Then open http://localhost:4173/updates/.

API and CORS

The front-end calls the API using the relative path /updates/api. In production the site and API are on the same domain, so no CORS is involved.

When running locally (npm run serve or make preview), Vite proxies /updates/api to https://bigorange.cloud, so the browser only ever talks to localhost and the API's CORS allow-list doesn't need to include it. This means local runs show live production data.

Testing

All tests (for functions and front-end) live in /tests:

npm run test:unit
npm run test:unit:watch

About

All the AWS updates you need, in one place

Resources

Code of conduct

Contributing

Security policy

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages