Commit Graph
165 Commits
Author SHA1 Message Date
hikmettan 74e784e2f7 use canonical province map for direct tenders 2026-09-06 19:36:00 +03:00
hikmettan 285dd6fb9f support tender deadline label variants 2026-09-06 19:27:23 +03:00
hikmettan bd5c122522 normalize tender result status in dedupe 2026-09-06 19:25:08 +03:00
hikmettan 171392585c classify document source outages 2026-09-06 18:55:43 +03:00
hikmettan 11685867e2 add persistent readiness health check 2026-09-06 18:37:11 +03:00
hikmettan 404bfc4972 restrict browser permissions on API responses 2026-09-06 18:25:05 +03:00
hikmettan bdde4534f6 vary CORS responses by origin 2026-09-06 18:18:19 +03:00
hikmettan 089f5c36f0 allow configuring CORS origins 2026-09-06 18:16:27 +03:00
hikmettan 6e78485228 skip malformed tender rows during deduplication 2026-09-06 18:09:06 +03:00
hikmettan 6b3b446e49 normalize health portfolio identifiers 2026-09-06 18:07:55 +03:00
hikmettan 231c372411 validate health portfolio profile writes 2026-09-06 18:07:10 +03:00
hikmettan 64919270d8 validate Telegram bot token in production 2026-09-06 18:03:39 +03:00
hikmettan 348e32377c validate email delivery inputs 2026-09-06 18:01:13 +03:00
hikmettan 1d6bb71478 support CORS preflight requests 2026-09-06 17:59:28 +03:00
hikmettan f1b283b3d9 verify Stripe cancellation was scheduled 2026-09-06 17:58:14 +03:00
hikmettan a5cfc93424 default unknown Stripe plans to free 2026-09-06 17:56:48 +03:00
hikmettan 8f62f2f0cf restrict Stripe webhook plan ids 2026-09-06 17:56:07 +03:00
hikmettan 182f6dc05c harden Stripe checkout webhook fields 2026-09-06 17:55:24 +03:00
hikmettan d6040379c2 add API response security headers 2026-09-06 17:53:33 +03:00
hikmettan 2cac68e6ba require expiration on auth tokens 2026-09-06 17:52:34 +03:00
hikmettan efe10a9fc4 require boolean Stripe cancellation state 2026-09-06 17:51:46 +03:00
hikmettan 4c9354362a validate Stripe period end timestamps 2026-09-06 17:51:05 +03:00
hikmettan 4edbdc94e5 protect email configuration endpoint 2026-09-06 17:50:18 +03:00
hikmettan 5bffc66fc6 validate Stripe cancellation timestamp 2026-09-06 17:49:09 +03:00
hikmettan fc45d8e934 validate Stripe cancellation responses 2026-09-06 17:48:13 +03:00
hikmettan cd06cafddf validate Stripe checkout responses 2026-09-06 17:47:26 +03:00
hikmettan d7c1680f0a enforce request limits in UTF8 bytes 2026-09-06 17:46:25 +03:00
hikmettan fbe74b0919 fix subscription cancellation body parsing 2026-09-06 17:45:38 +03:00
hikmettan 84ce2b8155 validate Stripe webhook event shape 2026-09-06 17:44:43 +03:00
hikmettan b737795eef validate email test payloads 2026-09-06 17:43:49 +03:00
hikmettan ac5fda9050 return validation errors for notification reads 2026-09-06 17:43:01 +03:00
hikmettan 9cd3476670 validate brief manifests before enqueue 2026-09-06 17:40:53 +03:00
hikmettan 846431ca17 surface malformed seen tender history 2026-09-06 17:40:12 +03:00
hikmettan 78d6cb7de2 validate completed AI results 2026-09-06 17:39:25 +03:00
hikmettan c6dfd26387 validate weekly brief message fields 2026-09-06 17:38:43 +03:00
hikmettan b9a71a83dc validate weekly brief manifests 2026-09-06 17:38:04 +03:00
hikmettan 9e90d04ef5 validate persisted AI job JSON 2026-09-06 17:37:16 +03:00
hikmettan d02b6f0f3c validate Google identity claims 2026-09-06 17:36:19 +03:00
hikmettan 887cd5872f separate public client id from auth secret 2026-09-06 17:35:40 +03:00
hikmettan ed1f061019 validate legacy notification filters 2026-09-06 17:34:57 +03:00
hikmettan d9b6e11582 fail closed on missing auth secret 2026-09-06 17:34:13 +03:00
hikmettan 410bd2de1f require auth secret in production 2026-09-06 17:33:35 +03:00
hikmettan 7bda9cf3f6 surface malformed subscription filters 2026-09-06 17:32:37 +03:00
hikmettan 89b9a85227 validate notification payload JSON 2026-09-06 17:31:52 +03:00
hikmettan 7f9de80de9 validate notification history arrays 2026-09-06 17:31:07 +03:00
hikmettan 3e73849480 harden raw request body parsing 2026-09-06 17:29:29 +03:00
hikmettan 47286fe847 stop oversized request body parsing 2026-09-06 17:28:51 +03:00
hikmettan 120657758c fix: reject unconfirmed Telegram tests and invalid update responses 2026-09-06 14:55:05 +03:00
hikmettan 37fb7b0366 fix: clear consumed Telegram challenges after link changes 2026-09-06 14:53:35 +03:00
hikmettan 283bfe5990 fix: bind Telegram pairing to expiring single-use account challenges 2026-09-06 14:50:11 +03:00