Skip to content

Releases: timpugh/lambda-powertools-reference

v2.0.3 — portable CDK snapshot tests

19 Jun 03:26

Choose a tag to compare

v2.0.3 — portable CDK snapshot tests

Patch release following up v2.0.2.

  • fix: normalize the Lambda version logical-id hash in the CDK snapshot
    tests so they're deterministic across build environments (the backend
    snapshot failed in CI though it passed locally, because the asset-derived
    version hash differs between a local run and CI's fresh checkout)

v2.0.2 — layered Lambda, snapshot tests, expanded fork docs

18 Jun 21:27

Choose a tag to compare

v2.0.2 — layered Lambda, snapshot tests, expanded fork docs

  • refactor: split the Lambda handler into handler/service/model layers
    (behavior unchanged; the generated OpenAPI spec is byte-identical)
  • test: add CloudFormation template snapshot tests across all five stacks
    (asset hashes normalized; regenerate with UPDATE_SNAPSHOTS=1 make test-cdk)
  • docs: expand the README for forkers — consolidated cost overview, the
    testing approaches used and not used, Secrets-Manager-vs-SSM and
    configuration guidance, and scaling pointers (async/event-driven,
    multi-tenant/SaaS, API surface conventions, privacy/compliance)

v2.0.1 — dependency maintenance

17 Jun 03:36

Choose a tag to compare

v2.0.1 — dependency maintenance

Patch release on top of v2.0.0. No functional or infrastructure changes — only
dependency updates, landed via Dependabot and merged through the make deps-merge
flow (rebase onto main, regenerate uv.lock + lambda/requirements.txt, CI-gated
auto-merge):

  • linting group: ruff / mypy / pylint / etc. (#78)
  • patches groups: transitive + tooling pins (#72, #84)

See the [2.0.1] section of CHANGELOG.md.

v2.0.0 — De-branded "ServerlessApp" reference architecture

16 Jun 23:49

Choose a tag to compare

v2.0.0 — De-branded "ServerlessApp" reference architecture

Major release. The headline change is a full de-brand from the "HelloWorld"
placeholder to role-based names — breaking for anyone who forked an earlier tag.

BREAKING CHANGES

  • CDK package renamed: hello_world/ -> infrastructure/ (imports change).
  • Stack names renamed: HelloWorld{,Data,Frontend,Waf,Audit}-{region} ->
    ServerlessApp{Backend,Data,Frontend,Waf,Audit}-{region}. Deploying v2.0.0 does
    NOT update a v1.x stack set in place — CloudFormation matches by name, so new
    stacks are created; destroy the old set (or migrate state) when upgrading.
  • API route renamed: GET /hello -> GET /greeting.
  • Distribution/package name: hello-world -> serverless-app.
  • Classes (HelloWorldApp -> BackendApp, HelloWorldStack -> BackendStack, etc.),
    construct IDs, metric namespace (HelloWorld -> ServerlessApp), and service name
    (hello-world -> serverless-app) all de-branded. The greeting payload value
    "hello world" is intentionally unchanged.

HIGHLIGHTS SINCE v1.1.0

  • Two stateful stacks behind one retain_data switch: DataStack (DynamoDB + CMK)
    and AuditStack (CloudTrail object-level S3 data-event trail + bucket + CMK).
  • Progressive delivery: CodeDeploy canary on the Lambda alias, plus an opt-in
    AppConfig gradual rollout with alarm-driven rollback.
  • WAF logs to S3 (aws-waf-logs-*) with partition-projected Athena/Glue tables; a
    regional WAF on API Gateway closes the execute-api CloudFront-bypass window.
  • TemplateConventionChecks validation Aspect; committed + CI-gated OpenAPI spec;
    a PR CloudFormation-diff job; in-house coverage badge; env/region stack dimension.
  • Verified end-to-end on a live deploy + destroy-clean teardown.

Full changelog: see the [2.0.0] section of CHANGELOG.md.

v1.1.0 — security hardening, audit fixes, and teardown safety

09 Jun 05:16
83645c8

Choose a tag to compare

v1.1.0 — security hardening, audit fixes, and teardown safety

  • API Gateway regional WAF, throttling, reserved concurrency, HSTS/CSP headers

  • Add make destroy-clean and tighten tooling config

  • Concurrency control, job timeouts, pinned CDK CLI, full-group audit

  • Document the release-cutting workflow

  • Document doctor + clean-venvs targets and venv strategy

  • Add CLAUDE.md for future Claude Code sessions

  • Document cdk-* make targets and --trace tip

  • Add gitignore.io to Resources

  • Document cdk-revert-drift and a future drift-as-CI-signal step

  • Reconcile README/TODO/diagram with shipped code; document teardown race

  • Add cleanup CR for RUM's auto-created log group

  • Suppress AwsSolutions-IAM5 on the RUM cleanup CR

  • Revert .bandit exclude_dirs anchoring that broke the tests exclusion

  • Add doctor + clean-venvs targets, expand venv-location preamble

  • Add cdk-diff/drift/diagnose/gc/rollback/ls targets

  • Bump idna 3.13->3.16 and pymdown-extensions 10.21.2->10.21.3

  • Add cdk-revert-drift target for drift remediation

  • Strengthen CDK/unit/integration assertions and add regression guards

v1.0.1 — Documentation patch

13 May 00:38

Choose a tag to compare

v1.0.1 — Documentation patch

Documentation-only release. No code or infrastructure changes.

Highlights:

  • AWS architecture diagram embedded at the top of the README, generated
    via the deploy-on-aws Claude Code plugin's aws-architecture-diagram
    skill. Source committed at docs/architecture.drawio; rendered PNG at
    docs/architecture.png. Covers the request path, Lambda's config/state
    dependencies, the audit + access-log analytics pipeline, and the
    auxiliary observability layer. Ten numbered steps + right-side legend.
  • CHANGELOG.md auto-generated from conventional-commit history via
    git-cliff (cliff.toml). Dependabot bumps and merge commits filtered
    out so the changelog reflects feature/fix/docs/CI history rather than
    dependency churn.
  • README "Commit message convention" section documents the git-cliff
    workflow and mentions Commitizen as an optional author-time enforcer
    for forks that want it.
  • "Worth flagging if forked for a real workload" section adds ggshield
    (full-history secret scanning), a pointer to Renovate's post-upgrade
    tasks feature, and CloudEvents (event-format spec to adopt up front
    if a fork ever introduces async event sources).

v1.0.0 — First stable release

12 May 14:45

Choose a tag to compare

v1.0.0 — First stable release

A production-grade AWS CDK reference architecture for Lambda + Powertools
serverless applications.

Highlights:

  • Three-stack composition (WAF, backend, frontend) inside a cdk.Stage,
    with cross-region WAF reference support.
  • CMK encryption end-to-end on every resource that supports a per-resource
    key: DynamoDB, Lambda env vars, all log groups, frontend S3 bucket,
    AppConfig hosted configuration content, SQS DLQs, and CloudTrail trail
    log files. Account/region-wide encryption settings (X-Ray, Glue
    catalog) deliberately out of scope per the forkability constraints.
  • Five-rule-pack cdk-nag gating every synth (AwsSolutions, Serverless,
    NIST 800-53 R5, HIPAA Security, PCI DSS 3.2.1), descending into
    Stage-nested stacks via the '**' glob.
  • Confused-deputy-guarded service-principal grants on every CMK
    (CloudWatch Logs, CloudTrail, GuardDuty).
  • WAF with five managed rule sets + forwarded-IP rate limit, attached
    to CloudFront.
  • CloudTrail with object-level S3 data events on every audited bucket,
    log-file integrity validation, CMK-encrypted trail log files, and
    account/source-ARN-scoped bucket-policy Deny statements.
  • Async failure destination on every CDK-managed singleton Lambda so
    CloudFormation provider crashes preserve their event envelope to SQS.
  • Supply-chain hygiene: pip-audit + bandit + hash-pinned actions +
    grouped Dependabot updates + uv.lock <-> lambda/requirements.txt
    drift check in CI + v1.0 safety nets (detect-private-key,
    check-merge-conflict, check-added-large-files).
  • CloudWatch RUM browser telemetry joined to backend X-Ray traces via
    cwr's client-side X-Ray segment integration.
  • Athena + Glue access-log analytics with per-object SSE-KMS overrides
    on query results.
  • Powertools idempotency on the application Lambda with caller-supplied
    Idempotency-Key header enforcement (raise_on_no_idempotency_key=True).
  • Zensical-built HTML documentation deployed to GitHub Pages on every
    push to main, with OpenAPI spec regenerated from the live handler.

See TODO.md "Production readiness checklist" for the items a fork
needs to fill in before customer traffic touches it.