Blog

All posts
John Damask · 2026-03-04
devlogfeaturesbugsdynamodbquotas

Two smaller but important changes landed. A daily quota system was added -- a new /api/quota endpoint backed by a Lambda that counts today's jobs against a configurable SSM parameter (daily-processing-limit, default 20). The frontend calls this on page load and proactively disables the upload UI with a friendly message when the limit is hit, rather than letting users upload a PDF only to get a 429 back. The upload Lambda also enforces the limit server-side as a backstop.

Separately, a TTL bug surfaced where DynamoDB was auto-deleting in-progress jobs. The upload Lambda sets a 1-hour TTL on new job records (as a cleanup mechanism for abandoned uploads), but lambda_process wasn't removing the TTL attribute when marking jobs complete. Jobs that completed within the hour were fine, but the TTL clock was still ticking. The fix was straightforward: add REMOVE #ttl to the UpdateExpression in both the success and error paths of lambda_process.py. A small oversight with real consequences -- users would see their completed job disappear from the library after the original TTL expired.

A public output disclaimer was also added to the upload box: "Currently, all Now I Get It! output is public. Private accounts coming soon." -- setting expectations before users upload anything sensitive.