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