Skip to main content

w3-web-svc-picture

Purpose

Apollo Federation subgraph that lists folders and files in an S3 bucket and returns signed CloudFront URLs for access.

Architecture

  • Apollo subgraph with @apollo/server + @apollo/subgraph.
  • Loads config from AWS SSM Parameter Store then .env.
  • Uses AWS SDK v3 S3Client to list objects.
  • Generates signed CloudFront URLs using key pair and private key.

GraphQL API

  • pictureFolders(prefix: String): [String!]!
    • Lists direct folder prefixes under the bucket (or under prefix).
  • pictureFiles(prefix: String!, continuationToken: String): PictureFilesPage!
    • Lists objects under prefix and returns signed URLs.

Types:

  • PictureFilesPage { items: [PictureFile!]!, nextToken: String }
  • PictureFile { key: String!, url: String! }

Configuration highlights

  • AWS_REGION
  • S3_MY_PICTURES
  • CLOUDFRONT_DOMAIN, CLOUDFRONT_KEY_PAIR_ID, CLOUDFRONT_PRIVATE_KEY_PATH, CLOUDFRONT_EXPIRES_SECONDS
  • MONGODB_CONNECTION_STRING, MONGODB_MAX_POOL_SIZE (shared config pattern)