Skip to content

Lambda Inventory & Template Drift

Verified 2026-07-07 · re-verified 2026-07-17 against commit 1ce5b3e · account 660537473428, us-east-1

208 functions: 102 prod_*, 101 dev_*, plus prodapi_jb360dealer, devapi_jb360dealer, devapi_swaggerjson, jbwpendingagreementsnotification, api_cognitoclienttokenauthorizer.

Runtimes: Node.js 20/22/24 (mixed — some functions runtime-upgraded ad hoc), Java 17 (×4), Python 3.12/3.13 (×2). Node breakdown: nodejs20.x ×113, nodejs22.x ×55, nodejs24.x ×34.

proddev
Functionprod_jbwextractiondev_jbwextraction
Runtime / handlerJava 17, Spring Cloud Function FunctionInvokersame
Timeout / memory900 s / 2048 MB300 s / 512 MB
TriggerSQS prodtenantList, batch 5SQS tenantList, batch 10
CloudFormation stackjbw-prod-extraction (Jan 2024)jbw-extraction

Java 17 Lambdas prodapi_jb360dealer (15 s / 512 MB) and devapi_jb360dealer (900 s / 2048 MB), fronted by the JB360IntegrationAPI gateway (created 2026-01-13) with the cognitoclienttokenauthorizer TOKEN authorizer.

Its source is in the repo, at jbw-api/ — a Spring Boot 3.5.4 / Java 17 vendor-facing API, added 2026-05-20 (commit cfc5e7a, “Spring Release Changes”). The decisive evidence: devapi_jb360dealer’s deployed handler is com.maktix.jb.api.StreamLambdaHandler::handleRequest, and that package is jbw-api/src/main/java/com/maktix/jb/api/. The Cognito scope and user-pool ID in jbw-api/src/main/resources/application.properties also match the authorizer’s expectations exactly.

What jbw-api/ genuinely lacks is any infrastructure-as-code — no template.yaml, no samconfig.toml, no CI workflow. It ships as manual jar uploads.

No. Commit 1ce5b3e (“Terms of use, Renewal fixes and July stability release changes”) landed 2026-07-16T13:04:50Z. No Lambda in the account has a LastModified after that timestamp. The most recent deploy anywhere is prod_jbwclaimsstupdate at 2026-07-15T01:53:27Z — 35 hours before the commit.

The deploy/commit relationship is inverted from what you’d expect:

  • Console-pushed shortly before being committed (modified Jul 11–15): jbwclaimsstupdate, jbwagreementwithequipmentsdetails (prod); jbwdealeradmintoolsupdate, jbwdealerregistercreate, jbwgetactivedealerregistrationdetails, jbwinvoicejobsearch, jbwresetpasswordforexpireduser (dev). Timestamp-adjacent only — proving equivalence needs a build and a CodeSha256 comparison.
  • Not deployed at all (release changes exist only in git; Lambda last touched in 2025): jbwclaimsdealeradmintoolsupdate, jbwcontactus, jbwdealercreateadmintool, jbwdealerverifyadmintool, jbwvwonboardeddealersearch, jbwtenantbusinessunitsdatapull, jbwworkiztenantifno.
  • Never deployed to prod: prod_jbwresetpasswordforexpireduser does not exist (dev-only). Same for swaggerjson — only devapi_swaggerjson exists.

The “Terms of use” and “Renewal fixes” the commit is named for were deployed by console 5+ weeks before the commit (jbwsetusertermsagreed prod 2026-06-12; jbwservicetitansagreementspull prod 2026-06-08). Git is a record of this system, not its deployment mechanism.

template.yaml defines 63 functions; 102 prod_* functions are deployed. The template was last edited 2025-10-26 (commit 3d19230, “October 2025 Release”) and the July 2026 release did not touch it — while adding 13 new function directories.

Functions whose source exists in the repo but isn’t templated (matches the non-templated dirs list):

jbwagreementdismiss, jbwagreementreferenceremovalfromst, jbwagreementsearch, jbwagreementslocationsfetch, jbwagreementsyncfileupload, jbwagreementsyncuploadcsvdata, jbwautoprocessagreementsstatus, jbwclaimsadmintoolsupdate, jbwclaimsdownloadadmintools, jbwclaimsearch, jbwcreatepotentialclaim, jbwcreateupdateemailtemplate, jbwdatapullfromJB, jbwdbconnection, jbwdealeradmintoolsupdate, jbwgetagreementdetailsbyjbwagreementid, jbwgetequipmenttypes, jbwgetstinstalledequipments, jbwinvoiceitemskuupdate, jbwinvoicelookup, jbwinvoicesummarylist, jbwremoveduplicatelocationnotesfromst, jbwsendagreementemail, jbwstlocationdatawithagreement, jbwupdateagreementcontactinfo, jbwupdateagreementsynclocation, jbwusersignupemail

(jbwextraction also appears in this diff but is the separately-deployed extraction module above.)

Odds and ends: the template’s jbwtblproductssearch is deployed as prod_Jbwtblproductssearch (capital J).

StackLast updatedContents
jbw-prod-api2024-05-06The SAM backend (prod) — stale vs reality
jbw-stage-api2024-04-27The SAM backend (stage)
jbw-prod-extraction2024-01-24extraction module (prod)
jbw-extraction2024-01-22extraction module (stage)