Lambda Inventory & Template Drift
Verified 2026-07-07 · re-verified 2026-07-17 against commit
1ce5b3e· account 660537473428, us-east-1
Totals
Section titled “Totals”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.
The extraction Module, As Deployed
Section titled “The extraction Module, As Deployed”| prod | dev | |
|---|---|---|
| Function | prod_jbwextraction | dev_jbwextraction |
| Runtime / handler | Java 17, Spring Cloud Function FunctionInvoker | same |
| Timeout / memory | 900 s / 2048 MB | 300 s / 512 MB |
| Trigger | SQS prodtenantList, batch 5 | SQS tenantList, batch 10 |
| CloudFormation stack | jbw-prod-extraction (Jan 2024) | jbw-extraction |
The jb360dealer API
Section titled “The jb360dealer API”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.
Is the July 2026 release deployed?
Section titled “Is the July 2026 release deployed?”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 aCodeSha256comparison. - 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_jbwresetpasswordforexpireduserdoes not exist (dev-only). Same forswaggerjson— onlydevapi_swaggerjsonexists.
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 vs Deployed (prod)
Section titled “Template vs Deployed (prod)”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.
Deployed but NOT in the template (39)
Section titled “Deployed but NOT in the template (39)”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).
CloudFormation Stacks
Section titled “CloudFormation Stacks”| Stack | Last updated | Contents |
|---|---|---|
jbw-prod-api | 2024-05-06 | The SAM backend (prod) — stale vs reality |
jbw-stage-api | 2024-04-27 | The SAM backend (stage) |
jbw-prod-extraction | 2024-01-24 | extraction module (prod) |
jbw-extraction | 2024-01-22 | extraction module (stage) |