[OPIK-5339] [BE] feat: add status filter to get local runners endpoint#6001
Merged
BorisTkachenko merged 3 commits intomainfrom Apr 1, 2026
Conversation
apps/opik-backend/src/main/java/com/comet/opik/api/resources/v1/priv/LocalRunnersResource.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Outdated
Show resolved
Hide resolved
ldaugusto
previously approved these changes
Mar 31, 2026
Contributor
ldaugusto
left a comment
There was a problem hiding this comment.
Theres something to check and also I miss a test actively checking for PAIRING state. If you can hold this task to work on it, it would be great.
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
Contributor
Backend Tests - Integration Group 15 31 files 31 suites 3m 16s ⏱️ For more details on these errors, see this check. Results for commit df10720. |
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
apps/opik-backend/src/main/java/com/comet/opik/domain/LocalRunnerService.java
Show resolved
Hide resolved
LifeXplorer
approved these changes
Apr 1, 2026
| FIELD_USER_NAME, userName, | ||
| FIELD_PROJECT_ID, projectId.toString())); | ||
| runnerMap.expire(runnerConfig.getPairingRunnerTtl().toJavaDuration()); | ||
| runnerMap.expire(runnerConfig.getDeadRunnerPurgeTime().toJavaDuration().multipliedBy(2)); |
Contributor
There was a problem hiding this comment.
Would recomend to make "2" configurable via env vars
Contributor
Author
There was a problem hiding this comment.
It wound be better to keep as is so we are sure that it's bigger than getDeadRunnerPurgeTime. If someone configures it to be less we will end up with stale entries in Redis.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Details
Add an optional
statusquery parameter to theGET /local-runnersendpoint, allowing callers to filter runners by their current status (CONNECTED, DISCONNECTED, PAIRING). The filtering is applied before pagination so thattotalcounts reflect only matching runners. AresolveStatushelper avoids redundant status resolution when the status was already determined during filtering.Change checklist
Issues
AI-WATERMARK
AI-WATERMARK: yes
Testing
LocalRunnerServiceImplTest— updatedlistRunnerscall signatureLocalRunnersResourceTest#filtersByStatus— verifies connected/disconnected filtering and no-match scenarionullfor the new status parameterDocumentation
N/A