Open-source security automation platform for teams and AI agents
This report summarizes scanner evidence for TracecatHQ/tracecat, a Python project with 3,830 GitHub stars. SynthScan examined 1,207,906 lines of code across 4934 source files, recording 15963 pattern matches distributed across 27 syntactic categories. The legacy adjusted pattern signal is 14.9 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 12932 finding(s).
Are imports declared and package/API names verified? 1343 finding(s).
Are wrappers, guards, and repeated structures necessary? 13648 finding(s).
Which changes need focused human review? 15963 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 15963 distinct pattern matches across 27 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/tests/case-comments-section.test.tsx | 415 | function createAgentPresetFixtures(): AgentPresetReadMinimal[] { | CODE |
| LOW | frontend/tests/memo-render-count.test.tsx | 126 | function makeCompletedToolMessages(toolInput: unknown, toolOutput: unknown) { | CODE |
| LOW | frontend/tests/org-vcs-github-manual-form.test.tsx | 37 | function installDeferredFileReader() { | CODE |
| LOW | frontend/tests/use-chat.test.tsx | 92 | function createSessionReadWithMessages( | CODE |
| LOW | frontend/tests/workspace-sync-settings.test.tsx | 113 | function createCatalogMappingRequirement( | CODE |
| LOW | frontend/tests/workspace-sync-settings.test.tsx | 139 | function createMcpMappingRequirement( | CODE |
| LOW | frontend/tests/smoke/utils/auth.ts | 87 | export async function createOrganizationInvitation( | CODE |
| LOW | frontend/src/types/workspace-chat-artifacts.ts | 231 | export function parseWorkspaceChatArtifactStreamPart( | CODE |
| LOW | …src/app/organization/settings/agent/telemetry/page.tsx | 5 | export default function AgentTelemetrySettingsPage() { | CODE |
| LOW | …rc/app/organization/settings/service-accounts/page.tsx | 11 | export default function OrganizationServiceAccountsPage() { | CODE |
| LOW | …src/app/organization/settings/custom-registry/page.tsx | 10 | export default function CustomRegistrySettingsPage() { | CODE |
| LOW | …anization/settings/custom-registry/versions/layout.tsx | 7 | export default function CustomRegistryVersionsLayout({ | CODE |
| LOW | …rganization/settings/custom-registry/versions/page.tsx | 13 | export default function CustomRegistryVersionsPage() { | CODE |
| LOW | frontend/src/app/admin/registry/settings/page.tsx | 5 | export default function AdminRegistrySettingsPage() { | CODE |
| LOW | frontend/src/app/admin/registry/versions/page.tsx | 5 | export default function AdminRegistryVersionsPage() { | CODE |
| LOW | …kspaceId]/workflows/[workflowId]/executions/layout.tsx | 49 | function WorkflowExecutionsPanelGroup({ | CODE |
| LOW | …src/app/workspaces/[workspaceId]/integrations/page.tsx | 91 | function getIntegrationDisplayType( | CODE |
| LOW | …p/workspaces/[workspaceId]/service-accounts/layout.tsx | 7 | export default function WorkspaceServiceAccountsLayout({ | CODE |
| LOW | …app/workspaces/[workspaceId]/service-accounts/page.tsx | 7 | export default function WorkspaceServiceAccountsPage() { | CODE |
| LOW | …/src/app/workspaces/[workspaceId]/mcp-servers/page.tsx | 105 | function connectionSpecFromIntegration( | CODE |
| LOW | …/src/app/workspaces/[workspaceId]/mcp-servers/page.tsx | 158 | function workspaceIntegrationToCatalogEntry( | CODE |
| LOW | …/src/app/workspaces/[workspaceId]/mcp-servers/page.tsx | 188 | function workspaceIntegrationMatches( | CODE |
| LOW | …/src/app/workspaces/[workspaceId]/mcp-servers/page.tsx | 260 | function isCatalogEntryConnectable(entry: PlatformMCPCatalogRead) { | CODE |
| LOW | frontend/src/providers/builder.tsx | 51 | function readPersistedSelectedNode({ | CODE |
| LOW | frontend/src/providers/builder.tsx | 73 | function writePersistedSelectedNode({ | CODE |
| LOW | frontend/src/providers/agent-preset-detail.tsx | 43 | export function AgentPresetDetailProvider({ | CODE |
| LOW | frontend/src/providers/agent-preset-detail.tsx | 66 | export function useAgentPresetDetailContext(): AgentPresetDetailContextValue | null { | CODE |
| LOW | frontend/src/components/error-boundaries.tsx | 159 | export function WorkflowBuilderErrorBoundary({ | CODE |
| LOW | frontend/src/components/error-boundaries.tsx | 180 | export function TemplatePillErrorBoundary({ | CODE |
| LOW | frontend/src/components/mcp-catalog-icons.tsx | 16 | function createEmbeddedCatalogIcon(href: string, darkHref?: string) { | CODE |
| LOW | frontend/src/components/dynamic-lucide-icon.tsx | 7 | function buildLegacyIconCandidates(rawName: string): string[] { | CODE |
| LOW | frontend/src/components/provider-config-form.tsx | 598 | export function ProviderConfigFormSkeleton() { | CODE |
| LOW | frontend/src/components/icons.tsx | 327 | function createCatalogIconRenderer( | CODE |
| LOW | frontend/src/components/icons.tsx | 342 | function createColoredLucideRenderer(Icon: LucideIcon, colorClassName: string) { | CODE |
| LOW | …nd/src/components/entitlement-required-empty-state.tsx | 25 | export function EntitlementRequiredEmptyState({ | CODE |
| LOW | …ntend/src/components/service-account-json-uploader.tsx | 28 | export function ServiceAccountJsonUploader({ | CODE |
| LOW | …d/src/components/organization/workspace-mcp-access.tsx | 103 | function getDefaultCustomExpiration(): string { | CODE |
| LOW | …mponents/organization/org-settings-scim-connection.tsx | 174 | export function OrgSettingsScimConnection({ | CODE |
| LOW⚡ | …end/src/components/organization/org-settings-agent.tsx | 2751 | function handleProviderCredentialsSaved() { | CODE |
| LOW⚡ | …end/src/components/organization/org-settings-agent.tsx | 2761 | function handleOpenAddCatalogModel(providerSlug: string) { | CODE |
| LOW⚡ | …end/src/components/organization/org-settings-agent.tsx | 2768 | function handleOpenEditCatalogModel(model: BuiltInCatalogEntry) { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 260 | function buildCloudCatalogDefaults( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 307 | function buildCatalogCreatePayload( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 353 | function buildCatalogUpdatePayload(values: CloudCatalogModelFormValues) { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 451 | function getBedrockSubscriptionStatus( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 702 | function getCustomSourceFlavorLabel(flavor?: string | null): string | null { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 765 | function getCustomSourceModelTitle( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 815 | function canEnableBuiltInCatalogModel(model: BuiltInCatalogEntry): boolean { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 847 | function getProviderDialogDefaults( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 863 | function buildProviderCreatePayload( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 876 | function buildProviderUpdatePayload( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 1319 | function ProviderAllowlistModelRow({ | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2407 | function invalidateOrganizationAgentQueries() { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2419 | function invalidateBuiltInAgentQueries() { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2537 | async function handleDeleteBuiltInCredentials( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2596 | async function handleEnableAllProviderModels( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2631 | async function handleDisableAllProviderModels( | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2667 | async function handleRefreshBuiltInProvider(provider: string) { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2688 | async function handleSubscribeBedrockModel(model: BuiltInCatalogEntry) { | CODE |
| LOW | …end/src/components/organization/org-settings-agent.tsx | 2716 | async function handleRefreshCustomProvider(source: CustomSourceCard) { | CODE |
| 11825 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 190 | // ── State ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 227 | // ── Data fetching ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 274 | // ── Derived ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 301 | // ── Effects ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 330 | // ── Stable callbacks ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 351 | // ── Handlers ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/components/skills/use-skills-studio.ts | 804 | // ── Return ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/lib/hooks.tsx | 6440 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/lib/hooks.tsx | 6442 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/conftest.py | 335 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 337 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 350 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 352 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 2070 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 2073 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 2187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/conftest.py | 2189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 143 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 145 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 575 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 577 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 2737 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/temporal/test_durable_agent_workflow.py | 2739 | # ============================================================================= | COMMENT |
| MEDIUM | tests/temporal/test_durable_agent_workflow.py | 434 | # ============================================================================= | COMMENT |
| MEDIUM | tests/temporal/test_durable_agent_workflow.py | 436 | # ============================================================================= | COMMENT |
| MEDIUM | tests/temporal/test_agent_config_workflow_boundary.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/temporal/test_agent_config_workflow_boundary.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_deduplicate.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_deduplicate.py | 88 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 171 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_deduplicate.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_registry_repository.py | 81 | # ============================================================================= | COMMENT |
| MEDIUM | tests/unit/test_registry_repository.py | 83 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry_repository.py | 255 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry_repository.py | 257 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 43 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 45 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 53 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 55 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 134 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 136 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 230 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 232 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 472 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 474 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 553 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 555 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 588 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 590 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 639 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_claude_adapter.py | 641 | # ============================================================================== | COMMENT |
| MEDIUM | tests/unit/test_claude_adapter.py | 26 | # ============================================================================== | COMMENT |
| MEDIUM | tests/unit/test_claude_adapter.py | 28 | # ============================================================================== | COMMENT |
| MEDIUM | tests/unit/test_claude_adapter.py | 74 | # ============================================================================== | COMMENT |
| MEDIUM | tests/unit/test_claude_adapter.py | 76 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_server.py | 5140 | # --------------------------------------------------------------------------- | COMMENT |
| 590 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/_route_utils.py | 16 | CODE | |
| LOW | tests/shared.py | 3 | CODE | |
| LOW | …mporal/test_durable_agent_runtime_error_attribution.py | 3 | CODE | |
| LOW | tests/temporal/test_payload_encryption.py | 3 | CODE | |
| LOW | tests/temporal/test_registry_tool_cancellation.py | 3 | CODE | |
| LOW | tests/temporal/test_agent_config_sandbox_parity.py | 3 | CODE | |
| LOW | tests/temporal/test_workflow_concurrency_limits.py | 8 | CODE | |
| LOW | tests/temporal/test_dsl_dependency_plan.py | 3 | CODE | |
| LOW | tests/temporal/test_agent_config_workflow_boundary.py | 7 | CODE | |
| LOW | tests/temporal/test_runtime_error_attribution.py | 3 | CODE | |
| LOW | …s/temporal/runtime_error_attribution_engine_harness.py | 3 | CODE | |
| LOW | tests/temporal/test_large_collection_regressions.py | 10 | CODE | |
| LOW | …ts/temporal/runtime_error_attribution_child_harness.py | 3 | CODE | |
| LOW | tests/temporal/durable_agent_failure_harness.py | 3 | CODE | |
| LOW | tests/temporal/runtime_error_attribution_harness.py | 3 | CODE | |
| LOW | tests/temporal/test_platform_tracing.py | 1 | CODE | |
| LOW | tests/temporal/test_dsl_workflow_replay.py | 3 | CODE | |
| LOW | tests/unit/test_sandbox_file_io.py | 3 | CODE | |
| LOW | tests/unit/test_case_attachments_internal_router.py | 1 | CODE | |
| LOW | tests/unit/test_temporal_errors.py | 1 | CODE | |
| LOW | tests/unit/test_agent_session_search_attributes.py | 3 | CODE | |
| LOW | tests/unit/test_workspace_sync_service.py | 3 | CODE | |
| LOW | tests/unit/test_control_plane_audit.py | 1 | CODE | |
| LOW | tests/unit/test_saml_client_config.py | 1 | CODE | |
| LOW | tests/unit/test_deduplicate.py | 9 | CODE | |
| LOW | tests/unit/test_executor_template_actions.py | 7 | CODE | |
| LOW | tests/unit/test_cases_query.py | 1 | CODE | |
| LOW | tests/unit/test_watchtower_service.py | 1 | CODE | |
| LOW | tests/unit/test_executor_error_policy.py | 3 | CODE | |
| LOW | tests/unit/test_service_accounts_update.py | 1 | CODE | |
| LOW | tests/unit/test_dsl_workflow_activity_retry.py | 1 | CODE | |
| LOW | tests/unit/test_read_tool_use_rewrite.py | 3 | CODE | |
| LOW | tests/unit/test_agent_llm_proxy.py | 1 | CODE | |
| LOW | tests/unit/test_registry_repository.py | 1 | CODE | |
| LOW | tests/unit/test_dynamic_workspace_service_rls.py | 1 | CODE | |
| LOW | tests/unit/test_agent_mcp_proxy_server.py | 1 | CODE | |
| LOW | tests/unit/test_admin_users_service.py | 3 | CODE | |
| LOW | tests/unit/test_registry_repositories_service.py | 3 | CODE | |
| LOW | tests/unit/test_registry_artifact_keys.py | 3 | CODE | |
| LOW | tests/unit/test_agent_session_approval_sink.py | 1 | CODE | |
| LOW | tests/unit/conftest.py | 1 | CODE | |
| LOW | tests/unit/test_mcp_config.py | 1 | CODE | |
| LOW | tests/unit/test_agent_sandbox_entrypoint.py | 1 | CODE | |
| LOW | tests/unit/test_temporal_codec.py | 1 | CODE | |
| LOW | tests/unit/test_role_acl.py | 1 | CODE | |
| LOW | tests/unit/test_dsl_workflow_logging.py | 1 | CODE | |
| LOW | tests/unit/test_mcp_auth.py | 1 | CODE | |
| LOW | tests/unit/test_workflow_execution_object_resolution.py | 1 | CODE | |
| LOW | tests/unit/test_tier_limits_cache.py | 1 | CODE | |
| LOW | tests/unit/test_rbac_service.py | 3 | CODE | |
| LOW | tests/unit/test_slack_helpers.py | 1 | CODE | |
| LOW | tests/unit/test_dsl_workflow_concurrency.py | 1 | CODE | |
| LOW | tests/unit/test_rbac_scopes.py | 3 | CODE | |
| LOW | tests/unit/test_dsl_validation.py | 1 | CODE | |
| LOW | tests/unit/test_mcp_json_patch.py | 1 | CODE | |
| LOW | tests/unit/test_workflow_execution_schemas.py | 1 | CODE | |
| LOW | tests/unit/test_workspace_creation_entitlements.py | 3 | CODE | |
| LOW | tests/unit/test_stdio_probe_nsjail.py | 3 | CODE | |
| LOW | tests/unit/test_inbox_service.py | 1 | CODE | |
| LOW | tests/unit/test_tenant_rls_registry.py | 1 | CODE | |
| 1062 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tracecat/store.py | 32 | Fetch the content for a specific source. Args: path: Path to the source file in the repository. | STRING |
| HIGH | tracecat/config.py | 733 | Parse a comma-separated environment variable into validated IP networks. Args: name: Environment variable n | STRING |
| HIGH | tracecat/ssh.py | 381 | Get a Git SSH command for the given Git URL. Args: git_url: Git URL object containing repository informatio | STRING |
| HIGH | tracecat/pagination.py | 600 | Execute a stable keyset-paginated SQLAlchemy query. The statement must not already contain ``ORDER BY``, ``LIMIT``, | STRING |
| HIGH | tracecat/base62.py | 9 | Convert a non-negative integer to a base62 string. Args: num: Non-negative integer to encode Returns: | STRING |
| HIGH | tracecat/base62.py | 35 | Convert a base62 string back to an integer. Args: encoded: Base62 encoded string Returns: Deco | STRING |
| HIGH | tracecat/organization/service.py | 117 | Retrieve a member of the organization by their user ID. Args: user_id (UserID): The unique identifi | STRING |
| HIGH | tracecat/organization/service.py | 723 | Trace a member's roles to their direct and group sources. Group sources by role and workspace so a role appears | STRING |
| HIGH | tracecat/organization/service.py | 849 | Update a member of the organization. This method updates the details of a specified member within the | STRING |
| HIGH | tracecat/organization/management.py | 111 | Create an organization record. Args: session: Database session. name: Organization name. sl | STRING |
| HIGH | tracecat/organization/management.py | 149 | Create a new organization with default settings and workspace. This is the canonical way to create an organization. | STRING |
| HIGH | tracecat/organization/management.py | 293 | Get the ID of the first/default organization. Args: session: Database session. Returns: Organi | STRING |
| HIGH | tracecat/tables/service.py | 443 | List all lookup tables for a workspace. Args: workspace_id: The ID of the workspace to list tables | STRING |
| HIGH | tracecat/tables/service.py | 506 | Get a lookup table by name. Args: table_name: The name of the table to get Returns: | STRING |
| HIGH | tracecat/tables/service.py | 543 | Create a new lookup table. Args: params: Parameters for creating the table Returns: | STRING |
| HIGH | tracecat/tables/service.py | 693 | Add a new column to an existing table. Args: table: The table to add the column to para | STRING |
| HIGH | tracecat/tables/service.py | 774 | Update a column in an existing table. Args: column: The column to update params: Parame | STRING |
| HIGH | tracecat/tables/service.py | 1070 | Insert a new row into the table. Args: table: The table to insert into params: The row | STRING |
| HIGH | tracecat/tables/service.py | 1164 | Update an existing row in the table. Args: table: The table containing the row to update | STRING |
| HIGH | tracecat/tables/service.py | 1574 | List rows in a table with cursor-based pagination. Args: table: The table to search in | STRING |
| HIGH | tracecat/tables/service.py | 1781 | Insert multiple rows into the table atomically. Args: table: The table to insert into r | STRING |
| HIGH | tracecat/tables/service.py | 2253 | Add a new column to an existing table. Args: params: Parameters for the new column Returns | STRING |
| HIGH | tracecat/tables/service.py | 2314 | Update a column in an existing table. Args: params: Parameters for updating the column Ret | STRING |
| HIGH | tracecat/tables/service.py | 2567 | Update an existing row in the table. Args: row_id: The ID of the row to update data: Di | STRING |
| HIGH | tracecat/tables/common.py | 318 | Convert a value to a SQL-compatible string based on type. Args: value: The value to convert to SQL format | STRING |
| HIGH | tracecat/auth/credentials.py | 938 | Factory for FastAPI dependency that enforces role-based access control. This function creates a dependency for | STRING |
| HIGH | tracecat/secrets/service.py | 319 | Get a workspace secret by name. Args: secret_name: The name of the secret to retrieve e | STRING |
| HIGH | tracecat/secrets/encryption.py | 38 | Encrypt a string using Fernet encryption. Args: value: The string to encrypt key: The encryption ke | STRING |
| HIGH | tracecat/secrets/encryption.py | 57 | Decrypt a Fernet-encrypted value back to a string. Args: encrypted_value: The encrypted bytes key: | STRING |
| HIGH | tracecat/cases/service.py | 880 | Get a case with its associated custom fields. Args: case_id: UUID of the case to retrieve | STRING |
| HIGH | tracecat/cases/service.py | 1131 | Update a case and optionally its custom fields. Args: case: The case object to update p | STRING |
| HIGH | tracecat/cases/service.py | 1978 | Ensure a workspace data row exists for the given case. Args: case_id: The case ID to ensure a row e | STRING |
| HIGH | tracecat/cases/service.py | 2075 | Upsert custom field values for a case. This method ensures the workspace row exists and updates field values. | STRING |
| HIGH | tracecat/cases/service.py | 2954 | Update an existing comment. Args: comment: The comment to update params: The updated co | STRING |
| HIGH | tracecat/cases/service.py | 3153 | Get a task by ID. Args: task_id: The ID of the task to get Returns: The task | STRING |
| HIGH | tracecat/cases/service.py | 3228 | Create a new task for a case. Args: case_id: The ID of the case to create a task for pa | STRING |
| HIGH | tracecat/cases/service.py | 3300 | Update a task. Args: task_id: The ID of the task to update params: The task update para | STRING |
| HIGH | tracecat/cases/agent_invocations/prompts.py | 32 | Build hidden thread context and the invoking comment's visible message. Args: context: Ordered thread snaps | STRING |
| HIGH | tracecat/cases/agent_invocations/output.py | 20 | Convert terminal agent output into valid case-comment content. Plain text is preserved through the normal comment v | STRING |
| HIGH | tracecat/cases/agent_sessions/service.py | 55 | Resolve a session or continuation to its Inbox-facing root session. Args: session_id: Agent session | STRING |
| HIGH | tracecat/cases/agent_sessions/service.py | 104 | Upsert one case interaction without committing the caller's transaction. Args: case_id: Case touche | STRING |
| HIGH | tracecat/cases/attachments/service.py | 207 | Create a new attachment for a case with security validations. Args: case: The case to attach the fi | STRING |
| HIGH | tracecat/cases/attachments/service.py | 415 | Download an attachment's content. Args: case: The case the attachment belongs to attach | STRING |
| HIGH | tracecat/cases/attachments/service.py | 455 | Generate a presigned URL for downloading an attachment. Args: case: The case the attachment belongs | STRING |
| HIGH | tracecat/agent/service.py | 489 | Discover models from a built-in gateway provider and upsert catalog rows. Built-in gateway providers (Ollama, v | STRING |
| HIGH | tracecat/agent/tools.py | 39 | Create a Tool from a registry action using index-based lookup. Args: action_name: Full canonical action nam | STRING |
| HIGH | tracecat/agent/tools.py | 168 | Build tools from a list of actions using index-based lookups. Args: namespaces: Optional list of namespace | STRING |
| HIGH | tracecat/agent/tokens.py | 167 | Create a signed MCP JWT containing workspace identity and allowed actions. This token is minted by the AgentExecuto | STRING |
| HIGH | tracecat/agent/tokens.py | 239 | Verify MCP JWT and return extracted claims. Args: token: The JWT string to verify Returns: MCP | STRING |
| HIGH | tracecat/agent/tokens.py | 430 | Verify LLM JWT and return extracted claims. Args: token: The JWT string to verify Returns: LLM | STRING |
| HIGH | tracecat/agent/tokens.py | 532 | Verify an Agent OTel relay JWT and return extracted claims. Args: token: The JWT string to verify. Ret | STRING |
| HIGH | tracecat/agent/skill/manifest.py | 113 | Normalize and validate a relative POSIX draft path. Args: path: User-provided file path. Returns: | STRING |
| HIGH | tracecat/agent/mcp/user_client.py | 414 | Execute a tool on a user MCP server. Args: server_name: Name of the MCP server (from config). | STRING |
| HIGH | tracecat/agent/mcp/executor.py | 95 | Execute a registry UDF through the shared executor queue. Args: action_name: The action to execute (e.g., " | STRING |
| HIGH | tracecat/agent/common/socket_io.py | 66 | Read a framed message from the socket. Args: reader: The asyncio stream reader. expected_type: If p | STRING |
| HIGH | tracecat/agent/sandbox/config.py | 271 | Build nsjail protobuf config for agent runtime execution. Args: rootfs: Path to the sandbox rootfs (same as | STRING |
| HIGH | tracecat/agent/sandbox/config.py | 560 | Construct a sanitized environment for the nsjail agent process. Args: config: Agent sandbox configuration. | STRING |
| HIGH | tracecat/agent/sandbox/nsjail.py | 153 | Spawn the Claude shim inside an NSJail sandbox or direct subprocess. This is the entrypoint for the orchestrator to | STRING |
| HIGH | tracecat/agent/sandbox/nsjail.py | 546 | Wait for a jailed runtime process to complete. Args: process: The nsjail subprocess. timeout_second | STRING |
| HIGH | tracecat/agent/executor/activity.py | 528 | Create one direct passthrough route. Args: base_url: Resolved provider base URL. model_ | STRING |
| 100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/sandbox/build.sh | 42 | # Create a temporary container and export its filesystem | COMMENT |
| MEDIUM | tests/conftest.py | 632 | # Create a registry repository for core actions | STRING |
| MEDIUM | tests/temporal/test_workflows.py | 755 | # Create the child workflow | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 2080 | # Create a simple configuration variable | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 3500 | # Create the child workflow | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 4313 | # Create a simple child workflow that doubles the input | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6194 | # Define the DSL workflow | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6325 | # Define the DSL workflow | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6411 | # Define the DSL workflow | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6612 | # Create a workflow with sequential actions to verify time advances | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6749 | # Create a child workflow that returns the current time | COMMENT |
| MEDIUM | tests/temporal/test_workflows.py | 6771 | # Create a parent workflow that calls the child and also captures its own time | COMMENT |
| MEDIUM | tests/temporal/test_durable_agent_workflow.py | 219 | # Create a mock registry lock for the tools | COMMENT |
| MEDIUM | tests/unit/test_oauth_state.py | 248 | # Create a valid state | COMMENT |
| MEDIUM | tests/unit/test_oauth_state.py | 261 | # Create an expired state | COMMENT |
| MEDIUM | tests/unit/test_oauth_state.py | 274 | # Create a second workspace for the "wrong workspace" test | COMMENT |
| MEDIUM | tests/unit/test_oauth_state.py | 284 | # Create a state with wrong workspace | COMMENT |
| MEDIUM | tests/unit/test_executor_template_actions.py | 166 | # Create a 2-step template: step1 adds 100, step2 multiplies by 2 | COMMENT |
| MEDIUM | tests/unit/test_executor_template_actions.py | 251 | # Create a template that passes data between steps using steps context | COMMENT |
| MEDIUM | tests/unit/test_executor_template_actions.py | 334 | # Create a template with a complex returns expression | COMMENT |
| MEDIUM | tests/unit/test_executor_template_actions.py | 421 | # Create a secret | COMMENT |
| MEDIUM | tests/unit/test_executor_template_actions.py | 617 | # Create a simple template | COMMENT |
| MEDIUM | tests/unit/test_identifiers.py | 212 | # Create a different UUID for comparison | COMMENT |
| MEDIUM | tests/unit/test_identifiers.py | 292 | # Create a model instance | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry.py | 159 | # Create a new module | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry.py | 162 | # Create a module spec for the test module | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry.py | 171 | # Create a file for the sync function | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry.py | 302 | # Create a new test module with datetime/UUID UDFs | COMMENT |
| MEDIUM⚡ | tests/unit/test_registry.py | 311 | # Create a file with UDF that accepts datetime | COMMENT |
| MEDIUM | tests/unit/test_registry.py | 190 | # Create a file for the async function | COMMENT |
| MEDIUM | tests/unit/test_registry.py | 209 | # Create a file for the deprecated function | COMMENT |
| MEDIUM | tests/unit/test_registry.py | 520 | # Create a test directory structure | COMMENT |
| MEDIUM⚡ | tests/unit/test_concurrency.py | 485 | # Create a generator that would be expensive if fully loaded | COMMENT |
| MEDIUM | tests/unit/test_concurrency.py | 20 | # Create a GatheringTaskGroup instance | COMMENT |
| MEDIUM | tests/unit/test_webhook.py | 425 | # Create a mock webhook with the ID attribute | COMMENT |
| MEDIUM | tests/unit/test_webhook.py | 455 | # Create a mock webhook with the ID attribute | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 42 | # Create a test workflow | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 178 | # Create a folder to rename | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 182 | # Create a child folder to verify path updates | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 240 | # Create a folder hierarchy | COMMENT |
| MEDIUM⚡ | tests/unit/test_workflow_folders_service.py | 265 | # Create a folder to delete | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 296 | # Create a folder hierarchy | COMMENT |
| MEDIUM | tests/unit/test_workflow_folders_service.py | 344 | # Create a folder | COMMENT |
| MEDIUM | tests/unit/test_validation.py | 658 | # Create a test template action with both AC and CC OAuth secrets as optional | COMMENT |
| MEDIUM | tests/unit/test_validation.py | 702 | # Create a second template action with required OAuth credential | COMMENT |
| MEDIUM | tests/unit/test_validation.py | 879 | # Create a template action with optional OAuth credentials (both AC and CC) | COMMENT |
| MEDIUM | tests/unit/test_validation.py | 935 | # Create a DSL that uses this action | COMMENT |
| MEDIUM⚡ | tests/unit/test_template_actions.py | 148 | # Create a new module | COMMENT |
| MEDIUM⚡ | tests/unit/test_template_actions.py | 151 | # Create a module spec for the test module | COMMENT |
| MEDIUM | tests/unit/test_template_actions.py | 862 | # Create a template action that uses VARS expressions | COMMENT |
| MEDIUM | tests/unit/test_template_actions.py | 1047 | # Create a template action with multi-level fallback | COMMENT |
| MEDIUM | tests/unit/test_template_actions.py | 1177 | # Create a manifest with: | COMMENT |
| MEDIUM | tests/unit/test_mcp_integrations.py | 4074 | # Create a second OAuth integration | COMMENT |
| MEDIUM | tests/unit/test_mcp_integrations.py | 6444 | # Create a dummy MCP provider for testing | COMMENT |
| MEDIUM | tests/unit/test_parse.py | 98 | # Create a temporary pyproject.toml file | COMMENT |
| MEDIUM | tests/unit/test_secrets_service.py | 614 | # Create a secret | COMMENT |
| MEDIUM⚡ | tests/unit/test_case_events_service.py | 456 | # Create an event with the original service (original user) | COMMENT |
| MEDIUM⚡ | tests/unit/test_case_events_service.py | 464 | # Create a service with a different user | COMMENT |
| MEDIUM | tests/unit/test_case_events_service.py | 58 | # Create a role without workspace_id (but with organization_id to pass org check) | COMMENT |
| MEDIUM | tests/unit/test_case_events_service.py | 476 | # Create an event with the different service (different user) | COMMENT |
| 168 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 296 | except Exception as exc: | CODE |
| LOW | tests/conftest.py | 379 | except Exception: | CODE |
| LOW | tests/conftest.py | 436 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 1629 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 1661 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 1762 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 1775 | except Exception as inner_e: | CODE |
| LOW | tests/conftest.py | 1793 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 1847 | except Exception: | CODE |
| LOW | tests/conftest.py | 1264 | except Exception as e: | STRING |
| LOW | tests/conftest.py | 1269 | except Exception as e: | STRING |
| LOW | tests/conftest.py | 1440 | except Exception as exc: | STRING |
| LOW | tests/temporal/test_workflows.py | 417 | except Exception as e: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 2852 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 2856 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 2970 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 2974 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 3091 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_durable_agent_workflow.py | 3095 | except Exception: | CODE |
| LOW | tests/temporal/test_durable_agent_workflow.py | 3223 | except Exception: | CODE |
| LOW | tests/temporal/test_durable_agent_workflow.py | 3227 | except Exception: | CODE |
| LOW⚡ | tests/temporal/test_dsl_workflow_replay.py | 166 | except Exception as handler_error: | CODE |
| LOW | tests/unit/test_agent_preset_service.py | 96 | except Exception: | CODE |
| MEDIUM | tests/unit/test_agent_sandbox_litellm.py | 1550 | " print('Error parsing JSON response', file=sys.stderr, flush=True)", | CODE |
| LOW | tests/unit/test_registry_import_race.py | 43 | except Exception as e: # noqa: BLE001 - regression guard | CODE |
| LOW | tests/unit/test_registry_import_race.py | 106 | except Exception as e: # noqa: BLE001 - collect all errors for assertion | CODE |
| MEDIUM | tests/unit/test_registry_import_race.py | 40 | def reloader() -> None: | CODE |
| LOW | tests/unit/test_skill_service.py | 102 | except Exception: | CODE |
| LOW⚡ | tests/unit/test_action_environment_override.py | 317 | except Exception: | CODE |
| LOW⚡ | tests/unit/test_action_environment_override.py | 325 | except Exception: | CODE |
| LOW | tests/unit/test_action_environment_override.py | 384 | except Exception: | CODE |
| LOW | tests/unit/test_tables_service.py | 2339 | except Exception as e: | STRING |
| LOW | tests/unit/test_agent_otel_relay.py | 240 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1243 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1275 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1304 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1357 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1424 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1457 | except Exception: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 1493 | except Exception: | CODE |
| LOW | tests/unit/test_workflow_import_service.py | 754 | except Exception as e: | CODE |
| LOW | tests/unit/test_case_attachments_service.py | 48 | except Exception: | CODE |
| LOW | tests/unit/executor/test_run_python_sdk_context.py | 282 | except Exception as exc: | CODE |
| LOW | …sts/integration/test_registry_artifact_loop_hotplug.py | 466 | except Exception as error: | CODE |
| LOW | tests/integration/test_syncv2_execv2_e2e.py | 469 | except Exception: | CODE |
| LOW | tests/integration/test_syncv2_execv2_e2e.py | 739 | except Exception as e: | CODE |
| LOW | tests/integration/test_syncv2_execv2_e2e.py | 778 | except Exception: | CODE |
| LOW | tests/integration/test_case_duration_benchmarks.py | 309 | except Exception: | CODE |
| LOW | tests/integration/test_case_duration_benchmarks.py | 450 | except Exception: | CODE |
| LOW⚡ | tests/backends/conftest.py | 83 | except Exception: | CODE |
| LOW | tests/backends/test_backend_benchmarks.py | 209 | except Exception: | CODE |
| LOW | tests/support/executor_backend.py | 160 | except Exception as e: | CODE |
| LOW | tests/support/executor_backend.py | 307 | except Exception as e: | CODE |
| MEDIUM | tests/registry/test_core_python.py | 542 | def main(): | CODE |
| MEDIUM | tests/registry/test_core_python.py | 591 | def main(): | CODE |
| MEDIUM | tests/registry/test_core_python.py | 714 | def main(): | CODE |
| LOW⚡ | tests/registry/test_core_python.py | 547 | except Exception as e: | CODE |
| LOW⚡ | tests/registry/test_core_python.py | 721 | except Exception as e: | CODE |
| LOW | tests/registry/test_core_python.py | 596 | except Exception as e: | CODE |
| LOW | tracecat/concurrency.py | 28 | except Exception: | CODE |
| 673 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_oauth_state.py | 0 | create an integration service instance for testing. | STRING |
| HIGH | tests/unit/test_mcp_integrations.py | 0 | create an integration service instance for testing. | STRING |
| HIGH | tests/unit/test_integrations_service.py | 0 | create an integration service instance for testing. | STRING |
| HIGH | tests/unit/test_executor_template_actions.py | 0 | test helper: execute action using production code path. | STRING |
| HIGH | tests/unit/test_validation.py | 0 | test helper: execute action using production code path. | STRING |
| HIGH | tests/unit/test_template_actions.py | 0 | test helper: execute action using production code path. | STRING |
| HIGH | tests/unit/test_registry.py | 0 | pytest fixture that creates a mock package with files and cleans up after the test. | STRING |
| HIGH | tests/unit/test_template_actions.py | 0 | pytest fixture that creates a mock package with files and cleans up after the test. | STRING |
| HIGH | tests/unit/test_executor.py | 0 | pytest fixture that creates a mock package with files and cleans up after the test. | STRING |
| HIGH | tests/unit/test_dynamic_workspace_service_rls.py | 0 | disable minio-dependent workflow bucket setup for these tests. | STRING |
| HIGH | tests/unit/test_tables_service.py | 0 | disable minio-dependent workflow bucket setup for these tests. | STRING |
| HIGH | tests/unit/test_case_fields_service.py | 0 | disable minio-dependent workflow bucket setup for these tests. | STRING |
| HIGH | tests/unit/test_workflow_folders_service.py | 0 | create a test workflow in the database and return its id. | STRING |
| HIGH | tests/unit/test_workflow_definitions_service.py | 0 | create a test workflow in the database and return its id. | STRING |
| HIGH | tests/unit/test_tags_service.py | 0 | create a test workflow in the database and return its id. | STRING |
| HIGH | tests/unit/test_workflow_folders_service.py | 0 | folder rows should report direct child counts, not just boolean presence. | STRING |
| HIGH | tests/unit/test_skill_folders_service.py | 0 | folder rows should report direct child counts, not just boolean presence. | STRING |
| HIGH | tests/unit/test_agent_folders_service.py | 0 | folder rows should report direct child counts, not just boolean presence. | STRING |
| HIGH | tests/unit/test_tenant_rls_registry.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_connection_service.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_connection_auth.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_audit_chain.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_protocol.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_provisioning.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_rls.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_scim_mappings.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_rls_failure_repros.py | 0 | disable minio-dependent workflow bucket setup for pure unit repro tests. | STRING |
| HIGH | tests/unit/test_skill_folders_service.py | 0 | read methods should reject callers without agent:read before querying. | STRING |
| HIGH | tests/unit/test_agent_folders_service.py | 0 | read methods should reject callers without agent:read before querying. | STRING |
| HIGH | tests/unit/test_agent_tags_service.py | 0 | read methods should reject callers without agent:read before querying. | STRING |
| HIGH | tests/unit/test_skill_tags_service.py | 0 | read methods should reject callers without agent:read before querying. | STRING |
| HIGH | tests/unit/test_case_events_service.py | 0 | test that service initialization requires a workspace id. | STRING |
| HIGH | tests/unit/test_integrations_service.py | 0 | test that service initialization requires a workspace id. | STRING |
| HIGH | tests/unit/test_cases_service.py | 0 | test that service initialization requires a workspace id. | STRING |
| HIGH | tests/unit/test_case_comments_service.py | 0 | test that service initialization requires a workspace id. | STRING |
| HIGH | tests/unit/test_case_fields_service.py | 0 | test that service initialization requires a workspace id. | STRING |
| HIGH | tests/migration/test_dynamic_workspace_rls_migration.py | 0 | disable minio-dependent workflow bucket setup for migration tests. | STRING |
| HIGH | tests/migration/test_scim_shadow_tables_migration.py | 0 | disable minio-dependent workflow bucket setup for migration tests. | STRING |
| HIGH | tests/migration/test_scim_connection_migration.py | 0 | disable minio-dependent workflow bucket setup for migration tests. | STRING |
| HIGH | tests/migration/test_dynamic_workspace_rls_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{test_db_name} | STRING |
| HIGH | tests/migration/test_case_fields_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{test_db_name} | STRING |
| HIGH | tests/migration/test_migration_advisory_lock.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{test_db_name} | STRING |
| HIGH | …s/migration/test_uuid_timestamp_user_type_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{test_db_name} | STRING |
| HIGH | …sts/migration/test_case_numbers_workspace_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …/migration/test_membership_aggregate_root_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …emove_legacy_org_scoped_builtin_registry_repository.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …ts/migration/test_workspace_skills_preset_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | tests/migration/test_case_versions_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …igration/test_multi_workspace_entitlement_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | tests/migration/test_skill_slug_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …tion/test_deferred_case_number_allocation_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …sts/migration/test_comment_activity_audit_migration.py | 0 | select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where pg_stat_activity.datname = '{db_name}' and | STRING |
| HIGH | …/migration/test_membership_aggregate_root_migration.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | …emove_legacy_org_scoped_builtin_registry_repository.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | tests/migration/test_case_versions_migration.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | …sts/migration/test_comment_activity_audit_migration.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | …ts/migration/test_workspace_skills_preset_migration.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | …tion/test_deferred_case_number_allocation_migration.py | 0 | insert into organization (id, name, slug, is_active) values (:id, 'migration test org', :slug, true) | STRING |
| HIGH | tracecat/admin/registry/service.py | 0 | promote a registry version to be the current version for a repository. | STRING |
| HIGH | tracecat/admin/registry/router.py | 0 | promote a registry version to be the current version for a repository. | STRING |
| 36 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/conftest.py | 1943 | except S3Error: | CODE |
| HIGH | tests/conftest.py | 112 | except ValueError: | CODE |
| HIGH | tests/temporal/test_workflows.py | 241 | except ValidationError: | CODE |
| HIGH | tests/temporal/test_durable_agent_workflow.py | 2856 | except Exception: | CODE |
| HIGH | tests/temporal/test_durable_agent_workflow.py | 2974 | except Exception: | CODE |
| HIGH | tests/temporal/test_durable_agent_workflow.py | 3095 | except Exception: | CODE |
| HIGH | tests/temporal/test_durable_agent_workflow.py | 3227 | except Exception: | CODE |
| HIGH | tests/unit/test_registry_artifacts.py | 3602 | except TimeoutError: | CODE |
| HIGH | tests/unit/test_action_environment_override.py | 317 | except Exception: | CODE |
| HIGH | tests/unit/test_action_environment_override.py | 325 | except Exception: | CODE |
| HIGH | tests/unit/test_action_environment_override.py | 384 | except Exception: | CODE |
| HIGH | tests/unit/test_contexts.py | 123 | except ValueError: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1457 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 240 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1243 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1275 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1304 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1493 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 224 | except (OSError, NotImplementedError): | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1357 | except Exception: | CODE |
| HIGH | tests/unit/test_agent_otel_relay.py | 1424 | except Exception: | CODE |
| HIGH | tests/unit/test_case_tags_service.py | 159 | except (IntegrityError, DatabaseError, NoResultFound): | CODE |
| HIGH | tests/unit/test_sandbox.py | 188 | except ValueError: | CODE |
| HIGH | tests/unit/test_agent_socket_io.py | 375 | except TimeoutError: | CODE |
| HIGH | tests/unit/test_agent_socket_io.py | 437 | except TimeoutError: | CODE |
| HIGH | …/unit/executor/test_action_gateway_signal_lifecycle.py | 125 | except (BrokenPipeError, EOFError, OSError): | CODE |
| HIGH | tests/integration/test_syncv2_execv2_e2e.py | 469 | except Exception: | CODE |
| HIGH | tests/integration/test_syncv2_execv2_e2e.py | 778 | except Exception: | CODE |
| HIGH | tests/integration/test_search_storage.py | 551 | except SearchError: | CODE |
| HIGH | tests/integration/test_case_duration_benchmarks.py | 676 | except asyncio.CancelledError: | CODE |
| HIGH | tracecat/concurrency.py | 28 | except Exception: | CODE |
| HIGH | tracecat/exceptions.py | 314 | except (ValueError, TypeError): | CODE |
| HIGH | tracecat/workspace_sync/transport.py | 457 | except Exception: | CODE |
| HIGH | tracecat/workspace_sync/resources.py | 353 | except ValueError: | CODE |
| HIGH | tracecat/workspace_sync/adapters/table.py | 358 | except ValueError: | CODE |
| HIGH | tracecat/logger/_logger.py | 70 | except ValueError: | CODE |
| HIGH | tracecat/logger/_logger.py | 62 | except Exception: | CODE |
| HIGH | tracecat/auth/saml.py | 236 | except OSError: | CODE |
| HIGH | tracecat/auth/saml.py | 268 | except OSError: | CODE |
| HIGH | tracecat/auth/saml.py | 228 | except OSError: | CODE |
| HIGH | tracecat/auth/saml.py | 260 | except OSError: | CODE |
| HIGH | tracecat/cases/service.py | 270 | except ValueError: | CODE |
| HIGH | tracecat/cases/agent_sessions/backfill.py | 240 | except (UnicodeDecodeError, ValueError): | CODE |
| HIGH | tracecat/agent/service.py | 214 | except Exception: | CODE |
| HIGH | tracecat/agent/runtime_services.py | 75 | except asyncio.CancelledError: | CODE |
| HIGH | tracecat/agent/skill/service.py | 2290 | except UnicodeDecodeError: | CODE |
| HIGH | tracecat/agent/skill/service.py | 2351 | except UnicodeDecodeError: | CODE |
| HIGH | …brary/skills/create-sigma-rule/scripts/attack_check.py | 135 | except ImportError: | CODE |
| HIGH | …brary/skills/create-sigma-rule/scripts/attack_check.py | 534 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …brary/skills/create-sigma-rule/scripts/attack_check.py | 166 | except (OSError, UnicodeDecodeError, json.JSONDecodeError): | CODE |
| HIGH | tracecat/agent/backends/base.py | 299 | except Exception: | CODE |
| HIGH | tracecat/agent/catalog/router.py | 121 | except TracecatValidationError: | CODE |
| HIGH | tracecat/agent/runtime/claude_code/transport.py | 343 | except asyncio.CancelledError: | CODE |
| HIGH | tracecat/agent/runtime/claude_code/runtime.py | 1978 | except asyncio.CancelledError: | CODE |
| HIGH | tracecat/agent/provider/service.py | 213 | except Exception: | CODE |
| HIGH | tracecat/agent/adapter/vercel.py | 136 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | tracecat/agent/sandbox/llm_proxy.py | 972 | except OSError: | CODE |
| HIGH | tracecat/agent/sandbox/llm_proxy.py | 1120 | except Exception: | CODE |
| HIGH | tracecat/agent/sandbox/otel_relay.py | 949 | except Exception: | CODE |
| HIGH | tracecat/agent/sandbox/otel_relay.py | 921 | except OSError: | CODE |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 288 | CODE | |
| LOW | tests/conftest.py | 494 | CODE | |
| LOW | tests/conftest.py | 610 | CODE | |
| LOW | tests/conftest.py | 1707 | CODE | |
| LOW | tests/conftest.py | 504 | CODE | |
| LOW | tests/conftest.py | 626 | CODE | |
| LOW | tests/temporal/test_workflows.py | 346 | CODE | |
| LOW | tests/temporal/test_registry_tool_cancellation.py | 47 | CODE | |
| LOW | tests/temporal/test_durable_agent_workflow.py | 2747 | CODE | |
| LOW | tests/temporal/test_durable_agent_workflow.py | 2866 | CODE | |
| LOW | tests/temporal/test_durable_agent_workflow.py | 2984 | CODE | |
| LOW | tests/temporal/test_durable_agent_workflow.py | 3105 | CODE | |
| LOW | tests/unit/test_agent_backends.py | 1014 | CODE | |
| LOW | tests/unit/test_agent_runtime.py | 4068 | CODE | |
| LOW | tests/unit/test_rbac_service.py | 1562 | CODE | |
| LOW | tests/unit/test_mcp_server.py | 11998 | CODE | |
| LOW | tests/unit/test_agent_sandbox_litellm.py | 2007 | CODE | |
| LOW | tests/unit/test_workflow_executions.py | 125 | CODE | |
| LOW | tests/unit/test_workflow_executions.py | 634 | CODE | |
| LOW | tests/unit/test_workflow_executions.py | 730 | CODE | |
| LOW | tests/unit/test_storage_cache.py | 22 | CODE | |
| LOW | tests/unit/test_vercel_sse_resume.py | 37 | CODE | |
| LOW | tests/unit/test_tables_service.py | 300 | CODE | |
| LOW | tests/unit/test_executor_sandbox_nsjail.py | 654 | CODE | |
| LOW | tests/unit/test_executor_sandbox_nsjail.py | 1023 | CODE | |
| LOW | tests/unit/test_config.py | 365 | CODE | |
| LOW | tests/unit/test_agent_http_framing.py | 139 | CODE | |
| LOW | tests/unit/test_group_member_rls.py | 23 | CODE | |
| LOW | tests/unit/test_outbound.py | 681 | CODE | |
| LOW | tests/unit/test_formatters.py | 331 | CODE | |
| LOW | tests/unit/test_agent_socket_io.py | 74 | CODE | |
| LOW | tests/unit/test_agent_socket_io.py | 184 | CODE | |
| LOW | tests/unit/test_agent_socket_io.py | 279 | CODE | |
| LOW | tests/unit/test_agent_socket_io.py | 352 | CODE | |
| LOW | tests/unit/test_agent_socket_io.py | 414 | CODE | |
| LOW | …/unit/executor/test_action_gateway_signal_lifecycle.py | 93 | CODE | |
| LOW | tests/integration/test_skill_mcp_deletion.py | 22 | CODE | |
| LOW | tests/integration/test_skill_mcp_deletion.py | 132 | CODE | |
| LOW | …ration/test_registry_artifact_cache_mount_lifecycle.py | 567 | CODE | |
| LOW | tests/backends/test_agent_dispatch_transaction.py | 120 | CODE | |
| LOW | tests/support/executor_backend.py | 73 | CODE | |
| LOW | tests/registry/test_core_transform.py | 771 | CODE | |
| LOW | tests/migration/test_dynamic_workspace_rls_migration.py | 1047 | CODE | |
| LOW | tests/migration/test_dynamic_workspace_rls_migration.py | 1185 | CODE | |
| LOW | tests/migration/test_deleted_dependency_cleanup.py | 18 | CODE | |
| LOW | tests/migration/test_agent_chat_visibility_migration.py | 19 | CODE | |
| LOW | tests/migration/test_session_backend_identity.py | 14 | CODE | |
| LOW | tests/migration/test_session_ancestry.py | 16 | CODE | |
| LOW | tracecat/outbound.py | 202 | CODE | |
| LOW | tracecat/ssh.py | 151 | CODE | |
| LOW | tracecat/pagination.py | 386 | CODE | |
| LOW | tracecat/temporal/errors.py | 335 | CODE | |
| LOW | tracecat/temporal/codec.py | 313 | CODE | |
| LOW | tracecat/temporal/error_chain.py | 8 | CODE | |
| LOW | tracecat/tables/service.py | 145 | CODE | |
| LOW | tracecat/tables/service.py | 370 | CODE | |
| LOW | tracecat/tables/service.py | 769 | CODE | |
| LOW | tracecat/tables/service.py | 1560 | CODE | |
| LOW | tracecat/tables/service.py | 1773 | CODE | |
| LOW | tracecat/tables/service.py | 1946 | CODE | |
| 238 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/temporal/test_workflows.py | 5636 | items="${{ ACTIONS.is_one.result || ACTIONS.is_two.result || ACTIONS.is_three.result }}" | CODE |
| HIGH | tests/temporal/test_workflows.py | 5703 | "value": "${{ ACTIONS.is_one.result || ACTIONS.is_two.result }}" | CODE |
| HIGH | tests/unit/test_read_tool_use_rewrite.py | 132 | '"offset": null}', | CODE |
| HIGH | tests/unit/test_pan_templates.py | 23 | PRISMA_BASE_URL = "${{ inputs.base_url || VARS.pan_prisma.base_url }}" | CODE |
| HIGH | tests/unit/test_pan_templates.py | 24 | SCM_BASE_URL = '${{ inputs.base_url || VARS.pan_strata.base_url || "https://api.strata.paloaltonetworks.com" }}' | CODE |
| HIGH⚡ | tests/unit/test_pan_templates.py | 79 | "${{ inputs.base_url || VARS.pan_os.base_url }}" | CODE |
| HIGH | tests/unit/test_template_actions.py | 636 | "data": "${{ inputs.limit || 100 }}", | CODE |
| HIGH | tests/unit/test_template_actions.py | 889 | "value": "${{ inputs.url || VARS.test.url }}", | CODE |
| HIGH | tests/unit/test_template_actions.py | 913 | "value": "${{ inputs.custom_timeout || VARS.test.timeout }}", | CODE |
| HIGH | tests/unit/test_template_actions.py | 1068 | "value": '${{ inputs.url || VARS.config.url || "http://default-url.com" }}', | CODE |
| HIGH⚡ | tests/unit/test_template_actions.py | 1024 | """Test template action with multi-level fallback chain using || operator. | STRING |
| HIGH⚡ | tests/unit/test_template_actions.py | 1027 | ${{ inputs.url || VARS.config.url || "http://default-url.com" }} | STRING |
| HIGH | tests/unit/test_template_actions.py | 838 | 3. VARS expressions work with fallback logic (e.g., inputs.value || VARS.default) | STRING |
| HIGH | tests/unit/test_bitbucket_vcs.py | 111 | await git.push("", sha, "main") | CODE |
| HIGH⚡ | tests/unit/test_bitbucket_vcs.py | 260 | await one.push("", sha_one, "main") | CODE |
| HIGH⚡ | tests/unit/test_bitbucket_vcs.py | 262 | await two.push("", sha_two, "main") | CODE |
| HIGH | tests/unit/test_bitbucket_vcs.py | 523 | await git.push("", seeded, "main") | CODE |
| HIGH | …sts/unit/test_agent_reasoning_effort_payload_compat.py | 6 | ``"off"`` disables thinking, and any other level, or null, enables it. An | STRING |
| HIGH | tests/registry/test_core_http.py | 1570 | "previous": null, | STRING |
| HIGH | …igration/test_multi_workspace_entitlement_migration.py | 76 | """Tiers without the key get `true`; any stored value, including JSON null, is kept. | STRING |
| HIGH | …igration/test_multi_workspace_entitlement_migration.py | 109 | '{"multi_workspace": null}'::jsonb | CODE |
| HIGH | …sts/migration/test_comment_activity_audit_migration.py | 165 | f'{{"comment_id":"{comment_id}","parent_id":null,' | STRING |
| HIGH | tracecat/workspace_sync/transport.py | 1836 | await git.push(remote, sha, branch) | CODE |
| HIGH | tracecat/workspace_sync/transport.py | 2082 | await git.push(remote, sha, branch) | CODE |
| HIGH | tracecat/agent/service.py | 995 | non-null) are intentionally left alone — they represent explicit | STRING |
| HIGH | tracecat/agent/tokens.py | 340 | "and catalog_id is null, the gateway resolves workspace provider " | CODE |
| HIGH | tracecat/agent/preset/schemas.py | 208 | f"{field_name} cannot be null; omit the field to leave it unchanged" | CODE |
| HIGH | tracecat/agent/backends/schemas.py | 41 | "If null, the run follows the preset's current version." | CODE |
| HIGH | tracecat/agent/common/types.py | 24 | ``False``; any other level, or null, maps to ``True``. An explicit | STRING |
| HIGH | tracecat/agent/session/schemas.py | 64 | "If null, the session follows the preset's current version." | CODE |
| HIGH | tracecat/mcp/server.py | 2368 | do not parse — `${{ TRIGGER.x || false }}` is a parse error. \ | CODE |
| HIGH | tracecat/mcp/server.py | 2369 | Use `${{ TRIGGER.x || False }}`, `${{ TRIGGER.x || 0 }}`, or `${{ TRIGGER.x || "" }}`. | CODE |
| HIGH | tracecat/mcp/server.py | 2389 | Authorization: "Bearer ${{ SECRETS.azure_log_analytics_oauth.AZURE_LOG_ANALYTICS_USER_TOKEN || SECRETS.azure_log_analy | CODE |
| HIGH | tracecat/mcp/server.py | 3024 | ${{ ACTIONS.hit.result && FN.length(FN.compact(ACTIONS.existing_case.result.fields)) > 0 | CODE |
| HIGH | tracecat/variables/schemas.py | 60 | "values cannot be null; omit the field to leave it unchanged" | CODE |
| HIGH | tracecat/workflow/management/router.py | 1217 | If folder_id is null, the workflow will be moved to the root (no folder). | STRING |
| HIGH | tracecat/db/models.py | 47 | null, | CODE |
| HIGH | tracecat/db/models.py | 2706 | doc="The ID of the user who made the comment. If null, the comment is system generated.", | CODE |
| HIGH | tracecat/db/models.py | 2736 | doc="The ID of the parent comment. If null, the comment is a top-level comment.", | CODE |
| HIGH | tracecat/db/models.py | 2897 | doc="The ID of the user who made the event. If null, the event is system generated.", | CODE |
| HIGH | …istry/tracecat_registry/integrations/cloudflare_sdk.py | 112 | "If null, fetches every page." | CODE |
| HIGH | …-registry/tracecat_registry/integrations/google_api.py | 466 | description="Maximum number of pages to fetch. If null, fetches every page.", | CODE |
| HIGH | …ges/tracecat-ee/tracecat_ee/agent/approvals/service.py | 11 | from sqlalchemy import func, null, select | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | frontend/tests/profile-settings.test.ts | 5 | expect(getProfileNameUpdate("Jane Doe", " Jane Doe ")).toBeNull() | CODE |
| LOW⚡ | frontend/tests/profile-settings.test.ts | 9 | expect(getProfileNameUpdate("Jane Doe", " ")).toEqual({ | CODE |
| LOW⚡ | frontend/tests/profile-settings.test.ts | 16 | expect(getProfileNameUpdate("Jane Doe", " Ada Lovelace ")).toEqual({ | CODE |
| LOW | frontend/tests/add-workspace-member.test.tsx | 125 | await user.type(screen.getByPlaceholderText("user@example.com"), email) | CODE |
| LOW | frontend/tests/add-workspace-member.test.tsx | 141 | screen.queryByPlaceholderText("user@example.com") | CODE |
| LOW | frontend/tests/agent-preset-panels.test.tsx | 309 | "placeholder", | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 297 | target: { value: "user@example.com" }, | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 304 | email: "user@example.com", | CODE |
| LOW⚡ | frontend/tests/auth-ui-matrix.test.tsx | 328 | target: { value: "user@example.com" }, | CODE |
| LOW⚡ | frontend/tests/auth-ui-matrix.test.tsx | 335 | email: "user@example.com", | CODE |
| LOW⚡ | frontend/tests/auth-ui-matrix.test.tsx | 345 | mockUser = { email: "admin@example.com", isSuperuser: true } | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 358 | mockUser = { email: "admin@example.com", isSuperuser: true } | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 415 | mockUser = { email: "admin@example.com", isSuperuser: true } | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 426 | mockUser = { email: "admin@example.com", isSuperuser: true } | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 436 | mockUser = { email: "admin@example.com", isSuperuser: true } | CODE |
| LOW | frontend/tests/auth-ui-matrix.test.tsx | 454 | mockUser = { email: "user@example.com", isSuperuser: false } | CODE |
| LOW | frontend/tests/invite-member-dialog.test.tsx | 250 | await user.type(screen.getByPlaceholderText("user@example.com"), "a@b.com") | CODE |
| LOW | frontend/tests/invite-member-dialog.test.tsx | 289 | await user.type(screen.getByPlaceholderText("user@example.com"), "a@b.com") | CODE |
| LOW | frontend/tests/invite-member-dialog.test.tsx | 319 | await user.type(screen.getByPlaceholderText("user@example.com"), "a@b.com") | CODE |
| LOW | frontend/tests/invite-member-dialog.test.tsx | 332 | await user.type(screen.getByPlaceholderText("user@example.com"), "a@b.com") | CODE |
| LOW | frontend/tests/workspace-sync-settings.test.tsx | 269 | "placeholder", | CODE |
| LOW | …ntend/src/components/service-account-json-uploader.tsx | 299 | placeholder="user@example.com" | CODE |
| LOW | …d/src/components/organization/invite-member-dialog.tsx | 214 | placeholder="user@example.com" | CODE |
| LOW | …nd/src/components/admin/create-organization-dialog.tsx | 133 | placeholder="Acme Inc" | CODE |
| LOW | frontend/src/components/admin/admin-users-table.tsx | 227 | placeholder="user@example.com" | CODE |
| LOW | …/src/components/admin/admin-org-invitations-dialog.tsx | 226 | placeholder="user@example.com" | CODE |
| LOW | …end/src/components/workspaces/add-workspace-member.tsx | 220 | placeholder="user@example.com" | CODE |
| LOW⚡ | tests/unit/test_table_csv_importer.py | 206 | csv_row = {"csv_name": "John Doe"} | CODE |
| LOW⚡ | tests/unit/test_table_csv_importer.py | 215 | "\ufeffcsv_name": "John Doe", | CODE |
| LOW | tests/unit/test_table_csv_importer.py | 130 | "csv_name": "John Doe", | CODE |
| LOW | tests/unit/test_table_csv_importer.py | 148 | "name": "John Doe", | CODE |
| LOW | tests/unit/test_table_csv_importer.py | 226 | "name": "John Doe", | CODE |
| LOW | tests/unit/test_table_csv_importer.py | 269 | "csv_name": "John Doe", | CODE |
| LOW | tests/unit/test_table_csv_importer.py | 282 | "name": "John Doe", | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 167 | fake_session, uuid.uuid4(), "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 245 | fake_session, uuid.uuid4(), ["user@example.com"] | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 248 | assert email == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 344 | fake_session, uuid.uuid4(), ["admin@example.com"] | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 347 | assert email == "admin@example.com" | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 409 | monkeypatch.setattr(saml, "TRACECAT__AUTH_SUPERADMIN_EMAIL", "admin@example.com") | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 414 | fake_session, "admin@example.com" | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 423 | monkeypatch.setattr(saml, "TRACECAT__AUTH_SUPERADMIN_EMAIL", "admin@example.com") | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 428 | fake_session, "admin@example.com" | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 437 | monkeypatch.setattr(saml, "TRACECAT__AUTH_SUPERADMIN_EMAIL", "admin@example.com") | CODE |
| LOW⚡ | tests/unit/test_saml_client_config.py | 441 | fake_session, "user@example.com" | CODE |
| LOW | tests/unit/test_saml_client_config.py | 369 | fake_session, uuid.uuid4(), ["admin@example.com"] | CODE |
| LOW | tests/unit/test_saml_client_config.py | 461 | fake_session, org_id, "admin@example.com" | CODE |
| LOW | tests/unit/test_saml_client_config.py | 480 | fake_session, uuid.uuid4(), "admin@example.com" | CODE |
| LOW | tests/unit/test_saml_client_config.py | 553 | "user@example.com", | STRING |
| LOW | tests/unit/test_watchtower_service.py | 220 | last_user_email="user@example.com", | CODE |
| LOW | tests/unit/test_watchtower_service.py | 282 | email="user@example.com", | CODE |
| LOW | tests/unit/test_expressions.py | 165 | "metadata": {"name": "John Doe", "age": 30}, | CODE |
| LOW | tests/unit/test_expressions.py | 208 | "metadata": {"name": "John Doe", "age": 30}, | CODE |
| LOW⚡ | tests/unit/test_pan_templates.py | 219 | group = {"id": "g1", "name": "blk", "folder": "Shared", "static": ["placeholder"]} | CODE |
| LOW⚡ | tests/unit/test_pan_templates.py | 227 | "static": ["placeholder", indicator["name"]], | CODE |
| LOW | tests/unit/test_pan_templates.py | 255 | "static": {"member": "placeholder"}, | CODE |
| LOW | tests/unit/test_pan_templates.py | 268 | "static": {"member": ["placeholder", "tc-block-203.0.113.10"]}, | CODE |
| LOW⚡ | tests/unit/test_mcp_auth.py | 803 | assert merged.claims["email"] == "user@example.com" | CODE |
| LOW⚡ | tests/unit/test_mcp_auth.py | 821 | email="user@example.com", | CODE |
| LOW⚡ | tests/unit/test_mcp_auth.py | 840 | "email": "user@example.com", | CODE |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | env-migration.sh | 33 | # Check if .env file exists | COMMENT |
| LOW | env-migration.sh | 39 | # Check if .env.template file exists | COMMENT |
| LOW | env.sh | 24 | # Check if running on macOS and adjust sed_option accordingly | COMMENT |
| LOW | …src/components/builder/panel/action-panel-tooltips.tsx | 27 | # Check if user has admin role | COMMENT |
| LOW | …src/components/builder/panel/action-panel-tooltips.tsx | 37 | # Check if failed login attempts exceed threshold | COMMENT |
| LOW | tests/conftest.py | 1543 | # Check if organization exists | COMMENT |
| LOW | tests/conftest.py | 1584 | # Check if organization exists in this session | COMMENT |
| LOW | tests/conftest.py | 1668 | # Check if organization exists | COMMENT |
| LOW | tests/conftest.py | 1722 | # Set timeouts to avoid deadlocks with parallel workers | COMMENT |
| LOW | tests/conftest.py | 1747 | # Set timeouts to avoid deadlocks with parallel workers | COMMENT |
| LOW | tests/conftest.py | 1780 | # Set timeouts to avoid deadlocks with parallel workers | COMMENT |
| LOW | tests/temporal/test_durable_agent_workflow.py | 461 | # Check if user already exists | COMMENT |
| LOW⚡ | tests/unit/test_registry.py | 165 | # Set __path__ to the temporary directory | COMMENT |
| LOW | tests/unit/test_validation.py | 435 | # Check if any error message matches the expected pattern | COMMENT |
| LOW⚡ | tests/unit/test_template_actions.py | 154 | # Set __path__ to the temporary directory | COMMENT |
| LOW | tests/unit/test_integrations_service.py | 779 | # Set expiration to 4 minutes in future (within refresh window) | COMMENT |
| LOW⚡ | tests/unit/test_executor.py | 302 | # Set __path__ to the temporary directory | COMMENT |
| LOW | tests/unit/test_rls_policies.py | 298 | # Set context to a random workspace ID (likely no matching rows) | COMMENT |
| LOW | tests/unit/test_rls_policies.py | 319 | # Set context to a random org ID | COMMENT |
| LOW | tests/integration/test_syncv2_execv2_e2e.py | 299 | # Check if organization exists | COMMENT |
| LOW⚡ | tests/backends/conftest.py | 76 | # Check if any registry version has a tarball (regardless of org) | COMMENT |
| LOW | tests/registry/test_core_python.py | 20 | # Check if nsjail is available (required for the sandbox) | COMMENT |
| LOW | tests/registry/test_core_python.py | 23 | # Check if the sandbox rootfs exists | COMMENT |
| LOW | .devcontainer/safe-yolo.sh | 7 | # Check if Docker is installed | COMMENT |
| LOW | .devcontainer/safe-yolo.sh | 13 | # Check if Docker is running | COMMENT |
| LOW | tracecat/ssh.py | 176 | # Check if host already exists in known_hosts | COMMENT |
| LOW | tracecat/organization/management.py | 317 | # Check if any organization exists | COMMENT |
| LOW | tracecat/tables/service.py | 916 | # Check if another index already exists | COMMENT |
| LOW | tracecat/tables/service.py | 1119 | # Check if we have any unique columns to use for conflict resolution | COMMENT |
| LOW | tracecat/inbox/providers/agent_runs.py | 404 | # Check if there are more items | COMMENT |
| LOW | tracecat/auth/users.py | 142 | # Check if this is attempting to be the first user (superadmin) | COMMENT |
| LOW | tracecat/auth/credentials.py | 665 | # Check if user is an org owner/admin via RBAC - they can access all workspaces | COMMENT |
| LOW | tracecat/auth/saml.py | 717 | # Check if request has expired but don't delete yet | COMMENT |
| LOW | tracecat/auth/saml.py | 792 | # Check if the request has expired | COMMENT |
| LOW | tracecat/cases/service.py | 3380 | # Check if the field was provided in the update payload using model_fields_set | COMMENT |
| LOW | tracecat/cases/tags/service.py | 297 | # Check if already exists | COMMENT |
| LOW | tracecat/cases/attachments/service.py | 303 | # Check if file already exists (deduplication) | COMMENT |
| LOW | tracecat/cases/attachments/service.py | 356 | # Check if attachment already exists for this case and file | COMMENT |
| LOW | tracecat/cases/attachments/service.py | 519 | # Check if user has permission (must be creator or admin) | COMMENT |
| LOW | tracecat/cases/attachments/router.py | 91 | # Read file content with bounded memory to avoid DoS via large uploads | COMMENT |
| LOW⚡ | tracecat/agent/service.py | 418 | # Check if credentials already exist | COMMENT |
| LOW | tracecat/agent/preset/service.py | 1006 | # Check if all requested IDs exist | COMMENT |
| LOW | tracecat/agent/mcp/proxy_server.py | 186 | # Check if this is a user MCP tool | COMMENT |
| LOW | tracecat/agent/session/router.py | 419 | # Check if this is a legacy chat (read-only) | COMMENT |
| LOW | tracecat/agent/session/router.py | 504 | # Check if this is a legacy chat (read-only) | COMMENT |
| LOW | tracecat/agent/session/router.py | 563 | # Check if this is a legacy chat (read-only) | COMMENT |
| LOW | tracecat/tags/service.py | 58 | # Check if ref already exists | COMMENT |
| LOW | tracecat/integrations/service.py | 2420 | # Check if integration configuration already exists for this provider | COMMENT |
| LOW | tracecat/integrations/service.py | 2638 | # Check if integration is properly connected (has access tokens) | COMMENT |
| LOW | tracecat/integrations/service.py | 2642 | # Check if provider is an MCP provider | COMMENT |
| LOW | tracecat/integrations/service.py | 2666 | # Check if MCP integration already exists for this OAuth integration. | COMMENT |
| LOW | tracecat/integrations/router.py | 773 | # Check if provider is configured | COMMENT |
| LOW | tracecat/integrations/providers/base.py | 973 | # Check if subclass provides fallback endpoints | COMMENT |
| LOW | tracecat/vcs/github/manifest.py | 52 | # Check if we're using localhost (for development) | COMMENT |
| LOW | tracecat/workflow/management/management.py | 533 | # Check if there are more items | COMMENT |
| LOW | tracecat/workflow/management/router.py | 538 | # Check if workflow exports are enabled | COMMENT |
| LOW | tracecat/workflow/management/folders/service.py | 147 | # Check if path already exists | COMMENT |
| LOW | tracecat/workflow/management/folders/service.py | 302 | # Check if new path already exists | COMMENT |
| LOW⚡ | tracecat/workflow/management/folders/service.py | 354 | # Check if we're trying to make a folder its own descendant | COMMENT |
| LOW⚡ | tracecat/workflow/management/folders/service.py | 361 | # Check if new parent is a descendant of the folder (would create a cycle) | COMMENT |
| 45 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_rbac_scopes.py | 44 | def _set_role_with_scopes(scopes: frozenset[str]) -> None: | CODE |
| LOW | tests/unit/test_workspace_creation_entitlements.py | 40 | async def _set_transaction_timeouts(session: AsyncSession) -> None: | CODE |
| LOW | tests/unit/test_agent_preset_service.py | 1358 | async def update_instructions() -> None: | CODE |
| LOW | tests/unit/test_agent_preset_service.py | 1540 | async def update_parent() -> None: | CODE |
| LOW | tests/unit/test_mcp_server.py | 3137 | async def update_schedule(self, schedule_id: uuid.UUID, params: Any) -> None: | CODE |
| LOW | tests/unit/test_gitlab_vcs.py | 818 | async def _update_org_secret(self, secret: Any, params: Any) -> None: | CODE |
| LOW | tests/unit/test_agent_filesystem.py | 687 | async def update_current_snapshot(self, **_kwargs: Any) -> None: | CODE |
| LOW | tests/unit/test_agent_filesystem.py | 922 | async def update_current_snapshot(self, **_kwargs: Any) -> None: | CODE |
| LOW | tests/unit/test_agent_otel_relay.py | 74 | def set_outcomes(self, *outcomes: int | httpx.TransportError) -> None: | CODE |
| LOW | tests/unit/test_agent_provider_service.py | 37 | def set_db_encryption_key(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_audit_service.py | 1748 | async def update_secret(self, *, secret: SimpleNamespace) -> None: | CODE |
| LOW | tests/unit/test_ip_allowlist.py | 130 | def _set_client_ip(ip: str | None) -> None: | CODE |
| LOW | tests/unit/test_agent_channel_service.py | 38 | def set_db_encryption_key(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_agent_channel_service.py | 492 | def _set_signing_secret(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/executor/test_minimal_runner_protocol.py | 207 | def set_context(ctx: LegacyRegistryContext) -> None: | CODE |
| LOW | tracecat/config.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | tracecat/ssh.py | 29 | __all__ = [ | CODE |
| LOW | tracecat/contexts.py | 26 | __all__ = [ | CODE |
| LOW | tracecat/middleware/__init__.py | 4 | __all__ = [ | CODE |
| LOW⚡ | tracecat/settings/service.py | 326 | async def update_git_settings(self, params: GitSettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 334 | async def update_saml_settings(self, params: SAMLSettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 340 | async def update_audit_settings(self, params: AuditSettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 347 | async def update_security_settings(self, params: SecuritySettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 360 | async def update_app_settings(self, params: AppSettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 366 | async def update_agent_settings(self, params: AgentSettingsUpdate) -> None: | CODE |
| LOW⚡ | tracecat/settings/service.py | 372 | async def update_agent_otel_settings(self, params: AgentOtelSettingsUpdate) -> None: | CODE |
| LOW | tracecat/feature_flags/__init__.py | 12 | __all__ = ["is_feature_enabled", "FeatureFlag"] | CODE |
| LOW | tracecat/tables/service.py | 2313 | async def update_column(self, column_name: str, params: TableColumnUpdate) -> None: | CODE |
| LOW | tracecat/workspace_sync/importer.py | 17 | __all__ = ["ImportedResource", "WorkspaceResourceImportService"] | CODE |
| LOW | tracecat/workspace_sync/projector.py | 22 | __all__ = [ | CODE |
| LOW | tracecat/workspace_sync/adapters/__init__.py | 40 | __all__ = [ | CODE |
| LOW | tracecat/logger/__init__.py | 3 | __all__ = ["logger"] | CODE |
| LOW | tracecat/auth/sandbox.py | 167 | def _set_secrets(self) -> None: | CODE |
| LOW | tracecat/secrets/service.py | 136 | async def _update_secret(self, secret: BaseSecret, params: SecretUpdate) -> None: | CODE |
| LOW | tracecat/custom_fields/service.py | 176 | async def update_field(self, field_id: str, params: CustomFieldUpdate) -> None: | CODE |
| LOW | tracecat/custom_fields/service.py | 202 | __all__ = ["CustomFieldsService"] | CODE |
| LOW | tracecat/custom_fields/__init__.py | 4 | __all__ = [ | CODE |
| LOW | tracecat/custom_fields/schemas.py | 81 | __all__ = [ | CODE |
| LOW | tracecat/cases/durations/__init__.py | 16 | __all__ = [ | CODE |
| LOW | tracecat/cases/attachments/__init__.py | 11 | __all__ = [ | CODE |
| LOW⚡ | tracecat/agent/service.py | 358 | async def _set_org_setting_value(self, *, key: str, value: str) -> None: | CODE |
| LOW | tracecat/agent/litellm_compat.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | tracecat/agent/skill/folders/service.py | 651 | async def _update_descendant_paths(self, old_path: str, new_path: str) -> None: | CODE |
| LOW | tracecat/agent/backends/dispatch.py | 49 | def update_rpc_metadata(self, metadata: Mapping[str, str | bytes]) -> None: | CODE |
| LOW | tracecat/agent/backends/dispatch.py | 53 | def update_api_key(self, api_key: str | None) -> None: | CODE |
| LOW | tracecat/agent/catalog/loader.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | tracecat/agent/mcp/stdio_probe.py | 48 | __all__ = [ | CODE |
| LOW | tracecat/agent/mcp/proxy_server.py | 36 | __all__ = [ | CODE |
| LOW | tracecat/agent/common/__init__.py | 52 | __all__ = [ | CODE |
| LOW | tracecat/agent/folders/service.py | 656 | async def _update_descendant_paths(self, old_path: str, new_path: str) -> None: | CODE |
| LOW | tracecat/agent/approvals/__init__.py | 8 | __all__ = [ | CODE |
| LOW | tracecat/agent/channels/sinks/__init__.py | 5 | __all__ = ["ExternalChannelSink"] | CODE |
| LOW | tracecat/agent/channels/sinks/slack.py | 144 | async def _set_in_progress_reaction(self) -> None: | CODE |
| LOW | tracecat/agent/channels/sinks/slack.py | 156 | async def _set_terminal_reaction(self, *, is_error: bool) -> None: | CODE |
| LOW | tracecat/agent/channels/handlers/slack_helpers.py | 76 | async def set_in_progress(client: AsyncWebClient, *, channel_id: str, ts: str) -> None: | CODE |
| LOW | tracecat/agent/channels/handlers/slack_helpers.py | 88 | async def set_complete(client: AsyncWebClient, *, channel_id: str, ts: str) -> None: | CODE |
| LOW | tracecat/agent/channels/handlers/slack_helpers.py | 106 | async def set_error(client: AsyncWebClient, *, channel_id: str, ts: str) -> None: | CODE |
| LOW⚡ | tracecat/mcp/server.py | 1664 | async def _update_template_file_artifact(artifact: TemplateFileArtifact) -> None: | CODE |
| LOW | tracecat/observability/otel.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tracecat/observability/otel.py | 396 | def set_current_span_attributes(attributes: _PlatformAttributes) -> None: | CODE |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ontend/src/components/builder/canvas/selector-node.tsx | 370 | // Step 1: create node | COMMENT |
| LOW | …ontend/src/components/builder/canvas/selector-node.tsx | 385 | // Step 2: connect incoming edge to the new node | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 378 | # Step 1: Authorize — get redirect with code | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 402 | # Step 2: Exchange code for tokens | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 411 | # Step 3: Verify access token claims | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 420 | # Step 4: Verify id_token claims | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 90 | ### Step 1: Rule Anatomy and YARA-L 2.0 Syntax Standards | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 142 | ### Step 2: Syntax Validation | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 151 | ### Step 3: Historical Testing and Detection Verification | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 161 | ### Step 4: User Approval Gate | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 169 | ### Step 5: Rule Deployment | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 176 | ### Step 6: Enablement & Alerting Configuration | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 202 | ### Step 1: Extract & Sanitize Threat Intelligence | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 216 | ### Step 2: Generate Threat Detection Opportunities (TDOs) | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 222 | ### Step 3: Generate Synthetic Events (For ALL TDOs) | COMMENT |
| LOW⚡ | …l/library/skills/secops-detection-engineering/SKILL.md | 231 | ### Step 4: Evaluate Rule Coverage (Long-Running Async Evaluation) | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 253 | ### Step 5: Fetch Matched Rule Summary | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 266 | ### Step 6: Gap Mitigation (Generate Rules for Verified Gaps) | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 272 | ### Step 7: Provide Structured Findings Summary | COMMENT |
| LOW | …l/library/skills/secops-detection-engineering/SKILL.md | 290 | ### Step 8: User Approval and Rule Creation | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 18 | ## Step 1: Read for observables, not conclusions | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 50 | ## Step 2: Choose the abstraction level deliberately | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 99 | ## Step 3: Reality-check the telemetry before writing | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 117 | ## Step 4: False positive engineering | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 171 | ## Step 5: Evasion review | COMMENT |
| LOW | …ry/skills/create-sigma-rule/references/rule-quality.md | 208 | ## Step 6: Overbreadth check | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 402 | # Step 1: Create a minimal venv using uv | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 417 | # Step 2: Install the package and all dependencies into the venv | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 439 | # Step 3: Locate the site-packages directory (PYTHONPATH entry) | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 452 | # Step 4: Pre-compile Python bytecode for faster imports in sandbox | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 472 | # Step 5: Pack site-packages into a SquashFS image | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 488 | # Step 6: Compute content hash | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 152 | # Step 1: Fetch repositories | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 159 | # Step 2: Display numbered list of repositories | COMMENT |
| LOW | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 178 | # Step 3: Prompt user to select repository | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 192 | # Step 4: Fetch versions for selected repository | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 201 | # Step 5: Display numbered list of versions | COMMENT |
| LOW | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 227 | # Step 6: Prompt user to select version | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 251 | # Step 7: Confirm selection | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 260 | # Step 8: Call promote endpoint | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 266 | # Step 9: Display result | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 26 | # Step 1: Remap role_scope links from duplicate custom scopes to the | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 55 | # Step 2: Drop stale role_scope links that point to custom duplicates. | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 80 | # Step 3: Delete the now-orphaned custom scope rows that are duplicates | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 18 | # Step 1: Add the owner_id column to case_fields table as nullable initially | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 26 | # Step 2: Create an index on the owner_id column for better query performance | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 36 | # Step 3: Populate the new owner_id column with data from the related cases table | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 51 | # Step 4: Delete orphaned case_fields records that don't have a valid owner_id | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 62 | # Step 5: Create a foreign key constraint linking owner_id to workspace.id | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 76 | # Step 6: Make the owner_id column NOT NULL after populating it with data | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 87 | # Step 1: Remove the foreign key constraint first (dependencies must be removed before columns) | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 90 | # Step 2: Remove the index on owner_id column | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 97 | # Step 3: Finally, drop the owner_id column entirely | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_inbox_service.py | 30 | CODE | |
| LOW | tests/unit/test_aws_secrets_manager.py | 44 | CODE | |
| LOW | tracecat/concurrency.py | 122 | CODE | |
| LOW | tracecat/tables/service.py | 1522 | CODE | |
| LOW | tracecat/tables/service.py | 1560 | CODE | |
| LOW | tracecat/inbox/service.py | 41 | CODE | |
| LOW | tracecat/inbox/types.py | 56 | CODE | |
| LOW | tracecat/inbox/router.py | 42 | CODE | |
| LOW | tracecat/inbox/providers/agent_runs.py | 275 | CODE | |
| LOW | tracecat/workspace_sync/adapters/base.py | 626 | CODE | |
| LOW | tracecat/cases/service.py | 387 | CODE | |
| LOW | tracecat/cases/service.py | 532 | CODE | |
| LOW | tracecat/cases/service.py | 755 | CODE | |
| LOW | tracecat/cases/internal_router.py | 173 | CODE | |
| LOW | tracecat/cases/internal_router.py | 261 | CODE | |
| LOW | tracecat/cases/router.py | 254 | CODE | |
| LOW | tracecat/cases/router.py | 363 | CODE | |
| LOW | tracecat/cases/router.py | 538 | CODE | |
| LOW | tracecat/cases/rows/service.py | 185 | CODE | |
| LOW | tracecat/cases/rows/router.py | 39 | CODE | |
| LOW | tracecat/agent/tokens.py | 151 | CODE | |
| LOW | tracecat/agent/sandbox/config.py | 253 | CODE | |
| LOW | tracecat/agent/sandbox/nsjail.py | 134 | CODE | |
| LOW | tracecat/agent/channels/sinks/slack.py | 206 | CODE | |
| LOW | tracecat/agent/session/service.py | 842 | CODE | |
| LOW | tracecat/mcp/server.py | 6127 | CODE | |
| LOW | tracecat/mcp/server.py | 6357 | CODE | |
| LOW | tracecat/mcp/server.py | 8714 | CODE | |
| LOW | tracecat/mcp/server.py | 8813 | CODE | |
| LOW | tracecat/mcp/oidc/endpoints.py | 404 | CODE | |
| LOW | tracecat/mcp/oidc/endpoints.py | 527 | CODE | |
| LOW | tracecat/sandbox/service.py | 415 | CODE | |
| LOW | tracecat/sandbox/service.py | 521 | CODE | |
| LOW | tracecat/workflow/management/management.py | 1501 | CODE | |
| LOW | tracecat/workflow/executions/service.py | 420 | CODE | |
| LOW | tracecat/workflow/executions/common.py | 322 | CODE | |
| LOW | tracecat/workflow/executions/router.py | 388 | CODE | |
| LOW | tracecat/expressions/expectations.py | 144 | CODE | |
| LOW | tracecat/registry/sync/base_service.py | 288 | CODE | |
| LOW | …cecat-registry/tracecat_registry/_internal/registry.py | 11 | CODE | |
| LOW | …es/tracecat-registry/tracecat_registry/core/presets.py | 29 | CODE | |
| LOW | …es/tracecat-registry/tracecat_registry/core/presets.py | 203 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/cases.py | 248 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/cases.py | 323 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/cases.py | 647 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/email.py | 107 | CODE | |
| LOW | …kages/tracecat-registry/tracecat_registry/core/http.py | 591 | CODE | |
| LOW | …kages/tracecat-registry/tracecat_registry/core/http.py | 710 | CODE | |
| LOW | …kages/tracecat-registry/tracecat_registry/core/http.py | 858 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/agent.py | 40 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/agent.py | 190 | CODE | |
| LOW | …ages/tracecat-registry/tracecat_registry/core/table.py | 264 | CODE | |
| LOW | …s/tracecat-registry/tracecat_registry/core/workflow.py | 38 | CODE | |
| LOW | …ecat-registry/tracecat_registry/integrations/tavily.py | 39 | CODE | |
| LOW | …t-registry/tracecat_registry/integrations/amazon_s3.py | 177 | CODE | |
| LOW | …at-registry/tracecat_registry/integrations/okta_sdk.py | 954 | CODE | |
| LOW | …at-registry/tracecat_registry/integrations/okta_sdk.py | 1167 | CODE | |
| LOW | …at-registry/tracecat_registry/integrations/okta_sdk.py | 1225 | CODE | |
| LOW | …-registry/tracecat_registry/integrations/google_api.py | 438 | CODE | |
| LOW | …kages/tracecat-registry/tracecat_registry/sdk/cases.py | 60 | CODE | |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …mporal/test_durable_agent_runtime_error_attribution.py | 35 | # Re-export the harness fixture under the name collected by this test module. | COMMENT |
| MEDIUM | tests/temporal/test_runtime_error_attribution.py | 36 | # Re-export the harness fixtures under the names collected by this test module. | COMMENT |
| MEDIUM | tests/unit/test_agent_sandbox_litellm.py | 784 | # End the fake turn so the harness can clean up, then surface | COMMENT |
| MEDIUM | tests/unit/test_agent_sandbox_litellm.py | 1297 | # test only. This runs in-process AND inside the Dockerized harness, | COMMENT |
| MEDIUM | tests/unit/test_commit_conventions.py | 51 | # makes this harness *more* permissive than production and blind to exactly the | COMMENT |
| MEDIUM⚡ | tests/unit/test_action_environment_override.py | 493 | # Create a comprehensive workflow with various environment scenarios | COMMENT |
| LOW | tests/unit/test_tables_service.py | 2324 | # Don't start a new transaction, just use the existing one | STRING |
| MEDIUM⚡ | tests/unit/test_functions.py | 1809 | # Definitely not the year 2000 | COMMENT |
| MEDIUM | tracecat/tables/importer.py | 155 | """Normalize CSV headers for robust matching across parsers.""" | STRING |
| MEDIUM | tracecat/inbox/providers/agent_runs.py | 78 | # not appear here. Add a harness to this set to make its runs inbox-eligible. | COMMENT |
| MEDIUM | tracecat/inbox/providers/agent_runs.py | 192 | # Root sessions only: runs of any inbox-eligible harness, plus legacy | COMMENT |
| MEDIUM | tracecat/chat/schemas.py | 260 | # Legacy harness rows are unsupported; a bad Claude row is corruption. | COMMENT |
| MEDIUM | tracecat/agent/exceptions.py | 28 | # Build comprehensive error message with debug info | COMMENT |
| MEDIUM | tracecat/agent/runtime/claude_code/runtime.py | 252 | # Session wakeups and agent discovery need an interactive harness. | COMMENT |
| MEDIUM | tracecat/agent/session/service.py | 2219 | # target a harness binding it does not own. | COMMENT |
| MEDIUM | tracecat/storage/validation.py | 88 | # Normalize extensions: trim whitespace and lowercase for robust comparison | COMMENT |
| LOW | tracecat/registry/actions/service.py | 1724 | # If this action is already in the repo, we can just use it | COMMENT |
| MEDIUM | tracecat/db/models.py | 3294 | # Stable dispatcher identity, independent of the execution harness. | COMMENT |
| MEDIUM | tracecat/db/models.py | 3298 | # Agent harness fields | COMMENT |
| LOW | tracecat/executor/service.py | 860 | # ExecutionError already has proper error info, just add loop context if needed | COMMENT |
| LOW | tracecat/webhooks/router.py | 458 | # Currently just return the last response's wf_exec_id | COMMENT |
| MEDIUM | …plates/tools/splunk/kv_store/batch_save_kv_entries.yml | 9 | doc_url: https://help.splunk.com/en/splunk-cloud-platform/leverage-rest-apis/rest-api-reference/10.0.2503/kv-store-end | CODE |
| MEDIUM | packages/tracecat-benchmark/docker-compose.loadtest.yml | 166 | # Internal benchmark bootstrap. This is fixed harness wiring, not an | COMMENT |
| MEDIUM | packages/tracecat-benchmark/docker-compose.loadtest.yml | 185 | # Internal benchmark bootstrap. This is fixed harness wiring, not an | COMMENT |
| MEDIUM | packages/tracecat-benchmark/docker-compose.loadtest.yml | 221 | # Internal benchmark bootstrap. This is fixed harness wiring, not an | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ontend/src/components/builder/canvas/selector-node.tsx | 370 | // Step 1: create node | COMMENT |
| LOW | …ontend/src/components/builder/canvas/selector-node.tsx | 385 | // Step 2: connect incoming edge to the new node | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 378 | # Step 1: Authorize — get redirect with code | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 402 | # Step 2: Exchange code for tokens | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 411 | # Step 3: Verify access token claims | COMMENT |
| LOW⚡ | tests/integration/test_mcp_oidc_flow.py | 420 | # Step 4: Verify id_token claims | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 402 | # Step 1: Create a minimal venv using uv | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 417 | # Step 2: Install the package and all dependencies into the venv | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 439 | # Step 3: Locate the site-packages directory (PYTHONPATH entry) | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 452 | # Step 4: Pre-compile Python bytecode for faster imports in sandbox | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 472 | # Step 5: Pack site-packages into a SquashFS image | COMMENT |
| LOW | tracecat/registry/sync/artifact.py | 488 | # Step 6: Compute content hash | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 152 | # Step 1: Fetch repositories | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 159 | # Step 2: Display numbered list of repositories | COMMENT |
| LOW | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 178 | # Step 3: Prompt user to select repository | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 192 | # Step 4: Fetch versions for selected repository | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 201 | # Step 5: Display numbered list of versions | COMMENT |
| LOW | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 227 | # Step 6: Prompt user to select version | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 251 | # Step 7: Confirm selection | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 260 | # Step 8: Call promote endpoint | COMMENT |
| LOW⚡ | …ges/tracecat-admin/tracecat_admin/commands/registry.py | 266 | # Step 9: Display result | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 26 | # Step 1: Remap role_scope links from duplicate custom scopes to the | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 55 | # Step 2: Drop stale role_scope links that point to custom duplicates. | COMMENT |
| LOW | …4f54f0a2b_canonicalize_duplicate_custom_scope_links.py | 80 | # Step 3: Delete the now-orphaned custom scope rows that are duplicates | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 18 | # Step 1: Add the owner_id column to case_fields table as nullable initially | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 26 | # Step 2: Create an index on the owner_id column for better query performance | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 36 | # Step 3: Populate the new owner_id column with data from the related cases table | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 51 | # Step 4: Delete orphaned case_fields records that don't have a valid owner_id | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 62 | # Step 5: Create a foreign key constraint linking owner_id to workspace.id | COMMENT |
| LOW | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 76 | # Step 6: Make the owner_id column NOT NULL after populating it with data | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 87 | # Step 1: Remove the foreign key constraint first (dependencies must be removed before columns) | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 90 | # Step 2: Remove the index on owner_id column | COMMENT |
| LOW⚡ | …mbic/versions/a6c2d9e7f5b1_add_owner_to_case_fields.py | 97 | # Step 3: Finally, drop the owner_id column entirely | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | alembic.ini | 21 | # Any required deps can installed by adding `alembic[tz]` to the pip requirements | COMMENT |
| LOW | alembic.ini | 41 | # The path separator used here should be the separator specified by "version_path_separator" below. | COMMENT |
| LOW | alembic.ini | 61 | # output_encoding = utf-8 | COMMENT |
| LOW | env-migration.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker-compose.sandbox.yml | 1 | # Optional local sandbox privileges for nsjail and SquashFS registry mounts. | COMMENT |
| LOW | docker/sandbox/build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontend/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | frontend/src/components/tables/table-rows-grid.tsx | 261 | cellPanel, | COMMENT |
| LOW | frontend/src/components/chat/chat-session-pane.tsx | 941 | // record before it instead, and reloaded history splits one turn into | COMMENT |
| LOW | frontend/src/components/chat/chat-session-pane.tsx | 1101 | // Enter does not empty the box until the awaits here resolve, so the user | COMMENT |
| LOW | …de/mermaid-code-block-node/mermaid-code-block-node.tsx | 321 | } | COMMENT |
| LOW | frontend/src/lib/workspace.ts | 1 | // Workspace role utilities are now handled via RBAC roles. | COMMENT |
| LOW | tests/temporal/test_agent_config_workflow_boundary.py | 161 | COMMENT | |
| LOW | tests/temporal/test_error_handling.py | 41 | COMMENT | |
| LOW | tests/temporal/test_error_handling.py | 61 | # ), | COMMENT |
| LOW | …kills/create-sigma-rule/assets/sigma-rule-template.yml | 1 | # Structural skeleton only. Replace every value, generate a fresh UUIDv4 for `id`, and | COMMENT |
| LOW | …kills/create-sigma-rule/assets/sigma-rule-template.yml | 41 | # - detection.threat-hunting # add when the rule is deliberately broad | COMMENT |
| LOW | …kills/create-sigma-rule/assets/sigma-rule-template.yml | 61 | selection_anchor: | COMMENT |
| LOW | tracecat/agent/session/service.py | 3141 | # writes parallel tool calls as one assistant JSONL row per tool_use | COMMENT |
| LOW | packages/tracecat-benchmark/docker-compose.loadtest.yml | 1 | # PostgreSQL scatter load-test override. | COMMENT |
| LOW | packages/tracecat-benchmark/docker-compose.loadtest.yml | 81 | cpus: "${TRACECAT__LOADTEST_REDIS_CPUS:-0}" | COMMENT |
| LOW | packages/tracecat-benchmark/docker-compose.loadtest.yml | 101 | # idle connections of the non-load services against the same budget. | COMMENT |
| LOW | packages/tracecat-benchmark/docker-compose.loadtest.yml | 121 | # pins LiteLLM to 1 worker). Executor sandbox workers use the executor-local | COMMENT |
| LOW | packages/tracecat-benchmark/docker-compose.loadtest.yml | 141 | # | COMMENT |
| LOW | …tracecat-benchmark/tracecat_benchmark/pgdog/users.toml | 1 | # Runtime users and independent logical database pools come from | COMMENT |
| LOW | .github/release-drafter.yml | 1 | # Release Drafter configuration. | COMMENT |
| LOW | .github/release-drafter.yml | 41 | # 4-16 product areas, so a reader can find the part of Tracecat they use. | COMMENT |
| LOW | .github/release-drafter.yml | 361 | # Example: feat(tables): add unique indexes | COMMENT |
| LOW | .github/release-drafter.yml | 381 | # instead: going forward the vendor goes in the description, not the scope. | COMMENT |
| LOW | .github/release-drafter.yml | 401 | # from. Fixing the prefix first makes all three behave. | COMMENT |
| LOW | .github/release-drafter.yml | 421 | # `!` is dropped with it: the autolabeler files these under `chore`, so a | COMMENT |
| LOW | .github/release-drafter.yml | 501 | # Retired type spellings. `[legacy_types]` in commit-conventions.toml already | COMMENT |
| LOW | .github/release-drafter.yml | 521 | # components before the alias, complete components after it, and the closing | COMMENT |
| LOW | .github/release-drafter.yml | 581 | # | COMMENT |
| LOW | .github/release-drafter.yml | 601 | # `refactor(deps)` have never been written here, and the un-normalised line | COMMENT |
| LOW | .github/release-drafter.yml | 621 | # one. | COMMENT |
| LOW | .github/commit-conventions.toml | 1 | # Commit and pull-request title conventions. | COMMENT |
| LOW | .github/commit-conventions.toml | 21 | # already-merged PRs still categorize correctly in release notes. When the two | COMMENT |
| LOW | .github/commit-conventions.toml | 241 | # assumes the opposite. | COMMENT |
| LOW | .github/commit-conventions.toml | 261 | # candidates, so a note can name a replacement that is not itself a scope. | COMMENT |
| LOW | .github/commit-conventions.toml | 301 | # Applied when the title carries `!` before the colon. | COMMENT |
| LOW | .github/workflows/release-drafter.yml | 61 | printf '%s\n' "${subjects}" | while IFS= read -r subject; do | COMMENT |
| LOW | .github/workflows/release-drafter.yml | 121 | # backfill finishes late can therefore reach the group after a newer run | COMMENT |
| LOW | .github/workflows/run-integration-tests.yml | 121 | - name: Verify git over SSH | COMMENT |
| LOW | alembic/env.py | 61 | # this is the Alembic Config object, which provides | COMMENT |
| LOW | deployments/fargate/modules/ecs/secrets.tf | 1 | # Required secrets in AWS Secrets Manager (all services): | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_mcp_server.py | 3783 | # The publish orchestration lives in WorkflowsManagementService.publish_workflow; | COMMENT |
| MEDIUM | tests/unit/api/test_api_workflows.py | 267 | # The build/validate/lock/commit orchestration lives in | COMMENT |
| MEDIUM | tests/integration/test_embedding_configuration.py | 714 | # Refresh removes the embedding model but leaves chat usable. | COMMENT |
| MEDIUM | …/library/skills/security-audit/CLOUD-AND-DEPLOYMENT.md | 41 | ## Container and orchestration attack classes (subagent_type: `general`) | COMMENT |
| MEDIUM | tracecat/executor/service.py | 849 | # This handles both template orchestration and UDF execution | COMMENT |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 893 | "docs": "https://docs.wiz.io/docs/connect-remote-wiz-mcp-server#agentic-workflows", | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 893 | "docs": "https://docs.wiz.io/docs/connect-remote-wiz-mcp-server#agentic-workflows", | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 1974 | "docs": "https://docs.snyk.io/integrations/snyk-studio-agentic-integrations", | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 2029 | "https://docs.snyk.io/cli-ide-and-ci-cd-integrations/snyk-cli/developer-guardrails-for-agentic-workflows/sny | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 2030 | "https://docs.snyk.io/integrations/developer-guardrails-for-agentic-workflows/quickstart-guides-for-mcp" | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 2370 | "https://www.redhat.com/en/blog/it-automation-agentic-ai-introducing-mcp-server-red-hat-ansible-automation-p | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 2411 | "notes": "This is the Microsoft Agent 365 \"Work IQ User\" MCP server (internal server ID mcp_MeServer, displa | CODE |
| MEDIUM | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 2522 | "notes": "The official first-party SharePoint MCP server is the \"Work IQ SharePoint\" server in Microsoft Age | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/temporal/durable_agent_failure_harness.py | 212 | CODE | |
| MEDIUM | tests/unit/test_agent_runtime.py | 176 | CODE | |
| MEDIUM | tests/unit/test_agent_runtime.py | 4089 | CODE | |
| MEDIUM | tests/unit/test_agent_runtime.py | 831 | CODE | |
| MEDIUM | tests/unit/test_agent_runtime.py | 871 | CODE | |
| MEDIUM | tests/unit/test_agent_runtime.py | 1976 | CODE | |
| MEDIUM | tests/unit/test_agent_llm_proxy.py | 74 | CODE | |
| MEDIUM | tests/unit/test_agent_llm_proxy.py | 822 | CODE | |
| MEDIUM | tests/unit/test_concurrency.py | 426 | CODE | |
| MEDIUM | tests/unit/test_agent_otel_relay.py | 60 | CODE | |
| MEDIUM | tests/unit/test_tier_permits.py | 42 | CODE | |
| MEDIUM | tests/unit/test_tier_permits.py | 111 | CODE | |
| MEDIUM | tests/unit/test_agent_socket_io.py | 68 | CODE | |
| MEDIUM | tests/unit/api/test_api_audit_webhook_test.py | 91 | CODE | |
| MEDIUM | tracecat/agent/stream/connector.py | 427 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/registry/test_core_http.py | 229 | assert route.calls.last.request.content.replace(b" ", b"") == b'{"data":"value"}' | CODE |
| CRITICAL | tests/registry/test_core_http.py | 641 | content_type_header = route.calls.last.request.headers.get("content-type", "") | CODE |
| CRITICAL | tests/registry/test_core_http.py | 703 | content_type_header = route.calls.last.request.headers.get("content-type", "") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tracecat/integrations/service.py | 1137 | # means "as requested"; a declared-empty [] means the AS stripped grants. | COMMENT |
| HIGH | tracecat/integrations/types.py | 55 | # None = grant_types omitted ("as requested"); [] = AS stripped all grants. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_registry.py | 184 | def test_function(num: int) -> int: | STRING |
| LOW⚡ | tests/registry/test_core_python.py | 90 | def helper(): | CODE |
| LOW⚡ | tests/registry/test_core_python.py | 103 | def process_data(x): | CODE |
| LOW | tests/registry/test_core_python.py | 152 | def process_data(a, b, c): | CODE |
| LOW | tests/registry/test_core_python.py | 745 | def process_data(data): | CODE |
| LOW | tracecat/dsl/workflow.py | 760 | async def execute_task(self, task: ActionStatement) -> TaskResult: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frontend/tests/markdown-with-frontmatter.test.tsx | 102 | print("hello") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …at-ee/tracecat_ee/mcp/catalog/mcp_catalog_private.json | 745 | "description": "The Iru API key sent as the X-API-Key HTTP header. Must be copied exactly as Iru shows it, i | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src/middleware.ts | 31 | * Feel free to modify this pattern to include more paths. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.sandbox.yml | 2 | # Usage: | COMMENT |