Commit Graph

706 Commits

Author SHA1 Message Date
Taras Kushnir
6d405eec80 Add 2FA code grace time 2026-01-30 08:29:13 +02:00
Taras Kushnir
70d3bf9de1 Cosmetic improvement 2026-01-29 13:12:22 +02:00
Taras Kushnir
e5bfd6407a Add ability to send verify requests for test puzzle in loadtest v1.28.2 2026-01-28 16:14:19 +02:00
Taras Kushnir
bbbe766cce Move more API types to easyjson 2026-01-28 15:24:12 +02:00
Taras Kushnir
a3dd64fb04 Do not close DB connections after migration in auto mode 2026-01-28 15:17:26 +02:00
Taras Kushnir
8e9cca9290 Mark server images read-only in docker compose
[ci skip]
2026-01-28 08:52:31 +02:00
Taras Kushnir
80a3ad4d34 Print sha256 sum of public keys for verifcation 2026-01-28 08:40:31 +02:00
Taras
a2ee4e2f5f Update docker.yaml v1.28.1 2026-01-28 08:17:21 +02:00
Taras
b7665baa4a Update README.md [ci skip] v1.28.0 2026-01-27 21:06:34 +02:00
Taras
dafc0c0544 Exclude easyjson generated files in sonar-project.properties 2026-01-27 20:59:03 +02:00
Taras Kushnir
d640316e67 Add lint command [ci skip] 2026-01-27 20:54:00 +02:00
Taras Kushnir
2a73f2dd07 Use easyjson for marshaling json. related PrivateCaptcha/issues#98
apparently json.Marshal() was taking about 3% of all CPU time for /verify
2026-01-27 20:49:16 +02:00
Taras Kushnir
a7802098e6 Add load test for verify endpoint. closes PrivateCaptcha/issues#98 2026-01-27 20:46:13 +02:00
Copilot
acae441a99 Improve test coverage for puzzle, portal, monitoring packages (#264)
* Initial plan

* Add tests for puzzle, monitoring, portal packages

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Add registration disabled tests

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Address PR review comments: fix tests and use constants

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix audit tests with non-empty arrays and use constants for error strings

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Update audit.go

* Update audit.go

---------

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-27 12:35:41 +02:00
Taras Kushnir
354967a96c Bump ClickHouse version to 25.6.2 2026-01-26 15:11:26 +02:00
Taras Kushnir
315248bba0 Fix CI 2026-01-26 14:40:41 +02:00
Taras Kushnir
d355541170 Cosmetic improvement 2026-01-26 14:29:03 +02:00
Taras Kushnir
3c3f31a59d Fix heredoc in bash 2026-01-26 14:24:38 +02:00
Taras Kushnir
c662aa30a1 Add option to have admin pwd for ClickHouse 2026-01-26 13:03:06 +02:00
Taras Kushnir
5b06e34a02 Fix CI 2026-01-26 11:44:45 +02:00
Taras Kushnir
4f69181c44 Fix CI 2026-01-26 11:37:33 +02:00
Taras Kushnir
e8999c9a16 Move to bash scripts for DB init in Docker 2026-01-26 11:31:36 +02:00
Taras Kushnir
f98e54b5a9 Enable Java integration 2026-01-25 19:12:21 +02:00
Taras Kushnir
8a86a435b4 Fix typos 2026-01-24 08:43:48 +02:00
Taras
48c28a92a9 Update module golang.org/x/text to v0.33.0 (#263)
Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
2026-01-24 08:41:37 +02:00
Taras Kushnir
d2867e7101 Rename drop metric location 2026-01-23 17:34:22 +02:00
Taras Kushnir
56b86be273 Add missing enum for test [ci skip] 2026-01-23 17:27:26 +02:00
Taras Kushnir
e72cf3c38a Record last used time for API keys. closes PrivateCaptcha/issues#166 2026-01-23 17:13:39 +02:00
Taras Kushnir
9048bcaa5a Add timeouts for channel selects 2026-01-23 16:59:37 +02:00
Taras Kushnir
7d42e32de6 Remove unused code 2026-01-23 14:10:22 +02:00
Taras Kushnir
894b884de5 Add http timeout for license activation 2026-01-22 20:43:06 +02:00
Taras
d2ef95e2b2 Update dependency happy-dom to v20.1.0 (#260)
Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
2026-01-22 07:19:45 +00:00
Taras Kushnir
78210afd09 Bump widget lib version to 22 2026-01-20 19:10:29 +02:00
Taras Kushnir
4f8d2a9ff0 Respect context cancellation in backoff wait 2026-01-20 18:38:26 +02:00
Taras Kushnir
469192451e Cosmetic cleanup [ci skip] 2026-01-20 18:12:18 +02:00
Copilot
a8d014844f Add widget JS unit tests for reset() and public API (#259)
* Initial plan

* Add widget JS unit tests for reset() and public API

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix checkConfigured test to properly verify invalid state

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Restore original patchedFetch and add network-independent 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-20 18:09:00 +02:00
Copilot
091e6d38bc Make audit log parsing extensible for downstream repositories (#258)
* Initial plan

* Make audit log parsing extensible with AuditLogParser and template override

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Simplify AuditLogParser interface by removing unused handled return value

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-20 11:57:35 +02:00
Taras
4ab20925f3 Update cla.yml 2026-01-20 11:57:16 +02:00
Taras Kushnir
cab8ae71e2 Fix widget reset code 2026-01-20 11:13:10 +02:00
Copilot
9f101a13ff Split settings usage stats by organization (#256)
* Initial plan

* Split account stats by organization

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix usage chart layout and stats handler

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Address code review feedback

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Clarify account stats warning log

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Adjust stats logging and legend layout

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Move legend sizing constants

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Document legend sizing constants

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Refine legend text measurement

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Improve legend truncation and logging

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Cosmetic improvements

* Refactor legend layout logic

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Tweak legend row spacing

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Clarify legend layout fields

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>
Co-authored-by: Taras Kushnir <tk.dev@mailbox.org>
2026-01-17 09:56:46 +02:00
Taras Kushnir
cd536f5393 Make progress component safer 2026-01-17 09:19:59 +02:00
Taras
205b556e47 Bump widget library version to 20 2026-01-17 09:01:17 +02:00
Taras Kushnir
808f979ae0 Fix widget thickness 2026-01-16 19:12:10 +02:00
Taras Kushnir
0e55045417 Move default profile settings to a correct file in ClickHouse 2026-01-16 17:25:51 +02:00
Taras Kushnir
5e8eac34b5 Bump widget lib version to 19 2026-01-15 15:10:04 +02:00
Taras Kushnir
64ceb48321 Remove unused code 2026-01-15 14:57:51 +02:00
Taras Kushnir
809a667bf9 Allow localhost subdomains 2026-01-15 14:52:54 +02:00
Taras Kushnir
0f70c38529 Add more tests
80% done by Claude Opus 4.5 w/ copilot, but not quite
2026-01-15 14:35:13 +02:00
Copilot
e09db1dbb8 Allow org members without subscription to create properties via API (#251)
* Initial plan

* Allow org members without subscription to create properties via API

- Add requestUserEx() to allow skipping subscription check
- Update postNewProperties() to not require user subscription (org owner subscription is checked instead)
- Update getAsyncTask() to not require user subscription
- Add integration tests for Portal and API to verify org members can create properties

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix TestApiPostPropertiesNoSubscription to check API error code

Update test to use requestResponseAPISuite and check for StatusSubscriptionPropertyLimitError instead of HTTP 402

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Refactor tests and fix task handler subscription check

- Fix getAsyncTask to require subscription (nil subscriptions blocked, expired trials allowed)
- Refactor API tests with helper functions createPropertyInputs, waitForAsyncTaskCompletion
- Refactor API and Portal tests as test suites for nil and expired trial subscriptions
- Add step to test non-member rejection before join in API tests
- Simplify Portal tests to focus on member property creation

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix redundant imports in property_test.go

Use consistent db_test alias instead of multiple aliases for the same package

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Add non-member rejection test and refactor async task wait helpers

- Add non-member rejection step in API tests (verifies 403 Forbidden before invite)
- Simplify Portal tests (just verify member can create properties after joining)
- Refactor multiple async task wait loops to use waitForAsyncTaskCompletion helper
- Add waitForAsyncTaskCompletionWithResult helper for tests that need results

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Ensure invited-but-not-joined members cannot create properties

- Add RetrieveUserOrganizationMember() that excludes invited users
- Add requestOrgMember() API helper that uses the new function
- Add OrgMember() Portal helper that uses the new function
- Update postNewProperties() to use requestOrgMember()
- Update postNewOrgProperty() to use OrgMember()
- Add test steps for invited-but-not-joined rejection in API and Portal tests

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Refactor: return access level from requestOrg/Org instead of new functions

- Modify RetrieveUserOrganization to return access level as third value
- Delete RetrieveUserOrganizationMember function
- Modify requestOrg to return access level as third value
- Delete requestOrgMember function
- Modify Org to return access level as third value
- Delete OrgMember function
- Update all callers to ignore unused access level return values
- Check access level in postNewProperties and postNewOrgProperty to block invited users

Co-authored-by: ribtoks <505555+ribtoks@users.noreply.github.com>

* Fix code review: use 403 Forbidden and check level.Valid

- Use HTTP 403 Forbidden instead of 500 in Portal for invited users
- Add level.Valid check before accessing level.AccessLevel

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-15 12:06:34 +02:00
Copilot
7d1ef63389 Add t.Helper annotations to Go test helpers (#253)
* Initial plan

* test: mark helper functions with t.Helper

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-14 19:20:53 +02:00