Commit Graph

  • c75060a7f1 Use singular “update” when the digest has one item so FCM and SMS bodies stay grammatical. endpoint-query Jose Olarte III 2026-09-18 16:54:09 +08:00
  • 77df676d6e Accept POST on /notifications/alert-authorization instead of PUT. Jose Olarte III 2026-09-18 15:05:30 +08:00
  • 226925278f Move remaining alertSearch tests under test/. Jose Olarte III 2026-09-18 14:53:41 +08:00
  • 93168ae360 make the boolean checks consistent, and guard against mistakes trentlarson 2026-09-14 11:43:22 -06:00
  • 885c6ced42 bump version and add '-beta' trentlarson 2026-09-09 21:09:44 -06:00
  • 4c2e6491db bump to version 0.2.1, for relase on test server trentlarson 2026-09-09 21:09:09 -06:00
  • 657fd9c530 Count the SMS digest cap by UTC calendar day so a send just before midnight does not block the next day’s text. Jose Olarte III 2026-09-09 21:19:49 +08:00
  • 65eb1bee1e add notify hour-minute setting, and a DELETE for an existing alert endpoint-query-sms trentlarson 2026-09-07 18:55:52 -06:00
  • 9e5b8bbd59 Merge branch 'endpoint-query' into endpoint-query-sms trentlarson 2026-09-07 17:02:18 -06:00
  • 6cea0e9b67 sms: create explicit allow & block management trentlarson 2026-09-06 12:20:04 -06:00
  • 2e34bed700 sms: more debugging info trentlarson 2026-09-06 09:32:03 -06:00
  • bfac283690 add tests -- which have worked on Trent's machine... SMS sent! trentlarson 2026-09-06 09:22:15 -06:00
  • f967db7373 Add SMS notifications. The PLAN is executed but this isn't tested yet. trentlarson 2026-09-05 20:52:34 -06:00
  • adf5e6166d add a flag for the debug endpoints, and distinguish unavailable errors trentlarson 2026-09-05 16:54:23 -06:00
  • 776558b230 remove debug endpoints that are unsafe in final version trentlarson 2026-09-05 13:21:03 -06:00
  • d0a3951689 Allow the ngrok browser-warning skip header in CORS so a WebView can reach the local tunnel without failing preflight. Jose Olarte III 2026-09-03 21:12:59 +08:00
  • c9df679ac2 Document the real Docker/node dist/index.js production path, durable SQLite, single replica, and Firebase credential options so deploys are not treated as equivalent to tsx. Jose Olarte III 2026-09-01 16:07:21 +08:00
  • cfc2cdefa3 Send a TimeSafari FCM digest after a completed daily alertSearch with updates, using JWT consumption to avoid repeat sends without changing WAKEUP_PING. Jose Olarte III 2026-08-31 21:41:34 +08:00
  • 10e80c6f41 Attach the alertSearch digest to each daily run so a completed retrieve is notification-ready without changing JWT consumption or cursor rules. Jose Olarte III 2026-08-31 20:44:04 +08:00
  • a93a46ba39 fix version in package-lock master trentlarson 2026-08-30 11:08:54 -06:00
  • 49f50e36b7 Add a structured alertSearch digest of the six result buckets so the app can build a daily notification from records and counts, not a server-hardcoded message. Jose Olarte III 2026-08-28 20:58:13 +08:00
  • 209b346d16 Add a user-level alertSearch scheduler that runs each authorization-batch user once per pass, with an in-flight guard, without changing FCM wakeup. Jose Olarte III 2026-08-28 16:39:22 +08:00
  • d45ea26bca Add a callable daily alertSearch run that picks today’s unused delegated JWT from the batch timezone and consumes it only after both sources complete. Jose Olarte III 2026-08-28 15:46:39 +08:00
  • 131d2fc9d9 Add an explicit alertSearch cycle that loads cursors, retrieves, and advances only complete sources so scheduler integration can reuse a proven path. Jose Olarte III 2026-08-27 20:55:13 +08:00
  • eb5b286476 Persist independent Endorser and Partner alertSearch cursors per user so later daily runs can resume after the last complete retrieval. Jose Olarte III 2026-08-27 20:20:51 +08:00
  • caeca10910 Fix Endorser alertSearch pagination so the next beforeId is the max of per-bucket minima, not the global min. Jose Olarte III 2026-08-27 16:34:36 +08:00
  • 74e9c02669 Add an alertSearch retrieval layer so notify-api can query Endorser and Partner with a delegated JWT. Jose Olarte III 2026-08-27 15:16:04 +08:00
  • 00cd0cf8f4 Add PUT /notifications/alert-authorization so the app can install a 100-JWT delegated batch without overloading device registration. Jose Olarte III 2026-08-26 20:40:52 +08:00
  • 9c7c7fa271 bump version to 0.1.4 and add to CHANGELOG Jose Olarte IIIandCursor 2026-08-07 15:49:28 +08:00
  • 76d3447d78 Merge pull request 'chore: rename FCM_TOKEN_DATA_DIR env var to NOTIFY_DATA_DIR' (#4) from data-dir-rename into master jose 2026-08-07 06:26:36 +00:00
  • 6e4e1e7f1b chore: rename FCM_TOKEN_DATA_DIR env var to NOTIFY_DATA_DIR data-dir-rename Jose Olarte III 2026-08-04 17:31:14 +08:00
  • a45150e25f bump version to 0.1.3 and add to CHANGELOG trentlarson 2026-07-30 20:21:03 -06:00
  • d8989f587e Merge pull request 'Convert JSON storage to SQLite' (#3) from sqlite-storage into master jose 2026-07-29 11:40:59 +00:00
  • 9e6597638e chore(db): rename SQLite database file to notify.sqlite sqlite-storage Jose Olarte III 2026-07-27 16:53:53 +08:00
  • 06ec0f63e4 docs: document SQLite storage for FCM registrations Jose Olarte III 2026-07-24 20:52:38 +08:00
  • ddb969c26d chore(db): remove obsolete JSON FCM token repository Jose Olarte III 2026-07-24 17:57:44 +08:00
  • e79d55fac6 perf(db): tighten SQLite FCM registration queries Jose Olarte III 2026-07-24 17:31:23 +08:00
  • 11bd45b460 feat(db): switch runtime storage to SQLite repository Jose Olarte III 2026-07-23 18:55:17 +08:00
  • 5a3c22a4e3 feat(db): add SQLite FCM registration repository Jose Olarte III 2026-07-23 18:36:10 +08:00
  • fa8ab86cdb feat(db): add SQLite foundation for FCM registration storage Jose Olarte III 2026-07-23 17:44:27 +08:00
  • 55d43a1a20 bump version to 0.1.2 trentlarson 2026-07-16 22:46:09 -06:00
  • c4f34c8882 Merge pull request 'endorser-authentication' (#2) from endorser-authentication into master jose 2026-07-16 12:32:40 +00:00
  • 9634c3422e docs: document Endorser auth flow and ENDORSER_URL endorser-authentication Jose Olarte III 2026-07-10 21:09:22 +08:00
  • 2343cece5c fix(auth): distinguish Endorser unavailability from auth rejection Jose Olarte III 2026-07-10 19:06:40 +08:00
  • f2f0732ef5 feat(auth): share Endorser verification across register and refresh Jose Olarte III 2026-07-10 18:58:52 +08:00
  • 764c89c071 feat(auth): require Endorser verification on device registration Jose Olarte III 2026-07-10 18:44:35 +08:00
  • e5415280bd feat(endorser): add client helper to check JWT via rateLimits Jose Olarte III 2026-07-10 18:05:16 +08:00
  • 0758c4192f feat(config): add ENDORSER_URL for upcoming Endorser auth Jose Olarte III 2026-07-10 16:09:57 +08:00
  • fcf3fb9aa0 chore: ignore .DS_Store files Jose Olarte III 2026-07-02 17:14:11 +08:00
  • a99117dc98 bump to v 0.1.1, change default port to 3003, fix Dockerfile to build & run separately trentlarson 2026-06-28 17:29:21 -06:00
  • 85301135c7 fix type errors trentlarson 2026-06-28 17:28:54 -06:00
  • 7a2bb88207 feat(config): load .env and log Firebase credential source at startup Jose Olarte III 2026-06-11 17:50:16 +08:00
  • 6261f1baa0 feat(debug): allow local testMode auth on send-wakeup Jose Olarte III 2026-06-11 17:24:06 +08:00
  • bb0927ad92 Merge pull request 'Dockerize' (#1) from docker into master trentlarson 2026-06-06 01:31:52 +00:00
  • 2dba6c3597 Merge branch 'master' into docker trentlarson 2026-06-05 19:30:50 -06:00
  • 6ba7d678c6 feat(notifications): allow local debug register/refresh without JWT Jose Olarte III 2026-06-04 20:32:18 +08:00
  • dffb86007e fix(cors): enable preflight for Capacitor WebView requests Jose Olarte III 2026-06-04 18:26:22 +08:00
  • a2e5fa0ab9 fix the pnpm build -- 'docker build' now works trentlarson 2026-06-02 20:37:29 -06:00
  • c010c861b4 attempt a Docker file but it fails on step 5 trentlarson 2026-05-27 20:37:33 -06:00
  • df442df869 add a README.md with basics, and target pnpm instead of npm trentlarson 2026-05-27 20:02:24 -06:00
  • 03ebe03021 chore: add .env.example for local setup Jose Olarte III 2026-05-24 10:25:45 +08:00
  • f12dd03725 chore(logging): normalize wakeup flow observability with timings and summaries Jose Olarte III 2026-05-21 19:18:28 +08:00
  • e82c3ae5bc feat(debug): expose nextEligibleAt and structured send-wakeup results Jose Olarte III 2026-05-21 18:23:50 +08:00
  • 9764b30aed fix(auth): harden refresh ownership and scheduler after auth migration Jose Olarte III 2026-05-19 19:53:21 +08:00
  • afbc2e9a57 feat(debug): harden debug routes with auth and user-scoped token access Jose Olarte III 2026-05-19 19:42:22 +08:00
  • 8e502a2335 feat(notifications): bind device registrations to authenticated user DID Jose Olarte III 2026-05-19 19:02:42 +08:00
  • 4bf57d26fd Add Bearer JWT auth middleware for notification routes Jose Olarte III 2026-05-19 18:23:41 +08:00
  • fc0cad4f2e feat(register): key devices by deviceId and replace FCM tokens in place Jose Olarte III 2026-05-12 21:44:59 +08:00
  • e92ddb7da9 chore(obs): add lightweight console logs for scheduler and push Jose Olarte III 2026-05-12 18:41:41 +08:00
  • 86d589d0e8 feat(db): track last push time by device id with numeric timestamps Jose Olarte III 2026-05-11 21:23:10 +08:00
  • 096f393df9 feat(scheduler): run wake pushes every five minutes Jose Olarte III 2026-05-11 18:35:45 +08:00
  • a5266615eb feat(push): send silent iOS wakeups via FCM APNs background Jose Olarte III 2026-05-11 17:09:01 +08:00
  • 1115929437 feat(push): dedupe FCM sends with 23h / 10m windows Jose Olarte III 2026-05-11 16:56:07 +08:00
  • 2b57ec0e1c feat(notifications): add POST /refresh schedule response Jose Olarte III 2026-05-11 15:59:26 +08:00
  • 64ea7d2f98 feat(notifications): persist FCM tokens on POST /register Jose Olarte III 2026-05-11 14:52:09 +08:00
  • d311b6a504 feat(fcm): add Firebase Admin SDK and messaging export Jose Olarte III 2026-05-11 14:47:05 +08:00
  • 94c38bac74 feat(backend): scaffold Express API with health and module layout main Jose Olarte III 2026-05-11 14:33:32 +08:00