Skip to content

Deployment History & Procedure

Origin (from the January 2024 deployment notes — historical)

Section titled “Origin (from the January 2024 deployment notes — historical)”

Where these notes conflict with the live account, the other AWS pages are current truth.

  • The system was built by Maktix (3 repos: jbwui, jbw-sam, extraction) and deployed into the JBW account (660537473428) in January 2024; the jbwst database was restored from a Maktix-provided MySQL snapshot.
  • The RDS Proxy + Secrets Manager + IAM rds-db:connect pattern, the VPC/subnet/security-group layout, and the NAT gateways date from this deployment.
  • The extraction queue was originally st-tenant-list, later replaced by tenantList (stage) and prodtenantList (prod).
  • CloudFormation stacks: jbw-stage-api + jbw-extraction (Jan 2024), jbw-prod-api + jbw-prod-extraction (Jan–May 2024). No stack has been updated since May 2024 — all later changes were applied directly (console/CLI), so the stacks no longer describe reality.
Terminal window
sam build
sam deploy # prod config in samconfig.toml (stack jbw-prod-api)

Then re-attach auth: invoke jbwapiauthorizerupdate with {restApiId, authorizerId, region} — the template creates the API with no authorizer. Skipping this leaves the API open.

Reality check: since the live account has drifted (40 extra prod functions, changed env vars, runtime upgrades), a plain sam deploy today would delete/revert console-made changes. Reconcile the template first.

Terminal window
./mvnw clean package # shaded jar (classifier "aws")
sam deploy # stacks jbw-prod-extraction / jbw-extraction

Parameters: security group, two private subnets, DB secret name, RDS proxy endpoint + resource id. Trigger = SQS event source mapping (prodtenantList / tenantList).

Terminal window
npm install
npm run build:prod # or build:stage
# upload build/ to the website bucket, then invalidate CloudFront
# prod : jbw-prod-api-websitebucket-kngktu57hpif (CF E2KRETR1VH71KG)
# stage: jbw-stage-api-websitebucket-uqwzkpdkbfvb (CF E28GJHAKWEKWHR)

Environment (Cognito pool, gateway URL, ST/Workiz links) is baked in at build time from .env/prod.env/stage.env.

JDK 17, Node 20, Maven, AWS CLI, SAM CLI, Git.

Git history shows quarterly-ish release commits on main (“January Release”, “Workiz Release”, “October 2025 Release”, “Spring Release Changes”, “Renewal Functionality changes”). There is no CI/CD — all builds and deploys are manual from a workstation.