Orchestrate everything, everywhere. The open-source control plane for workflows across data, infrastructure, business processes and AI agents. Declarative YAML, event-driven, any language, Git-versioned, scalable to millions of executions.
This report summarizes scanner evidence for kestra-io/kestra, a Java project with 30,092 GitHub stars. SynthScan examined 775,416 lines of code across 5916 source files, recording 491 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.9 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 185 finding(s).
Are imports declared and package/API names verified? 204 finding(s).
Are wrappers, guards, and repeated structures necessary? 213 finding(s).
Which changes need focused human review? 491 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 491 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | ui/src/utils/kestraHttp.spec.ts | 93 | const onRequest = fakeClient.interceptors.request.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL⚡ | ui/src/utils/kestraHttp.spec.ts | 94 | const onResponse = fakeClient.interceptors.response.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL⚡ | ui/src/utils/kestraHttp.spec.ts | 95 | const onError = fakeClient.interceptors.error.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 111 | const onRequest = fakeClient.interceptors.request.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 121 | const onRequest = fakeClient.interceptors.request.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 141 | const onErrorInterceptor = fakeClient.interceptors.error.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 249 | onResponse: fakeClient.interceptors.response.use.mock.calls.at(-1)![0], | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 250 | onError: fakeClient.interceptors.error.use.mock.calls.at(-1)![0], | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 360 | const onError = fakeClient.interceptors.error.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 388 | const onResponse = fakeClient.interceptors.response.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | ui/src/utils/kestraHttp.spec.ts | 398 | const onResponse = fakeClient.interceptors.response.use.mock.calls.at(-1)![0] | CODE |
| CRITICAL | …o/kestra/runner/h2/H2DedicatedQueueDataSourceTest.java | 80 | io.kestra.core.models.flows.FlowWithSource.builder() | CODE |
| CRITICAL | …st/java/io/kestra/core/metrics/MetricRegistryTest.java | 26 | @org.junit.jupiter.api.parallel.Execution(ExecutionMode.SAME_THREAD) | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 94 | io.kestra.plugin.core.trigger.Flow flowTrigger = io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 96 | .type(io.kestra.plugin.core.trigger.Flow.class.getName()) | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 99 | io.kestra.plugin.core.trigger.Flow.Output triggerOutput = io.kestra.plugin.core.trigger.Flow.Output.builder() | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 138 | io.kestra.plugin.core.trigger.Flow flowTrigger = io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 140 | .type(io.kestra.plugin.core.trigger.Flow.class.getName()) | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 143 | io.kestra.plugin.core.trigger.Flow.Output triggerOutput = io.kestra.plugin.core.trigger.Flow.Output.builder() | CODE |
| CRITICAL | …a/core/plugins/notifications/ExecutionServiceTest.java | 266 | io.kestra.plugin.core.trigger.Schedule scheduleTrigger = io.kestra.plugin.core.trigger.Schedule.builder() | CODE |
| CRITICAL | …a/core/plugins/notifications/ExecutionServiceTest.java | 268 | .type(io.kestra.plugin.core.trigger.Schedule.class.getName()) | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 302 | io.kestra.plugin.core.trigger.Flow flowTrigger = io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 304 | .type(io.kestra.plugin.core.trigger.Flow.class.getName()) | CODE |
| CRITICAL⚡ | …a/core/plugins/notifications/ExecutionServiceTest.java | 307 | io.kestra.plugin.core.trigger.Flow.Output triggerOutput = io.kestra.plugin.core.trigger.Flow.Output.builder() | CODE |
| CRITICAL | core/src/test/java/io/kestra/core/utils/LogsTest.java | 28 | @org.junit.jupiter.api.parallel.Execution(ExecutionMode.SAME_THREAD) | CODE |
| CRITICAL⚡ | …re/src/test/java/io/kestra/core/models/PluginTest.java | 14 | Assertions.assertTrue(io.kestra.core.models.Plugin.isInternal(TestPlugin.class)); | CODE |
| CRITICAL⚡ | …re/src/test/java/io/kestra/core/models/PluginTest.java | 19 | Assertions.assertTrue(io.kestra.core.models.Plugin.isPrimary(TestPlugin.class)); | CODE |
| CRITICAL⚡ | …re/src/test/java/io/kestra/core/models/PluginTest.java | 24 | Assertions.assertEquals(Optional.of("test"), io.kestra.core.models.Plugin.getId(TestPlugin.class)); | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 483 | io.kestra.plugin.core.trigger.Flow flowTrigger = io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 487 | io.kestra.plugin.core.trigger.Flow.Dependency.builder() | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 491 | io.kestra.plugin.core.trigger.Flow.Dependency.builder() | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 512 | var dependency1 = io.kestra.plugin.core.trigger.Flow.Dependency.builder() | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 516 | var dependency2 = io.kestra.plugin.core.trigger.Flow.Dependency.builder() | CODE |
| CRITICAL⚡ | …multipleflows/MultipleConditionStateStoreContract.java | 521 | var trigger = io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL | …va/io/kestra/core/models/executions/ExecutionTest.java | 507 | .format(io.kestra.core.models.property.Property.ofValue(id)) | CODE |
| CRITICAL | …rc/test/java/io/kestra/core/models/flows/FlowTest.java | 150 | Flow flowABis = baseFlow().toBuilder().revision(2).triggers(List.of(io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL | …rc/test/java/io/kestra/core/models/flows/FlowTest.java | 171 | .triggers(List.of(io.kestra.plugin.core.trigger.Flow.builder().inputs(triggerInputs).build())) | CODE |
| CRITICAL | …/java/io/kestra/core/docs/JsonSchemaGeneratorTest.java | 810 | private TaskRunner<?> taskRunner = io.kestra.plugin.core.runner.Process.instance(); | STRING |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 107 | io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 108 | .type(io.kestra.plugin.core.trigger.Flow.class.getName()) | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 111 | io.kestra.plugin.core.trigger.Flow.Dependency.builder() | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 149 | io.kestra.plugin.core.trigger.Flow.builder() | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 150 | .type(io.kestra.plugin.core.trigger.Flow.class.getName()) | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 153 | io.kestra.plugin.core.trigger.Flow.Dependency.builder().namespace("io.kestra.ee").flowId | CODE |
| CRITICAL⚡ | …io/kestra/core/topologies/FlowTopologyServiceTest.java | 154 | io.kestra.plugin.core.trigger.Flow.Dependency.builder().namespace("io.kestra.others").fl | CODE |
| CRITICAL⚡ | …stra/core/http/client/HttpClientDeniedAddressTest.java | 52 | .type(io.kestra.core.models.property.Property.ofValue(Proxy.Type.HTTP)) | CODE |
| CRITICAL⚡ | …stra/core/http/client/HttpClientDeniedAddressTest.java | 53 | .address(io.kestra.core.models.property.Property.ofValue("proxy.example.invalid")) | CODE |
| CRITICAL⚡ | …stra/core/http/client/HttpClientDeniedAddressTest.java | 54 | .port(io.kestra.core.models.property.Property.ofValue(3128)) | CODE |
| CRITICAL | …st/java/io/kestra/core/http/client/HttpClientTest.java | 80 | @org.junit.jupiter.api.parallel.Execution(ExecutionMode.SAME_THREAD) | CODE |
| CRITICAL | …t/java/io/kestra/core/queues/AbstractQueueLagTest.java | 33 | @org.junit.jupiter.api.parallel.Execution(org.junit.jupiter.api.parallel.ExecutionMode.SAME_THREAD) | CODE |
| CRITICAL | …t/java/io/kestra/core/queues/AbstractQueueLagTest.java | 95 | .format(io.kestra.core.models.property.Property.ofValue("test")) | CODE |
| CRITICAL | …java/io/kestra/core/runners/DefaultRunContextTest.java | 69 | return io.kestra.core.models.executions.TaskRun.builder() | CODE |
| CRITICAL | …t/java/io/kestra/core/runners/FlowInputOutputTest.java | 737 | io.kestra.core.models.flows.input.FileInput.builder().id("empty_file").type(Type.FILE).build() | CODE |
| CRITICAL | …/java/io/kestra/core/runners/RunContextLoggerTest.java | 43 | @org.junit.jupiter.api.parallel.Execution(ExecutionMode.SAME_THREAD) | CODE |
| CRITICAL | …/java/io/kestra/core/runners/RunContextLoggerTest.java | 605 | .contains(org.assertj.core.groups.Tuple.tuple(RunContextLogger.PROGRESS_KEY, "pod.created")); | CODE |
| CRITICAL | …est/java/io/kestra/core/runners/FlowableUtilsTest.java | 576 | io.kestra.core.serializers.FileSerde.write(output, value); | CODE |
| CRITICAL | …st/java/io/kestra/core/runners/AbstractRunnerTest.java | 38 | //@org.junit.jupiter.api.parallel.Execution(org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT) | COMMENT |
| CRITICAL | …c/test/java/io/kestra/core/runners/RunContextTest.java | 258 | .inputs(List.of(StringInput.builder().id("test").type(Type.STRING).defaults(io.kestra.core.models.property.P | CODE |
| CRITICAL | …c/test/java/io/kestra/core/runners/RunContextTest.java | 269 | .inputs(List.of(StringInput.builder().id("test").type(Type.STRING).defaults(io.kestra.core.models.property.P | CODE |
| CRITICAL | …a/io/kestra/core/runners/DefaultFlowMetaStoreTest.java | 44 | @org.junit.jupiter.api.parallel.Execution(org.junit.jupiter.api.parallel.ExecutionMode.SAME_THREAD) | CODE |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/packages/design-system/vitest.config.ts | 24 | // ── Browser project ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/packages/design-system/vitest.config.ts | 54 | // ── Unit project ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ystem/src/components/Form/KsSelect/KsSelect.stories.ts | 38 | // ─── Shared setup helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ystem/src/components/Form/KsSelect/KsSelect.stories.ts | 59 | // ─── Stories ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsPie.test.ts | 57 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsPie.test.ts | 63 | // ─── Container ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsPie.test.ts | 72 | // ─── Loading ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/design-system/src/components/Charts/KsPie.test.ts | 111 | // ─── Option ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/design-system/src/components/Charts/KsPie.test.ts | 146 | // ─── Options deep merge ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsBar.stories.ts | 37 | // ─── Standard ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsBar.stories.ts | 197 | // ─── Compact sparkline (all features disabled) ──────────────────────────────── | COMMENT |
| MEDIUM | …gn-system/src/components/Charts/KsGraph.events.test.ts | 12 | // ─── Fake ECharts instance ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 9 | // ─── Static mock (getEchartsInstance returns null) ───────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 28 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 39 | // ─── Container ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 48 | // ─── Loading ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 91 | // ─── Series option ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …es/design-system/src/components/Charts/KsGraph.test.ts | 145 | // ─── Options deep merge ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsPie.stories.ts | 39 | // ─── Standard ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 16 | // ─── Mock vue-echarts ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 97 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 112 | // ─── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 139 | // ── Rendering ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 151 | // ── tooltipType = native (default) ───────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 158 | // ── tooltipType = external ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 194 | // ── loading ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 203 | // ── disableFeatures ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 244 | // ── Mixed bar + area with multiple y-axes ────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 329 | // ── getEchartsInstance expose ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 346 | // ── exportAsImage ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 391 | // ── renderer prop ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 407 | // ── maxPixelRatio ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/design-system/src/components/Charts/KsEchart.test.ts | 434 | // ── browser zoom ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 40 | // ─── Basic line chart ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 72 | // ─── Bar chart ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 97 | // ─── Mixed bar + area with multiple Y axes ──────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 147 | // ─── Mixed bar + area — three Y axes ───────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 201 | // ─── External tooltip ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 242 | // ─── Loading state ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 261 | // ─── Disabled features ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 296 | // ─── SVG renderer ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …esign-system/src/components/Charts/KsEchart.stories.ts | 318 | // ─── Capped pixel ratio ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsBar.test.ts | 21 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsBar.test.ts | 27 | // ─── Container ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/design-system/src/components/Charts/KsBar.test.ts | 36 | // ─── Loading ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/design-system/src/components/Charts/KsBar.test.ts | 75 | // ─── Option ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ages/design-system/src/components/Charts/KsBar.test.ts | 116 | // ─── Options deep merge ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/design-system/src/components/Charts/KsLine.stories.ts | 37 | // ─── Standard ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/design-system/src/components/Charts/KsLine.stories.ts | 151 | // ─── Compact sparkline (all features disabled) ──────────────────────────────── | COMMENT |
| MEDIUM | …design-system/src/components/Charts/KsGraph.stories.ts | 7 | // ─── Fixture helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …design-system/src/components/Charts/KsGraph.stories.ts | 70 | // ─── Meta ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …design-system/src/components/Charts/KsGraph.stories.ts | 99 | // ─── Stories ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ges/design-system/src/components/Charts/KsLine.test.ts | 21 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ges/design-system/src/components/Charts/KsLine.test.ts | 27 | // ─── Container ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ges/design-system/src/components/Charts/KsLine.test.ts | 36 | // ─── Loading ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ges/design-system/src/components/Charts/KsLine.test.ts | 75 | // ─── Option ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ges/design-system/src/components/Charts/KsLine.test.ts | 101 | // ─── Options deep merge ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …m/src/components/Data/KsMarkdown/KsMarkdown.stories.ts | 31 | // ─── Shared sample content ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …m/src/components/Data/KsMarkdown/KsMarkdown.stories.ts | 259 | // ─── Stories ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nents/dependencies/composables/useDependencies.spec.ts | 38 | // ─── CSS var sentinels ──────────────────────────────────────────────────────── | COMMENT |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/plugins/consolidateChunks.js | 140 | function assertBarrelReachesNoToolchain(ctx) { | CODE |
| LOW | ui/tests/unit/monacoCssEscapePolyfill.ts | 35 | export function installMonacoCssEscapePolyfill(): void { | CODE |
| LOW | ui/tests/storybook/utils/monacoUtils.ts | 7 | export async function assertMonacoFilterContentToBe(canvas: ReturnType<typeof within>, expectedText: string): Promise<vo | CODE |
| LOW | ui/scripts/translations/usageRules.ts | 100 | export function translationNamespaceUsages(source: string): NamespaceUsage[] { | CODE |
| LOW | ui/packages/hey-api-plugin/src/patch.ts | 20 | export function fixYamlSourceRequestBodyContentType(_method: string, _path: string, operation: unknown): void { | CODE |
| LOW | ui/packages/hey-api-plugin/src/patch.ts | 53 | export function normalizeQueryFilterParams(_method: string, _path: string, operation: unknown): void { | CODE |
| LOW | ui/packages/hey-api-plugin/src/patch.ts | 127 | export function unwrapEventStreamArrayResponses(_method: string, _path: string, operation: unknown): void { | CODE |
| LOW | ui/packages/topology/src/misc/durationBreakdown.ts | 89 | export function computeLongestTaskRunDuration( | CODE |
| LOW | …/topology/src/composables/useLongestTaskRunDuration.ts | 10 | export function useLongestTaskRunDuration(taskRuns: Ref<TaskRunLike[]>, interval = 500) { | CODE |
| LOW | …/topology/src/composables/useScopedLongestDurations.ts | 16 | export function useScopedLongestDurations(executions: () => ScopedExecution[]) { | CODE |
| LOW | ui/packages/topology/src/nodes/TriggerNode.test.ts | 241 | function mountTriggerNodeWithValidationIssues(validationIssues: Map<string, string[]>) { | CODE |
| LOW | ui/packages/topology/src/utils/loopOutcome.ts | 152 | export function nestedLoopIterationSummary(lane: LoopLaneData, laneUid: string, lanes: Record<string, LoopLaneData>): Lo | CODE |
| LOW | ui/packages/topology/src/utils/vueFlowUtils.ts | 331 | export function buildEffectiveGetNodeDimensions( | CODE |
| LOW | ui/packages/topology/src/utils/vueFlowUtils.ts | 1232 | export function areTasksIdenticalInGraphUntilTask( | CODE |
| LOW | ui/packages/topology/src/utils/yaml/blocks.ts | 23 | function getSectionNodeAndDocumentFromSource({source, section}: { | CODE |
| LOW | ui/packages/topology/src/utils/yaml/blocks.ts | 173 | function extractBlockWithPathFromDocument({yamlDoc, path}: { | CODE |
| LOW | ui/packages/topology/src/utils/yaml/positions.ts | 72 | function getParentKeyByChildIndent( | CODE |
| LOW | ui/packages/topology/src/utils/yaml/positions.ts | 93 | function extractIndentAndMaybeYamlKey(stringToTest: string): { | CODE |
| LOW | ui/packages/topology/src/utils/yaml/fields.ts | 78 | export function extractTypedBlocksWithMeta(source: string): FlowSourceData { | CODE |
| LOW | …ges/design-system/src/composables/useFlowYamlEditor.ts | 15 | function hasVisibleInlineGhostText(editor: CodeEditor): boolean { | CODE |
| LOW | …/design-system/src/composables/useEditorDecorations.ts | 73 | function clearLinesRangeHighlights() { | CODE |
| LOW | ui/packages/design-system/src/utils/chart.ts | 79 | export function buildDisabledFeaturesOverride( | CODE |
| LOW⚡ | ui/packages/design-system/src/utils/monacoSetup.ts | 42 | export function configureMonacoTypescript(): void { | CODE |
| LOW⚡ | ui/packages/design-system/src/utils/monacoSetup.ts | 50 | export function getOrCreateOverflowWidgetsDomNode(): HTMLDivElement { | CODE |
| LOW⚡ | ui/packages/design-system/src/utils/monacoSetup.ts | 50 | export function getOrCreateOverflowWidgetsDomNode(): HTMLDivElement { | CODE |
| LOW | …/design-system/src/components/Form/KsEditor.stories.ts | 190 | async function toleratingMonacoCancelledOnDispose(run: () => void): Promise<void> { | CODE |
| LOW | ui/src/composables/useBaseMisc.ts | 48 | function loadBasicAuthValidationErrors() { | CODE |
| LOW | ui/src/composables/useCanViewDashboardCharts.ts | 7 | export function useCanViewDashboardCharts(namespace: () => string | null | undefined) { | CODE |
| LOW | ui/src/composables/useTaskRunOutputs.ts | 14 | function fetchTaskRunIdsWithOutputs(executionId: string, forceRefresh: boolean): Promise<Set<string>> { | CODE |
| LOW | …c/composables/playground/useFlowEditorRunTaskButton.ts | 7 | export default function useFlowEditorRunTaskButton(isCurrentTabFlow: Ref<boolean>, editorRefElement: Ref<InstanceType<ty | CODE |
| LOW | ui/src/composables/monaco/artifacts/editorArtifacts.ts | 33 | export function registerEditorArtifactProvider(provider: EditorArtifactProvider): void { | CODE |
| LOW | …mposables/monaco/languages/yamlBlockScalarTokenizer.ts | 18 | export function withIndentedBlockScalarContent(language: languages.IMonarchLanguage): languages.IMonarchLanguage { | CODE |
| LOW | …mposables/monaco/languages/yamlBlockScalarTokenizer.ts | 42 | export async function registerIndentedBlockScalarTokenizer(languageId: string): Promise<void> { | CODE |
| LOW | …rc/composables/monaco/languages/subflowLinkProvider.ts | 82 | export function createFlowExistenceChecker( | CODE |
| LOW | …rc/composables/monaco/languages/subflowLinkProvider.ts | 102 | export async function filterExistingSubflowLinks( | CODE |
| LOW | …/composables/monaco/languages/taskCompletionScoping.ts | 145 | export function filterMissingRequiredTaskProperties({ | CODE |
| LOW | …osables/monaco/languages/pebbleLanguageConfigurator.ts | 56 | export function registerPebbleAutocompletion( | CODE |
| LOW | …osables/monaco/languages/pebbleLanguageConfigurator.ts | 99 | export function registerFunctionParametersAutoCompletion( | CODE |
| LOW | …osables/monaco/languages/pebbleLanguageConfigurator.ts | 149 | export function registerNestedValueAutoCompletion( | CODE |
| LOW | …osables/monaco/languages/pebbleLanguageConfigurator.ts | 180 | export function registerFilterAutoCompletion( | CODE |
| LOW | ui/src/override/composables/namespacePageState.ts | 2 | export function provideNamespacePageState() {} | CODE |
| LOW | ui/src/override/utils/notificationNavigation.ts | 4 | export async function beforeNotificationNavigation(_notification: Notification) {} | CODE |
| LOW | …/override/components/flows/contextSectionsExtension.ts | 3 | export function useContextSectionsExtension(): ContextSectionProvider[] { | CODE |
| LOW | …c/override/components/inputs/inputRendererExtension.ts | 7 | export function useInputRendererExtension(): InputRenderer { | CODE |
| LOW | ui/src/stores/doc.ts | 38 | function recursivelyRemoveHtmlTags(input: string): string { | CODE |
| LOW | ui/src/stores/dashboard.ts | 175 | function getUserDashboardStorageKey(route: RouteLocation){ | CODE |
| LOW | ui/src/stores/dashboard.ts | 184 | async function getTenantDefaultDashboardId(route: RouteLocation) { | CODE |
| LOW | ui/src/stores/dashboard.ts | 320 | function recursivelyLoopUpSchemaRef(schemaValue: JsonSchemaDef | undefined, defs: Record<string, JsonSchemaDef>): Js | CODE |
| LOW | ui/src/stores/flow.ts | 130 | export function isSuccessfulFlowSaveOutcome( | CODE |
| LOW | ui/src/stores/flow.ts | 701 | function deleteFlowAndDependencies() { | CODE |
| LOW | ui/src/stores/flow.ts | 823 | function getGraphFromSourceResponse(options: { flow: string, config?: GraphSubflows }) { | CODE |
| LOW | ui/src/stores/flow.ts | 924 | function loadFlowAggregatedMetrics(options: { namespace: string, id: string, metric: string, aggregation?: string, s | CODE |
| LOW | ui/src/stores/flow.ts | 930 | function loadTaskAggregatedMetrics(options: { namespace: string, id: string, taskId: string, metric: string, aggrega | CODE |
| LOW | ui/src/stores/executions.ts | 626 | function followExecutionDependencies(options: { id: string; expandAll?: boolean }) { | CODE |
| LOW | ui/src/utils/flowableBlockOps.ts | 863 | export function groupValidationIssuesByTask( | CODE |
| LOW | ui/src/utils/preloadErrorReload.spec.ts | 21 | function createThrowingStorageMock() { | CODE |
| LOW | ui/src/utils/pluginUtils.ts | 37 | export function isEntryAPluginElementPredicate(key: string, value: unknown): value is PluginElement[] { | CODE |
| LOW | ui/src/utils/pluginUtils.ts | 44 | export function countUniquePluginElements(plugins: Plugin[]): number { | CODE |
| LOW | ui/src/utils/inputs.ts | 94 | export function executeFormValuesStorageKey(flow: {tenantId?: string; namespace: string; id: string; revision?: number} | CODE |
| LOW | ui/src/utils/logs.ts | 142 | export function executionLogsDownloadFilename(executionId: string, date: Date): string { | CODE |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/tests/unit/components/ai/copilot/_helpers.ts | 21 | props: ["modelValue", "disabled", "placeholder", "type", "autosize", "rows"], | CODE |
| LOW | ui/tests/unit/components/ai/copilot/_helpers.ts | 25 | :placeholder="placeholder" | CODE |
| LOW | ui/packages/design-system/src/utils/editorTypes.ts | 65 | "modelValue" | "path" | "theme" | "placeholder" | "readOnly" | "inline" | "navbar" | CODE |
| LOW | …sign-system/src/components/Form/KsAutocomplete.test.ts | 26 | expect(wrapper.find("input").attributes("placeholder")).toBe("Search…") | CODE |
| LOW | …ackages/design-system/src/components/Form/KsEditor.vue | 60 | class="placeholder" | CODE |
| LOW | …design-system/src/components/Form/KsTimePicker.test.ts | 22 | expect(wrapper.find("input").attributes("placeholder")).toBe("Select time") | CODE |
| LOW | …ents/Data/KsDataTable/filter/layout/FilterText.test.ts | 20 | expect(wrapper.find("input").attributes("placeholder")).toBe("Enter namespace") | CODE |
| LOW⚡ | ui/src/composables/usePosthog.spec.ts | 38 | trackSetupEvent("setup_flow:completed", {}, {username: "user@example.com"}) | CODE |
| LOW⚡ | ui/src/composables/usePosthog.spec.ts | 46 | trackSetupEvent("setup_flow:completed", {}, {username: "user@example.com"}) | CODE |
| LOW⚡ | ui/src/composables/usePosthog.spec.ts | 52 | trackSetupEvent("setup_flow:completed", {}, {username: "user@example.com"}) | CODE |
| LOW | ui/src/utils/recipeToYaml.ts | 252 | tasks: tasks.length > 0 ? tasks : [{id: "placeholder", type: "io.kestra.plugin.core.log.Log", message: "Configur | CODE |
| LOW | ui/src/components/ListPreview.stories.tsx | 3 | import fakeData from "../../tests/fixtures/fake-data.json" | CODE |
| LOW | …src/components/no-code/components/tasks/TaskString.vue | 38 | :placeholder="placeholder" | CODE |
| LOW | …ponents/no-code/components/tasks/TaskSubflowId.spec.ts | 26 | props: ["modelValue", "disabled", "placeholder"], | CODE |
| LOW | ui/src/components/labels/LabelInput.spec.ts | 13 | props: ["modelValue", "placeholder", "disabled"], | CODE |
| LOW | ui/src/components/executions/date-select/DateSelect.vue | 5 | :placeholder="placeholder" | CODE |
| LOW | …/src/components/executions/outputs/SidebarList.spec.ts | 6 | props: ["modelValue", "placeholder"], | CODE |
| LOW | …/src/components/executions/outputs/SidebarList.spec.ts | 11 | :placeholder="placeholder" | CODE |
| LOW | ui/src/translations/zh_CN.json | 2373 | "placeholder": "告诉我构建什么…", | CODE |
| LOW | ui/src/translations/ja.json | 2373 | "placeholder": "何を作成するか教えてください…", | CODE |
| LOW | ui/src/translations/de.json | 2373 | "placeholder": "Sag mir, was ich bauen soll…", | CODE |
| LOW | ui/src/translations/ru.json | 2373 | "placeholder": "Расскажите, что создать…", | CODE |
| LOW | ui/src/translations/pl.json | 2373 | "placeholder": "Powiedz mi, co zbudować…", | CODE |
| LOW | ui/src/translations/pt.json | 2373 | "placeholder": "Diga-me o que construir…", | CODE |
| LOW | ui/src/translations/en.json | 2373 | "placeholder": "Tell me what to build…", | CODE |
| LOW | ui/src/translations/it.json | 2373 | "placeholder": "Dimmi cosa costruire…", | CODE |
| LOW | ui/src/translations/fr.json | 2373 | "placeholder": "Dites-moi quoi construire…", | CODE |
| LOW | ui/src/translations/hi.json | 2373 | "placeholder": "मुझे बताएं कि क्या बनाना है…", | CODE |
| LOW | ui/src/translations/ko.json | 2373 | "placeholder": "무엇을 만들까요?", | CODE |
| LOW | ui/src/translations/pt_BR.json | 2373 | "placeholder": "Diga-me o que construir…", | CODE |
| LOW | ui/src/translations/es.json | 2373 | "placeholder": "Dime qué construir…", | CODE |
| LOW | …re/src/test/java/io/kestra/core/utils/IdUtilsTest.java | 14 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi eu egestas ligula. Fusce molestie egestas so | CODE |
| LOW | …re/src/test/java/io/kestra/core/utils/IdUtilsTest.java | 14 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi eu egestas ligula. Fusce molestie egestas so | CODE |
| LOW | …src/test/java/io/kestra/plugin/core/flow/LoopTest.java | 252 | .values(List.of("placeholder")) | CODE |
| LOW⚡ | cli/src/test/resources/helper/lorem-multiple.txt | 1 | Lorem ipsum dolor sit amet | CODE |
| LOW⚡ | cli/src/test/resources/helper/lorem-multiple.txt | 1 | Lorem ipsum dolor sit amet | CODE |
| LOW⚡ | cli/src/test/resources/helper/lorem-multiple.txt | 2 | Lorem ipsum dolor sit amet | CODE |
| LOW⚡ | cli/src/test/resources/helper/lorem-multiple.txt | 2 | Lorem ipsum dolor sit amet | CODE |
| LOW | cli/src/test/resources/helper/lorem.txt | 1 | Lorem ipsum dolor sit amet | CODE |
| LOW | cli/src/test/resources/helper/lorem.txt | 1 | Lorem ipsum dolor sit amet | CODE |
| LOW | webserver/src/test/resources/ai-providers-default.yml | 8 | api-key: fake-key | CODE |
| LOW | webserver/src/test/resources/ai-providers-default.yml | 14 | api-key: fake-key | CODE |
| LOW | …ver/src/test/resources/ai-providers-custom-headers.yml | 10 | api-key: fake-key | CODE |
| LOW | …ver/src/test/resources/ai-providers-custom-headers.yml | 18 | api-key: fake-key | CODE |
| LOW | …kestra/webserver/services/ai/AiServiceManagerTest.java | 98 | java.util.Map.of("modelName", "gemini-2.5-flash", "apiKey", "fake-key") | CODE |
| LOW | …er/services/ai/AiProviderConfigurationBindingTest.java | 29 | @Property(name = "kestra.ai.providers[0].configuration.api-key", value = "fake-key") | CODE |
| LOW⚡ | …er/services/ai/AiProviderConfigurationBindingTest.java | 55 | "api-key", "fake-key", | CODE |
| LOW⚡ | …er/services/ai/AiProviderConfigurationBindingTest.java | 61 | assertThat(normalized).containsEntry("apiKey", "fake-key"); | CODE |
| LOW⚡ | …er/services/ai/AiProviderConfigurationBindingTest.java | 68 | Map.of("modelName", "gemini-2.5-flash", "apiKey", "fake-key") | CODE |
| LOW⚡ | …er/services/ai/AiProviderConfigurationBindingTest.java | 72 | assertThat(normalized).containsEntry("apiKey", "fake-key"); | CODE |
| LOW | …/webserver/services/ai/gemini/GeminiAiServiceTest.java | 40 | @Property(name = "kestra.ai.providers[0].configuration.api-key", value = "fake-key") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-ci.yml | 21 | POSTGRES_DB: kestra_unit | COMMENT |
| LOW | ui/vitest.config.js | 21 | // compiler warns that the option is ignored in non-browser builds — this | COMMENT |
| LOW | ui/vitest.config.unit.js | 21 | // import 285s -> 94s). The setup file's vi.resetModules() keeps modules per-file fresh. | COMMENT |
| LOW | ui/vitest.shims.d.ts | 1 | /// <reference types="@vitest/browser/providers/playwright" /> | COMMENT |
| LOW | ui/tests/unit/leakGuard.ts | 1 | import {afterAll, expect, vi} from "vitest" | COMMENT |
| LOW | ui/.storybook/apiMock.ts | 1 | // Storybook/Vitest API double. | COMMENT |
| LOW | ui/.storybook/preview.ts | 21 | // Mirrors the #topnav-*-slot elements rendered by AppTopNavBar.vue, which | COMMENT |
| LOW | ui/scripts/translations/generateTranslations.ts | 461 | // | COMMENT |
| LOW | ui/packages/hey-api-plugin/src/runtime.ts | 1 | // Runtime entry of @kestra-io/hey-api-plugin — the universal, everyone-needs-it half of a Kestra | COMMENT |
| LOW | ui/packages/kestra-sdk/openapi-ts.config.ts | 21 | // | COMMENT |
| LOW | ui/packages/kestra-sdk/src/dev-freshness.ts | 1 | // Dev-only staleness check for the committed SDK. | COMMENT |
| LOW | ui/packages/kestra-sdk/src/client-facade.ts | 1 | import type {ResolvedRequestOptions} from "./openapi/client" | COMMENT |
| LOW | ui/packages/slot-contracts/scripts/generate-flat-dts.ts | 1 | // Builds the publish-time `dist/index.d.ts` body for slot-contracts. | COMMENT |
| LOW | ui/packages/design-system/src/assets/styles/_el-ns.scss | 1 | // Configures the Element Plus namespace for component-level style blocks. | COMMENT |
| LOW | …ages/design-system/src/assets/styles/element-plus.scss | 121 | COMMENT | |
| LOW | …ages/design-system/src/assets/styles/element-plus.scss | 141 | #{--kel-color-warning-light-9}: palette.$base-orange-25; | COMMENT |
| LOW | …ages/design-system/src/assets/styles/element-plus.scss | 161 | #{--kel-color-info-light-7}: palette.$base-blue-100; | COMMENT |
| LOW | …ages/design-system/src/assets/styles/element-plus.scss | 181 | #{--kel-border-color-darker}: var(--ks-border-strong); | COMMENT |
| LOW | ui/src/vite.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | ui/src/components/ai/copilot/CopilotChat.vue | 321 | appliedDraftIds.value.clear() | COMMENT |
| LOW | …c/components/flows/contextSections/pebbleExpression.ts | 1 | // Pebble's lexer only recognizes `\'` as an escape (an escaped quote); it has no `\\` -> `\` rule of | COMMENT |
| LOW | charts/kestra/README.md | 121 | Before: | COMMENT |
| LOW | charts/kestra/README.md | 141 | # password: mypass123 | COMMENT |
| LOW | charts/kestra/values.yaml | 1 | # This is to override the chart name. | COMMENT |
| LOW | charts/kestra/values.yaml | 21 | imagePullSecrets: [] | COMMENT |
| LOW | charts/kestra/values.yaml | 41 | # -- StatefulSet update strategy. | COMMENT |
| LOW | charts/kestra/values.yaml | 61 | # @section -- common settings | COMMENT |
| LOW | charts/kestra/values.yaml | 121 | terminationGracePeriodSeconds: 360 | COMMENT |
| LOW | charts/kestra/values.yaml | 141 | # @section -- common settings | COMMENT |
| LOW | charts/kestra/values.yaml | 181 | configmaps: [] | COMMENT |
| LOW | charts/kestra/values.yaml | 201 | # @section -- kubernetes serviceAccount | COMMENT |
| LOW | charts/kestra/values.yaml | 221 | workerThreads: 0 | COMMENT |
| LOW | charts/kestra/values.yaml | 241 | # @section -- kestra deployments | COMMENT |
| LOW | charts/kestra/values.yaml | 261 | # -- Number of worker threads for worker deployment ; "0" to auto-configure based on CPU. | COMMENT |
| LOW | charts/kestra/values.yaml | 281 | # test: | COMMENT |
| LOW | charts/kestra/values.yaml | 381 | # -- Extra environment variables for dind container. | COMMENT |
| LOW | charts/kestra/values.yaml | 401 | # @section -- kubernetes ingress | COMMENT |
| LOW | charts/kestra-starter/values.yaml | 121 | # paths: | COMMENT |
| LOW | cli/src/test/java/io/kestra/cli/KestraTest.java | 81 | // Regression test for: --config placed before the subcommand name was silently | COMMENT |
| LOW | jdbc/src/main/java/io/kestra/jdbc/JdbcSqlSanitizer.java | 201 | return isKeywordAt(sql, contentStart, SELECT_KEYWORD); | COMMENT |
| LOW | .github/workflows/publish-hey-api-plugin.yml | 1 | name: Release hey-api-plugin | COMMENT |
| LOW | .github/workflows/pull-request.yml | 221 | fi | COMMENT |
| LOW | .github/workflows/translations-generate-for-pr.yml | 1 | name: Translations - Generate for a pull request | COMMENT |
| LOW | …tor/src/main/java/io/kestra/executor/ExecutorCore.java | 321 | if (isTerminated) { | COMMENT |
| LOW | dev-tools/copy-plugin.sh | 1 | #!/bin/bash | COMMENT |
| LOW | dev-tools/copy-plugin.sh | 21 | # KESTRA_PLUGINS_DIR : Path to Kestra plugins directory | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …m/src/components/Data/KsMarkdown/KsMarkdown.stories.ts | 164 | print(response.json()) | CODE |
| HIGH | ui/src/composables/useViolationMarkers.stories.tsx | 93 | print("done") | CODE |
| HIGH | ui/src/utils/namespaceFilesTip.spec.ts | 16 | print("hello") | CODE |
| HIGH | ui/src/components/flows/NamespaceFilesTip.spec.ts | 16 | print("hello") | CODE |
| HIGH | ui/src/components/onboarding/tour/tourFlows.ts | 34 | print(f"Revenue today: \${revenue:,}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …stra/core/repositories/AbstractFlowRepositoryTest.java | 0 | id: %s namespace: %s tasks: - id: log type: io.kestra.plugin.core.log.log message: hello | STRING |
| HIGH | …test/java/io/kestra/core/services/FlowServiceTest.java | 0 | id: %s namespace: %s tasks: - id: log type: io.kestra.plugin.core.log.log message: hello | STRING |
| HIGH | …a/webserver/filter/LegacyQueryParameterFilterTest.java | 0 | id: %s namespace: %s tasks: - id: log type: io.kestra.plugin.core.log.log message: hello | STRING |
| HIGH | …ver/controllers/api/ExecutionControllerRunnerTest.java | 0 | id: %s namespace: %s tasks: - id: log type: io.kestra.plugin.core.log.log message: hello | STRING |
| HIGH | …stra/webserver/controllers/api/FlowControllerTest.java | 0 | id: %s namespace: %s tasks: - id: log type: io.kestra.plugin.core.log.log message: hello | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/src/main.ts | 120 | // we need to check if any regex validation error in BE. | COMMENT |
| LOW⚡ | ui/src/components/dashboard/sections/TimeSeries.vue | 301 | // Step 1: Group durations by formatted date | COMMENT |
| LOW⚡ | ui/src/components/dashboard/sections/TimeSeries.vue | 308 | // Step 2: Map onto the x-axis labels so the line stays aligned with the bars | COMMENT |
| LOW | …/java/io/kestra/core/runners/DefaultFlowMetaStore.java | 119 | // as we only keep the last version of a flow, we need to check if the revision is the one we asked for | COMMENT |
| LOW⚡ | .github/workflows/welcome.yml | 111 | #### Step 1: Set up your profile README | COMMENT |
| LOW⚡ | .github/workflows/welcome.yml | 119 | #### Step 2: Add your Contributor Badge | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 34 | <a href="https://www.producthunt.com/posts/kestra?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_souc | CODE |
| MEDIUM | ui/src/components/ai/copilot/useAiChat.ts | 149 | // configured the agentic endpoints (`AiAgentController`, `@Requires` the AiServiceManager | COMMENT |
| MEDIUM | ui/src/components/ai/copilot/useAiChat.ts | 261 | // 503 (provider unreachable) or 404 (agentic endpoints not registered — no provider bean) | COMMENT |
| MEDIUM | …estra/webserver/controllers/api/AiAgentController.java | 258 | // The agentic loop needs a configured, streaming-capable provider. Reject up front with 503 when | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ore/runners/pebble/functions/AbstractFileFunction.java | 62 | // don't forget to also re-enabled the test | COMMENT |
| MEDIUM | …src/main/java/io/kestra/plugin/core/http/Download.java | 158 | // Note: this is a basic implementation that should cover all possible use cases. | COMMENT |
| MEDIUM | …ava/io/kestra/plugin/scripts/runner/docker/Docker.java | 236 | Here is how you can add that setting to your kestra configuration: | CODE |
| LOW⚡ | .github/workflows/welcome.yml | 103 | Thanks again for making Kestra better - and don't forget to ⭐ the repo! | CODE |
| LOW | .github/ISSUE_TEMPLATE/bug.yml | 11 | Thanks for reporting an issue! Please provide a [Minimal Reproducible Example](https://stackoverflow.com/help/mi | CODE |
| LOW | .github/ISSUE_TEMPLATE/feature.yml | 11 | placeholder: Tell us more about your feature request. Don't forget to give us a star! ⭐ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | ui/src/components/dashboard/sections/TimeSeries.vue | 301 | // Step 1: Group durations by formatted date | COMMENT |
| LOW⚡ | ui/src/components/dashboard/sections/TimeSeries.vue | 308 | // Step 2: Map onto the x-axis labels so the line stays aligned with the bars | COMMENT |
| LOW⚡ | .github/workflows/welcome.yml | 111 | #### Step 1: Set up your profile README | COMMENT |
| LOW⚡ | .github/workflows/welcome.yml | 119 | #### Step 2: Add your Contributor Badge | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/package-lock.json | 18926 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | …test/java/io/kestra/core/services/FlowServiceTest.java | 1720 | // robust against bean-validation message wording changes. | STRING |
| MEDIUM | …kestra/jdbc/repository/AbstractJdbcFlowRepository.java | 395 | // Same robust deserialization as findAllWithSourceForAllTenants(): we don't want | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dev-tools/copy-plugin.sh | 33 | # Check if KESTRA_PLUGINS_DIR is set | COMMENT |
| LOW | dev-tools/copy-plugin.sh | 74 | if ls "$build_libs_dir"/*.jar &>/dev/null; then # Check if there are any .jar files | CODE |
| LOW | dev-tools/copy-plugin.sh | 88 | # Check if any JARs were found and copied | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | dev-tools/setup-worktree.sh | 4 | # Usage: | COMMENT |
| LOW | dev-tools/copy-plugin.sh | 11 | # Usage: | COMMENT |