Open source observability platform for logs, metrics, traces, RUM (web, android, ios), Session replay, pipelines, SLO and LLM observability. A sophisticated, simple and highly performant alternative to Datadog, Splunk, and Elasticsearch with 140x lower storage costs and single binary deployment.
This report summarizes scanner evidence for openobserve/openobserve, a TypeScript project with 22,315 GitHub stars. SynthScan examined 3,017,746 lines of code across 7746 source files, recording 13281 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 7.7 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 8574 finding(s).
Are imports declared and package/API names verified? 555 finding(s).
Are wrappers, guards, and repeated structures necessary? 5084 finding(s).
Which changes need focused human review? 13281 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 13281 distinct pattern matches across 23 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 |
|---|---|---|---|---|
| MEDIUM | web/eslint.config.js | 93 | // ── no-hardcoded-px ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/eslint.config.js | 146 | // ── .css ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/eslint.config.js | 160 | // ── .vue <style> ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/eslint.config.js | 323 | // ── no-hardcoded-color ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/eslint.config.js | 961 | // ── Stylesheets ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 18 | // ── Replay state machine ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 93 | // ── Locator bundle ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 150 | // ── Version-2 settle block ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 185 | // ── Version-2 assertions ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 247 | // ── OpenObserve Extension (playwright-crx) recorder protocol ──────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 403 | // ── Live data pushed over the port ────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 680 | // ── Private locations (GET /{org}/synthetics/locations + /{id}) ────────────── | COMMENT |
| MEDIUM | web/src/types/synthetics.ts | 741 | // ── Shared variables and environments ──────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 11 | // ─── IDB mock helpers ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 130 | // ─── openDB ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 146 | // ─── mergeValues ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 184 | // ─── mergeMultipleValues ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 230 | // ─── getValues ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 268 | // ─── evictExpired ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueDB.spec.ts | 281 | // ─── trimToMaxFields ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 27 | // ── Bridge test helpers ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 88 | // ── Test suite ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 102 | // ── detectExtension ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 203 | // ── startRecording ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 205 | // ── capabilities (P1 handshake) ──────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 348 | // ── startRecordingFrom (P2 restore-then-record) ─────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 727 | // ── Cancelling a restore ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 827 | // ── Recovering from a failed prefix ───────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 1026 | // ── stopRecording ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 1054 | // ── cancelRecording ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 1071 | // ── replay ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 1201 | // ── Stop ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticsRecorder.spec.ts | 1375 | // ── The bridge dies mid-replay ────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.spec.ts | 63 | // ─── Return value structure ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.spec.ts | 92 | // ─── resetFieldValues ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.spec.ts | 141 | // ─── cancelFieldStream ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.spec.ts | 184 | // ─── fetchFieldValues ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticResults.ts | 131 | // ── Stream schema fields ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticResults.ts | 189 | // ── Effective p95 — falls back to client-side computation from runs ────── | COMMENT |
| MEDIUM | web/src/composables/useSyntheticResults.ts | 206 | // ── Steps: fetch via synthetics_results log stream ───────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.ts | 66 | // ─── Trace ID helpers ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.ts | 79 | // ─── Public API ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useFieldValuesStream.ts | 134 | // ─── Stream handlers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …b/src/composables/useSuggestions.serverCatalog.spec.ts | 63 | // ─── Phase 2 (tmp/code.md B4) — the fetch itself must be wired ──────────────── | COMMENT |
| MEDIUM | …b/src/composables/useSuggestions.serverCatalog.spec.ts | 172 | // ─── Surfaces that never call getSuggestions ───────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useUnauthorizedErrorGrouper.ts | 45 | // ── URL → {label, urlPath} extraction ─────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useUnauthorizedErrorGrouper.ts | 110 | // ── Module-level singleton state ───────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useUnauthorizedErrorGrouper.ts | 169 | // ── Public API ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueStore.spec.ts | 3 | // ─── Mock fieldValueDB ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueStore.spec.ts | 12 | // ─── Mock extractValuesFromHits ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueStore.spec.ts | 30 | // ─── scheduleWrite behaviour ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueStore.spec.ts | 94 | // ─── captureFromValuesApi ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/fieldValueStore.spec.ts | 168 | // ─── getFieldValuesForSuggestion ────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/usePromqlSuggestions.spec.ts | 499 | // ─── tmp/code.md item 18 (section E) — the catalog behind these keywords ───── | COMMENT |
| MEDIUM | web/src/composables/usePromqlSuggestions.spec.ts | 634 | // ─── Removed with the series endpoint (tmp/code.md D11) ────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useAlertForm.ts | 124 | // ─── Default Values ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useAlertForm.ts | 382 | // ─── Composable ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useAlertForm.ts | 418 | // ── Core State ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useAlertForm.ts | 424 | // ── Headless OForm ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/composables/useAlertForm.ts | 572 | // ── Anomaly Detection State ───────────────────────────────────────────── | COMMENT |
| 3944 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | downloadO2.sh | 1 | #!/bin/sh | COMMENT |
| LOW | web/eslint.config.js | 21 | // parser hands to a rule as an AST — `parse` takes an `offset`, so the positions it returns | COMMENT |
| LOW | web/eslint.config.js | 321 | }; | COMMENT |
| LOW | web/eslint.config.js | 741 | }, | COMMENT |
| LOW | web/eslint.config.js | 841 | "vue/enforce-style-attribute": ["warn", { allow: ["scoped", "module"] }], | COMMENT |
| LOW | web/vite.config.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/vite.config.ts | 141 | }, | COMMENT |
| LOW | web/vite.config.ts | 281 | // Monaco is one chunk, and has to be. | COMMENT |
| LOW | web/vitest.config.ts | 61 | // column is meant to read in the user's own timezone — so those tests can | COMMENT |
| LOW | web/cypress.config.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | …posables/usePrebuiltDestinations.comprehensive.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/tests/unit/services/alert_destination.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/main.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/aws-exports.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/types/echarts-tokens.d.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/types/i18n.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/types/alertLibrary.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/types/synthetics.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/types/synthetics.ts | 401 | export type BlockedReason = "incognito" | "in-progress" | "preflight"; | COMMENT |
| LOW | web/src/types/vue-router.d.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticEvidence.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 161 | reason: RestoreFailureReason; | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 181 | // LEASE_SECS = 900 (D-9), the outer bound one attempt is ever contained in; | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 581 | }, | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 761 | COMMENT | |
| LOW | web/src/composables/useSyntheticsRecorder.ts | 781 | // guards is conditioned on the phase having already left `running`, and here | COMMENT |
| LOW | web/src/composables/useTreeInteraction.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/usePromptHistory.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticsRecorder.spec.ts | 201 | }); | COMMENT |
| LOW | web/src/composables/usePrebuiltDestinations.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useLogsHighlighter.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/usePipelines.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useFieldValuesStream.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useChatHistoryList.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useMetricsCorrelationDashboard.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSyntheticResults.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useDashboardGallery.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useTextHighlighter.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useLogs.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useLogs.ts | 361 | searchObj.data.datetime = date; | COMMENT |
| LOW | web/src/composables/useDashboardGallery.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useWorker.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useFieldValuesStream.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/usePasswordComplexity.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | …b/src/composables/useSuggestions.serverCatalog.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSessionActivity.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useChunkedContent.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useTreeVisualization.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useIngestion.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useUnauthorizedErrorGrouper.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useFolderIcons.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useWorkloadDetection.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useStreams.spec.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useAutoNavigationPreferences.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useSloFormat.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useMcpCredential.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useServiceGraphTree.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| LOW | web/src/composables/useOnCallRoutingConfig.ts | 1 | // Copyright 2026 OpenObserve Inc. | COMMENT |
| 5859 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/composables/rum/useCorrelatedTracesStream.ts | 330 | // Step 2: only unresolved ids, only unprobed streams. | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 487 | // Step 1: Expand variables for scopes | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 490 | // Step 2: Populate state | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 511 | // Step 3: Build dependency graph | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 514 | // Step 4: Detect cycles | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 520 | // Step 5: Mark global independent variables as ready to load | COMMENT |
| LOW | web/src/composables/dashboard/useVariablesManager.ts | 601 | // Step 6: Initialize committed state (empty at first) | COMMENT |
| LOW | …/plugins/correlation/TelemetryCorrelationDashboard.vue | 2910 | // Step 1: Try to extract trace_id from the log record | COMMENT |
| LOW | web/src/plugins/logs/Index.vue | 893 | * As we are redirecting stream explorer to logs page, we need to check if the user has changed the stream type from | COMMENT |
| LOW | web/src/plugins/logs/SearchBar.vue | 3528 | //before we set the time to the dateTimeRef.value we need to check if the startTime and endTime difference | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4179 | // Step 1: user types full SQL query — auto-detect turns on SQL mode | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4183 | // Step 2: user removes 'select * from otel_demo where ', leaving filter | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4186 | // Step 3: sqlMode must be off so run-query uses filter mode | COMMENT |
| LOW | web/src/plugins/logs/patterns/PatternList.spec.ts | 103 | // Since we're using virtual scroll, we need to check if the component | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 131 | // Step 1: discover dynamic prefix groups from the field set | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 134 | // Step 2: build flat field objects with resolved group keys | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 145 | // Step 3: bucket by group key | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 153 | // Step 4: sort groups | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 158 | // Step 5: inject label rows | COMMENT |
| LOW⚡ | web/src/utils/llmUtils.ts | 270 | // Step 1: Parse JSON string if needed | COMMENT |
| LOW⚡ | web/src/utils/llmUtils.ts | 280 | // Step 2: Extract meaningful text from parsed object | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 243 | // Step 1: Format the value (add quotes if needed, based on type) | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 248 | // Step 2: Build the condition string (column operator value) | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 258 | // Step 3: Add logical operator prefix (except for first item at index 0) | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 75 | // Step 1: Aggregate y_axis values by breakdown, ensuring missing values are set to empty string | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 90 | // Step 2: Sort and extract the top keys based on the configured number of top results | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 106 | // Step 3: Initialize result array and others object for aggregation | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 126 | // Step 4: Add 'others' aggregation to the result array if enabled | COMMENT |
| LOW | …/utils/dashboard/variables/variablesDependencyUtils.ts | 322 | // Step 1: Initialize nodes | COMMENT |
| LOW | …/utils/dashboard/variables/variablesDependencyUtils.ts | 334 | // Step 2: Build edges | COMMENT |
| LOW | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 78 | // Step 1: Find appropriate converter for this chart type | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 91 | // Step 2: Preprocess data (common for all chart types) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 98 | // Step 3: Initialize extras object | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 105 | // Step 4: Delegate to chart-specific converter | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 109 | // Step 5: Apply common chart configurations | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 123 | // Step 6: Apply comprehensive legend configuration (same as SQL charts) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 130 | // Step 7: Apply annotations (if applicable) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 136 | // Step 8: Handle empty data case | COMMENT |
| LOW⚡ | web/src/utils/dashboard/sql/shared/contextBuilder.ts | 118 | // Step 1: Get the X-Axis key | COMMENT |
| LOW⚡ | web/src/utils/dashboard/sql/shared/contextBuilder.ts | 121 | // Step 2: Get the Y-Axis key | COMMENT |
| LOW⚡ | web/src/utils/templates/validation.ts | 46 | // Step 1: Replace quoted placeholders first: "{placeholder}" -> "test" | COMMENT |
| LOW⚡ | web/src/utils/templates/validation.ts | 49 | // Step 2: Iteratively replace bare placeholders (simple identifiers only) | COMMENT |
| LOW | …b/src/components/logstream/AssociatedRegexPatterns.vue | 745 | //so we need to check if the policy or apply_at value is changed and if it is then we need to update the isFormDirty | COMMENT |
| LOW | web/src/components/pipeline/NodeForm/Query.vue | 557 | //before assigning the sql , we need to check if the sql does limit is applied or not | COMMENT |
| LOW⚡ | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 433 | // Step 1: Ensure folders exist | COMMENT |
| LOW⚡ | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 436 | // Step 2: Download dashboard JSON to get the actual title | COMMENT |
| LOW | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 448 | // Step 3: Check if dashboard already exists by listing all dashboards in the folder | COMMENT |
| LOW | web/src/components/alerts/AddDestination.vue | 1072 | // Step 1: Parse metadata and remove the credential_ prefix. `metadata` is not | COMMENT |
| LOW | web/src/components/alerts/AddDestination.vue | 1094 | // Step 2: Restore sensitive fields from destination properties. | COMMENT |
| LOW | web/src/components/alerts/IncidentDetailDrawer.vue | 2155 | // Step 1: Get stream schema (like logs page does) | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2167 | // Step 2: Extract schema fields (like logs page does) | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2177 | // Step 3: Get semantic groups to resolve dimension names to field patterns | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2183 | // Step 4: For each dimension, find the matching schema field | COMMENT |
| LOW⚡ | web/src/components/alerts/QueryEditorDialog.vue | 698 | // Step 1: grow the VRL pane (sqlEditorMaximized = false triggers CSS) | COMMENT |
| LOW⚡ | web/src/components/alerts/QueryEditorDialog.vue | 702 | // Step 2: after two animation frames the browser has finished laying out | COMMENT |
| LOW | web/src/components/iam/quota/Quota.vue | 1316 | //if the active type is json then we need to check if the changes are there in the changedValues | COMMENT |
| LOW | web/src/components/iam/quota/Quota.vue | 1331 | //if the active type is table then we need to check if the changes are there in the jsonStrToDisplay | COMMENT |
| LOW | web/src/components/functions/EnrichmentTableList.vue | 655 | //here we need to check if the action is there or not | COMMENT |
| LOW | web/src/views/LogStream.vue | 1228 | // We need to check if stream is present in store, if not then we need to fetch the stream | COMMENT |
| LOW⚡ | tests/api-testing/tests/rum/test_rum.py | 157 | # Step 1: fetch a valid rum token | COMMENT |
| 737 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/composables/rum/useCorrelatedTracesStream.ts | 330 | // Step 2: only unresolved ids, only unprobed streams. | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 487 | // Step 1: Expand variables for scopes | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 490 | // Step 2: Populate state | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 511 | // Step 3: Build dependency graph | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 514 | // Step 4: Detect cycles | COMMENT |
| LOW⚡ | web/src/composables/dashboard/useVariablesManager.ts | 520 | // Step 5: Mark global independent variables as ready to load | COMMENT |
| LOW | web/src/composables/dashboard/useVariablesManager.ts | 601 | // Step 6: Initialize committed state (empty at first) | COMMENT |
| LOW | …/plugins/correlation/TelemetryCorrelationDashboard.vue | 2910 | // Step 1: Try to extract trace_id from the log record | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4179 | // Step 1: user types full SQL query — auto-detect turns on SQL mode | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4183 | // Step 2: user removes 'select * from otel_demo where ', leaving filter | COMMENT |
| LOW⚡ | web/src/plugins/logs/SearchBar.spec.ts | 4186 | // Step 3: sqlMode must be off so run-query uses filter mode | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 131 | // Step 1: discover dynamic prefix groups from the field set | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 134 | // Step 2: build flat field objects with resolved group keys | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 145 | // Step 3: bucket by group key | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 153 | // Step 4: sort groups | COMMENT |
| LOW⚡ | web/src/utils/fieldCategories.bench.ts | 158 | // Step 5: inject label rows | COMMENT |
| LOW⚡ | web/src/utils/llmUtils.ts | 270 | // Step 1: Parse JSON string if needed | COMMENT |
| LOW⚡ | web/src/utils/llmUtils.ts | 280 | // Step 2: Extract meaningful text from parsed object | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 243 | // Step 1: Format the value (add quotes if needed, based on type) | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 248 | // Step 2: Build the condition string (column operator value) | COMMENT |
| LOW⚡ | web/src/utils/alerts/conditionsFormatter.ts | 258 | // Step 3: Add logical operator prefix (except for first item at index 0) | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 75 | // Step 1: Aggregate y_axis values by breakdown, ensuring missing values are set to empty string | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 90 | // Step 2: Sort and extract the top keys based on the configured number of top results | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 106 | // Step 3: Initialize result array and others object for aggregation | COMMENT |
| LOW | web/src/utils/dashboard/sqlProcessData.ts | 126 | // Step 4: Add 'others' aggregation to the result array if enabled | COMMENT |
| LOW | …/utils/dashboard/variables/variablesDependencyUtils.ts | 322 | // Step 1: Initialize nodes | COMMENT |
| LOW | …/utils/dashboard/variables/variablesDependencyUtils.ts | 334 | // Step 2: Build edges | COMMENT |
| LOW | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 78 | // Step 1: Find appropriate converter for this chart type | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 91 | // Step 2: Preprocess data (common for all chart types) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 98 | // Step 3: Initialize extras object | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 105 | // Step 4: Delegate to chart-specific converter | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 109 | // Step 5: Apply common chart configurations | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 123 | // Step 6: Apply comprehensive legend configuration (same as SQL charts) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 130 | // Step 7: Apply annotations (if applicable) | COMMENT |
| LOW⚡ | …b/src/utils/dashboard/promql/convertPromQLChartData.ts | 136 | // Step 8: Handle empty data case | COMMENT |
| LOW⚡ | web/src/utils/dashboard/sql/shared/contextBuilder.ts | 118 | // Step 1: Get the X-Axis key | COMMENT |
| LOW⚡ | web/src/utils/dashboard/sql/shared/contextBuilder.ts | 121 | // Step 2: Get the Y-Axis key | COMMENT |
| LOW⚡ | web/src/utils/templates/validation.ts | 46 | // Step 1: Replace quoted placeholders first: "{placeholder}" -> "test" | COMMENT |
| LOW⚡ | web/src/utils/templates/validation.ts | 49 | // Step 2: Iteratively replace bare placeholders (simple identifiers only) | COMMENT |
| LOW⚡ | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 433 | // Step 1: Ensure folders exist | COMMENT |
| LOW⚡ | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 436 | // Step 2: Download dashboard JSON to get the actual title | COMMENT |
| LOW | …omponents/ingestion/recommended/AWSIntegrationTile.vue | 448 | // Step 3: Check if dashboard already exists by listing all dashboards in the folder | COMMENT |
| LOW | web/src/components/alerts/AddDestination.vue | 1072 | // Step 1: Parse metadata and remove the credential_ prefix. `metadata` is not | COMMENT |
| LOW | web/src/components/alerts/AddDestination.vue | 1094 | // Step 2: Restore sensitive fields from destination properties. | COMMENT |
| LOW | web/src/components/alerts/IncidentDetailDrawer.vue | 2155 | // Step 1: Get stream schema (like logs page does) | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2167 | // Step 2: Extract schema fields (like logs page does) | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2177 | // Step 3: Get semantic groups to resolve dimension names to field patterns | COMMENT |
| LOW⚡ | web/src/components/alerts/IncidentDetailDrawer.vue | 2183 | // Step 4: For each dimension, find the matching schema field | COMMENT |
| LOW⚡ | web/src/components/alerts/QueryEditorDialog.vue | 698 | // Step 1: grow the VRL pane (sqlEditorMaximized = false triggers CSS) | COMMENT |
| LOW⚡ | web/src/components/alerts/QueryEditorDialog.vue | 702 | // Step 2: after two animation frames the browser has finished laying out | COMMENT |
| LOW⚡ | tests/api-testing/tests/rum/test_rum.py | 157 | # Step 1: fetch a valid rum token | COMMENT |
| LOW⚡ | tests/api-testing/tests/rum/test_rum.py | 162 | # Step 2: ingest one valid RUM data record so _rumdata exists with a `service` column | COMMENT |
| LOW⚡ | tests/api-testing/tests/rum/test_rum.py | 206 | # Step 1: fetch a valid rum token | COMMENT |
| LOW⚡ | tests/api-testing/tests/rum/test_rum.py | 211 | # Step 2: ingest a log with a unique identifier we can search for | COMMENT |
| LOW | tests/api-testing/tests/rum/test_rum.py | 175 | # Step 3: wait until the _rumdata stream schema is registered and queryable | COMMENT |
| LOW | tests/api-testing/tests/rum/test_rum.py | 192 | # Step 4: a service value that was never ingested yields empty hits, not an error | COMMENT |
| LOW | tests/api-testing/tests/rum/test_rum.py | 227 | # Step 3: poll search until the unique message appears in _rumlog | COMMENT |
| LOW⚡ | …i-testing/tests/pipelines/test_enrichment_table_url.py | 325 | # Step 1: Create the enrichment table | COMMENT |
| LOW | …i-testing/tests/pipelines/test_enrichment_table_url.py | 337 | # Step 2: Wait for initial job to complete | COMMENT |
| LOW | …i-testing/tests/pipelines/test_enrichment_table_url.py | 350 | # Step 3: Reload with retry=true and empty URL | COMMENT |
| 722 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/main.ts | 231 | function showNewVersionNotification() { | CODE |
| LOW | web/src/composables/useLogsHighlighter.ts | 499 | function createStyledSpanWithClasses( | CODE |
| LOW | web/src/composables/useLogsHighlighter.ts | 559 | function isLogLineWithMixedContent(value: string): boolean { | CODE |
| LOW | web/src/composables/useLogsHighlighter.ts | 582 | function colorizeObjectWithClasses( | CODE |
| LOW | web/src/composables/useMetricsCorrelationDashboard.ts | 48 | export function useMetricsCorrelationDashboard(t: TranslateFn) { | CODE |
| LOW | web/src/composables/useAutoNavigationPreferences.ts | 23 | export function useAutoNavigationPreferences( | CODE |
| LOW | web/src/composables/useServiceCorrelation.ts | 367 | export function clearSemanticGroupsCaches() { | CODE |
| LOW | web/src/composables/useServiceCorrelation.ts | 376 | export function getSemanticGroupsCacheStatus(): Record< | CODE |
| LOW | web/src/composables/useDimensionSelector.spec.ts | 31 | function buildSamplesWithCardinality( | CODE |
| LOW | web/src/composables/useHostMetricsDashboard.ts | 47 | export function importHostMetricsDashboard(orgId: string): Promise<HostMetricsImportResult> { | CODE |
| LOW | web/src/composables/useDimensionSelector.ts | 401 | function selectDimensionsFromSchema( | CODE |
| LOW | web/src/composables/useTextHighlighter.ts | 928 | function processTextWithHighlights( | CODE |
| LOW | web/src/composables/useMetricSubjectButtons.ts | 187 | function patternsForSemanticGroups(semanticIds: string[], semanticGroups: FieldAlias[]): RegExp[] { | CODE |
| LOW | web/src/composables/useMetricSubjectButtons.ts | 287 | export function buildWorkloadChipDimensions( | CODE |
| LOW | web/src/composables/useCorrelationDefaultSlug.ts | 112 | export function extractCorrelationFilters( | CODE |
| LOW | web/src/composables/useCorrelationDefaultSlug.ts | 172 | export function buildCorrelationWhereClause(filters: SavedFilter[]): string { | CODE |
| LOW | web/src/composables/useLatencyInsightsAnalysis.ts | 72 | export function useLatencyInsightsAnalysis(t: TranslateFn) { | CODE |
| LOW | web/src/composables/useLatencyInsightsDashboard.ts | 29 | export function useLatencyInsightsDashboard(t: TranslateFn) { | CODE |
| LOW | web/src/composables/usePaidOverageConsent.ts | 110 | export function isPaidOverageConsentError( | CODE |
| LOW | …src/composables/metrics/useMetricsExplorerExemplars.ts | 53 | export function useMetricsExplorerExemplars(args: ExplorerExemplarsArgs) { | CODE |
| LOW | …b/src/composables/synthetics/syntheticResultsSchema.ts | 1343 | export function computePartitionStability(runs: SyntheticRun[]): PartitionStability[] { | CODE |
| LOW | …b/src/composables/synthetics/syntheticResultsSchema.ts | 1766 | export function buildProtocolRunDetailSql( | CODE |
| LOW | web/src/composables/rum/useCorrelatedTracesStream.ts | 72 | export default function useCorrelatedTracesStream(t: TranslateFn) { | CODE |
| LOW | web/src/composables/alerts/useAlertLibrary.spec.ts | 132 | function respondOnceWithUnparseableBody() { | CODE |
| LOW | web/src/composables/alerts/useDependencyGraph.ts | 436 | export function invalidateDependencyGraphCache() { | CODE |
| LOW | web/src/composables/dashboard/promqlChunkProcessor.ts | 46 | export function createPromQLChunkProcessor(options: PromQLChunkProcessorOptions) { | CODE |
| LOW | …c/composables/dashboard/usePanelExemplarInteraction.ts | 72 | export function usePanelExemplarInteraction(args: InteractionArgs) { | CODE |
| LOW | web/src/test/unit/workers/rumcssworker.spec.js | 47 | function replaceAbsoluteUrlsWithProxies(proxyUrl, cssString, excludedDomains = []) { | CODE |
| LOW | web/src/test/unit/helpers/intersectionObserverFake.ts | 22 | export function installFakeIntersectionObserver({ autoVisible = false } = {}) { | CODE |
| LOW | web/src/test/unit/helpers/mockRumPerformanceTab.ts | 46 | export function createRumPerformanceTabMock(overrides: RumPerformanceTabMockOverrides = {}) { | CODE |
| LOW | web/src/enterprise/components/OnlineEvals.vue | 1078 | async function triggerScoreConfigLibraryImport() { | CODE |
| LOW | web/src/enterprise/components/OnlineEvals.vue | 1088 | async function handleScoreConfigLibraryImported() { | CODE |
| LOW | web/src/enterprise/components/OnlineEvals.vue | 1120 | async function triggerScorerLibraryImport() { | CODE |
| LOW | web/src/enterprise/components/OnlineEvals.vue | 1130 | async function handleScorerLibraryImported() { | CODE |
| LOW | …se/components/AIObservability/ExperimentForm.schema.ts | 162 | export function experimentFormFromExperiment(source: LlmExperiment, name: string): ExperimentForm { | CODE |
| LOW | …components/AIObservability/PlaygroundVariantConfig.vue | 69 | function onMessageToolArgumentsChange(messageId: string, toolArguments: string) { | CODE |
| LOW | …prise/components/AIObservability/ExperimentBrowser.vue | 591 | function translateComparisonReason(reason: ComparisonIneligibilityReason) { | CODE |
| LOW | …rc/enterprise/components/onlineEvals/ScorerLibrary.vue | 335 | async function resolveRequiredScoreConfig(name: string): Promise<ScoreConfig> { | CODE |
| LOW | …mponents/onlineEvals/composables/useOnlineEvalsData.ts | 98 | async function ensureScoreConfigVersions(orgId: string, entityIdValue: string) { | CODE |
| LOW | …onents/onlineEvals/composables/useJobMatchedTargets.ts | 13 | export function buildJobMatchedTargetsTimeRange(nowMs = Date.now()) { | CODE |
| LOW | …onents/onlineEvals/composables/useJobMatchedTargets.ts | 35 | export function buildJobMatchedTargetsSql( | CODE |
| LOW | …e/components/onlineEvals/composables/useQualityRuns.ts | 200 | export function buildEvaluatorSpanLookupSql( | CODE |
| LOW | …rprise/components/onlineEvals/forms/ScorerFormPage.vue | 1249 | async function handleScoreConfigSelection() { | CODE |
| LOW | …rprise/components/onlineEvals/forms/ScorerFormPage.vue | 1255 | async function prepareSelectedScoreConfigVersion(keepSelectedVersion: boolean) { | CODE |
| LOW | …e/components/onlineEvals/forms/job/JobInputMapping.vue | 352 | function updateSpanSelectorBinding(scorerId: string, selectorId: string) { | CODE |
| LOW | …erprise/components/onlineEvals/utils/scoreThreshold.ts | 131 | export function buildUnhealthyCaseBranches( | CODE |
| LOW | …c/enterprise/components/onlineEvals/utils/routeSync.ts | 123 | export function buildCrossNavigationQuery( | CODE |
| LOW | …erprise/components/onlineEvals/utils/agentFilterSql.ts | 28 | export function buildScoresAgentFilterWhere( | CODE |
| LOW | …erprise/components/onlineEvals/utils/agentFilterSql.ts | 49 | export function buildEvaluatorAgentFilterWhere( | CODE |
| LOW⚡ | …enterprise/components/onlineEvals/utils/jobMappings.ts | 35 | export function jobMappingVariablesForScorer( | CODE |
| LOW⚡ | …enterprise/components/onlineEvals/utils/jobMappings.ts | 42 | export function mappingUsesSystemProvidedSpans( | CODE |
| LOW⚡ | …enterprise/components/onlineEvals/utils/jobMappings.ts | 50 | export function buildJobInputMappingPayload( | CODE |
| LOW | …enterprise/components/onlineEvals/utils/jobMappings.ts | 69 | export function normalizeJobInputMappings(value: any, selectedScorerIds: string[]) { | CODE |
| LOW | …omponents/onlineEvals/utils/systemProvidedVariables.ts | 24 | export function systemProvidedVariablesForScope( | CODE |
| LOW | …rise/components/onlineEvals/utils/importScoreConfig.ts | 46 | export function normalizeScoreConfigInput(raw: unknown): Partial<ScoreConfigPayload> | null { | CODE |
| LOW | …rise/components/onlineEvals/utils/importScoreConfig.ts | 71 | function normalizeHealthyThreshold(ht: any): Record<string, any> | undefined { | CODE |
| LOW | …erprise/components/onlineEvals/utils/latestScoreSql.ts | 89 | export function latestScoreAttemptsFromSql(whereClause?: string | null): string { | CODE |
| LOW | …prise/components/onlineEvals/utils/completionWindow.ts | 29 | export function completionWindowDefaultsForScope( | CODE |
| LOW | …prise/components/onlineEvals/utils/completionWindow.ts | 54 | export function completionWindowLimitsForScope( | CODE |
| LOW | …prise/components/onlineEvals/utils/completionWindow.ts | 96 | export function completionWindowConfigFromJob( | CODE |
| 869 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | web/src/composables/useDashboardPanel.spec.ts | 879 | panel.dashboardPanelData.meta.stream.selectedStreamFields.push( | CODE |
| CRITICAL | web/src/composables/useDashboardPanel.spec.ts | 3175 | panel.dashboardPanelData.meta.stream.selectedStreamFields.push(field); | CODE |
| CRITICAL | web/src/composables/useAlertForm.ts | 1364 | formData.value.query_condition.aggregation.group_by.forEach((field: string) => { | CODE |
| CRITICAL | web/src/composables/rum/useProductAnalytics.spec.ts | 445 | const lists = () => api.service.listEvents.mock.calls.filter((c) => c[1] === "f32").length; | CODE |
| CRITICAL | web/src/composables/rum/useNamedEvents.spec.ts | 255 | expect(api.service.deleteEvent.mock.calls.slice(-2)).toEqual([ | CODE |
| CRITICAL | …ables/dashboard/useDashboardPanel.promqlLabels.spec.ts | 181 | expect(p.dashboardPanelData.meta.promql.labelValuesMap.get("service")).toEqual([ | CODE |
| CRITICAL | …ables/dashboard/useDashboardPanel.promqlLabels.spec.ts | 227 | expect(p.dashboardPanelData.meta.promql.labelValuesMap.get("service")).toEqual(["api-gateway"]); | CODE |
| CRITICAL⚡ | web/src/composables/useLogs/useSearchBar.ts | 1321 | // ] of searchObj.data.queryResults.partitionDetail.partitions.entries()) { | COMMENT |
| CRITICAL⚡ | web/src/composables/useLogs/useSearchBar.ts | 1330 | // searchObj.data.queryResults.partitionDetail.paginations.push( | COMMENT |
| CRITICAL⚡ | web/src/composables/useLogs/useSearchBar.ts | 1333 | // searchObj.data.queryResults.partitionDetail.partitionTotal.push(-1); | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 981 | // // searchObj.data.queryResults.partitionDetail.partitions.forEach( | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 991 | // ] of searchObj.data.queryResults.partitionDetail.partitions.entries()) { | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 1195 | // searchObj.data.queryResults.partitionDetail.paginations.push( | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 1198 | // searchObj.data.queryResults.partitionDetail.partitionTotal.push( | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 1248 | // searchObj.data.queryResults.partitionDetail.paginations.push( | COMMENT |
| CRITICAL | web/src/composables/useLogs/useSearchBar.ts | 1254 | // searchObj.data.queryResults.partitionDetail.partitionTotal.push( | COMMENT |
| CRITICAL | …b/src/composables/useLogs/useSearchHistogramManager.ts | 109 | payload.queryReq.query.sql = searchObj.data.histogramQuery.query.sql.replace( | CODE |
| CRITICAL | web/src/composables/useLogs/useHistogram.ts | 578 | // searchObj.data.queryResults.partitionDetail.partitions.map( | COMMENT |
| CRITICAL | web/src/composables/useLogs/usePagination.ts | 181 | // searchObj.data.queryResults.partitionDetail.partitions.forEach( | COMMENT |
| CRITICAL | web/src/composables/useLogs/usePagination.ts | 196 | ] of searchObj.data.queryResults.partitionDetail.partitions.entries()) { | CODE |
| CRITICAL⚡ | web/src/plugins/traces/SearchResult.vue | 297 | const RGIndex = this.searchObj.data.resultGrid.columns.indexOf(col.name); | CODE |
| CRITICAL⚡ | web/src/plugins/traces/SearchResult.vue | 298 | this.searchObj.data.resultGrid.columns.splice(RGIndex, 1); | CODE |
| CRITICAL⚡ | web/src/plugins/traces/SearchResult.vue | 300 | const SFIndex = this.searchObj.data.stream.selectedFields.indexOf(col.name); | CODE |
| CRITICAL⚡ | web/src/plugins/traces/SearchResult.vue | 302 | this.searchObj.data.stream.selectedFields.splice(SFIndex, 1); | CODE |
| CRITICAL | web/src/plugins/pipelines/PipelineFlow.spec.ts | 289 | wrapper.vm.pipelineObj.currentSelectedPipeline.nodes.push({ id: "1" }); | CODE |
| CRITICAL | web/src/plugins/pipelines/PipelineFlow.spec.ts | 377 | wrapper.vm.pipelineObj.currentSelectedPipeline.nodes.push({ id: "1" }); | CODE |
| CRITICAL | web/src/plugins/pipelines/PipelineFlow.spec.ts | 565 | wrapper.vm.pipelineObj.currentSelectedPipeline.nodes.push({ id: "n1" }); | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 542 | stream_name: this.searchObj.data.stream.selectedStream.join(","), | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 576 | stream_name: this.searchObj.data.stream.selectedStream.join(","), | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 602 | stream_name: this.searchObj.data.stream.selectedStream.join(","), | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 630 | stream_name: this.searchObj.data.stream.selectedStream.join(","), | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 1137 | (!store.state.logs.logs.data.stream.selectedStream.includes( | CODE |
| CRITICAL | web/src/plugins/logs/Index.vue | 3553 | // this.searchObj.data.stream.selectedStream.hasOwnProperty("value") && | COMMENT |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 933 | colSizes?.[this.searchObj.data.stream.selectedStream.join(",")]?.[0] || {}; | CODE |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 934 | this.searchObj.data.resultGrid.colSizes[this.searchObj.data.stream.selectedStream.join(",")] = | CODE |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 949 | this.searchObj.data.stream.selectedStream.join(",") | CODE |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 953 | this.searchObj.data.stream.selectedStream.join(",") | CODE |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 1045 | const RGIndex = this.searchObj.data.resultGrid.columns.findIndex((c: any) => c.id === col.id); | CODE |
| CRITICAL | web/src/plugins/logs/SearchResult.vue | 1046 | if (RGIndex !== -1) this.searchObj.data.resultGrid.columns.splice(RGIndex, 1); | CODE |
| CRITICAL | web/src/utils/alerts/alertValidation.ts | 496 | !input.query_condition.aggregation.having.value.toString().trim().length || | CODE |
| CRITICAL | …nents/rum/productAnalytics/NamedEventsListPage.spec.ts | 338 | expect(api.service.deleteEvent.mock.calls.slice(3)).toEqual([ | CODE |
| CRITICAL | web/src/components/alerts/AddAlert.spec.ts | 918 | form.state.fieldMeta.name.errors.map((e: any) => (typeof e === "string" ? e : e?.message)), | CODE |
| CRITICAL | web/src/components/alerts/PreviewAlert.vue | 1465 | props.formData.query_condition.aggregation.having.column.trim() !== ""; | CODE |
| CRITICAL | web/src/components/alerts/steps/CompareWithPast.spec.ts | 688 | parentForm.state.values.query_condition.multi_time_range.map((r: any) => r.offSet), | CODE |
| CRITICAL | …/src/components/dashboards/PanelSchemaRenderer.spec.ts | 3022 | expect(wrapper.vm.panelData.options.series.map((s: any) => s.name)).toEqual([ | CODE |
| CRITICAL | …/src/components/dashboards/PanelSchemaRenderer.spec.ts | 3030 | expect(wrapper.vm.panelData.options.series.map((s: any) => s.name)).toEqual([ | CODE |
| CRITICAL | …/src/components/dashboards/PanelSchemaRenderer.spec.ts | 3041 | expect(wrapper.vm.panelData.options.series.map((s: any) => s.name)).toEqual(["run1"]); | CODE |
| CRITICAL | …/src/components/dashboards/PanelSchemaRenderer.spec.ts | 3062 | expect(wrapper.vm.panelData.options.series.map((s: any) => s.name)).toEqual(["run1"]); | CODE |
| CRITICAL | …/components/dashboards/addPanel/DrilldownPopUp.spec.ts | 598 | wrapper.vm.drilldownData.data.variables.push({ | CODE |
| CRITICAL | …/components/dashboards/addPanel/DrilldownPopUp.spec.ts | 976 | wrapper.vm.drilldownData.data.variables.push({ | CODE |
| CRITICAL | …omponents/dashboards/addPanel/ColorPaletteDropDown.vue | 126 | <div class="pt-3" v-if="dashboardPanelData.data.config.color.mode.startsWith('continuous')"> | CODE |
| CRITICAL⚡ | …/components/dashboards/addPanel/PanelFieldList.spec.ts | 310 | mockReturn.dashboardPanelData.meta.stream.streamResults.map((s: any) => s.name), | CODE |
| CRITICAL | …nents/dashboards/addPanel/DashboardQueryEditor.spec.ts | 477 | wrapper.vm.dashboardPanelData.data.queries.push({ | CODE |
| CRITICAL | …/components/promql/components/PromQLBuilderOptions.vue | 217 | const streamFields = props.dashboardPanelData.meta.streamFields.groupedFields.find( | CODE |
| CRITICAL | …ews/DatabaseMonitoring/dbmServerMetricsSection.spec.ts | 194 | expect(messages.dbm.detail.serverMetrics.offHint.toLowerCase()).toContain( | CODE |
| CRITICAL | web/src/views/RUM/SessionViewer.spec.ts | 1689 | r.data.queryReq.query.sql.includes(`start >= ${S + 1000} `), | CODE |
| CRITICAL | web/src/views/RUM/SessionViewer.spec.ts | 1887 | streaming.requests.filter((r) => r.data.queryReq.query.sql.includes(`start >= ${lo} `)); | CODE |
| CRITICAL | web/src/views/RUM/SessionViewer.spec.ts | 1991 | .filter((r) => r.data.queryReq.query.sql.includes("segment")) | CODE |
| CRITICAL | web/src/views/Dashboards/addPanel/AddPanel.spec.ts | 986 | wrapper.vm.dashboardPanelData.data.queries.push(newQuery); | CODE |
| CRITICAL | web/src/views/Dashboards/addPanel/AddPanel.spec.ts | 3773 | wrapper.vm.dashboardPanelData.data.title.trim() === "" | CODE |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/eslint.config.js | 534 | "placeholder", | CODE |
| LOW | web/eslint.config.js | 773 | input: ["placeholder"], | CODE |
| LOW | web/eslint.config.js | 774 | textarea: ["placeholder"], | CODE |
| LOW | web/src/composables/useSyntheticsRecorder.spec.ts | 1169 | { name: "EMAIL", value: "test@test.com" }, | CODE |
| LOW | web/src/composables/useSyntheticsRecorder.spec.ts | 1180 | expect(sentCmd.steps[1].value).toBe("test@test.com"); | CODE |
| LOW | web/src/composables/useTextHighlighter.spec.ts | 622 | const result = textHighlighter.getSingleSemanticColor("user@example.com", colors); | CODE |
| LOW | web/src/composables/useTextHighlighter.spec.ts | 857 | expect(result).toContain("user@example.com"); | CODE |
| LOW | web/src/composables/useTextHighlighter.spec.ts | 1216 | 'Query: SELECT * FROM users WHERE email = "user@example.com" AND status = "active" LIMIT 100'; | CODE |
| LOW | web/src/composables/useTextHighlighter.spec.ts | 1225 | expect(result).toContain("user@example.com"); | CODE |
| LOW | web/src/composables/useSelectAutocomplete.spec.ts | 759 | user: { name: "John Doe", email: "john@example.com" }, | CODE |
| LOW | web/src/composables/useLogsHighlighter.spec.ts | 411 | const result = logsHighlighter.detectSemanticType("user@example.com"); | CODE |
| LOW | web/src/composables/useLogsHighlighter.spec.ts | 582 | email: "user@example.com", | CODE |
| LOW | web/src/composables/usePrebuiltDestinations.spec.ts | 353 | recipients: "user@example.com", | CODE |
| LOW | web/src/composables/useSearchInputUsingRegex.spec.ts | 12 | { name: "John Doe", id: 1 }, | CODE |
| LOW | web/src/composables/useSearchInputUsingRegex.spec.ts | 70 | expect(filteredOptions.value.some((option: any) => option.name === "John Doe")).toBe(true); | CODE |
| LOW | web/src/composables/useSearchInputUsingRegex.spec.ts | 93 | expect(filteredOptions.value[0].name).toBe("John Doe"); | CODE |
| LOW | web/src/composables/useSearchInputUsingRegex.spec.ts | 106 | expect(filteredOptions.value.some((option: any) => option.name === "John Doe")).toBe(true); | CODE |
| LOW | web/src/composables/rum/useMobileSessionReplay.ts | 222 | if (w.type === "placeholder") { | CODE |
| LOW | …b/src/composables/useLogs/useTemplateTokenizer.spec.ts | 352 | expect(wildcardLabel("<*>", ["user@example.com", "admin@test.com"])).toBe("email"); | CODE |
| LOW | …b/src/composables/useLogs/useTemplateTokenizer.spec.ts | 419 | expect(inferTypeFromValues(["user@example.com", "admin@test.org"])).toBe("email"); | CODE |
| LOW | …rise/components/AIObservability/RemoteTaskFormPage.vue | 261 | :key="placeholder" | CODE |
| LOW | …mponents/AIObservability/PlaygroundToolsDialog.spec.ts | 34 | props: ["modelValue", "label", "placeholder", "size"], | CODE |
| LOW | …mponents/AIObservability/PlaygroundToolsDialog.spec.ts | 44 | "placeholder", | CODE |
| LOW | web/src/plugins/traces/Index.spec.ts | 2684 | show.value ? h(Index, null, null) : h("div", { key: "placeholder" }), | CODE |
| LOW | web/src/plugins/traces/SessionDetails.spec.ts | 217 | props: ["modelValue", "placeholder", "clearable", "debounce", "size"], | CODE |
| LOW | web/src/plugins/traces/SessionsList.spec.ts | 763 | expect(wrapper.find(SEARCH).attributes("placeholder")).toBe("Search by user or message"); | CODE |
| LOW | web/src/plugins/logs/FunctionSelector.spec.ts | 81 | props: ["modelValue", "clearable", "debounce", "placeholder"], | CODE |
| LOW | web/src/plugins/logs/JsonPreview.spec.ts | 1000 | wrapper.vm.selectedText = "user@example.com"; | CODE |
| LOW | web/src/plugins/profiles/Index.spec.ts | 126 | props: ["modelValue", "placeholder"], | CODE |
| LOW | web/src/utils/common.spec.ts | 369 | await expect(getDefaultOrganization({ email: "test@test.com" }, "org")).rejects.toThrow( | CODE |
| LOW | web/src/utils/common.spec.ts | 390 | await getDefaultOrganization({ email: "test@test.com" }, "org"); | CODE |
| LOW | web/src/utils/queryUtils.spec.ts | 322 | expect(validateEmail("user@example.com")).toBe(true); | CODE |
| LOW | web/src/utils/synthetics/mapRecordedStep.spec.ts | 178 | value: "user@example.com", | CODE |
| LOW | web/src/utils/synthetics/mapRecordedStep.spec.ts | 184 | expect(mapped.value).toBe("user@example.com"); | CODE |
| LOW | web/src/utils/rum/productAnalyticsModel.spec.ts | 191 | reason: "placeholder", | CODE |
| LOW | web/src/utils/rum/productAnalyticsModel.ts | 86 | reason: "absent" | "placeholder"; | CODE |
| LOW | web/src/utils/rum/productAnalyticsModel.ts | 539 | if (gap.reason === "absent" || share > gap.share) gap = { reason: "placeholder", field, share }; | CODE |
| LOW | web/src/utils/alerts/alertTerraform.spec.ts | 27 | last_edited_by: "admin@example.com", | CODE |
| LOW | web/src/components/O2AIChat.spec.ts | 137 | props: ["modelValue", "placeholder", "disabled", "theme", "references", "borderless"], | CODE |
| LOW | web/src/components/Header.spec.ts | 1268 | expect(tooltipByHost.get("header-my-account-profile-icon")).toBe("John Doe"); | CODE |
| LOW | web/src/components/O2AIChat.session.spec.ts | 134 | props: ["modelValue", "placeholder", "disabled", "theme", "references", "borderless"], | CODE |
| LOW | web/src/components/O2AIChat.stream.spec.ts | 112 | props: ["modelValue", "placeholder", "disabled", "theme", "references", "borderless"], | CODE |
| LOW | web/src/components/O2AIChat.keyboard.spec.ts | 104 | props: ["modelValue", "placeholder", "disabled", "theme", "references", "borderless"], | CODE |
| LOW | web/src/components/settings/License.spec.ts | 117 | contact_name: "John Doe", | CODE |
| LOW | web/src/components/settings/License.spec.ts | 301 | expect(wrapper.text()).toContain("John Doe"); | CODE |
| LOW | web/src/components/settings/AddRegexPattern.spec.ts | 168 | props: ["modelValue", "readonly", "disabled", "label", "placeholder"], | CODE |
| LOW | web/src/components/settings/AddRegexPattern.spec.ts | 178 | props: ["modelValue", "name", "readonly", "disabled", "label", "placeholder", "required"], | CODE |
| LOW | web/src/components/settings/AddRegexPattern.spec.ts | 194 | props: ["modelValue", "name", "label", "placeholder", "class"], | CODE |
| LOW | …rc/components/settings/SyntheticsLocationsList.spec.ts | 160 | :placeholder="placeholder" | CODE |
| LOW | …rc/components/settings/SyntheticsLocationsList.spec.ts | 164 | props: ["modelValue", "placeholder", "class"], | CODE |
| LOW | …rc/components/settings/SyntheticsLocationsList.spec.ts | 388 | expect(searchInput.attributes("placeholder")).toBe("Search locations…"); | CODE |
| LOW | web/src/components/settings/BuiltInPatternsTab.spec.ts | 53 | examples: { Valid: ["user@example.com"], Invalid: ["not-an-email"] }, | CODE |
| LOW | …b/src/components/settings/TestModelMatchDialog.spec.ts | 139 | :placeholder="placeholder" | CODE |
| LOW⚡ | …src/components/settings/SyntheticsLocationForm.spec.ts | 78 | props: ["modelValue", "name", "label", "options", "placeholder", "required"], | CODE |
| LOW⚡ | …src/components/settings/SyntheticsLocationForm.spec.ts | 86 | props: ["modelValue", "name", "label", "placeholder", "required", "readonly", "disabled"], | CODE |
| LOW | …c/components/settings/DomainManagement.test-helpers.ts | 140 | email: "user@example.com", | CODE |
| LOW | …src/components/settings/OrganizationManagement.spec.ts | 238 | user_email: "admin@example.com", | CODE |
| LOW | …src/components/settings/OrganizationManagement.spec.ts | 268 | props: ["modelValue", "placeholder", "type"], | CODE |
| LOW | …src/components/settings/OrganizationManagement.spec.ts | 273 | :placeholder="placeholder" | CODE |
| LOW | …b/src/components/settings/ServiceIdentitySetup.spec.ts | 65 | props: ["modelValue", "placeholder", "label"], | CODE |
| 297 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test-data/query-agent/compute_counts.py | 13 | cd tests/test-data/query-agent && python3 compute_counts.py | STRING |
| HIGH | tests/test-data/query-agent/gen_q201_q400.py | 8 | cd tests/test-data/query-agent && python3 gen_q201_q400.py | STRING |
| HIGH | tests/test-data/query-agent/gen_q1003_q1052.py | 10 | cd tests/test-data/query-agent && python3 gen_q1003_q1052.py | STRING |
| HIGH | tests/api-testing/tests/vortex/test_schema_evolution.py | 929 | assert present == 10, f"'present' group (fc not null) must be 10; got {present}" | CODE |
| HIGH⚡ | …ts/api-testing/tests/pipelines/test_js_result_array.py | 26 | if (rows[i].newdata > 50) { filtered.push(rows[i]); } | CODE |
| HIGH⚡ | …ts/api-testing/tests/pipelines/test_js_result_array.py | 29 | for (var i = 0; i < filtered.length; i++) { rows.push(filtered[i]); }""" | CODE |
| HIGH | …ts/api-testing/tests/pipelines/test_js_result_array.py | 124 | rows.push(newRow); | CODE |
| HIGH | …ts/api-testing/tests/pipelines/test_js_result_array.py | 158 | row.doubled = (row.value || 0) * 2;""" | CODE |
| HIGH | …ts/api-testing/tests/pipelines/test_js_result_array.py | 180 | for (var i = 0; i < rows.length; i++) { sum += rows[i].value || 0; } | CODE |
| HIGH⚡ | tests/api-testing/tests/pipelines/test_js_enrichment.py | 178 | """Graceful handling when the enrichment table doesn't exist (should return null).""" | STRING |
| HIGH⚡ | tests/api-testing/tests/pipelines/test_js_enrichment.py | 182 | "if (data === null || data === undefined) { row.status = 'table_not_found'; }\n" | CODE |
| HIGH⚡ | tests/api-testing/tests/pipelines/test_js_enrichment.py | 182 | "if (data === null || data === undefined) { row.status = 'table_not_found'; }\n" | CODE |
| HIGH⚡ | tests/api-testing/tests/pipelines/test_js_enrichment.py | 202 | "if (userData === null || userData === undefined) { row.lookup_result = 'key_not_found'; }\n" | CODE |
| HIGH⚡ | tests/api-testing/tests/pipelines/test_js_enrichment.py | 202 | "if (userData === null || userData === undefined) { row.lookup_result = 'key_not_found'; }\n" | CODE |
| HIGH | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 1257 | # Ingest test data with event_name = null (field set to null) | COMMENT |
| HIGH | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 1363 | # Test passes - pipeline works with event_name=null, data timing is secondary | COMMENT |
| HIGH | …tests/pipelines/test_functions_meta_org_restriction.py | 10 | `isEnterprise || isCloud || org === "_meta"`, baked at build time). Since API | STRING |
| HIGH | …tests/pipelines/test_functions_meta_org_restriction.py | 92 | "function": "row.count = (row.count || 0) + 1;", | CODE |
| HIGH | …tests/pipelines/test_functions_meta_org_restriction.py | 114 | "function": "row.count = (row.count || 0) + 1;", | CODE |
| HIGH | tests/api-testing/tests/search/test_try_cast.py | 30 | # kubernetes_namespace_name is null, and `assert field in hit` would fail | COMMENT |
| HIGH | tests/api-testing/tests/alerts/test_composite_alerts.py | 1175 | # `current_level` and `level_since` are omitted, NOT null, until the lane | COMMENT |
| HIGH | tests/api-testing/support/panel_queries.py | 221 | null, so a column can legitimately be absent from some rows — or from every | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/api-testing/tests/conftest.py | 12 | CODE | |
| LOW | tests/api-testing/tests/conftest.py | 12 | CODE | |
| LOW | tests/api-testing/tests/conftest.py | 12 | CODE | |
| LOW | tests/api-testing/tests/conftest.py | 12 | CODE | |
| LOW | tests/api-testing/tests/test_framework_selfcheck.py | 8 | CODE | |
| LOW | tests/api-testing/tests/test_framework_selfcheck.py | 22 | CODE | |
| LOW | tests/api-testing/tests/test_framework_selfcheck.py | 22 | CODE | |
| LOW | …sting/tests/metrics/test_prometheus_label_endpoints.py | 12 | CODE | |
| LOW | …sts/api-testing/tests/metrics/test_promql_exemplars.py | 2 | CODE | |
| LOW | …sts/api-testing/tests/metrics/test_promql_semantics.py | 24 | CODE | |
| LOW | …i-testing/tests/metrics/test_otlp_metrics_semantics.py | 15 | CODE | |
| LOW | tests/api-testing/tests/vortex/conftest.py | 9 | CODE | |
| LOW | tests/api-testing/tests/vortex/conftest.py | 21 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_api_format.py | 16 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_api_format.py | 24 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_fts.py | 14 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_fts.py | 16 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_fts.py | 24 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_data_integrity.py | 12 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_data_integrity.py | 19 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_performance.py | 13 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_config.py | 11 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_config.py | 22 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_config.py | 22 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_schema_evolution.py | 22 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_schema_evolution.py | 25 | CODE | |
| LOW | tests/api-testing/tests/vortex/test_downsampling.py | 15 | CODE | |
| LOW | …sts/api-testing/tests/vortex/test_format_conversion.py | 22 | CODE | |
| LOW | …sts/api-testing/tests/vortex/test_format_conversion.py | 28 | CODE | |
| LOW | …ts/api-testing/tests/ingest/test_otlp_json_contract.py | 18 | CODE | |
| LOW | …testing/tests/ingest/test_ingest_window_whole_batch.py | 16 | CODE | |
| LOW | …testing/tests/ingest/test_otlp_grpc_partial_success.py | 2 | CODE | |
| LOW | tests/api-testing/tests/ingest/test_bulk.py | 17 | CODE | |
| LOW | …sting/tests/ingest/test_rfc3339_timestamp_fractions.py | 7 | CODE | |
| LOW | tests/api-testing/tests/ingest/test_logs.py | 13 | CODE | |
| LOW | …ts/api-testing/tests/ingest/test_otlp_logs_severity.py | 14 | CODE | |
| LOW | …/api-testing/tests/ingest/test_hec_ingestion_window.py | 22 | CODE | |
| LOW | tests/api-testing/tests/rum/test_rum.py | 16 | CODE | |
| LOW | tests/api-testing/tests/rum/test_rum_body_tags.py | 13 | CODE | |
| LOW | …ts/api-testing/tests/pipelines/test_js_result_array.py | 12 | CODE | |
| LOW | tests/api-testing/tests/pipelines/test_js_enrichment.py | 32 | CODE | |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 8 | CODE | |
| LOW | …tests/pipelines/test_functions_meta_org_restriction.py | 1 | CODE | |
| LOW | …esting/tests/pipelines/test_functions_import_export.py | 17 | CODE | |
| LOW | tests/api-testing/tests/pipelines/test_functions.py | 20 | CODE | |
| LOW | tests/api-testing/tests/pipelines/test_pipeline.py | 29 | CODE | |
| LOW | …sting/tests/pipelines/test_realtime_pipeline_resave.py | 12 | CODE | |
| LOW | …ng/tests/pipelines/test_enrichment_table_validation.py | 10 | CODE | |
| LOW | tests/api-testing/tests/orgs/test_serviceaccounts.py | 18 | CODE | |
| LOW | tests/api-testing/tests/orgs/test_organisations.py | 11 | CODE | |
| LOW | tests/api-testing/tests/orgs/test_ingestion_tokens.py | 17 | CODE | |
| LOW | tests/api-testing/tests/search/test_join_queries.py | 17 | CODE | |
| LOW | tests/api-testing/tests/search/test_fuzzy_match.py | 14 | CODE | |
| LOW | …g/tests/search/test_multi_stream_malformed_requests.py | 8 | CODE | |
| LOW | tests/api-testing/tests/search/test_search.py | 2 | CODE | |
| LOW | tests/api-testing/tests/search/test_streaming.py | 34 | CODE | |
| LOW | tests/api-testing/tests/search/test_advanced_sql.py | 18 | CODE | |
| LOW | tests/api-testing/tests/search/test_summary.py | 32 | CODE | |
| LOW | tests/api-testing/tests/search/test_try_cast.py | 13 | CODE | |
| LOW | …esting/tests/search/test_streaming_order_and_values.py | 11 | CODE | |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sting/tests/metrics/test_prometheus_label_endpoints.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sts/api-testing/tests/metrics/test_promql_semantics.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i-testing/tests/metrics/test_otlp_metrics_semantics.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/streams/test_settings_dedup.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …esting/tests/streams/test_update_fields_type_change.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i-testing/tests/streams/test_delete_fields_reserved.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | …pi-testing/tests/streams/test_schema_type_evolution.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ts/api-testing/tests/ingest/test_otlp_json_contract.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …testing/tests/ingest/test_ingest_window_whole_batch.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/ingest/test_metrics.py | 4 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/ingest/test_bulk.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ests/ingest/test_trace_resource_attribute_collision.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/ingest/test_logs.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ts/api-testing/tests/ingest/test_otlp_logs_severity.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sts/api-testing/tests/ingest/test_otlp_log_severity.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/api-testing/tests/ingest/test_hec_ingestion_window.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/api-testing/tests/rum/test_rum_forwarded_client_ip.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …api-testing/tests/rum/test_sourcemap_zip_validation.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ts/api-testing/tests/rum/test_rum_product_analytics.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/rum/test_sourcemap_api.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/rum/test_sourcemap_rbac.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/rum/test_rum.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/rum/test_rum_body_tags.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …-testing/tests/pipelines/test_enrichment_table_join.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | …ts/api-testing/tests/pipelines/test_js_result_array.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/pipelines/test_js_enrichment.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …testing/tests/pipelines/test_function_test_endpoint.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i-testing/tests/pipelines/test_enrichment_table_url.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i-testing/tests/pipelines/test_realtime_exclusivity.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | …esting/tests/pipelines/test_functions_import_export.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/pipelines/test_functions.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tests/api-testing/tests/pipelines/test_backfill.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sting/tests/pipelines/test_vrl_parse_json_precision.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …testing/tests/pipelines/test_invalid_function_error.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/pipelines/test_pipeline.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sting/tests/pipelines/test_realtime_pipeline_resave.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ng/tests/pipelines/test_enrichment_table_validation.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/orgs/test_serviceaccounts.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/orgs/test_organisations.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tests/api-testing/tests/orgs/test_ingestion_tokens.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | …i-testing/tests/orgs/test_user_and_token_validation.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | …testing/tests/search/test_cache_respects_query_size.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_join_queries.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_fuzzy_match.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …esting/tests/search/test_result_cache_no_duplicates.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_max_query_range.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_search.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_streaming.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_streaming.py | 109 | def _set_streaming_enabled(session, base_url: str, enabled: bool) -> None: | CODE |
| LOW | tests/api-testing/tests/search/test_advanced_sql.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | …sts/api-testing/tests/search/test_query_regressions.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_summary.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/search/test_try_cast.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/tests/search/test_match_all_disjunction_stability.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …esting/tests/search/test_sql_limit_and_stream_names.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …esting/tests/search/test_streaming_order_and_values.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …pi-testing/tests/search/test_traces_latest_ordering.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/api-testing/tests/alerts/test_v1.py | 31 | logger = logging.getLogger(__name__) | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …e/components/onlineEvals/composables/useQualityData.ts | 154 | // the percentile aggregator skips NULLs, keeping the query robust. | COMMENT |
| MEDIUM | web/src/components/alerts/AlertList.spec.ts | 1649 | // OTable's #toolbar slot does not render in this harness, so the tab | COMMENT |
| MEDIUM | …mponents/alerts/PrebuiltDestinationForm.schema.spec.ts | 20 | // keeps that coverage robust and mount-free. | COMMENT |
| MEDIUM | web/src/lib/core/Button/OButtonGroup.vue | 35 | // seamless single pill). | COMMENT |
| MEDIUM | tests/test-data/query-agent/data_gen.py | 21 | # compute oracle and the test harness share the same BASE_TS. Without | COMMENT |
| MEDIUM | tests/test-data/query-agent/compute_counts.py | 464 | # Persist the BASE_TS so the test harness uses the same value. | COMMENT |
| MEDIUM⚡ | tests/test-data/query-agent/gen_q201_q400.py | 640 | # Multi-level coalesce with CONCAT (june6: comprehensive fallback) | COMMENT |
| MEDIUM | tests/test-data/query-agent/gen_q201_q400.py | 73 | # Multiple aggregate functions with GROUP BY (june6: comprehensive stats) | COMMENT |
| MEDIUM | tests/test-data/query-agent/gen_q201_q400.py | 409 | # Complex LIKE OR chain across 8 fields (june6: comprehensive search) | COMMENT |
| MEDIUM | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 747 | # Edge case tests for comprehensive validation | COMMENT |
| MEDIUM | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 903 | # Ingest comprehensive test data | COMMENT |
| MEDIUM | tests/mobile-testing/utils/maestro.js | 2 | // so flows are robust — no coordinate taps. | COMMENT |
| MEDIUM | …t-tests/RegressionSet/Alerts/alerts-regression.spec.js | 161 | test("Bug #9967: PromQL alert creation - comprehensive validation", { | CODE |
| MEDIUM | …t-tests/RegressionSet/Alerts/alerts-regression.spec.js | 165 | testLogger.info('Testing Bug #9967 fix - comprehensive validation'); | CODE |
| MEDIUM | …t-tests/RegressionSet/Alerts/alerts-regression.spec.js | 269 | testLogger.info('✅ Bug #9967 comprehensive test completed - all scenarios verified'); | CODE |
| MEDIUM | tests/ui-testing/pages/generalPages/sanityPage.js | 1079 | // Click refresh button with robust waits | COMMENT |
| MEDIUM | …ts/ui-testing/pages/generalPages/dateTimePickerPage.js | 52 | // which tab is active — more robust than reading variant-driven classes. | COMMENT |
| MEDIUM | tests/ui-testing/pages/alertsPages/alertManagement.js | 306 | // Target the Delete item by data-test (robust to label/shortcut-hint changes) | COMMENT |
| MEDIUM | tests/ui-testing/pages/alertsPages/alertsPage.js | 1903 | // Close with robust handling for dialog backdrops | COMMENT |
| MEDIUM | tests/ui-testing/pages/alertsPages/alertsPage.js | 1939 | // Close with robust handling for dialog backdrops | COMMENT |
| MEDIUM | tests/ui-testing/pages/reportsPages/reportsPage.js | 113 | // within. More robust than relying on a standalone embedded-name data-test | COMMENT |
| MEDIUM | tests/ui-testing/pages/logsPages/logsPage.js | 3568 | // Use the same robust waiting pattern as clickSavedViewSearchInput(): | COMMENT |
| MEDIUM | tests/ui-testing/pages/logsPages/logsPage.js | 9923 | // Find anomaly column index by header text (more robust than hardcoded index) | COMMENT |
| MEDIUM⚡ | …ts/ui-testing/pages/dashboardPages/dashboard-filter.js | 494 | // New robust function for nested group filter conditions | COMMENT |
| MEDIUM | .github/workflows/pure-api-spec-guard.yml | 5 | # (tests/api-testing/), not the browser harness. Only added/renamed *.spec.js | COMMENT |
| MEDIUM | src/config/src/meta/dashboards/mod.rs | 95 | /// future versions of the dashboard should utilize the `created_at` Unix | COMMENT |
| MEDIUM | src/compaction/src/bloom/builder.rs | 45 | /// `create_tantivy_index` produces a single segment, but this is robust to that changing. | COMMENT |
| MEDIUM | …/enrichment_data/src/enrichment_table/url_processor.rs | 919 | /// Using reqwest for its robust async streaming support and production-ready | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test-data/query-agent/compute_counts.py | 348 | # Create a pre-filtered view so EVERY query (CTEs, subqueries, etc.) | COMMENT |
| MEDIUM | …i-testing/tests/pipelines/test_enrichment_table_url.py | 45 | # Initialize page object | COMMENT |
| MEDIUM | …i-testing/tests/pipelines/test_enrichment_table_url.py | 87 | # Create the enrichment table (200 means job saved, runs async in background) | COMMENT |
| MEDIUM | …i-testing/tests/pipelines/test_enrichment_table_url.py | 116 | # Create the enrichment table first | COMMENT |
| MEDIUM | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 246 | # Create the pipeline | COMMENT |
| MEDIUM | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 481 | # Create the pipeline | COMMENT |
| MEDIUM | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 1203 | # Create the pipeline | COMMENT |
| MEDIUM | tests/api-testing/tests/pipelines/test_backfill.py | 437 | # Create a pipeline and backfill job | COMMENT |
| MEDIUM | tests/api-testing/tests/pipelines/test_backfill.py | 607 | # Create a pipeline first | COMMENT |
| MEDIUM | tests/api-testing/tests/pipelines/test_backfill.py | 705 | # Create a real pipeline first | COMMENT |
| MEDIUM | tests/api-testing/tests/pipelines/test_backfill.py | 730 | # Create a REALTIME pipeline (not scheduled) | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_dashboards.py | 211 | # Create a dashboard first | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_dashboards.py | 243 | # Create a dashboard first | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_dashboards.py | 670 | # Create a dashboard with panels first | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_dashboards.py | 726 | # Create a dashboard | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_dashboards.py | 792 | # Create a dashboard | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_folders.py | 34 | # Create a dashboards folder | COMMENT |
| MEDIUM | tests/api-testing/tests/dashboards/test_folders.py | 171 | # Create a alerts folder | COMMENT |
| MEDIUM | …api-testing/helpers/workflow/pages/destination_page.py | 63 | skip_tls_verify_value = False # Define the skip_tls_verify_value | CODE |
| MEDIUM | …api-testing/helpers/workflow/pages/destination_page.py | 204 | # Define the payload for the PUT request | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test-data/query-agent/compute_counts.py | 404 | except (ValueError, OverflowError): | CODE |
| HIGH | …i-testing/tests/pipelines/test_enrichment_table_url.py | 240 | except AssertionError: | CODE |
| HIGH | tests/api-testing/tests/alerts/multialert_helpers.py | 283 | except AssertionError: | CODE |
| HIGH | tests/api-testing/tests/alerts/multialert_helpers.py | 183 | except requests.RequestException: | CODE |
| HIGH | tests/api-testing/tests/dashboards/test_dashboards.py | 363 | except (KeyError, TypeError): | CODE |
| HIGH | …/api-testing/tests/dashboards/test_multi_window_vrl.py | 406 | except json.JSONDecodeError: | CODE |
| HIGH | tests/api-testing/tests/workflow/test_kvstore.py | 44 | except (ConnectionError, TimeoutError): | CODE |
| HIGH | …ts/regression/test_sqlite_invalid_utf8_meta_startup.py | 60 | except requests.RequestException: | CODE |
| HIGH | tests/api-testing/helpers/sourcemap_helpers.py | 261 | except Exception: | CODE |
| HIGH | tests/api-testing/helpers/sourcemap_helpers.py | 241 | except: | CODE |
| HIGH | tests/api-testing/helpers/sourcemap_helpers.py | 259 | except (ValueError, ProcessLookupError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/src/plugins/traces/threadView.utils.spec.ts | 7 | // multipart / agentic injection text) so a future SDK rev doesn't | COMMENT |
| MEDIUM | web/src/plugins/workflows/WorkflowCanvas.spec.ts | 415 | // The scaffold has no node to hang off, so it is SCREEN-anchored (centred in the | COMMENT |
| MEDIUM | web/src/plugins/workflows/WorkflowCanvas.spec.ts | 431 | // panning the flow must not drag the scaffold off-centre | COMMENT |
| MEDIUM | web/src/plugins/workflows/WorkflowCanvas.vue | 502 | // Trigger + Action start scaffold shows; once ANY node exists we fall back to the | COMMENT |
| MEDIUM | web/src/plugins/workflows/useWorkflowCanvas.ts | 1972 | // The empty-canvas start scaffold's second slot: the same picker restricted to | COMMENT |
| MEDIUM | web/src/plugins/workflows/useWorkflowCanvas.ts | 2146 | // Empty-canvas scaffold "Action first" path: if the user placed the action | COMMENT |
| MEDIUM | web/src/plugins/workflows/useWorkflowCanvas.ts | 2148 | // auto-wire the new trigger into it so the two-node chain the scaffold implied | COMMENT |
| MEDIUM⚡ | web/src/plugins/workflows/useWorkflowCanvas.ts | 2164 | // Empty-canvas scaffold "Action" slot picked: place the workflow's FIRST step. | COMMENT |
| MEDIUM⚡ | web/src/plugins/workflows/useWorkflowCanvas.ts | 2168 | // at the scaffold's action-slot position; adding the trigger afterwards auto-wires | COMMENT |
| MEDIUM⚡ | web/src/plugins/workflows/useWorkflowCanvas.ts | 2169 | // into it (see addTriggerNode). `position` is the click point the scaffold card | COMMENT |
| MEDIUM | web/src/components/workflows/WorkflowEditor.vue | 494 | // Empty-canvas scaffold's Action slot — the workflow's first step (appends after | COMMENT |
| MEDIUM | tests/api-testing/tests/alerts/test_multialert_api.py | 22 | # Save-time guardrails: a multi-alert opt-in is rejected unless it is the | COMMENT |
| MEDIUM | tests/ui-testing/pages/workflowsPages/workflowsPage.js | 107 | // Empty-canvas scaffold's trigger card -> trigger picker. The editor no | COMMENT |
| MEDIUM | tests/ui-testing/pages/workflowsPages/workflowsPage.js | 109 | // renders a two-slot scaffold (workflow-flow-start-scaffold) and the trigger | COMMENT |
| MEDIUM | src/core/src/traces/service_graph/processor.rs | 111 | /// of `agent → model`/`agent → tool`. Real agentic traces are single-agent (the | COMMENT |
| MEDIUM | src/core/src/traces/service_graph/processor.rs | 142 | /// agentic traces); `MAX` gives a deterministic pick if that ever fails to hold. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/api-testing/env.sh | 18 | # Check if yq is available (preferred method) | COMMENT |
| LOW | tests/api-testing/env.sh | 35 | # Check if we're entering the env section | COMMENT |
| LOW | tests/api-testing/env.sh | 41 | # Check if we're leaving the env section (next top-level key) | COMMENT |
| LOW | tests/api-testing/tests/rum/test_sourcemap_api.py | 366 | # Check if there are multiple frames (cross-chunk) | COMMENT |
| LOW | …testing/tests/pipelines/test_function_test_endpoint.py | 169 | # Check if error message is present in results | COMMENT |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 354 | # Check if data went to literal template name (indicating substitution failure) | COMMENT |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 554 | # Check if data went to literal template name (indicating substitution failure) | COMMENT |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 1354 | # Check if the stream was created at all | COMMENT |
| LOW | tests/api-testing/tests/search/test_max_query_range.py | 677 | # Set max_query_range to 0 (disabled) | COMMENT |
| LOW | tests/api-testing/tests/search/test_max_query_range.py | 862 | # Set max_query_range to 1 hour | COMMENT |
| LOW | tests/api-testing/tests/alerts/test_history.py | 45 | # Check if triggers stream already exists | COMMENT |
| LOW | …i-testing/tests/dashboards/test_multi_window_vrl_v2.py | 567 | # Check if function_error is reported in metadata | STRING |
| LOW | …api-testing/helpers/workflow/pages/destination_page.py | 294 | # Check if any templates of the specified type exist | COMMENT |
| LOW | …api-testing/helpers/workflow/pages/destination_page.py | 315 | # Check if any templates of the specified type exist | COMMENT |
| LOW | …api-testing/helpers/workflow/pages/destination_page.py | 339 | # Check if any templates of the specified type exist | COMMENT |
| LOW | …/api-testing/helpers/workflow/pages/enrichment_page.py | 36 | # Read the file content as binary | COMMENT |
| LOW⚡ | …/api-testing/helpers/workflow/pages/enrichment_page.py | 187 | # Check if it's keyed by table_name | COMMENT |
| LOW⚡ | …/api-testing/helpers/workflow/pages/enrichment_page.py | 194 | # Check if it's a single status object | COMMENT |
| LOW | …ts/api-testing/helpers/workflow/pages/template_page.py | 180 | # Check if any templates of the specified type exist | COMMENT |
| LOW | …ts/api-testing/helpers/workflow/pages/template_page.py | 201 | # Check if any templates of the specified type exist | COMMENT |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 693 | # Check if any alerts of the specified type exist | COMMENT |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 715 | # Check if any templates of the specified type exist | COMMENT |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 30 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 81 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 132 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 183 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 454 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 504 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 553 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/api-testing/helpers/workflow/pages/alert_page.py | 602 | "type": None, # Set it to None or remove it | CODE |
| LOW | tests/ui-testing/env.sh | 18 | # Check if yq is available (preferred method) | COMMENT |
| LOW | tests/ui-testing/env.sh | 35 | # Check if we're entering the env section | COMMENT |
| LOW | tests/ui-testing/env.sh | 41 | # Check if we're leaving the env section (next top-level key) | COMMENT |
| LOW | .github/workflows/playwright.yml | 687 | # Check if directory exists and contains reports | COMMENT |
| LOW | .github/workflows/playwright-auto-rerun.yml | 80 | # Check if gh is already installed | COMMENT |
| LOW | .github/workflows/bug-checker.yml | 99 | # Check if already processed by Bug Checker Agent | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/coverage.sh | 98 | except Exception as e: | CODE |
| LOW | tests/test-data/query-agent/compute_counts.py | 376 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/ingest/test_bulk.py | 157 | except Exception as e: | CODE |
| LOW⚡ | tests/api-testing/tests/rum/test_sourcemap_api.py | 114 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/rum/test_sourcemap_rbac.py | 137 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/rum/test_sourcemap_rbac.py | 159 | except Exception as e: | CODE |
| LOW | …-testing/tests/pipelines/test_enrichment_table_join.py | 141 | except Exception as e: | CODE |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 101 | except Exception as e: | CODE |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 273 | except Exception as e: | CODE |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 393 | except Exception as e: | CODE |
| LOW⚡ | …i-testing/tests/pipelines/test_enrichment_table_url.py | 66 | except Exception as e: | CODE |
| LOW | …esting/tests/pipelines/test_functions_import_export.py | 68 | except Exception as e: # pragma: no cover - cleanup only | CODE |
| LOW | tests/api-testing/tests/pipelines/test_functions.py | 65 | except Exception as e: | CODE |
| LOW⚡ | tests/api-testing/tests/pipelines/test_backfill.py | 90 | except Exception as e: | CODE |
| LOW⚡ | tests/api-testing/tests/pipelines/test_backfill.py | 100 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/pipelines/test_pipeline.py | 245 | except Exception as e: | CODE |
| LOW | …/api-testing/tests/query_agent/test_explain_analyze.py | 107 | except Exception as e: | CODE |
| LOW | …ts/api-testing/tests/query_agent/test_5_concurrency.py | 131 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/orgs/test_serviceaccounts.py | 65 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/search/test_join_queries.py | 123 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/search/test_streaming.py | 182 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/alerts/test_v1.py | 67 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/alerts/test_composite_alerts.py | 96 | except Exception as exc: # cleanup must not hide the assertion that failed | CODE |
| LOW | tests/api-testing/tests/alerts/test_v2.py | 216 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/alerts/test_v2.py | 221 | except Exception as e: | CODE |
| LOW⚡ | tests/api-testing/tests/alerts/test_v2.py | 263 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/dashboards/conftest.py | 121 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/dashboards/conftest.py | 166 | except Exception as e: | CODE |
| LOW⚡ | tests/api-testing/tests/slos/test_slo_validation.py | 89 | except Exception as exc: # cleanup must never mask a test result | CODE |
| LOW | …api-testing/tests/regression/test_logs_to_logs_join.py | 115 | except Exception as e: | CODE |
| LOW | tests/api-testing/tests/reports/test_report_folders.py | 72 | except Exception as e: | CODE |
| LOW | tests/api-testing/support/wait.py | 58 | except Exception as e: | CODE |
| LOW | tests/api-testing/support/panel_queries.py | 109 | except Exception as e: | CODE |
| LOW | tests/api-testing/support/fixtures.py | 44 | except Exception as e: | CODE |
| LOW | tests/api-testing/support/fixtures.py | 55 | except Exception as e: | CODE |
| LOW | tests/api-testing/support/fixtures.py | 71 | except Exception as e: | CODE |
| LOW | tests/api-testing/helpers/sourcemap_helpers.py | 236 | except Exception as e: | CODE |
| LOW | tests/api-testing/helpers/sourcemap_helpers.py | 261 | except Exception: | CODE |
| MEDIUM | tests/api-testing/helpers/workflow/pages/alert_page.py | 247 | print(f"Error processing alert {alert}: {str(e)}") | CODE |
| MEDIUM | tests/api-testing/helpers/workflow/pages/alert_page.py | 301 | print(f"Error processing alert {alert}: {str(e)}") | CODE |
| LOW | scripts/translations/translator.py | 565 | except Exception as e: # noqa: BLE001 — network / API / rate-limit errors | CODE |
| LOW | .github/scripts/o2_metrics_resync.py | 40 | except Exception as e: | CODE |
| LOW | .github/scripts/o2_metrics_resync.py | 112 | except Exception as e: | CODE |
| LOW | .github/scripts/parse-api-junit.py | 89 | except Exception as e: # noqa: BLE001 - skip unreadable/partial files | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …pi-testing/tests/streams/test_schema_type_evolution.py | 0 | follows the suite convention: the test that seeds a stream drops it. | STRING |
| HIGH | …testing/tests/search/test_cache_respects_query_size.py | 0 | follows the suite convention: the test that seeds a stream drops it. | STRING |
| HIGH | …esting/tests/search/test_result_cache_no_duplicates.py | 0 | follows the suite convention: the test that seeds a stream drops it. | STRING |
| HIGH | …g/tests/search/test_match_all_disjunction_stability.py | 0 | follows the suite convention: the test that seeds a stream drops it. | STRING |
| HIGH | …esting/tests/search/test_sql_limit_and_stream_names.py | 0 | follows the suite convention: the test that seeds a stream drops it. | STRING |
| HIGH | …/api-testing/helpers/workflow/verifydeleted_objects.py | 0 | verify objects in the openobserve running instance. | STRING |
| HIGH | …s/api-testing/helpers/workflow/verifyedited_objects.py | 0 | verify objects in the openobserve running instance. | STRING |
| HIGH | tests/api-testing/helpers/workflow/verify_objects.py | 0 | verify objects in the openobserve running instance. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test-data/query-agent/compute_counts.py | 31 | CODE | |
| LOW | tests/test-data/query-agent/compute_counts.py | 191 | CODE | |
| LOW | tests/test-data/query-agent/compute_counts.py | 338 | CODE | |
| LOW | tests/test-data/query-agent/compute_counts.py | 439 | CODE | |
| LOW | tests/test-data/query-agent/compute_counts.py | 212 | CODE | |
| LOW | …pi-testing/tests/pipelines/test_pipeline_regression.py | 218 | CODE | |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 165 | CODE | |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 401 | CODE | |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 607 | CODE | |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 761 | CODE | |
| LOW | …s/api-testing/tests/pipelines/test_pipeline_dynamic.py | 895 | CODE | |
| LOW | tests/api-testing/tests/query_agent/conftest.py | 87 | CODE | |
| LOW | tests/api-testing/tests/query_agent/conftest.py | 134 | CODE | |
| LOW | tests/api-testing/tests/query_agent/conftest.py | 258 | CODE | |
| LOW | tests/api-testing/tests/query_agent/conftest.py | 169 | CODE | |
| LOW | tests/api-testing/tests/search/test_search.py | 1067 | CODE | |
| LOW | tests/api-testing/tests/search/test_search.py | 1147 | CODE | |
| LOW | …sts/api-testing/tests/search/test_query_regressions.py | 150 | CODE | |
| LOW | tests/api-testing/tests/alerts/test_history.py | 38 | CODE | |
| LOW | …i-testing/tests/dashboards/test_multi_window_vrl_v2.py | 125 | CODE | |
| LOW | tests/api-testing/tests/dashboards/test_dashboards.py | 60 | CODE | |
| LOW | tests/api-testing/tests/dashboards/test_dashboards.py | 428 | CODE | |
| LOW | …/api-testing/tests/dashboards/test_multi_window_vrl.py | 389 | CODE | |
| LOW | tests/api-testing/support/sse.py | 72 | CODE | |
| LOW | tests/api-testing/helpers/sourcemap_helpers.py | 223 | CODE | |
| LOW | …/api-testing/helpers/workflow/pages/enrichment_page.py | 204 | CODE | |
| LOW | .claude/skills/o2-loop/scripts/loop-state.py | 90 | CODE | |
| LOW | .claude/skills/o2-loop/scripts/progress.py | 59 | CODE | |
| LOW | .claude/skills/o2-loop/scripts/progress.py | 91 | CODE | |
| LOW | .claude/skills/o2-loop/scripts/candidates.py | 20 | CODE | |
| LOW | scripts/translations/translator.py | 378 | CODE | |
| LOW | scripts/translations/translator.py | 747 | CODE | |
| LOW | .github/scripts/o2_metrics_resync.py | 99 | CODE | |
| LOW | .github/scripts/assert_integrity.py | 58 | CODE | |
| LOW | .github/scripts/assert_integrity.py | 88 | CODE | |
| LOW | .github/scripts/assert_integrity.py | 124 | CODE | |
| LOW | .github/scripts/assert_integrity.py | 137 | CODE | |
| LOW | .github/scripts/parse-api-junit.py | 82 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | config/prebuilt-destinations.json | 199 | "Authorization": "GenieKey YOUR_API_KEY" | CODE |
| HIGH | scripts/translations/README.md | 114 | export DEEPSEEK_API_KEY=your_api_key | CODE |
| HIGH | src/config/src/prebuilt_loader.rs | 658 | "GenieKey YOUR_API_KEY".to_string(), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/src/composables/useTypewriter.ts | 55 | // AI-generated chat title state | COMMENT |
| HIGH | src/config/src/meta/alerts/incidents.rs | 275 | /// AI-generated root cause analysis (markdown) — the current report | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/api-testing/env.sh | 6 | # Usage: | COMMENT |
| LOW | tests/ui-testing/env.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/test-assist-ci-batch.sh | 8 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/ok-to-test.yml | 23 | # See app.yml for an example app manifest - you can use fake URLs when generating | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-testing/tests/pipelines/test_enrichment_table_join.py | 161 | CODE | |
| LOW | tests/api-testing/tests/alerts/test_composite_alerts.py | 42 | CODE | |
| LOW | …api-testing/tests/regression/test_logs_to_logs_join.py | 135 | CODE |