hikmettan
|
cdf6e988e4
|
refresh EKAP document counts from detail
|
2026-09-06 19:46:56 +03:00 |
|
hikmettan
|
9fd1db3c8a
|
prefer official EKAP detail deadline
|
2026-09-06 19:44:29 +03:00 |
|
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 |
|