gitextract_j38tsz8m/ ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ └── feature.yml │ └── workflows/ │ └── release.yml ├── .gitignore ├── .gitpod.yml ├── Dockerfile ├── LICENSE.md ├── Makefile ├── README.md ├── VERSION ├── ch-ui.conf ├── cmd/ │ ├── connect.go │ ├── connect_detach_unix.go │ ├── connect_detach_windows.go │ ├── connect_process_unix.go │ ├── connect_process_windows.go │ ├── root.go │ ├── server.go │ ├── service.go │ ├── tunnel.go │ ├── uninstall.go │ ├── update.go │ └── version.go ├── connector/ │ ├── clickhouse.go │ ├── config/ │ │ └── config.go │ ├── connector.go │ ├── hostinfo.go │ ├── hostinfo_unix.go │ ├── hostinfo_windows.go │ ├── protocol.go │ ├── service/ │ │ ├── launchd.go │ │ ├── service.go │ │ └── systemd.go │ └── ui/ │ └── ui.go ├── docs/ │ ├── brain/ │ │ └── SKILLS.md │ ├── cant-login.md │ ├── legal/ │ │ ├── privacy-policy.md │ │ └── terms-of-service.md │ ├── license.md │ └── production-runbook.md ├── frontend.go ├── go.mod ├── go.sum ├── internal/ │ ├── alerts/ │ │ └── dispatcher.go │ ├── brain/ │ │ ├── provider.go │ │ └── provider_test.go │ ├── config/ │ │ ├── config.go │ │ ├── secret.go │ │ └── secret_test.go │ ├── crypto/ │ │ └── aes.go │ ├── database/ │ │ ├── alert_digests.go │ │ ├── alerts.go │ │ ├── audit_logs.go │ │ ├── audit_logs_test.go │ │ ├── brain.go │ │ ├── cleanup.go │ │ ├── connections.go │ │ ├── dashboards.go │ │ ├── database.go │ │ ├── migrations.go │ │ ├── migrations_guardrails_test.go │ │ ├── models.go │ │ ├── pipelines.go │ │ ├── rate_limits.go │ │ ├── saved_queries.go │ │ ├── schedules.go │ │ ├── sessions.go │ │ ├── settings.go │ │ └── user_roles.go │ ├── embedded/ │ │ └── embedded.go │ ├── governance/ │ │ ├── guardrails.go │ │ ├── guardrails_test.go │ │ ├── harvester_access.go │ │ ├── harvester_metadata.go │ │ ├── harvester_querylog.go │ │ ├── incidents.go │ │ ├── lineage.go │ │ ├── policy_engine.go │ │ ├── store.go │ │ ├── syncer.go │ │ └── types.go │ ├── langfuse/ │ │ └── langfuse.go │ ├── license/ │ │ ├── license.go │ │ ├── pubkey.go │ │ ├── public.pem │ │ └── tokens.go │ ├── models/ │ │ ├── dag.go │ │ ├── ref.go │ │ ├── runner.go │ │ └── scheduler.go │ ├── pipelines/ │ │ ├── clickhouse_sink.go │ │ ├── database_source.go │ │ ├── helpers.go │ │ ├── kafka.go │ │ ├── kafka_scram.go │ │ ├── registry.go │ │ ├── runner.go │ │ ├── s3_source.go │ │ ├── types.go │ │ └── webhook.go │ ├── queryproc/ │ │ ├── variables.go │ │ └── variables_test.go │ ├── scheduler/ │ │ ├── cron.go │ │ └── runner.go │ ├── server/ │ │ ├── handlers/ │ │ │ ├── admin.go │ │ │ ├── admin_brain.go │ │ │ ├── admin_governance.go │ │ │ ├── admin_langfuse.go │ │ │ ├── auth.go │ │ │ ├── auth_helpers_test.go │ │ │ ├── brain.go │ │ │ ├── connections.go │ │ │ ├── dashboards.go │ │ │ ├── governance.go │ │ │ ├── governance_alerts.go │ │ │ ├── governance_auditlog.go │ │ │ ├── governance_querylog.go │ │ │ ├── health.go │ │ │ ├── license.go │ │ │ ├── models.go │ │ │ ├── pipelines.go │ │ │ ├── query.go │ │ │ ├── query_guardrails_test.go │ │ │ ├── query_upload.go │ │ │ ├── saved_queries.go │ │ │ ├── schedules.go │ │ │ └── view_graph.go │ │ ├── middleware/ │ │ │ ├── context.go │ │ │ ├── cors.go │ │ │ ├── license.go │ │ │ ├── logging.go │ │ │ ├── ratelimit.go │ │ │ ├── ratelimit_test.go │ │ │ ├── security.go │ │ │ └── session.go │ │ └── server.go │ ├── tunnel/ │ │ ├── api.go │ │ ├── gateway.go │ │ └── protocol.go │ └── version/ │ └── version.go ├── license/ │ └── public.pem ├── main.go └── ui/ ├── .gitignore ├── README.md ├── index.html ├── package.json ├── src/ │ ├── App.svelte │ ├── app.css │ ├── lib/ │ │ ├── api/ │ │ │ ├── alerts.ts │ │ │ ├── auth.ts │ │ │ ├── brain.ts │ │ │ ├── client.ts │ │ │ ├── governance.ts │ │ │ ├── models.ts │ │ │ ├── pipelines.ts │ │ │ ├── query.ts │ │ │ └── stream.ts │ │ ├── basePath.ts │ │ ├── components/ │ │ │ ├── brain/ │ │ │ │ ├── BrainArtifactCard.svelte │ │ │ │ ├── BrainEmptyState.svelte │ │ │ │ ├── BrainHeader.svelte │ │ │ │ ├── BrainInput.svelte │ │ │ │ ├── BrainMentionDropdown.svelte │ │ │ │ ├── BrainMessage.svelte │ │ │ │ ├── BrainSidebar.svelte │ │ │ │ ├── BrainSqlBlock.svelte │ │ │ │ └── brain-markdown.ts │ │ │ ├── common/ │ │ │ │ ├── Button.svelte │ │ │ │ ├── Combobox.svelte │ │ │ │ ├── ConfirmDialog.svelte │ │ │ │ ├── ContextMenu.svelte │ │ │ │ ├── HelpTip.svelte │ │ │ │ ├── InputDialog.svelte │ │ │ │ ├── MiniTrendChart.svelte │ │ │ │ ├── Modal.svelte │ │ │ │ ├── ProRequired.svelte │ │ │ │ ├── Sheet.svelte │ │ │ │ ├── Spinner.svelte │ │ │ │ └── Toast.svelte │ │ │ ├── dashboard/ │ │ │ │ ├── ChartPanel.svelte │ │ │ │ ├── DashboardGrid.svelte │ │ │ │ ├── PanelEditor.svelte │ │ │ │ ├── TimeRangeSelector.svelte │ │ │ │ └── time-picker/ │ │ │ │ ├── CalendarMonth.svelte │ │ │ │ ├── DualCalendar.svelte │ │ │ │ ├── PresetList.svelte │ │ │ │ ├── TimeInput.svelte │ │ │ │ └── TimezoneSelect.svelte │ │ │ ├── editor/ │ │ │ │ ├── InsightsPanel.svelte │ │ │ │ ├── ResultFooter.svelte │ │ │ │ ├── ResultPanel.svelte │ │ │ │ ├── SchemaPanel.svelte │ │ │ │ ├── SqlEditor.svelte │ │ │ │ ├── StatsPanel.svelte │ │ │ │ └── Toolbar.svelte │ │ │ ├── explorer/ │ │ │ │ ├── DataPreview.svelte │ │ │ │ └── DatabaseTree.svelte │ │ │ ├── governance/ │ │ │ │ ├── LineageGraph.svelte │ │ │ │ └── LineageTableNode.svelte │ │ │ ├── layout/ │ │ │ │ ├── CommandPalette.svelte │ │ │ │ ├── Shell.svelte │ │ │ │ ├── Sidebar.svelte │ │ │ │ ├── TabBar.svelte │ │ │ │ ├── TabContent.svelte │ │ │ │ ├── TabGroup.svelte │ │ │ │ └── content/ │ │ │ │ ├── DatabaseContent.svelte │ │ │ │ ├── ModelContent.svelte │ │ │ │ ├── QueryContent.svelte │ │ │ │ └── TableContent.svelte │ │ │ ├── models/ │ │ │ │ └── ModelNode.svelte │ │ │ ├── pipelines/ │ │ │ │ ├── NodeConfigPanel.svelte │ │ │ │ ├── PipelineCanvas.svelte │ │ │ │ ├── PipelineEditor.svelte │ │ │ │ ├── PipelineList.svelte │ │ │ │ ├── PipelineStatusBar.svelte │ │ │ │ ├── PipelineToolbar.svelte │ │ │ │ └── nodes/ │ │ │ │ ├── SinkNode.svelte │ │ │ │ └── SourceNode.svelte │ │ │ └── table/ │ │ │ ├── Pagination.svelte │ │ │ ├── TableCell.svelte │ │ │ ├── TableHeader.svelte │ │ │ └── VirtualTable.svelte │ │ ├── editor/ │ │ │ └── completions.ts │ │ ├── stores/ │ │ │ ├── command-palette.svelte.ts │ │ │ ├── license.svelte.ts │ │ │ ├── number-format.svelte.ts │ │ │ ├── query-limit.svelte.ts │ │ │ ├── router.svelte.ts │ │ │ ├── schema.svelte.ts │ │ │ ├── session.svelte.ts │ │ │ ├── tabs.svelte.ts │ │ │ ├── theme.svelte.ts │ │ │ └── toast.svelte.ts │ │ ├── types/ │ │ │ ├── alerts.ts │ │ │ ├── api.ts │ │ │ ├── brain.ts │ │ │ ├── governance.ts │ │ │ ├── models.ts │ │ │ ├── pipelines.ts │ │ │ ├── query.ts │ │ │ └── schema.ts │ │ └── utils/ │ │ ├── calendar.ts │ │ ├── ch-types.ts │ │ ├── chart-transform.ts │ │ ├── dashboard-time.test.ts │ │ ├── dashboard-time.ts │ │ ├── export.ts │ │ ├── format.ts │ │ ├── grid-layout.ts │ │ ├── lineage-layout.ts │ │ ├── safe-json.ts │ │ ├── sql.ts │ │ ├── stats.ts │ │ └── uuid.ts │ ├── main.ts │ └── pages/ │ ├── Admin.svelte │ ├── Brain.svelte │ ├── Dashboards.svelte │ ├── Governance.svelte │ ├── Home.svelte │ ├── Login.svelte │ ├── Models.svelte │ ├── Pipelines.svelte │ ├── SavedQueries.svelte │ ├── Schedules.svelte │ └── Settings.svelte ├── svelte.config.js ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.d.ts ├── vite.config.ts └── vitest.config.ts