OpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.
This report summarizes scanner evidence for langflow-ai/openrag, a Python project with 4,630 GitHub stars. SynthScan examined 353,932 lines of code across 1299 source files, recording 6445 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 23.3 (Elevated 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? 3443 finding(s).
Are imports declared and package/API names verified? 1482 finding(s).
Are wrappers, guards, and repeated structures necessary? 4255 finding(s).
Which changes need focused human review? 6445 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 6445 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 |
|---|---|---|---|---|
| LOW | frontend/instrumentation.node.ts | 13 | export async function registerNodeInstrumentation() { | CODE |
| LOW | frontend/contexts/task-context.tsx | 683 | async function refetchKnowledgeAfterTaskCompletion() { | CODE |
| LOW | …ttings/_components/ingest-preview-settings-section.tsx | 19 | export function IngestPreviewSettingsSection() { | CODE |
| LOW | frontend/app/knowledge/page.tsx | 81 | function syncGridSelectionToDeletableRows( | CODE |
| LOW | frontend/app/knowledge/page.tsx | 94 | function pruneNonDeletableGridSelection( | CODE |
| LOW | frontend/app/api/mutations/useDeleteTaskMutation.ts | 28 | export function useDeleteAllTerminalTasksMutation() { | CODE |
| LOW | …end/app/api/mutations/useDismissFlowsUpdateMutation.ts | 7 | export function useDismissFlowsUpdateMutation() { | CODE |
| LOW | …d/app/api/mutations/useConnectorOAuthConfigMutation.ts | 29 | export function useSaveConnectorOAuthConfigMutation() { | CODE |
| LOW | …d/app/api/mutations/useConnectorOAuthConfigMutation.ts | 40 | async function clearConnectorOAuthConfig(credentialKey: string) { | CODE |
| LOW | …d/app/api/mutations/useConnectorOAuthConfigMutation.ts | 51 | export function useClearConnectorOAuthConfigMutation() { | CODE |
| LOW | frontend/app/api/queries/useGetConnectorsQuery.ts | 69 | export function updateAllConnectorQueries( | CODE |
| LOW | frontend/app/api/queries/useGetConnectorsQuery.ts | 161 | async function fetchWorkspaceConnectorAccess(): Promise< | CODE |
| LOW | frontend/app/api/queries/useGetConnectorsQuery.ts | 276 | function connectorUserAccessQueryKey( | CODE |
| LOW | frontend/app/api/queries/useGetConnectorsQuery.ts | 283 | function filterConnectorAccessItems( | CODE |
| LOW | …ontend/app/api/queries/useConnectorOAuthConfigQuery.ts | 15 | async function fetchConnectorOAuthConfig(): Promise<ConnectorOAuthConfigMap> { | CODE |
| LOW | …ontend/app/api/queries/useConnectorOAuthConfigQuery.ts | 24 | export function useConnectorOAuthConfigQuery(options?: { enabled?: boolean }) { | CODE |
| LOW | …nd/app/onboarding/_components/onboarding-completion.ts | 17 | export function shouldRollbackFailedOnboarding( | CODE |
| LOW | …nd/app/onboarding/_components/onboarding-completion.ts | 32 | export async function fetchEditedForRollbackCheck( | CODE |
| LOW | …ing/_components/generic-provider-credential-fields.tsx | 15 | export function GenericProviderCredentialFields({ | CODE |
| LOW | frontend/components/file-chunks-panel.tsx | 15 | function compareChunksByDocumentOrder(a: ChunkResult, b: ChunkResult): number { | CODE |
| LOW | …ontend/components/ingest-preview-auto-open-control.tsx | 11 | export function IngestPreviewAutoOpenControl({ | CODE |
| LOW | frontend/components/knowledge-pagination-footer.tsx | 14 | export function KnowledgePaginationFooter({ | CODE |
| LOW | frontend/components/ingest-review.tsx | 107 | function useStaggeredPostLayoutReveal( | CODE |
| LOW | frontend/components/ingest-review.tsx | 1180 | function IngestReviewDocumentColumn({ | CODE |
| LOW | frontend/components/ingest-review.tsx | 1234 | function IngestReviewAutoOpenFooter({ | CODE |
| LOW | frontend/components/flows-update-dialog.tsx | 19 | function hasDismissedFlowsUpdateInSession() { | CODE |
| LOW | frontend/components/cloud-picker/types.ts | 123 | export function getIngestChunkSettingsError( | CODE |
| LOW | frontend/components/cloud-picker/types.ts | 148 | export function validateIngestSettingsOrToast( | CODE |
| LOW | frontend/components/task-dialog/file-error-details.tsx | 18 | export function TaskDialogFileErrorDetails({ | CODE |
| LOW | frontend/components/models/catalog-models.ts | 289 | export function onboardingCatalogConfigured( | CODE |
| LOW | frontend/components/models/catalog-models.ts | 373 | export function savedSecretFieldsForProvider( | CODE |
| LOW | frontend/components/models/catalog-models.ts | 393 | export function savedCredentialValuesForProvider( | CODE |
| LOW | frontend/components/models/catalog-models.ts | 415 | export function providerCredentialsSatisfied( | CODE |
| LOW | frontend/components/models/catalog-models.ts | 444 | export function onboardingCredentialFields( | CODE |
| LOW | frontend/components/models/model-helpers.tsx | 37 | export function requiresExplicitModelSelection( | CODE |
| LOW | frontend/components/docling-preview/utils.ts | 120 | export function scrollElementThroughAncestors( | CODE |
| LOW | …s/flows-update-dialog/update-without-backup-dialog.tsx | 20 | export function UpdateWithoutBackupDialog({ | CODE |
| LOW | frontend/components/console-status/provider-health.ts | 40 | export function providerHealthToComponent( | CODE |
| LOW | frontend/components/console-status/refresh.ts | 4 | export function refreshConsoleStatusQueries( | CODE |
| LOW | frontend/hooks/use-ingest-preview-settings.ts | 63 | function writeIngestPreviewSettings(settings: IngestPreviewSettings): void { | CODE |
| LOW | frontend/hooks/use-ingest-preview-settings.ts | 73 | export function readIngestPreviewSettings(): IngestPreviewSettings { | CODE |
| LOW | frontend/hooks/use-ingest-preview-settings.ts | 120 | export function shouldAutoOpenIngestPreview( | CODE |
| LOW | …connectors/azure-blob/useAzureBlobConfigureMutation.ts | 28 | export function useAzureBlobConfigureMutation() { | CODE |
| LOW | …nts/connectors/azure-blob/useAzureBlobDefaultsQuery.ts | 19 | export function useAzureBlobDefaultsQuery(options?: { enabled?: boolean }) { | CODE |
| LOW | …nectors/azure-blob/useAzureBlobContainerStatusQuery.ts | 9 | async function fetchAzureBlobContainerStatus( | CODE |
| LOW | …nectors/azure-blob/useAzureBlobContainerStatusQuery.ts | 23 | export function useAzureBlobContainerStatusQuery( | CODE |
| LOW | …ments/connectors/ibm-cos/useIBMCOSBucketStatusQuery.ts | 23 | export function useIBMCOSBucketStatusQuery( | CODE |
| LOW | …ments/connectors/ibm-cos/useIBMCOSConfigureMutation.ts | 30 | export function useIBMCOSConfigureMutation() { | CODE |
| LOW | frontend/lib/brand.ts | 55 | function isConnectorAllowedByWorkspace( | CODE |
| LOW | frontend/lib/brand.ts | 67 | export function isConnectorShownInWorkspace( | CODE |
| LOW | frontend/lib/brand.ts | 155 | export function canShowRbacGatedSettingsTab( | CODE |
| LOW | frontend/lib/brand.ts | 163 | export function canAccessConnectorAccessTab( | CODE |
| LOW | frontend/lib/chat-stream-errors.ts | 63 | function extractBalancedJsonObject(text: string): string | null { | CODE |
| LOW | frontend/lib/chat-stream-errors.ts | 102 | export function looksLikeProviderErrorContent(text: string): boolean { | CODE |
| LOW | frontend/lib/chat-stream-errors.ts | 169 | function humanizeProviderErrorMessage(message: string): string { | CODE |
| LOW | frontend/lib/chat-stream-errors.ts | 193 | export function formatProviderErrorMessage(text: string): string { | CODE |
| LOW | frontend/lib/chat-stream-errors.ts | 271 | export function extractStreamProviderError(chunk: unknown): string | null { | CODE |
| LOW | frontend/lib/ingest-settings-knowledge.ts | 7 | export function knowledgeToIngestSettings( | CODE |
| LOW | frontend/lib/task-error-display.ts | 142 | function buildPipelineStepsFromFailurePhase( | CODE |
| LOW | frontend/lib/task-error-display.ts | 202 | export function getTaskFailureToastDescription(task: { | CODE |
| 2646 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/contexts/console-status-context.tsx | 49 | // ─── helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/contexts/console-status-context.tsx | 80 | // ─── provider ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/contexts/task-context.test.tsx | 54 | // ── helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/contexts/task-context.test.tsx | 80 | // ── tests ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 17 | // ── Global mocks ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 32 | // ── Helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 73 | // ── Tests ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 76 | // ── Baseline ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 93 | // ── Group 1: Validation error display ───────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 150 | // ── Group 2: Save button disabled state ─────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 207 | // ── Group 3: Save handler blocked ───────────────────────────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 237 | // ── Group 4: userEdited ref prevents background sync overwrite ───────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 378 | // ── Group 4b: Restore flow persists defaults immediately ────────────────── | COMMENT |
| MEDIUM | …/settings/_components/ingest-settings-section.test.tsx | 450 | // ── Group 5: chunk steppers and toggle switches ─────────────────────────── | COMMENT |
| MEDIUM | frontend/app/chat/page.test.tsx | 20 | // ── Module stubs ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/chat/page.test.tsx | 181 | // ── Import the component (after mocks are set up) ──────────────────────────── | COMMENT |
| MEDIUM | frontend/app/chat/page.test.tsx | 185 | // ── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/knowledge/page.tsx | 822 | // ── Shared column fragments ────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/knowledge/page.tsx | 1024 | // ── Layout-aware column sets ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …ontend/app/api/mutations/useDeleteTaskMutation.test.ts | 18 | // ─── helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ontend/app/api/mutations/useDeleteTaskMutation.test.ts | 30 | // ─── useDeleteTaskMutation ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ontend/app/api/mutations/useDeleteTaskMutation.test.ts | 142 | // ─── useDeleteAllTerminalTasksMutation ──────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/api/queries/useComponentActions.ts | 9 | // ─── shared types ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/api/queries/useComponentActions.ts | 41 | // ─── sync mutation ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/app/api/queries/useComponentActions.ts | 84 | // ─── diagnose query (lazy — fires when the modal opens) ────────────────────── | COMMENT |
| MEDIUM | frontend/tests/core/financial_document.spec.ts | 68 | // ── Test 1: Table data retrieval ────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/tests/core/financial_document.spec.ts | 88 | // ── Test 2: Out-of-scope query (no hallucination) ───────────────────────── | COMMENT |
| MEDIUM | frontend/components/task-notification-menu.tsx | 117 | // ─── status badge ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 370 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 372 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 383 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 385 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 475 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 477 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 527 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 529 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 602 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 604 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 623 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 625 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 706 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_task_service_get_task_status2.py | 708 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_task_service_get_task_status2.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_task_service_get_task_status2.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/conftest.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/conftest.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_langflow_processor_content_dedupe.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_langflow_processor_content_dedupe.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_processor_content_dedupe.py | 42 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_processor_content_dedupe.py | 44 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_utils.py | 34 | # ── Success on first attempt ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_utils.py | 48 | # ── Success after transient failures ───────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_utils.py | 218 | # ── parse_knowledge_chunks tests ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/unit/test_langflow_utils.py | 310 | # ── enable_mcp_none_for_project tests ──────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/test_langflow_utils.py | 95 | # ── Exhausted retries ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/test_langflow_utils.py | 132 | # ── Backoff behavior ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/test_langflow_utils.py | 196 | # ── Edge cases ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/test_jwt_claims_cache.py | 29 | # ─── fixtures ──────────────────────────────────────────────────────────────── | COMMENT |
| 429 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | warm_up_docling.py | 25 | except Exception: | CODE |
| LOW | sdks/python/openrag_sdk/client.py | 220 | except Exception: | CODE |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 129 | except Exception: | CODE |
| LOW | plugins/openrag/skills/sdk/SKILL.md | 614 | except Exception as e: | CODE |
| LOW | plugins/openrag/skills/sdk/SKILL.md | 631 | except Exception as e: | CODE |
| MEDIUM | plugins/openrag/skills/sdk/SKILL.md | 535 | def handle_errors(): | CODE |
| LOW | tests/conftest.py | 112 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 162 | except Exception: | CODE |
| LOW | tests/conftest.py | 182 | except Exception: | CODE |
| LOW | tests/integration/core/test_startup_ingest.py | 54 | except Exception as e: | CODE |
| LOW | tests/integration/core/test_startup_ingest.py | 89 | except Exception: | CODE |
| LOW | tests/integration/core/test_startup_ingest.py | 149 | except Exception: | CODE |
| LOW | tests/integration/core/test_startup_ingest.py | 156 | except Exception: | CODE |
| LOW | tests/integration/core/test_onboarding_sample_docs.py | 56 | except Exception as exc: | CODE |
| LOW | tests/integration/core/test_onboarding_sample_docs.py | 142 | except Exception: | CODE |
| LOW | tests/integration/core/test_non_langflow_ingestion.py | 50 | except Exception as e: | CODE |
| LOW | tests/integration/core/test_non_langflow_ingestion.py | 66 | except Exception: | CODE |
| LOW | tests/integration/core/test_non_langflow_ingestion.py | 111 | except Exception: | CODE |
| LOW | tests/integration/core/test_group_acl_dls.py | 73 | except Exception: | CODE |
| LOW | tests/integration/core/test_shared_flag_dls.py | 74 | except Exception: | CODE |
| LOW | tests/integration/core/test_shared_flag_dls.py | 179 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 45 | except Exception as e: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 118 | except Exception as e: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 193 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 212 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 285 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 299 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 329 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 358 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 489 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 530 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 634 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 678 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 696 | except Exception: | CODE |
| LOW | tests/integration/core/test_api_endpoints.py | 727 | except Exception: | CODE |
| LOW | tests/integration/sdk/conftest.py | 69 | except Exception as e: | CODE |
| LOW | custom_components/openrag/export_docling_document.py | 167 | except Exception: | CODE |
| LOW | custom_components/openrag/export_docling_document.py | 223 | except Exception as e: | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 170 | except Exception as log_error: # never let diagnostics mask the real error | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 905 | except Exception as e: | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1177 | except Exception as bulk_error: | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1583 | except Exception as embed_error: | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1647 | except Exception as e: | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 2295 | except Exception as e: # provider clients expose different exception families | CODE |
| LOW | custom_components/openrag/opensearch_multimodal.py | 2572 | except Exception as e: | CODE |
| LOW | scripts/openrag_bulk.py | 370 | except Exception as exc: | CODE |
| LOW | scripts/openrag_bulk.py | 448 | except Exception as exc: | CODE |
| LOW | scripts/openrag_bulk.py | 1252 | except Exception as exc: | CODE |
| LOW | scripts/openrag_bulk.py | 1447 | except Exception as exc: | CODE |
| LOW | scripts/openrag_bulk.py | 1479 | except Exception: | CODE |
| MEDIUM | scripts/clear_opensearch_data.py | 19 | print("Error: No container runtime available") | CODE |
| LOW | scripts/migrate_embedding_model_field.py | 89 | except Exception as e: | CODE |
| LOW | scripts/migrate_embedding_model_field.py | 137 | except Exception as e: | CODE |
| LOW | scripts/migrate_embedding_model_field.py | 210 | except Exception as e: | CODE |
| LOW | scripts/migrate_embedding_model_field.py | 310 | except Exception as e: | CODE |
| LOW | scripts/langflow-entrypoint.py | 56 | except Exception as e: | CODE |
| LOW | scripts/connectors/azure/seed_azurite.py | 541 | except Exception as exc: # ResourceNotFoundError if it didn't exist | CODE |
| LOW | scripts/connectors/azure/seed_azurite.py | 548 | except Exception as exc: # ResourceExistsError on re-run | CODE |
| LOW | scripts/ci/generate_security_report.py | 23 | except Exception as exc: | CODE |
| LOW | scripts/ci/generate_security_report.py | 59 | except Exception as exc: | CODE |
| 777 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_api_key_service.py | 39 | user_email="user@example.com", | CODE |
| LOW | tests/unit/test_api_key_service.py | 70 | "user_email": "user@example.com", | CODE |
| LOW | tests/unit/test_api_key_service.py | 84 | "user_email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 272 | assert user.email == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 384 | assert user.email == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 517 | email="user@example.com", | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 725 | email="user@example.com", | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 729 | ) == [google_drive_user_principal("user@example.com")] | CODE |
| LOW⚡ | tests/unit/test_group_acl.py | 741 | {"email": "user@example.com"}, | CODE |
| LOW | tests/unit/test_group_acl.py | 51 | user = User(user_id="user-1", email="user@example.com", name="User") | CODE |
| LOW | tests/unit/test_group_acl.py | 73 | user = User(user_id="user-1", email="user@example.com", name="User") | CODE |
| LOW | tests/unit/test_group_acl.py | 123 | User(user_id="user-1", email="user@example.com", name="User") | CODE |
| LOW | tests/unit/test_group_acl.py | 323 | email="user@example.com", | CODE |
| LOW | tests/unit/test_group_acl.py | 352 | and label.get("email") == "user@example.com" | CODE |
| LOW | tests/unit/test_group_acl.py | 425 | email="user@example.com", | CODE |
| LOW | tests/unit/test_group_acl.py | 755 | assert kwargs["userKey"] == "user@example.com" | CODE |
| LOW | tests/unit/test_group_acl.py | 799 | {"email": "user@example.com"}, | CODE |
| LOW | tests/unit/test_group_acl.py | 814 | assert "member_key_id == 'user@example.com'" in kwargs["query"] | CODE |
| LOW | tests/unit/test_oauth_encryption.py | 120 | m_oauth.app.get_accounts = lambda: [{"username": "fake-user"}] | CODE |
| LOW | …nit/test_anonymous_delete_gate_on_every_ingest_path.py | 337 | monkeypatch.setenv("AWS_ACCESS_KEY_ID", "fake-key") | CODE |
| LOW⚡ | tests/unit/test_langflow_ingest_callback.py | 30 | allowed_users=["user@example.com"], | CODE |
| LOW⚡ | tests/unit/test_langflow_ingest_callback.py | 38 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_langflow_ingest_callback.py | 80 | assert indexed_context.allowed_users == ["user@example.com"] | CODE |
| LOW | tests/unit/test_langflow_ingest_callback.py | 88 | "email": "user@example.com", | CODE |
| LOW | tests/unit/test_langflow_ingest_callback.py | 235 | owner_email="user@example.com", | CODE |
| LOW | tests/unit/test_connector_processor_filename_dedupe.py | 42 | acl=DocumentACL(owner="user@example.com"), | CODE |
| LOW | tests/unit/test_connector_processor_filename_dedupe.py | 294 | acl=DocumentACL(owner="user@example.com"), | CODE |
| LOW | tests/unit/test_connector_processor_filename_dedupe.py | 441 | acl=DocumentACL(owner="user@example.com"), | CODE |
| LOW | tests/unit/test_docling_service.py | 241 | assert options["image_export_mode"] == "placeholder" | CODE |
| LOW | …/unit/connectors/test_google_drive_orphan_detection.py | 44 | token_file="/tmp/fake-token.json", | CODE |
| LOW | tests/unit/connectors/test_webhook_notification_url.py | 147 | token_file="/tmp/fake-token.json", | CODE |
| LOW⚡ | tests/unit/connectors/test_webhook_renewal.py | 437 | token_file="/tmp/fake-token.json", | CODE |
| LOW | …ts/unit/connectors/test_google_drive_webhook_events.py | 32 | token_file="/tmp/fake-token.json", | CODE |
| LOW | tests/unit/dependencies/test_auth_jwt_attachment.py | 29 | email="user@example.com", | CODE |
| LOW | tests/unit/utils/test_jwt_verification.py | 120 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/enhancements/providers/azure/test_foundry.py | 386 | assert "/openai/v1" in (api_base["placeholder"] or "") | CODE |
| LOW⚡ | tests/unit/enhancements/providers/azure/test_foundry.py | 387 | assert "deployments/" not in (api_base["placeholder"] or "") | CODE |
| LOW | tests/unit/api/test_upload_index_preflight.py | 74 | monkeypatch.setenv("AWS_ACCESS_KEY_ID", "fake-key") | CODE |
| LOW | custom_components/openrag/docling_remote.py | 380 | "image_export_mode": "placeholder", | CODE |
| LOW | custom_components/openrag/export_docling_document.py | 63 | options=["placeholder", "embedded"], | CODE |
| LOW | custom_components/openrag/export_docling_document.py | 68 | value="placeholder", | CODE |
| LOW | scripts/update_openrag_component_index.py | 47 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 77 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 102 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 124 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 249 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 289 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 316 | "placeholder": "", | CODE |
| LOW | scripts/update_openrag_component_index.py | 340 | "placeholder": "", | CODE |
| LOW | enhancements/providers/azure/foundry.py | 243 | "placeholder": "https://<resource>.services.ai.azure.com/openai/v1", | CODE |
| LOW | enhancements/providers/azure/foundry.py | 260 | "placeholder": None, | CODE |
| LOW | enhancements/providers/azure/foundry.py | 270 | "placeholder": "2024-05-01-preview", | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 88 | "placeholder": "https://cpd-cluster.example.com", | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 98 | "placeholder": None, | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 111 | "placeholder": None, | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 121 | "placeholder": None, | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 132 | "placeholder": None, | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 145 | "placeholder": None, | CODE |
| LOW | enhancements/providers/watsonx/onprem.py | 156 | "placeholder": "/etc/ssl/certs/openrag-ca.pem", | CODE |
| LOW | enhancements/providers/redhat/openshift_ai.py | 103 | "placeholder": "https://openrag-chat-predictor.openrag-models.svc.cluster.local:8443/v1", | CODE |
| 1128 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | warm_up_docling.py | 25 | except Exception: | CODE |
| HIGH | tests/conftest.py | 162 | except Exception: | CODE |
| HIGH | tests/conftest.py | 182 | except Exception: | CODE |
| HIGH | tests/conftest.py | 239 | except FileNotFoundError: | CODE |
| HIGH | tests/unit/conftest.py | 46 | except ImportError: | CODE |
| HIGH | tests/unit/conftest.py | 76 | except FileNotFoundError: | CODE |
| HIGH | tests/integration/core/test_startup_ingest.py | 89 | except Exception: | CODE |
| HIGH | tests/integration/core/test_startup_ingest.py | 156 | except Exception: | CODE |
| HIGH | tests/integration/core/test_startup_ingest.py | 149 | except Exception: | CODE |
| HIGH | tests/integration/core/test_onboarding_sample_docs.py | 142 | except Exception: | CODE |
| HIGH | tests/integration/core/test_non_langflow_ingestion.py | 111 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 193 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 212 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 530 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 678 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 696 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 285 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 489 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 634 | except Exception: | CODE |
| HIGH | tests/integration/core/test_api_endpoints.py | 727 | except Exception: | CODE |
| HIGH | custom_components/openrag/docling_remote.py | 190 | except json.JSONDecodeError: | CODE |
| HIGH | custom_components/openrag/opensearch_multimodal.py | 1138 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | scripts/langflow-entrypoint.py | 21 | except OSError: | CODE |
| HIGH | enhancements/connectors/ibm_cos/api.py | 187 | except Exception: | CODE |
| HIGH | alembic/env.py | 36 | except Exception: | CODE |
| HIGH | src/agent.py | 674 | except Exception: | CODE |
| HIGH | src/agent.py | 973 | except Exception: | CODE |
| HIGH | src/connectors/connection_manager.py | 418 | except Exception: | CODE |
| HIGH | src/connectors/aws_s3/api.py | 164 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1014 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1045 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 934 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 981 | except (TypeError, ValueError): | CODE |
| HIGH | src/connectors/google_drive/connector.py | 992 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1069 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1093 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1189 | except Exception: | CODE |
| HIGH | src/connectors/google_drive/connector.py | 1113 | except Exception: | CODE |
| HIGH | src/config/settings.py | 1400 | except Exception: | CODE |
| HIGH | src/tui/cli.py | 50 | except Exception: | CODE |
| HIGH | src/tui/cli.py | 240 | except Exception: | CODE |
| HIGH | src/tui/cli.py | 183 | except Exception: | CODE |
| HIGH | src/tui/managers/env_manager.py | 336 | except Exception: | CODE |
| HIGH | src/tui/managers/env_manager.py | 576 | except Exception: | CODE |
| HIGH | src/tui/managers/docling_manager.py | 407 | except OSError: | CODE |
| HIGH | src/tui/managers/docling_manager.py | 446 | except OSError: | CODE |
| HIGH | src/tui/managers/docling_manager.py | 459 | except OSError: | CODE |
| HIGH | src/tui/managers/container_manager.py | 952 | except Exception: | CODE |
| HIGH | src/tui/managers/container_manager.py | 1104 | except Exception: | CODE |
| HIGH | src/tui/managers/container_manager.py | 935 | except json.JSONDecodeError: | CODE |
| HIGH | src/tui/managers/container_manager.py | 1492 | except json.JSONDecodeError: | CODE |
| HIGH | src/tui/managers/container_manager.py | 849 | except json.JSONDecodeError: | CODE |
| HIGH | src/tui/utils/platform.py | 126 | except (subprocess.TimeoutExpired, FileNotFoundError): | CODE |
| HIGH | src/tui/utils/platform.py | 162 | except (subprocess.TimeoutExpired, FileNotFoundError): | CODE |
| HIGH | src/tui/utils/platform.py | 173 | except (subprocess.TimeoutExpired, FileNotFoundError): | CODE |
| HIGH | src/tui/utils/startup_checks.py | 60 | except (ValueError, EOFError, KeyboardInterrupt): | CODE |
| HIGH | src/tui/utils/startup_checks.py | 105 | except Exception: | CODE |
| HIGH | src/tui/utils/startup_checks.py | 202 | except: | CODE |
| HIGH | src/tui/utils/startup_checks.py | 416 | except: | CODE |
| HIGH | src/tui/utils/startup_checks.py | 494 | except: | CODE |
| 75 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CONTRIBUTING.md | 58 | | **Langflow** | (pulled as a container, or built from source — see [Branch Development](#c-branch-development-custom-la | CODE |
| MEDIUM | CONTRIBUTING.md | 58 | | **Langflow** | (pulled as a container, or built from source — see [Branch Development](#c-branch-development-custom-la | CODE |
| MEDIUM | CONTRIBUTING.md | 418 | └── docker-compose.yml # Container orchestration | CODE |
| MEDIUM | docker-compose.yml | 150 | # Performance guardrails — see the INSTANA_* block in .env.example for the | COMMENT |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | tests/unit/test_settings_provider_removal_defaults.py | 285 | # Simulated provider removal: embedding model default | COMMENT |
| MEDIUM | tests/integration/core/test_api_endpoints.py | 439 | # Ensure embedding model is configured via settings | COMMENT |
| MEDIUM | tests/integration/core/test_api_endpoints.py | 588 | # Start with explicit small embedding model | COMMENT |
| MEDIUM | tests/integration/core/test_api_endpoints.py | 608 | # Update embedding model via settings | COMMENT |
| MEDIUM | tests/integration/core/test_api_endpoints.py | 615 | # Ingest second document which should use the large embedding model | COMMENT |
| MEDIUM | tests/integration/sdk/test_e2e.py | 25 | f"# E2E RAG Test\n\n" | CODE |
| MEDIUM | tests/integration/sdk/test_filters.py | 150 | # Beta must NOT appear; alpha may or may not (RAG can return empty), | COMMENT |
| MEDIUM | kubernetes/helm/openrag/values.yaml | 405 | # Performance guardrails, plus one privacy default (secrets, below). Unlike | COMMENT |
| MEDIUM⚡ | kubernetes/operator/config/crd/kustomization.yaml | 3 | #+kubebuilder:scaffold:crdkustomizeresource | COMMENT |
| MEDIUM⚡ | kubernetes/operator/config/crd/kustomization.yaml | 8 | #+kubebuilder:scaffold:crdkustomizewebhookpatch | COMMENT |
| MEDIUM⚡ | kubernetes/operator/config/crd/kustomization.yaml | 12 | #+kubebuilder:scaffold:crdkustomizecainjectionpatch | COMMENT |
| MEDIUM | kubernetes/operator/internal/controller/env.go | 179 | // guardrails, so unlike the vars above they carry a real default | COMMENT |
| MEDIUM | kubernetes/operator/internal/controller/ENV_OVERRIDE.md | 257 | `INSTANA_TRACING_DISABLE=logging` and `INSTANA_STACK_TRACE=error` are defaulted for you, and unlike the presence-sensiti | CODE |
| MEDIUM | kubernetes/operator/internal/controller/ENV_OVERRIDE.md | 257 | `INSTANA_TRACING_DISABLE=logging` and `INSTANA_STACK_TRACE=error` are defaulted for you, and unlike the presence-sensiti | CODE |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 5812 | "value": "\"\"\"OpenAI-compatible embeddings that talk to the OpenRAG LLM proxy.\n\nEmbeddings work the | CODE |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/ingestion_flow.json | 4135 | "value": "\"\"\"OpenAI-compatible embeddings that talk to the OpenRAG LLM proxy.\n\nEmbeddings work the | CODE |
| MEDIUM⚡ | flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2231 | "value": "from __future__ import annotations\n\nimport asyncio\nimport hashlib\nimport json\nimport time | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2625 | "value": "\"\"\"OpenAI-compatible embeddings that talk to the OpenRAG LLM proxy.\n\nEmbeddings work the | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_nudges.json | 2481 | "value": "\"\"\"OpenAI-compatible embeddings that talk to the OpenRAG LLM proxy.\n\nEmbeddings work the | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM | src/config/settings.py | 887 | # Track which embedding model was used for this chunk | COMMENT |
| MEDIUM⚡ | src/config/legacy_prompts.py | 5 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 5 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 5 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 5 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 5 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 9 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 9 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 9 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/openrag_sdk/documents.py | 18 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 30 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 31 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 39 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/__init__.py | 40 | CODE | |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 6 | CODE | |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 6 | CODE | |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 6 | CODE | |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 18 | CODE | |
| LOW | sdks/python/openrag_sdk/chat.py | 23 | CODE | |
| LOW | sdks/python/openrag_sdk/search.py | 5 | CODE | |
| LOW | sdks/python/openrag_sdk/search.py | 10 | CODE | |
| LOW | sdks/mcp/src/openrag_mcp/__init__.py | 3 | CODE | |
| LOW | tests/unit/test_openrag_arxiv.py | 1 | CODE | |
| LOW | tests/unit/test_models_api_errors.py | 3 | CODE | |
| LOW | tests/unit/test_openai_provider_check_retry.py | 3 | CODE | |
| LOW | tests/unit/test_langflow_stream_provider_errors.py | 8 | CODE | |
| LOW | tests/unit/test_openrag_bulk.py | 1 | CODE | |
| LOW | tests/unit/test_provider_error_formatting.py | 3 | CODE | |
| LOW | tests/unit/test_opensearch_disk_space.py | 9 | CODE | |
| LOW | tests/unit/test_opensearch_disk_space.py | 10 | CODE | |
| LOW | tests/unit/test_opensearch_disk_space.py | 10 | CODE | |
| LOW | tests/unit/test_opensearch_disk_space.py | 10 | CODE | |
| LOW | tests/unit/config/test_model_providers_config.py | 9 | CODE | |
| 215 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/openrag_sdk/client.py | 212 | CODE | |
| LOW | sdks/python/openrag_sdk/knowledge_filters.py | 133 | CODE | |
| LOW | sdks/python/openrag_sdk/chat.py | 136 | CODE | |
| LOW | sdks/python/openrag_sdk/chat.py | 337 | CODE | |
| LOW | …sts/unit/test_openai_compatible_langflow_components.py | 222 | CODE | |
| LOW | tests/unit/conftest.py | 63 | CODE | |
| LOW | tests/unit/test_flow_component_sync.py | 49 | CODE | |
| LOW | tests/unit/test_encryption.py | 74 | CODE | |
| LOW | tests/integration/core/test_startup_ingest.py | 71 | CODE | |
| LOW | tests/integration/core/test_non_langflow_ingestion.py | 56 | CODE | |
| LOW | tests/integration/core/test_api_endpoints.py | 289 | CODE | |
| LOW | tests/integration/core/test_api_endpoints.py | 318 | CODE | |
| LOW | tests/integration/core/test_api_endpoints.py | 348 | CODE | |
| LOW | custom_components/openrag/docling_remote.py | 150 | CODE | |
| LOW | custom_components/openrag/docling_remote.py | 229 | CODE | |
| LOW | custom_components/openrag/export_docling_document.py | 177 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 599 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 705 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1074 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1323 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1780 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1905 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 2078 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 2577 | CODE | |
| LOW | scripts/openrag_bulk.py | 1188 | CODE | |
| LOW | scripts/openrag_bulk.py | 1459 | CODE | |
| LOW | scripts/openrag_bulk.py | 1821 | CODE | |
| LOW | scripts/extract_flow_component.py | 81 | CODE | |
| LOW | scripts/ci/get_image_hash.py | 8 | CODE | |
| LOW | scripts/test_scripts/sdk/python/harness.py | 87 | CODE | |
| LOW | enhancements/connectors/ibm_cos/connector.py | 213 | CODE | |
| LOW | enhancements/connectors/ibm_cos/connector.py | 361 | CODE | |
| LOW | enhancements/connectors/azure_blob/connector.py | 232 | CODE | |
| LOW | enhancements/providers/watsonx/onprem.py | 461 | CODE | |
| LOW | src/session_manager.py | 92 | CODE | |
| LOW | src/agent.py | 221 | CODE | |
| LOW | src/agent.py | 428 | CODE | |
| LOW | src/agent.py | 625 | CODE | |
| LOW | src/agent.py | 877 | CODE | |
| LOW | src/connectors/service.py | 236 | CODE | |
| LOW | src/connectors/service.py | 383 | CODE | |
| LOW | src/connectors/microsoft_graph_acl.py | 143 | CODE | |
| LOW | src/connectors/microsoft_graph_acl.py | 231 | CODE | |
| LOW | src/connectors/microsoft_graph_acl.py | 296 | CODE | |
| LOW | src/connectors/connection_manager.py | 99 | CODE | |
| LOW | src/connectors/connection_manager.py | 154 | CODE | |
| LOW | src/connectors/connection_manager.py | 326 | CODE | |
| LOW | src/connectors/google_drive_acl.py | 102 | CODE | |
| LOW | src/connectors/google_drive_acl.py | 165 | CODE | |
| LOW | src/connectors/google_drive_acl.py | 252 | CODE | |
| LOW | src/connectors/google_drive_acl.py | 316 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 312 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 476 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 642 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 774 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 873 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 999 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 1030 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 1125 | CODE | |
| LOW | src/connectors/onedrive/connector.py | 318 | CODE | |
| 174 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | patch-netty.sh | 66 | # Check if the artifact is one of the core Netty artifacts we want to patch | COMMENT |
| LOW | tests/unit/test_oauth_encryption.py | 35 | # Check if upgraded | COMMENT |
| LOW | custom_components/openrag/opensearch_multimodal.py | 906 | # Check if this is the known OpenSearch k-NN NullPointerException issue | COMMENT |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1310 | # Check if we're in ingestion-only mode (no search query) | COMMENT |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1426 | # Check if target is in available_models dict - use dedicated instance | COMMENT |
| LOW | custom_components/openrag/opensearch_multimodal.py | 2270 | # Check if this is a dedicated instance from available_models dict | COMMENT |
| LOW | scripts/migrate_embedding_model_field.py | 252 | # Check if index exists | COMMENT |
| LOW | .github/workflows/build-multiarch.yml | 54 | # Check if tag already exists | COMMENT |
| LOW | .github/workflows/build-multiarch.yml | 62 | # Check if version is numeric (e.g., 0.1.16) vs prerelease (e.g., 0.1.16-rc1) | COMMENT |
| LOW | .github/workflows/deploy-docs-draft.yml | 36 | # Check if branch names contain invalid characters. Only alphanumeric, _, -, ., and / are allowed. | COMMENT |
| LOW | .github/workflows/deploy-docs-draft.yml | 54 | # Check if input_branch starts with "refs/heads/" | COMMENT |
| LOW | kubernetes/helm/openrag/values.yaml | 332 | noColor: false # Set true to disable ANSI color codes in log output | CODE |
| LOW | kubernetes/helm/openrag/values.yaml | 333 | accessLog: true # Set false to disable HTTP access log events | CODE |
| LOW | kubernetes/helm/openrag/values.yaml | 346 | disableIngestWithLangflow: false # Set true to use traditional processor instead of Langflow | CODE |
| LOW | kubernetes/helm/openrag/values.yaml | 347 | ingestSampleData: true # Set true to ingest sample data on startup | CODE |
| LOW⚡ | flows/openrag_url_mcp.json | 683 | "value": "import importlib.util\nimport io\nimport re\nfrom urllib.parse import urljoin, urlparse\n\nimp | CODE |
| LOW⚡ | flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | flows/openrag_agent.json | 2231 | "value": "from __future__ import annotations\n\nimport asyncio\nimport hashlib\nimport json\nimport time | CODE |
| LOW⚡ | flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW | src/agent.py | 374 | # Check if this chunk contains retrieval results | COMMENT |
| LOW⚡ | src/connectors/connection_manager.py | 592 | # Check if the webhook ID is stored in the connection config | COMMENT |
| LOW | src/connectors/connection_manager.py | 299 | # Check if this update is adding authentication and webhooks are configured | COMMENT |
| LOW | src/connectors/connection_manager.py | 335 | # Check if we already have an active connection for this provider and user | COMMENT |
| LOW | src/connectors/connection_manager.py | 339 | # Check if the existing connection has a valid token | COMMENT |
| LOW | src/connectors/connection_manager.py | 607 | # Check if webhook is already set up | COMMENT |
| LOW | src/connectors/connection_manager.py | 614 | # Check if webhook URL is configured | COMMENT |
| LOW | src/connectors/onedrive/connector.py | 744 | # Check if it's a folder | COMMENT |
| LOW | src/connectors/onedrive/connector.py | 780 | # Check if ID contains '!' which indicates driveId!itemId format | COMMENT |
| LOW | src/connectors/sharepoint/connector.py | 797 | # Check if ID contains '!' which indicates driveId!itemId format | COMMENT |
| LOW | src/connectors/sharepoint/connector.py | 832 | # Check if it's a folder | COMMENT |
| LOW | src/connectors/sharepoint/connector.py | 853 | # Check if ID contains '!' which indicates driveId!itemId format | COMMENT |
| LOW | src/config/config_manager.py | 679 | # Check if api_key is unencrypted and we have a key | COMMENT |
| LOW | src/config/model_providers.yaml | 18 | # Set OPENRAG_MODEL_PROVIDERS_CONFIG to another YAML file to override this list | COMMENT |
| LOW | src/tui/main.py | 573 | # Check if migration already completed | COMMENT |
| LOW⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 683 | "value": "import importlib.util\nimport io\nimport re\nfrom urllib.parse import urljoin, urlparse\n\nimp | CODE |
| LOW⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | src/tui/_assets/flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | src/tui/_assets/flows/openrag_agent.json | 2231 | "value": "from __future__ import annotations\n\nimport asyncio\nimport hashlib\nimport json\nimport time | CODE |
| LOW⚡ | src/tui/_assets/flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW⚡ | src/tui/_assets/flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| LOW | src/tui/managers/env_manager.py | 328 | # Set OPENRAG_VERSION to TUI version if not already set | COMMENT |
| LOW | src/tui/managers/env_manager.py | 838 | # Check if OPENRAG_VERSION is already set in .env | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 133 | # Check if we have a direct process handle | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 140 | # Check if we have a PID from file | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 255 | # Check if port is already in use before trying to start | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 378 | # Check if process is still alive | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 382 | # Check if it's listening on the port | COMMENT |
| LOW | src/tui/managers/docling_manager.py | 610 | # Check if we have new logs | COMMENT |
| LOW | src/tui/managers/container_manager.py | 553 | # Check if we have a carriage return (progress update) before newline | COMMENT |
| LOW | src/tui/managers/container_manager.py | 1169 | # Check if containers already exist (stopped or otherwise) | COMMENT |
| LOW | src/tui/utils/platform.py | 93 | # Check if we have docker/podman runtime but no working compose | COMMENT |
| LOW | src/tui/utils/startup_checks.py | 354 | # Check if machine exists | COMMENT |
| LOW | src/tui/utils/startup_checks.py | 380 | # Check if machine is running | COMMENT |
| LOW | src/tui/utils/version_check.py | 41 | # Check if it starts with a digit and contains only digits, dots, and hyphens | COMMENT |
| LOW⚡ | src/tui/utils/validation.py | 136 | # Check if path exists | COMMENT |
| LOW⚡ | src/tui/utils/validation.py | 144 | # Check if it's a directory | COMMENT |
| LOW⚡ | src/tui/utils/validation.py | 148 | # Check if we can write to it | COMMENT |
| LOW | src/tui/screens/config.py | 150 | # Check if .env file exists | COMMENT |
| 42 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | frontend/lib/constants.ts | 15 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | custom_components/openrag/opensearch_multimodal.py | 2131 | # Create a comprehensive map of model names to embedding objects | COMMENT |
| MEDIUM⚡ | custom_components/openrag/opensearch_multimodal.py | 2133 | # Also leverage available_models list from EmbeddingsWithModels | COMMENT |
| MEDIUM | docs/package-lock.json | 17300 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | scripts/ci/generate_security_report.py | 278 | """Generate a comprehensive CSV report of all detected security findings.""" | STRING |
| LOW | .github/workflows/nightly-build.yml | 261 | # or just use the updated pyproject.toml if it's shared (it's not). | COMMENT |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 683 | "value": "import importlib.util\nimport io\nimport re\nfrom urllib.parse import urljoin, urlparse\n\nimp | CODE |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/config_manager.py | 507 | DEFAULT_SYSTEM_PROMPT = 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 7 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 9 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 9 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 11 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/config/legacy_prompts.py | 11 | 'You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou have access to sever | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 683 | "value": "import importlib.util\nimport io\nimport re\nfrom urllib.parse import urljoin, urlparse\n\nimp | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_agent.json | 1531 | "value": "You are the OpenRAG Agent. You answer questions using retrieval, reasoning, and tool use.\nYou | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM | src/tui/managers/container_manager.py | 958 | """Get resolved image names from compose files using docker/podman compose, with robust fallbacks.""" | STRING |
| LOW | src/services/document_service.py | 197 | # For context, we don't need to chunk - just return the full content | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.host-backend.yml | 1 | # docker-compose.host-backend.yml | COMMENT |
| LOW | docker-compose.yml | 141 | - DOCLING_SERVE_VERIFY_SSL=${DOCLING_SERVE_VERIFY_SSL:-true} | COMMENT |
| LOW | docker-compose.yml | 161 | # stack-trace value" on every boot and silently reverting to `all` — the | COMMENT |
| LOW | docker-compose.yml | 301 | # Storage API version than the pinned Azurite image supports; skip the check | COMMENT |
| LOW | docker-compose.yml | 321 | # | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 61 | // test('Negative testcase for mismatch file extension', async ({ knowledge, settings, page }) => { | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 81 | COMMENT | |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 61 | COMMENT | |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 81 | // // Close tasks menu | COMMENT |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 101 | COMMENT | |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 121 | // fileName = 'Customer_analysis_small.csv'; | COMMENT |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 141 | // // Verify response indicates the data does not explicitly state the best channel and lists ambiguity instead of m | COMMENT |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 161 | COMMENT | |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 181 | // // Upload document - use waitForCompletion=false to avoid toast message issue | COMMENT |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 201 | // // Comprehensive regex to detect ANY response indicating inability to answer | COMMENT |
| LOW | frontend/tests/core/upload-and-query.spec.ts | 221 | COMMENT | |
| LOW | frontend/tests/core/tasks-menu.spec.ts | 201 | // test.setTimeout(120000); | COMMENT |
| LOW | frontend/tests/core/tasks-menu.spec.ts | 221 | COMMENT | |
| LOW | frontend/tests/core/tasks-menu.spec.ts | 241 | // logger.info(`ℹ️ Task completed before cancellation`); | COMMENT |
| LOW | frontend/components/connectors/shared-bucket-view.tsx | 301 | // Don't fall through to the sync by default. Proceeding would silently | COMMENT |
| LOW | frontend/components/task-dialog/filters.test.tsx | 81 | COMMENT | |
| LOW | frontend/hooks/useChatStreaming.test.tsx | 381 | COMMENT | |
| LOW | tests/conftest.py | 21 | # explicitly with OPENRAG_TEST_INSTANA=true. INSTANA_ENABLED alone can't be used | COMMENT |
| LOW | tests/__init__.py | 1 | # Test package | COMMENT |
| LOW | tests/unit/known_failures.txt | 1 | # Unit tests that already fail on main. | COMMENT |
| LOW | tests/integration/__init__.py | 1 | # Integration tests package | COMMENT |
| LOW | tests/integration/core/test_api_endpoints.py | 141 | "azure" if (azure_key and azure_endpoint) else "openai", | COMMENT |
| LOW | docs/docusaurus.config.js | 161 | // Remove this to remove the "edit this page" links. | COMMENT |
| LOW | scripts/backend-entrypoint.sh | 1 | #!/bin/sh | COMMENT |
| LOW | .github/workflows/codeql.yml | 41 | # By default, queries listed here will override any specified in a config file. | COMMENT |
| LOW | .github/workflows/deploy-gh-pages.yml | 41 | # The GH actions bot is used by default if you didn't specify the two fields. | COMMENT |
| LOW | .github/workflows/react-doctor.yml | 41 | # sticky summary comment, inline review comments, and a commit status | COMMENT |
| LOW | enhancements/providers/azure/foundry.py | 141 | COMMENT | |
| LOW | enhancements/providers/azure/foundry.py | 161 | CallKind = Literal["chat", "embedding"] | COMMENT |
| LOW | enhancements/providers/redhat/openshift_ai.py | 161 | "default_value": None, | COMMENT |
| LOW | enhancements/providers/redhat/openshift_ai.py | 181 | #: deployments set 4. | COMMENT |
| LOW | enhancements/providers/redhat/openshift_ai.py | 421 | # -------------------------------------------------------------------------- | COMMENT |
| LOW | kubernetes/helm/openrag/values.yaml | 381 | enabled: false | COMMENT |
| LOW | kubernetes/helm/openrag/values.yaml | 401 | # name and log an "Unknown INSTANA_LOG_LEVEL" warning on every boot. | COMMENT |
| LOW | kubernetes/helm/operator/values.yaml | 21 | # Specifies whether a service account should be created | COMMENT |
| LOW | kubernetes/operator/config/crd/kustomization.yaml | 1 | resources: | COMMENT |
| LOW | …onfig/samples/openrag_v1alpha1_openrag-kind-local.yaml | 1 | # OpenRAG sample for local kind/Colima clusters (typically 2 CPUs). | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 61 | # projectId: "" | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 81 | # resources: | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 101 | # annotations: | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 121 | # worker: | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 141 | # workload: "cpu-intensive" | COMMENT |
| LOW | …/operator/config/samples/openrag_v1alpha1_openrag.yaml | 161 | # Use doclingComponents above to deploy docling within the operator | COMMENT |
| LOW | …s/operator/config/samples/kind-cluster-openrag-cr.yaml | 61 | # doclingComponents: | COMMENT |
| LOW | …s/operator/config/samples/kind-cluster-openrag-cr.yaml | 81 | # resources: | COMMENT |
| LOW | kubernetes/operator/internal/controller/env.go | 161 | "AZURE_STORAGE_ENDPOINT": "", | COMMENT |
| LOW | kubernetes/operator/internal/controller/env.go | 181 | // a long-running backend: logging spans leak an event per in-trace | COMMENT |
| LOW | kubernetes/operator/internal/controller/env.go | 221 | return m.mergeEnvVars(ctx, c, namespace, m.DefaultOpenRagBEEnvVars, OPENRAGBE_ENV_PREFIX, crEnvVars) | COMMENT |
| LOW | kubernetes/operator/internal/controller/env.go | 361 | COMMENT | |
| LOW | …tes/operator/internal/controller/openrag_controller.go | 61 | Client: c, | COMMENT |
| LOW | kubernetes/operator/hack/update-codegen.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | kubernetes/operator/api/v1alpha1/openrag_types.go | 61 | // Labels are custom labels to add to the Deployment/StatefulSet object metadata. | COMMENT |
| LOW | kubernetes/operator/api/v1alpha1/openrag_types.go | 81 | // +kubebuilder:validation:MaxProperties=64 | COMMENT |
| LOW | kubernetes/operator/api/v1alpha1/openrag_types.go | 101 | // +optional | COMMENT |
| LOW | kubernetes/operator/api/v1alpha1/openrag_types.go | 141 | // Merged with operator-managed labels and CommonResourceLabels from OpenRAGSpec. | COMMENT |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_shared_flag.py | 83 | """Critical DLS test: owner key must be absent, not null, for must_not-exists-owner clause.""" | STRING |
| HIGH | tests/unit/test_langflow_global_variables.py | 326 | """Langflow GET hides Credential values as null; still PATCH a placeholder.""" | STRING |
| HIGH | …sts/unit/connectors/test_content_etag_change_signal.py | 272 | # The script guards on null, so a None param leaves existing chunks alone. | COMMENT |
| HIGH | …sts/unit/connectors/test_content_etag_change_signal.py | 274 | assert "if (params.content_etag != null)" in script["source"] | CODE |
| HIGH⚡ | tests/unit/services/test_ingest_preview_service.py | 87 | # OpenSearch may return {"total": {"value": null}}; must not raise TypeError. | COMMENT |
| HIGH | enhancements/providers/watsonx/onprem.py | 900 | # `{"space_id": null}` is not "no space"; watsonx rejects it. | COMMENT |
| HIGH⚡ | src/connectors/service.py | 172 | if (params.filename != null) { | CODE |
| HIGH⚡ | src/connectors/service.py | 175 | if (params.created_time != null) { | CODE |
| HIGH⚡ | src/connectors/service.py | 178 | if (params.modified_time != null) { | CODE |
| HIGH⚡ | src/connectors/service.py | 181 | if (params.content_etag != null) { | CODE |
| HIGH⚡ | src/connectors/service.py | 184 | if (params.metadata != null) { | CODE |
| HIGH | src/config/settings.py | 1883 | # Langflow redacts Credential values on GET (null) and treats an | COMMENT |
| HIGH | src/tui/managers/container_manager.py | 1306 | "rm -rf /work/* /work/.[!.]* 2>/dev/null; echo done", | CODE |
| HIGH | src/tui/managers/container_manager.py | 1367 | "rm -rf /work/* /work/.[!.]* 2>/dev/null; echo done", | CODE |
| HIGH | src/tui/utils/platform.py | 203 | status += "\nTo increase: podman machine stop && podman machine rm && podman machine init --memory 8192 | CODE |
| HIGH | src/services/docling_service.py | 205 | null, so those are checked first — otherwise the real cause is discarded and | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/test_env_manager.py | 190 | # Create the legacy file with deliberately permissive permissions. | COMMENT |
| MEDIUM | tests/unit/test_task_service.py | 204 | # Create a task with multiple files | COMMENT |
| MEDIUM | tests/unit/test_encryption.py | 45 | # Create an initial config manager with a temporary file | COMMENT |
| MEDIUM | tests/unit/api/test_settings_endpoints.py | 31 | # Create a body with an invalid preset | COMMENT |
| MEDIUM | tests/integration/core/test_api_endpoints.py | 222 | # Create a temporary markdown file to upload | COMMENT |
| MEDIUM⚡ | custom_components/openrag/opensearch_multimodal.py | 2131 | # Create a comprehensive map of model names to embedding objects | COMMENT |
| MEDIUM⚡ | flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM | src/bootstrap.py | 6 | # This module is intended to be imported as the first line in entry points | COMMENT |
| MEDIUM | src/config/model_providers.yaml | 3 | # This file is the single source of truth for provider visibility in the | COMMENT |
| MEDIUM | src/tui/main.py | 369 | self.docling_manager = DoclingManager() # Initialize singleton instance | STRING |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_url_mcp.json | 6089 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/ingestion_flow.json | 4412 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_agent.json | 2868 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM⚡ | src/tui/_assets/flows/openrag_nudges.json | 1626 | "value": "from __future__ import annotations\n\nimport copy\nimport json\nimport unicodedata\nimport uui | CODE |
| MEDIUM | src/tui/screens/diagnostics.py | 173 | # Create a timestamped filename | COMMENT |
| MEDIUM | src/utils/embedding_fields.py | 283 | # Define the field mapping for both the vector field and the tracking field | COMMENT |
| MEDIUM | src/api/settings/helpers.py | 262 | # Create the filter document | COMMENT |
| MEDIUM | src/services/flows_service.py | 1616 | # Create a backup flow directly in Langflow | COMMENT |
| MEDIUM | src/services/api_key_service.py | 37 | # Create the full key with prefix | COMMENT |
| MEDIUM | src/services/api_key_service.py | 113 | # Create a unique key_id | COMMENT |
| MEDIUM | src/services/api_key_service.py | 118 | # Create the document to store | COMMENT |
| MEDIUM | src/services/monitor_service.py | 57 | # Create the document-level monitor | COMMENT |
| MEDIUM | src/services/monitor_service.py | 119 | # Create the monitor | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 49 | // Step 3: Ingest URL via chat | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 57 | // Step 4: Verify tool call arguments | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 66 | // Step 5: Verify ingestion succeeded (tool did not fail) | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 72 | // Step 6: Verify document is active in knowledge base | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 234 | // Step 3: Ingest URL via chat | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 240 | // Step 4: Verify tool call arguments | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 249 | // Step 5: Verify ingestion succeeded (tool did not fail) | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 259 | // Step 6: Delete the conversation | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 265 | // Step 7: Open a new chat and ask a question related to the ingested URL | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 272 | // Step 8: Verify the response contains relevant information from the ingested URL | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 22 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 35 | // Step 2: Set models for active provider | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 205 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 220 | // Step 2: Set models for active provider | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 292 | // Step 9: Verify response does NOT contain "no relevant sources" message | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 33 | // Step 1: Upload all files first (without verifying status yet) | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 46 | // Step 2: After all uploads complete, verify each file was processed without | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 51 | // Step 1: Clear all files from the folder if they exist in the KB | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 86 | // Step 2: Ingest the entire folder | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 98 | // Step 3: Verify all files are active (using ingested names) | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 171 | // Step 1: Clear existing files from knowledge base | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 206 | // Step 2: Upload combo folder | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 221 | // Step 3: Verify immediate toast message | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 233 | // Step 4: Wait for task completion | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 247 | // Step 5: Verify all files are active | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 39 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 48 | // Step 2: Set embedding model for active provider | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 61 | // Step 3: Ingest the test document | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 69 | // Step 4: Wait for document to be indexed (Active status) | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 74 | // Step 5: Open the chunk viewer | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 79 | // Step 6: Test chunk search for multiple tokens | COMMENT |
| LOW | frontend/tests/core/chunk_search.spec.ts | 116 | // Step 7: Report results | COMMENT |
| LOW | frontend/tests/core/chunk_search.spec.ts | 127 | // Step 8: Assertions | COMMENT |
| LOW | frontend/tests/core/search.spec.ts | 34 | // Step 2: Set embedding model for active provider | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 47 | // Step 3: Ingest the test document | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 55 | // Step 4: Wait for document to be indexed (Active status) | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 60 | // Step 5: Search for the unique token | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 70 | // Step 6: Verify results | COMMENT |
| LOW | src/tui/managers/container_manager.py | 1651 | # Step 1: Stop all services first | COMMENT |
| LOW | src/tui/screens/welcome.py | 516 | # Step 1: Start container services first (to create the network) | COMMENT |
| LOW | src/tui/screens/welcome.py | 603 | # Step 1: Stop container services | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 49 | // Step 3: Ingest URL via chat | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 57 | // Step 4: Verify tool call arguments | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 66 | // Step 5: Verify ingestion succeeded (tool did not fail) | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 72 | // Step 6: Verify document is active in knowledge base | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 234 | // Step 3: Ingest URL via chat | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 240 | // Step 4: Verify tool call arguments | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 249 | // Step 5: Verify ingestion succeeded (tool did not fail) | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 259 | // Step 6: Delete the conversation | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 265 | // Step 7: Open a new chat and ask a question related to the ingested URL | COMMENT |
| LOW⚡ | frontend/tests/core/url_ingestion.spec.ts | 272 | // Step 8: Verify the response contains relevant information from the ingested URL | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 22 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 35 | // Step 2: Set models for active provider | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 205 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 220 | // Step 2: Set models for active provider | COMMENT |
| LOW | frontend/tests/core/url_ingestion.spec.ts | 292 | // Step 9: Verify response does NOT contain "no relevant sources" message | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 33 | // Step 1: Upload all files first (without verifying status yet) | COMMENT |
| LOW | frontend/tests/core/diverse-format-ingestion.spec.ts | 46 | // Step 2: After all uploads complete, verify each file was processed without | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 51 | // Step 1: Clear all files from the folder if they exist in the KB | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 86 | // Step 2: Ingest the entire folder | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 98 | // Step 3: Verify all files are active (using ingested names) | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 171 | // Step 1: Clear existing files from knowledge base | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 206 | // Step 2: Upload combo folder | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 221 | // Step 3: Verify immediate toast message | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 233 | // Step 4: Wait for task completion | COMMENT |
| LOW | frontend/tests/core/bulk_document_ingestion.spec.ts | 247 | // Step 5: Verify all files are active | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 39 | // Step 1: Cleanup test document if it exists | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 48 | // Step 2: Set embedding model for active provider | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 61 | // Step 3: Ingest the test document | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 69 | // Step 4: Wait for document to be indexed (Active status) | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 74 | // Step 5: Open the chunk viewer | COMMENT |
| LOW⚡ | frontend/tests/core/chunk_search.spec.ts | 79 | // Step 6: Test chunk search for multiple tokens | COMMENT |
| LOW | frontend/tests/core/chunk_search.spec.ts | 116 | // Step 7: Report results | COMMENT |
| LOW | frontend/tests/core/chunk_search.spec.ts | 127 | // Step 8: Assertions | COMMENT |
| LOW | frontend/tests/core/search.spec.ts | 34 | // Step 2: Set embedding model for active provider | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 47 | // Step 3: Ingest the test document | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 55 | // Step 4: Wait for document to be indexed (Active status) | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 60 | // Step 5: Search for the unique token | COMMENT |
| LOW⚡ | frontend/tests/core/search.spec.ts | 70 | // Step 6: Verify results | COMMENT |
| LOW | src/tui/managers/container_manager.py | 1651 | # Step 1: Stop all services first | COMMENT |
| LOW | src/tui/screens/welcome.py | 516 | # Step 1: Start container services first (to create the network) | COMMENT |
| LOW | src/tui/screens/welcome.py | 603 | # Step 1: Stop container services | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sdks/python/openrag_sdk/documents.py | 37 | Ingest a document into the knowledge base. Args: file_path: Path to the file to ingest. | STRING |
| HIGH | sdks/python/openrag_sdk/documents.py | 113 | Wait for an ingestion task to complete. Args: task_id: The task ID to wait for. | STRING |
| HIGH | custom_components/openrag/opensearch_multimodal.py | 600 | Execute a raw OpenSearch query against the target index. Args: query (dict[str, Any]): The OpenSear | STRING |
| HIGH | custom_components/openrag/opensearch_multimodal.py | 706 | Get the embedding model name from component config or embedding object. Priority: deployment > model > model_id | STRING |
| HIGH | custom_components/openrag/opensearch_multimodal.py | 2079 | Perform multi-model hybrid search combining multiple vector similarities and keyword matching. This method exec | STRING |
| HIGH | src/utils/embedding_fields.py | 169 | Convert an embedding model name to a valid OpenSearch field suffix. Examples: - "text-embedding-3-smal | STRING |
| HIGH | src/utils/embedding_fields.py | 201 | Get the OpenSearch field name for storing embeddings from a specific model. Args: model_name: The embe | STRING |
| HIGH | src/utils/embedding_fields.py | 226 | Ensure that an embedding field for the specified model exists in the OpenSearch index. If the field doesn't exi | STRING |
| HIGH | src/utils/jwt_verification.py | 60 | Fetch JWKS from URL with caching. Args: url: JWKS endpoint URL Returns: JWKS dictionary | STRING |
| HIGH | src/utils/jwt_verification.py | 95 | Extract signing key from JWKS based on token header. Args: token: JWT token jwks: JWKS diction | STRING |
| HIGH | src/utils/jwt_verification.py | 130 | Verify Google ID token with FULL validation. Performs: - Signature verification using Google's JWKS - | STRING |
| HIGH | src/utils/jwt_verification.py | 271 | Verify a Microsoft access token following the Microsoft identity platform docs. Scope of validation: - Va | STRING |
| HIGH | src/api/provider_validation.py | 779 | Validate provider setup by testing completion with tool calling and embedding. Args: provider: Provide | STRING |
| HIGH | src/services/task_service.py | 318 | Wrapper to add timeout protection to file processing Args: coro: Coroutine to execute with timeout | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | enhancements/connectors/ibm_cos/support.py | 0 | resolve s3 credentials and build the connection config dict. resolution order for each credential: request body → enviro | STRING |
| HIGH | enhancements/connectors/azure_blob/support.py | 0 | resolve s3 credentials and build the connection config dict. resolution order for each credential: request body → enviro | STRING |
| HIGH | src/connectors/aws_s3/support.py | 0 | resolve s3 credentials and build the connection config dict. resolution order for each credential: request body → enviro | STRING |
| HIGH | enhancements/connectors/ibm_cos/connector.py | 0 | no-op: webhooks are not supported in this connector version. | STRING |
| HIGH | enhancements/connectors/azure_blob/connector.py | 0 | no-op: webhooks are not supported in this connector version. | STRING |
| HIGH | src/connectors/aws_s3/connector.py | 0 | no-op: webhooks are not supported in this connector version. | STRING |
| HIGH | src/tui/widgets/prune_options_modal.py | 0 | flowbackupwarningmodal { align: center middle; } #dialog { width: 70; height: auto; border: solid #3f3f46; background: # | STRING |
| HIGH | src/tui/widgets/upgrade_instructions_modal.py | 0 | flowbackupwarningmodal { align: center middle; } #dialog { width: 70; height: auto; border: solid #3f3f46; background: # | STRING |
| HIGH | src/tui/widgets/version_mismatch_warning_modal.py | 0 | flowbackupwarningmodal { align: center middle; } #dialog { width: 70; height: auto; border: solid #3f3f46; background: # | STRING |
| HIGH | src/tui/widgets/factory_reset_warning_modal.py | 0 | flowbackupwarningmodal { align: center middle; } #dialog { width: 70; height: auto; border: solid #3f3f46; background: # | STRING |
| HIGH | src/tui/widgets/flow_backup_warning_modal.py | 0 | flowbackupwarningmodal { align: center middle; } #dialog { width: 70; height: auto; border: solid #3f3f46; background: # | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | warm_up_docling.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | sdks/python/openrag_sdk/__init__.py | 77 | __all__ = [ | CODE |
| LOW | sdks/mcp/src/openrag_mcp/__init__.py | 6 | __all__ = ["main"] | CODE |
| LOW | …nit/services/test_llm_gateway_embedding_concurrency.py | 344 | async def _settle() -> None: | CODE |
| LOW | scripts/openrag_bulk.py | 1757 | def _update_batch_from_status(result: dict[str, Any], status: dict[str, Any]) -> None: | CODE |
| LOW | scripts/openrag_bulk.py | 1813 | def _update_summary_totals(summary: dict[str, Any]) -> None: | CODE |
| LOW | scripts/connectors/azure/seed_azurite.py | 560 | def _update_blobs(svc: BlobServiceClient, name: str, blobs: dict[str, bytes]) -> None: | CODE |
| LOW | …ripts/test_scripts/sdk/python/checks/check_settings.py | 12 | async def update_roundtrip(ctx: Context) -> None: | CODE |
| LOW | enhancements/connectors/ibm_cos/__init__.py | 10 | __all__ = [ | CODE |
| LOW | enhancements/connectors/azure_blob/__init__.py | 11 | __all__ = [ | CODE |
| LOW | src/main.py | 52 | __all__ = [ | CODE |
| LOW | src/dependencies.py | 53 | __all__ = [ | CODE |
| LOW | src/connectors/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/connectors/onedrive/__init__.py | 4 | __all__ = ["OneDriveConnector", "OneDriveOAuth"] | CODE |
| LOW⚡ | src/connectors/onedrive/connector.py | 187 | def set_file_infos(self, file_infos: list[dict[str, Any]]) -> None: | CODE |
| LOW | src/connectors/sharepoint/__init__.py | 4 | __all__ = ["SharePointConnector", "SharePointOAuth"] | CODE |
| LOW⚡ | src/connectors/sharepoint/connector.py | 200 | def set_file_infos(self, file_infos: list[dict[str, Any]]) -> None: | CODE |
| LOW | src/connectors/aws_s3/__init__.py | 12 | __all__ = [ | CODE |
| LOW | src/connectors/google_drive/__init__.py | 4 | __all__ = ["GoogleDriveConnector", "GoogleDriveOAuth"] | CODE |
| LOW⚡ | src/tui/screens/config.py | 636 | def _set_path(result) -> None: | CODE |
| LOW⚡ | src/tui/screens/monitor.py | 851 | def _update_mode_row(self) -> None: | CODE |
| LOW⚡ | src/tui/screens/monitor.py | 876 | def _update_controls(self, services: list[ServiceInfo]) -> None: | CODE |
| LOW⚡ | src/tui/screens/monitor.py | 1093 | def _set_cursor_row(self, table: DataTable | None, row: int) -> None: | CODE |
| LOW | src/tui/screens/monitor.py | 914 | def _update_docling_controls(self) -> None: | CODE |
| LOW | src/tui/screens/welcome.py | 450 | def _update_default_button(self) -> None: | CODE |
| LOW⚡ | src/tui/widgets/command_modal.py | 365 | def _update_output(self, message: str, replace_last: bool = False) -> None: | CODE |
| LOW | src/tui/widgets/__init__.py | 5 | __all__ = ["FlowBackupWarningModal"] | CODE |
| LOW | src/utils/provider_health_cache.py | 114 | def set_and_release(key: str, value: dict) -> None: | CODE |
| LOW | src/utils/telemetry/client.py | 59 | def set_base_url(url: str) -> None: | CODE |
| LOW | src/utils/telemetry/__init__.py | 7 | __all__ = ["TelemetryClient", "Category", "MessageId"] | CODE |
| LOW | src/db/__init__.py | 15 | __all__ = [ | CODE |
| LOW | src/db/repositories/__init__.py | 16 | __all__ = [ | CODE |
| LOW | src/db/repositories/user_repo.py | 46 | async def update_last_login(self, user_id: str) -> None: | CODE |
| LOW | src/db/models/__init__.py | 20 | __all__ = [ | CODE |
| LOW | src/api/settings/__init__.py | 53 | __all__ = [ | CODE |
| LOW⚡ | src/services/auth_service.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/services/startup_orchestrator.py | 32 | async def _update_mcp_server_urls(langflow_mcp_service) -> None: | CODE |
| LOW | src/services/connector_oauth_config_service.py | 99 | def _set_cache_entry(credential_key: str, client_id: str | None, client_secret: str | None) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/openrag_sdk/documents.py | 187 | CODE | |
| LOW | tests/unit/test_settings_provider_removal_defaults.py | 49 | CODE | |
| LOW | custom_components/openrag/opensearch_multimodal.py | 1074 | CODE | |
| LOW | src/connectors/service.py | 35 | CODE | |
| LOW | src/connectors/google_drive/connector.py | 1377 | CODE | |
| LOW | src/config/settings.py | 828 | CODE | |
| LOW | src/models/processors.py | 513 | CODE | |
| LOW | src/models/processors.py | 807 | CODE | |
| LOW | src/models/processors.py | 962 | CODE | |
| LOW | src/models/processors.py | 1594 | CODE | |
| LOW | src/models/processors.py | 1704 | CODE | |
| LOW | src/api/files.py | 40 | CODE | |
| LOW | src/api/files.py | 89 | CODE | |
| LOW | src/api/langflow_files.py | 116 | CODE | |
| LOW | src/api/provider_validation.py | 767 | CODE | |
| LOW | src/api/connectors.py | 3081 | CODE | |
| LOW | src/api/router.py | 28 | CODE | |
| LOW | src/api/v1/documents.py | 41 | CODE | |
| LOW | src/api/settings/endpoints.py | 1175 | CODE | |
| LOW | src/api/v2/files.py | 18 | CODE | |
| LOW | src/api/v2/files.py | 53 | CODE | |
| LOW | src/services/file_service.py | 22 | CODE | |
| LOW | src/services/chat_service.py | 57 | CODE | |
| LOW | src/services/chat_service.py | 506 | CODE | |
| LOW | src/services/task_service.py | 383 | CODE | |
| LOW | src/services/file_service_v2.py | 44 | CODE | |
| LOW | src/services/file_service_v2.py | 198 | CODE | |
| LOW | src/services/langflow_file_service.py | 419 | CODE | |
| LOW | src/services/langflow_file_service.py | 1057 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 135 | CODE | |
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 172 | CODE | |
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 216 | CODE | |
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 271 | CODE | |
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 316 | CODE | |
| MEDIUM | tests/unit/test_langflow_stream_provider_errors.py | 430 | CODE | |
| MEDIUM | tests/unit/services/test_llm_gateway.py | 1686 | CODE | |
| MEDIUM | tests/unit/services/test_llm_gateway.py | 1750 | CODE | |
| MEDIUM | tests/unit/services/test_llm_gateway.py | 1817 | CODE | |
| MEDIUM | tests/unit/services/test_llm_gateway.py | 1964 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …end/app/settings/_components/watsonx-settings-form.tsx | 130 | placeholder="your-api-key" | CODE |
| HIGH | frontend/app/onboarding/_components/ibm-onboarding.tsx | 244 | placeholder="your-api-key" | CODE |
| HIGH | plugins/openrag/skills/sdk/SKILL.md | 84 | OPENRAG_API_KEY=your-api-key # Required if authentication is enabled | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …d/app/settings/_components/ingest-settings-section.tsx | 730 | // off-catalogue embedding model as a language model and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.host-backend.yml | 19 | # Usage: | COMMENT |