Copilot
7d1247848b
Add organization transfer feature ( #240 )
...
* Initial plan
* Initial plan for organization transfer feature
Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com >
* Add organization transfer feature with UI, DB layer, and integration test
Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com >
* Address PR feedback: verify old owner in property transfer, swap org membership, show masked email in audit, add negative tests
Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com >
2026-01-08 20:25:09 +02:00
Taras Kushnir
cbdc994e0d
Add Org scope to API keys. closes PrivateCaptcha/issues#237
2025-12-22 18:54:47 +01:00
Taras Kushnir
1478f7a376
Add read-only attribute to the scope of API key
2025-12-22 14:33:26 +01:00
Taras Kushnir
3475c9c1e2
Add API to batch-update properties. related PrivateCaptcha/issues#45
2025-12-18 14:28:55 +01:00
Taras Kushnir
05e653631e
Add pagination support for org properties. related PrivateCaptcha/issues#45
2025-12-17 18:32:41 +01:00
Taras Kushnir
b0c7b4c957
Cosmetic improvement
2025-12-17 18:16:02 +01:00
Taras Kushnir
653b91f86e
Add API support to delete properties. related PrivateCaptcha/issues#45
2025-12-17 12:55:49 +01:00
Taras Kushnir
b959c00af8
Add create properties bulk API. related PrivateCaptcha/issues#45
2025-12-15 15:43:05 +01:00
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
567c7ddb00
Bump sqlc to 1.30.0
2025-12-06 14:04:04 +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
affbb60a43
Drop allow_replay column for properties
2025-08-23 20:04:31 +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