Self-hostable workflow orchestrator for teams whose main work isn't orchestration. Declarative YAML over your scripts, SSH commands, containers, etc; keep workflows separate from business logic. One binary, no database, runs on limited H/W resources. Alternative to Airflow / Cron / Job Scheduler.
This report summarizes scanner evidence for dagucloud/dagu, a Go project with 4,516 GitHub stars. SynthScan examined 1,257,106 lines of code across 5312 source files, recording 418 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 0.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 353 finding(s).
Are imports declared and package/API names verified? 50 finding(s).
Are wrappers, guards, and repeated structures necessary? 123 finding(s).
Which changes need focused human review? 418 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 418 distinct pattern matches across 9 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 | doc.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | ui/src/features/visual-editor/canvas/VisualCanvas.tsx | 121 | // The floating toolbar is 56 px high: a fit keeps its content 16 px below it | COMMENT |
| LOW | ui/src/features/visual-editor/doc/ops/references.ts | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | deploy/docker/compose.minimal.yaml | 21 | - DAGU_HOST=0.0.0.0 # Bind inside container | COMMENT |
| LOW | deploy/docker/compose.minimal.yaml | 41 | - dagu-data:/var/lib/dagu | COMMENT |
| LOW | deploy/docker/browser/compose.yaml | 1 | # Dagu with Chromium for browser steps. From this directory, run: | COMMENT |
| LOW | internal/tools/aqua/installer.go | 861 | EnforceRequireChecksum: true, | COMMENT |
| LOW | internal/llm/types.go | 81 | // Message represents a single message in a session. | COMMENT |
| LOW | internal/llm/types.go | 221 | // Timeout is the maximum time to wait for a response. | COMMENT |
| LOW | internal/llm/types.go | 301 | Messages []Message | COMMENT |
| LOW | internal/llm/types.go | 321 | WebSearch *WebSearchRequest | COMMENT |
| LOW | internal/llm/computeruse/computeruse.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | internal/llm/computeruse/computeruse.go | 41 | KindMove Kind = "move" | COMMENT |
| LOW | internal/llm/computeruse/computeruse.go | 141 | } | COMMENT |
| LOW | internal/dagpin/store.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | internal/schedulerstate/pause.go | 21 | // from sleep, a wake hold (see scheduler.wake_hold), recorded under | COMMENT |
| LOW | internal/schedulerstate/pause.go | 41 | // mutate. | COMMENT |
| LOW | internal/cloudreport/reporter.go | 101 | reported config.ReportLevel | COMMENT |
| LOW | internal/cloudreport/reporter.go | 121 | // off stops a report in flight. Finished runs are sent even while Dagu | COMMENT |
| LOW | internal/cloudreport/monitoring.go | 61 | // LastReportAt is when Dagu Console accepted the last report this | COMMENT |
| LOW | internal/auth/webhook.go | 41 | // Webhook represents a webhook configuration for triggering a specific DAG. | COMMENT |
| LOW | internal/auth/user.go | 41 | // UpdatedAt is the timestamp when the user was last modified. | COMMENT |
| LOW | internal/auth/store.go | 61 | // Common errors for webhook store operations. | COMMENT |
| LOW | internal/auth/store.go | 81 | // is stored or read without an encryptor for its token and sender secret. | COMMENT |
| LOW | internal/auth/store.go | 161 | // Implementations must be safe for concurrent use. | COMMENT |
| LOW | internal/auth/store.go | 201 | Create(ctx context.Context, webhook *Webhook) error | COMMENT |
| LOW | internal/auth/store.go | 221 | UpdateByDAGName(ctx context.Context, dagName string, mutate func(*Webhook) error) (*Webhook, error) | COMMENT |
| LOW | internal/auth/role.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | internal/auth/apikey.go | 41 | Name string `json:"name"` | COMMENT |
| LOW | internal/auth/apikey.go | 61 | ServiceAccountName string `json:"service_account_name,omitempty"` | COMMENT |
| LOW | internal/ir/run_node.go | 141 | RejectionReason string `json:"rejectionReason,omitempty"` | COMMENT |
| LOW | internal/ir/llm.go | 61 | type ThinkingConfig struct { | COMMENT |
| LOW | internal/ir/llm.go | 101 | Provider string `json:"provider,omitempty"` | COMMENT |
| LOW | internal/ir/llm.go | 121 | APIKeyName string `json:"apiKeyName,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 61 | } | COMMENT |
| LOW | internal/ir/dag.go | 81 | // Group is the group name of the DAG. This is optional. | COMMENT |
| LOW | internal/ir/dag.go | 101 | Dotenv []string `json:"dotenv,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 121 | // Env contains a list of environment variables to be set before running the DAG. | COMMENT |
| LOW | internal/ir/dag.go | 141 | LogDir string `json:"logDir,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 161 | // When params were supplied as JSON, the original payload is preserved. | COMMENT |
| LOW | internal/ir/dag.go | 181 | InfoMail *MailConfig `json:"infoMail,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 201 | HistRetentionDays int `json:"histRetentionDays,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 221 | // BuildWarnings contains non-fatal warnings detected while building the DAG. | COMMENT |
| LOW | internal/ir/dag.go | 241 | Webhook *WebhookConfig `json:"webhook,omitempty"` | COMMENT |
| LOW | internal/ir/dag.go | 261 | // Harness contains the default harness executor configuration for the DAG. | COMMENT |
| LOW | internal/ir/dag.go | 681 | } | COMMENT |
| LOW | internal/ir/agent.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | internal/ir/agent.go | 21 | // operator types to answer: | COMMENT |
| LOW | internal/ir/doc.go | 1 | // Copyright (C) 2026 Yota Hamada | COMMENT |
| LOW | internal/ir/step.go | 21 | Name string `json:"name"` | COMMENT |
| LOW | internal/ir/step.go | 41 | // Deprecated: Use Commands field instead. Kept for JSON backward compatibility. | COMMENT |
| LOW | internal/ir/step.go | 81 | // Depends contains the list of step names to depend on. | COMMENT |
| LOW | internal/ir/step.go | 101 | SubDAG *SubDAG `json:"childDag,omitempty"` | COMMENT |
| LOW | internal/ir/container.go | 21 | Image string `yaml:"image,omitempty"` | COMMENT |
| LOW | internal/ir/container.go | 41 | Ports []string `yaml:"ports,omitempty"` // List of ports to expose | COMMENT |
| LOW | internal/ir/container.go | 61 | // Shell specifies the shell wrapper for executing step commands. | COMMENT |
| LOW | internal/publicwebhook/store.go | 61 | // Connected is set while the connection is open. | COMMENT |
| LOW | internal/runtime/env.go | 41 | // Maps step IDs to their execution information (stdout, stderr, exitCode) | COMMENT |
| LOW | internal/runtime/context.go | 41 | // WithIncludeDownstream records that a targeted step retry should also | COMMENT |
| LOW | internal/runtime/context.go | 61 | // WithParamsJSON replaces the DAG's params JSON in the environment steps | COMMENT |
| 172 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/e2e/helpers/e2e.ts | 142 | export function hasRBACLicenseSourceConfigured(): boolean { | CODE |
| LOW | ui/e2e/helpers/e2e.ts | 298 | export async function waitForSchedulerDAGRegistered( | CODE |
| LOW | ui/e2e/helpers/e2e.ts | 652 | export async function getLatestLocalRunStatusRecord( | CODE |
| LOW | ui/src/App.tsx | 148 | function isWorkspaceSensitiveTargetPath(path: unknown): boolean { | CODE |
| LOW | ui/src/App.tsx | 250 | function ActiveLicenseDeveloperElement({ | CODE |
| LOW | ui/src/contexts/AuthContext.tsx | 303 | export function useCanExecuteForWorkspace(workspace?: string | null): boolean { | CODE |
| LOW | ui/src/contexts/AuthContext.tsx | 335 | export function useCommandChannelsEnabled(): boolean { | CODE |
| LOW | ui/src/contexts/AuthContext.tsx | 344 | export function useCanManageCommandChannels(): boolean { | CODE |
| LOW | ui/src/contexts/AuthContext.tsx | 355 | export function useCanManageNotifications(): boolean { | CODE |
| LOW | …src/features/artifacts/hooks/artifactListPagination.ts | 22 | function normalizeArtifactListQuery( | CODE |
| LOW | ui/src/features/artifacts/lib/artifactViews.ts | 29 | export function artifactsFilterSetFromView(view: View): ArtifactsFilterSet { | CODE |
| LOW | ui/src/features/dags/components/visualization/Graph.tsx | 907 | function fallbackStatusBorderClassName(status: NodeStatus): string { | CODE |
| LOW | ui/src/features/dags/components/visualization/Graph.tsx | 927 | function fallbackStatusDotClassName(status: NodeStatus): string { | CODE |
| LOW | …/features/dags/components/visualization/exportGraph.ts | 31 | function replaceForeignObjectLabels( | CODE |
| LOW | …dags/components/artifacts/useArtifactTreeNavigation.ts | 29 | export function useArtifactTreeNavigation({ | CODE |
| LOW | …/src/features/dags/components/artifacts/htmlPreview.ts | 26 | export function sanitizeHTMLArtifactPreview(content: string): string { | CODE |
| LOW | …/src/features/dags/components/artifacts/htmlPreview.ts | 60 | export function buildHTMLArtifactPreviewDocument( | CODE |
| LOW | …dags/components/dag-details/webhookProfileSelection.ts | 34 | export function findUnavailableAllowedProfiles( | CODE |
| LOW | …dags/components/dag-details/webhookProfileSelection.ts | 50 | function buildHMACSignatureInputExamples(profileName: string): { | CODE |
| LOW | …components/dag-details/WebhookProfileSelectionCard.tsx | 40 | function WebhookProfileSelectionCard({ | CODE |
| LOW | …nts/dag-details/notifications/NotificationSections.tsx | 959 | export function InheritedNotificationRoutesCard({ | CODE |
| LOW | …nts/dag-details/notifications/NotificationSections.tsx | 1034 | export function useCommandChannelLockReason(): string | undefined { | CODE |
| LOW | …nts/dag-details/notifications/NotificationSections.tsx | 1228 | export function NotificationChannelsSection({ | CODE |
| LOW | …onents/dag-details/notifications/notificationDrafts.ts | 267 | export function isSlackIncomingWebhookURL(value: string): boolean { | CODE |
| LOW | …alue-reference-notices/ValueReferenceNoticesButton.tsx | 69 | export function ValueReferenceNoticesButton({ | CODE |
| LOW | …alue-reference-notices/ValueReferenceNoticesButton.tsx | 122 | function ValueReferenceNoticesDialog({ | CODE |
| LOW | …c/features/dags/components/common/RunSummaryBlocks.tsx | 210 | function getRuntimeConditionGroups( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 124 | function buildLegacyDefinitionEnumBranch( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 137 | function buildCustomActionEnumBranch( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 150 | function augmentExecutorTypeSchema( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 212 | function hasStepSpecificProperties(schema: JSONSchema): boolean { | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 258 | function parseLocalLegacyDefinitionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 301 | function parseLocalCustomActionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 391 | function markPropertiesAsDoNotSuggest(schema: JSONSchema | undefined) { | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 410 | function suppressConditionalPropertySuggestions(stepSchema: JSONSchema) { | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 483 | export function toInheritedLegacyDefinitionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 512 | export function toInheritedCustomActionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 540 | export function extractLocalCustomDefinitionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 565 | export function mergeLegacyDefinitionHints( | CODE |
| LOW | …tures/dags/components/dag-editor/customActionSchema.ts | 597 | export function legacyDefinitionHintsEqual( | CODE |
| LOW | ui/src/features/dags/components/dag-editor/DAGSpec.tsx | 2257 | function useStableLegacyDefinitionHints( | CODE |
| LOW | ui/src/features/dags/components/dag-editor/DAGSpec.tsx | 2267 | function useStableCustomActionHints( | CODE |
| LOW | …tures/dags/components/dag-execution/paramSchemaForm.ts | 71 | export function stringifyParamSchemaFormData( | CODE |
| LOW | …atures/dags/components/dag-execution/StartDAGModal.tsx | 112 | function profileOverrideForSelection( | CODE |
| LOW | …/features/dags/components/step-details/StepDetails.tsx | 408 | function highlightShellPlainSegment( | CODE |
| LOW | …res/visual-editor/inspector/widgets/ObjectTemplate.tsx | 24 | export function CollapsibleObjectFieldTemplate( | CODE |
| LOW | …res/visual-editor/inspector/widgets/ObjectTemplate.tsx | 33 | function NestedObjectFieldTemplate( | CODE |
| LOW | ui/src/features/visual-editor/references/candidates.ts | 242 | export function filterReferenceCandidates( | CODE |
| LOW | …/features/visual-editor/references/monacoCompletion.ts | 32 | export function computeReferenceCompletions( | CODE |
| LOW | …/features/visual-editor/references/monacoCompletion.ts | 65 | export function registerReferenceCompletion( | CODE |
| LOW | ui/src/features/visual-editor/doc/ops/convert.ts | 45 | export function opConvertStepsToExplicitForm( | CODE |
| LOW | …features/dag-runs/components/common/terminateAction.ts | 49 | export function isFailedAutoRetryPendingRun( | CODE |
| LOW | …features/dag-runs/components/common/terminateAction.ts | 70 | export function getDAGRunTerminateActionDetails( | CODE |
| LOW | ui/src/features/dag-runs/hooks/dagRunDetailsRequest.ts | 22 | export function matchesRequestedDAGRunDetails( | CODE |
| LOW | ui/src/features/dag-runs/hooks/dagRunPagination.ts | 26 | function normalizeDAGRunListQueryValue(value: unknown): unknown { | CODE |
| LOW | ui/src/features/queues/components/QueueRunsTable.tsx | 43 | function queuedConditionFallbackRank(condition: RuntimeCondition): number { | CODE |
| LOW | ui/src/features/queues/components/QueueRunsTable.tsx | 48 | function compareQueuedConditionFallback( | CODE |
| LOW | ui/src/features/queues/components/QueueRunsTable.tsx | 61 | function getQueuedConditionSummary( | CODE |
| LOW | …s/workflow-workspace/settings/useSettingsLeaveGuard.ts | 202 | export function SettingsLeaveGuardProvider({ | CODE |
| LOW | …features/workflow-workspace/canvas/WorkspaceCanvas.tsx | 228 | function CloseRightPanelOnActivity({ paneActive }: { paneActive: boolean }) { | CODE |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …workflow-workspace/__tests__/singleTab.parity.test.tsx | 71 | expect(view.result.current.value.runs.map((r) => r.dagRunId)).toEqual([ | CODE |
| CRITICAL | …rkflow-workspace/data/__tests__/useRunHistory.test.tsx | 110 | expect(view.result.current.value.runs.map((r) => r.dagRunId)).toEqual([ | CODE |
| CRITICAL | …rkflow-workspace/data/__tests__/useRunHistory.test.tsx | 165 | expect(view.result.current.value.runs.map((r) => r.dagRunId)).toEqual([ | CODE |
| CRITICAL | internal/cmn/config/loader.go | 1227 | if cfg.Server.Auth.Builtin.InitialAdmin.IsConfigured() { | CODE |
| CRITICAL | internal/cmn/config/loader_test.go | 1775 | require.True(t, cfg.Server.Auth.OIDC.RoleMapping.WorkspaceAccessPolicyActive()) | CODE |
| CRITICAL | internal/cmn/config/loader_test.go | 1858 | require.False(t, cfg.Server.Auth.OIDC.RoleMapping.WorkspaceAccessPolicyActive()) | CODE |
| CRITICAL | internal/cmn/config/loader_test.go | 2312 | assert.True(t, cfg.Server.Auth.Builtin.InitialAdmin.IsConfigured()) | CODE |
| CRITICAL | internal/cmn/config/loader_test.go | 2337 | assert.False(t, cfg.Server.Auth.Builtin.InitialAdmin.IsConfigured()) | CODE |
| CRITICAL | internal/cmn/config/loader_test.go | 2352 | assert.True(t, cfg.Server.Auth.Builtin.InitialAdmin.IsConfigured()) | CODE |
| CRITICAL | internal/service/frontend/file/stores.go | 351 | if setupRequired && cfg.Server.Auth.Builtin.InitialAdmin.IsConfigured() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/browserhost/certproxy/certproxy.go | 11 | // └─ anything else ───────────── the device's own proxy setup | COMMENT |
| MEDIUM | internal/persis/file/collection.go | 85 | // ─── Collection methods ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/file/collection.go | 351 | // ─── internal helpers ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/file/collection.go | 621 | // ─── path helpers ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/file/collection.go | 633 | // ─── cursor helpers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/file/baseconfig/default_base_config.go | 10 | # ===================== | COMMENT |
| MEDIUM | internal/persis/testutil/memory.go | 45 | // ─── MemoryCollection ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/testutil/memory.go | 195 | // ─── helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/webhook.go | 585 | // ─── encoding helpers ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/license_test.go | 46 | // ─── Interface-level tests (memory-backed) ──────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/license_test.go | 106 | // ─── File-layout compatibility tests ────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/user.go | 493 | // ─── helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/secret.go | 412 | // ─── helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/upgradecheck_test.go | 46 | // ─── Interface-level tests (memory-backed) ──────────────────────────────────── | COMMENT |
| MEDIUM | internal/persis/store/upgradecheck_test.go | 94 | // ─── File-layout compatibility tests ────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …dags/components/dag-details/webhookProfileSelection.ts | 75 | curlHeaders.push('Authorization: Bearer <YOUR_TOKEN>'); | CODE |
| HIGH | …dags/components/dag-details/webhookProfileSelection.ts | 94 | ? '-H "Authorization: Bearer <YOUR_TOKEN>" \\\n ' | CODE |
| HIGH | …dags/components/dag-details/webhookProfileSelection.ts | 110 | ? "'Authorization': 'Bearer <YOUR_TOKEN>',\n " | CODE |
| HIGH | …s/components/dag-details/__tests__/WebhookTab.test.tsx | 256 | screen.getByText(/Authorization: Bearer <YOUR_TOKEN>/) | CODE |
| HIGH | …/dag-details/__tests__/webhookProfileSelection.test.ts | 51 | expect(examples.curl).toContain('-H "Authorization: Bearer <YOUR_TOKEN>"'); | CODE |
| HIGH | …/dag-details/__tests__/webhookProfileSelection.test.ts | 67 | "'Authorization': 'Bearer <YOUR_TOKEN>',\n };" | CODE |
| HIGH | …/dag-details/__tests__/webhookProfileSelection.test.ts | 77 | expect(tokenOnly.curl).toContain('Authorization: Bearer <YOUR_TOKEN>'); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …res/visual-editor/inspector/__tests__/General.test.tsx | 57 | 'placeholder', | CODE |
| LOW | …res/visual-editor/inspector/__tests__/General.test.tsx | 79 | expect(name).toHaveAttribute('placeholder', 'onSuccess'); | CODE |
| LOW | …res/visual-editor/inspector/__tests__/General.test.tsx | 122 | 'placeholder', | CODE |
| LOW | …al-editor/references/__tests__/ReferenceInput.test.tsx | 91 | expect(el).toHaveAttribute('placeholder', 'ph'); | CODE |
| LOW | …res/visual-editor/canvas/__tests__/ToolFilter.test.tsx | 47 | expect(box).toHaveAttribute('placeholder', 'Filter'); | CODE |
| LOW | ui/src/testing/jsxLiterals.ts | 19 | 'placeholder', | CODE |
| LOW | ui/src/i18n/I18nProps.tsx | 11 | 'placeholder', | CODE |
| LOW | ui/src/i18n/__tests__/I18nProvider.test.tsx | 74 | 'placeholder', | CODE |
| LOW | ui/src/pages/license/__tests__/index.test.tsx | 441 | expect(input).toHaveAttribute('placeholder', reported); | CODE |
| LOW | internal/test/mailtest/smtp.go | 43 | s := &SMTP{Username: "user@example.com", Password: "password"} | CODE |
| LOW | internal/test/mailtest/imap.go | 64 | Username: "user@example.com", | CODE |
| LOW | internal/runtime/builtin/docker/registry_auth_test.go | 560 | "email": "user@example.com", // Should be ignored | CODE |
| LOW | internal/spec/types/stringarray_test.go | 187 | input: "user@example.com", | CODE |
| LOW | internal/spec/types/stringarray_test.go | 188 | wantValues: []string{"user@example.com"}, | CODE |
| LOW | internal/cmn/config/config_test.go | 552 | Whitelist: []string{"user@example.com"}, // But whitelist is set | CODE |
| LOW | internal/cmn/config/loader_test.go | 958 | - "user@example.com" | CODE |
| LOW | internal/cmn/config/loader_test.go | 1047 | Whitelist: []string{"user@example.com"}, | CODE |
| LOW | internal/cmn/value/envscope_test.go | 902 | WithEntries(map[string]string{"API_KEY": "placeholder", "PLAIN": "kept"}, EnvSourceDAGEnv). | CODE |
| LOW | internal/cmn/stringutil/stringutil_test.go | 849 | {"user@example.com", "example.com"}, | CODE |
| LOW | internal/cmn/hostpattern/hostpattern_test.go | 22 | "*.10.0.0.1", "a.*.com", "**", "*example.com", "exa mple.com", "-bad.com", "user@example.com", | CODE |
| LOW | internal/persis/file/dag/dagindex/refresh_test.go | 71 | entries := []*indexv1.DAGIndexEntry{{FilePath: "bad.yaml", LoadError: "placeholder"}} | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 207 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 243 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 278 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 304 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 603 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 627 | Email: "user@example.com", | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 645 | {"user@example.com", "user"}, | CODE |
| LOW | internal/service/oidcprovision/service_test.go | 856 | Email: "user@example.com", | CODE |
| LOW | conformance/spec073_mailbox/mailbox_test.go | 155 | assert.Equal(t, "user@example.com", deliveries[0].From, "from defaults to the mailbox") | CODE |
| LOW⚡ | conformance/spec073_mailbox/mailbox_test.go | 190 | {"password_and_oauth.yaml", "validate", `mail account "user@example.com": set exactly one of password or oauth`}, | CODE |
| LOW⚡ | conformance/spec073_mailbox/mailbox_test.go | 191 | {"imap_without_host.yaml", "validate", `mail account "user@example.com": imap.host is required`}, | CODE |
| LOW⚡ | conformance/spec073_mailbox/mailbox_test.go | 200 | {"server_on_gmail_api_account.yaml", "validate", `mail account "user@example.com": imap is not used by a google accoun | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/cmd/example.go | 399 | # DAG-level defaults for harness steps. | COMMENT |
| MEDIUM | internal/cmd/example.go | 450 | # Named custom harness adapters can override or extend built-ins. | COMMENT |
| MEDIUM | internal/test/scheduler.go | 49 | // This is a simple check, in production code you might want a more robust solution | COMMENT |
| MEDIUM | internal/runtime/builtin/ssh/ssh.go | 164 | // making it robust against slow networks and buffering issues. | COMMENT |
| MEDIUM | internal/cmn/cmdutil/shell.go | 36 | // This is the most robust way to escape for POSIX-compliant shells. | COMMENT |
| MEDIUM | conformance/spec067_harness/harness_helper_test.go | 48 | data, err := os.ReadFile(path) // #nosec G304 -- path comes from the harness's own trusted output. | CODE |
| MEDIUM | conformance/spec041_log_write/log_write_test.go | 35 | data, err := os.ReadFile(match[1]) // #nosec G304 -- path comes from the harness's own trusted output. | CODE |
| MEDIUM | conformance/spec048_duckdb/source_git_helper_test.go | 37 | data, err := os.ReadFile(path) // #nosec G304 -- path comes from the harness's own trusted output. | CODE |
| MEDIUM | conformance/spec068_state/state_helper_test.go | 34 | data, err := os.ReadFile(path) // #nosec G304 -- path comes from the harness's own trusted output. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | entrypoint.sh | 6 | # Check if both DOCKER_GID is not -1. This indicates the desire for a docker group | COMMENT |
| LOW | internal/cmd/upgrade.go | 42 | dagu upgrade --check # Check if an update is available | CODE |
| LOW | internal/persis/file/baseconfig/default_base_config.go | 98 | # Assign DAGs to a named queue for concurrency control across DAGs. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/downloader.sh | 57 | # Create a temporary directory for the download | COMMENT |