Commit Graph

24 Commits

Author SHA1 Message Date
Taras Kushnir f0db3be14d Add audit log source 2025-12-08 13:34:20 +01:00
Taras Kushnir 57636bbf48 Add API key scope 2025-12-08 12:44:42 +01:00
Taras Kushnir e03bf4f5ae Check if lock exists before trying to obtain it
Fixes infra warning about percent of rolled back transactions in PG
2025-12-06 14:03:30 +01:00
Taras Kushnir fa8422d1c7 Add basic auditlogs implementation. closes PrivateCaptcha/issues#204 2025-11-22 19:39:18 +02:00
Taras Kushnir 6726ec7723 Remove unused code 2025-11-20 09:33:33 +02:00
Taras Kushnir 73346ec4f6 Add external_email column to subscriptions 2025-11-11 18:38:35 +02:00
Taras Kushnir 9b3aa0ea94 Add functionality to move property. closes PrivateCaptcha/issues#151 2025-11-11 18:16:40 +02:00
Taras Kushnir 98cd19d104 Add functionality to rotate API keys. closes PrivateCaptcha/issues#188 2025-10-08 14:32:48 +03:00
Taras Kushnir 67e0937d0d Remove unused code 2025-09-15 08:57:07 +03:00
Taras Kushnir 2a5b525806 Remove query leftovers 2025-09-15 08:53:13 +03:00
Taras Kushnir 1d62e7f150 Start migration from allow_replay to max_replay_count logic 2025-08-23 14:53:32 +03:00
Taras Kushnir 2e64113005 Remove unused code 2025-08-22 09:44:47 +03:00
Taras Kushnir 8c8cfaf485 Add maintenance job to expire internal trials 2025-08-17 14:57:43 +03:00
Taras Kushnir 945100be86 Add circuit breaker for notifications processing 2025-08-17 12:50:00 +03:00
Taras Kushnir 2aabb90d66 Add requires_subscription flag for notifications 2025-08-16 17:01:12 +03:00
Taras Kushnir 1484d3c3d4 Add from parameter to expired trials query 2025-08-16 13:35:30 +03:00
Taras Kushnir 6c76c34df0 Add maintenance job to delete trial accounts 2025-08-16 10:42:46 +03:00
Taras Kushnir 335ea6dcb6 Store also plain-text version of notification template in DB 2025-08-16 09:01:03 +03:00
Taras Kushnir 92b35ebb91 Introduce concept of persistent user notifications
Fix tests
2025-08-15 17:40:51 +03:00
Taras Kushnir ff00d6fa1f Add notifications for expiring API keys. closes PrivateCaptcha/issues#1 2025-08-14 20:16:49 +03:00
Taras Kushnir fc8c04f686 Add notifications support 2025-08-14 10:52:45 +03:00
Taras Kushnir bf0598c1a9 Make siteverify API more resilient for unauthorized access
- more aggressive caching of API keys and added cache warmup
- remove direct DB access in APIkey() middleware immediately
- decrease resources usage for test puzzles
- decrease cache collision possibility for cached solved puzzles
- cosmetic improvement in rate limiter and leaky bucket Updater logic
- move user limits check and API key backfill to a separate goroutine
2025-06-21 14:16:28 +03:00
Taras Kushnir 9ec1ef8d65 Refactor caching layer
Main reason being otter/v2 release with APIs for sliding expiration.

- added new cache API to use Loader logic from otter/v2 (fetch from DB)
- main direction of work is improving "negative caching" performance
  (currently it is still intertwined with the main cache)
- expose new Prometheus metric for cache hit ratio
2025-06-21 14:16:28 +03:00
Taras Kushnir 4951055189 Initial commit 2025-05-31 10:56:00 +03:00