SYMBOL INDEX (1864 symbols across 163 files) FILE: cmd/connect.go function init (line 117) | func init() { function startDetached (line 129) | func startDetached() (int, string, error) { function sanitizeDetachedArgs (line 169) | func sanitizeDetachedArgs(in []string) []string { function pidFilePath (line 182) | func pidFilePath() string { function acquirePIDLock (line 186) | func acquirePIDLock() (func(), error) { function readPIDFile (line 234) | func readPIDFile(path string) (int, error) { function copyFile (line 248) | func copyFile(src, dst string) error { function fileExists (line 265) | func fileExists(path string) bool { FILE: cmd/connect_detach_unix.go function setProcessDetachedAttr (line 10) | func setProcessDetachedAttr(cmd *exec.Cmd) { FILE: cmd/connect_detach_windows.go function setProcessDetachedAttr (line 7) | func setProcessDetachedAttr(cmd *exec.Cmd) { FILE: cmd/connect_process_unix.go function isProcessRunning (line 10) | func isProcessRunning(pid int) bool { FILE: cmd/connect_process_windows.go function isProcessRunning (line 5) | func isProcessRunning(pid int) bool { FILE: cmd/root.go function init (line 18) | func init() { function Execute (line 22) | func Execute() { function loadEnvFile (line 36) | func loadEnvFile(path string) { FILE: cmd/server.go function init (line 130) | func init() { function runServer (line 149) | func runServer(cmd *cobra.Command) error { function buildServerStartArgs (line 262) | func buildServerStartArgs(cmd *cobra.Command) []string { function startDetachedServer (line 289) | func startDetachedServer(args []string) (int, string, error) { function stopServer (line 325) | func stopServer(pidFile string, timeout time.Duration) (bool, error) { function getRunningServerPID (line 367) | func getRunningServerPID(pidFile string) (int, bool, error) { function preparePIDFileForStart (line 384) | func preparePIDFileForStart(pidFile string) error { function writeServerPIDFile (line 395) | func writeServerPIDFile(pidFile string, pid int) error { function readServerPIDFile (line 408) | func readServerPIDFile(pidFile string) (int, error) { function cleanupServerPIDFile (line 424) | func cleanupServerPIDFile(pidFile string, expectedPID int) { function processExists (line 434) | func processExists(pid int) bool { function isTCPPortOpen (line 456) | func isTCPPortOpen(addr string) bool { function resolvePIDFile (line 467) | func resolvePIDFile(pidFile string) string { FILE: cmd/service.go function init (line 241) | func init() { FILE: cmd/tunnel.go function init (line 208) | func init() { function openTunnelDB (line 224) | func openTunnelDB() (*database.DB, *serverconfig.Config, error) { function printTunnelConnectionInfo (line 237) | func printTunnelConnectionInfo(cfg *serverconfig.Config, conn database.C... function inferPublicTunnelURL (line 261) | func inferPublicTunnelURL(cfg *serverconfig.Config) string { function websocketConnectURL (line 282) | func websocketConnectURL(raw string) string { function isLoopbackTunnelURL (line 310) | func isLoopbackTunnelURL(raw string) bool { function maskToken (line 320) | func maskToken(token string) string { function truncate (line 327) | func truncate(s string, max int) string { FILE: cmd/uninstall.go type uninstallPlan (line 27) | type uninstallPlan struct function init (line 44) | func init() { function runUninstall (line 54) | func runUninstall(cmd *cobra.Command, args []string) error { function buildUninstallPlan (line 117) | func buildUninstallPlan() uninstallPlan { function stopDetachedConnectProcess (line 167) | func stopDetachedConnectProcess(pidFile string) error { function stopServerByPIDFile (line 202) | func stopServerByPIDFile(pidFile string) error { function uninstallConnectorService (line 221) | func uninstallConnectorService() error { function uninstallServerSystemService (line 240) | func uninstallServerSystemService() error { function runPrivileged (line 265) | func runPrivileged(name string, args ...string) error { function removePathIfExists (line 286) | func removePathIfExists(path string) (bool, error) { function printManualUninstallCommands (line 316) | func printManualUninstallCommands(plan uninstallPlan) { function manualUninstallCommands (line 331) | func manualUninstallCommands(plan uninstallPlan) []string { function shellQuote (line 382) | func shellQuote(s string) string { function uniqueNonEmpty (line 386) | func uniqueNonEmpty(in []string) []string { FILE: cmd/update.go constant releasesURL (line 21) | releasesURL = "https://api.github.com/repos/caioricciuti/ch-ui/releases/... type ghRelease (line 24) | type ghRelease struct type ghAsset (line 29) | type ghAsset struct function init (line 47) | func init() { function runUpdate (line 54) | func runUpdate(cmd *cobra.Command, args []string) error { function detectServerRestartArgs (line 197) | func detectServerRestartArgs(pid int, pidFile string) []string { function readProcessArgs (line 209) | func readProcessArgs(pid int) ([]string, error) { function sanitizeServerStartArgs (line 234) | func sanitizeServerStartArgs(args []string, pidFile string) []string { function hasFlag (line 299) | func hasFlag(args []string, longName string) bool { function fetchLatestRelease (line 308) | func fetchLatestRelease() (*ghRelease, error) { function fetchExpectedChecksum (line 326) | func fetchExpectedChecksum(url, assetName string) (string, error) { function downloadFile (line 347) | func downloadFile(url, dest string) error { function fileSHA256 (line 368) | func fileSHA256(path string) (string, error) { function checkWritable (line 382) | func checkWritable(dir string) error { FILE: cmd/version.go function init (line 18) | func init() { FILE: connector/clickhouse.go type CHClient (line 21) | type CHClient struct method doWithRetry (line 94) | func (c *CHClient) doWithRetry(req *http.Request, client *http.Client)... method Execute (line 115) | func (c *CHClient) Execute(ctx context.Context, query, user, password ... method ExecuteRaw (line 196) | func (c *CHClient) ExecuteRaw(ctx context.Context, query, user, passwo... method ExecuteStreaming (line 258) | func (c *CHClient) ExecuteStreaming( method TestConnection (line 411) | func (c *CHClient) TestConnection(ctx context.Context, user, password ... function NewCHClient (line 28) | func NewCHClient(baseURL string, insecureSkipVerify bool) *CHClient { type QueryResult (line 56) | type QueryResult struct type ColumnMeta (line 68) | type ColumnMeta struct function isTransientError (line 75) | func isTransientError(err error) bool { type StreamChunk (line 250) | type StreamChunk struct function isWriteQuery (line 435) | func isWriteQuery(query string) bool { function hasFormatClause (line 442) | func hasFormatClause(query string) bool { function truncate (line 446) | func truncate(s string, maxLen int) string { FILE: connector/config/config.go type Config (line 15) | type Config struct method Validate (line 171) | func (c *Config) Validate() error { method Redacted (line 217) | func (c *Config) Redacted() Config { type configFile (line 49) | type configFile struct function DefaultConfigPath (line 57) | func DefaultConfigPath() string { function Load (line 69) | func Load(configPath string, cliConfig *Config) (*Config, error) { function loadFromFile (line 101) | func loadFromFile(path string, cfg *Config) error { function loadFromEnv (line 126) | func loadFromEnv(cfg *Config) { function mergeConfig (line 141) | func mergeConfig(dst, src *Config) { function GenerateTemplate (line 192) | func GenerateTemplate() string { FILE: connector/connector.go type Connector (line 22) | type Connector struct method Run (line 61) | func (c *Connector) Run() error { method Shutdown (line 88) | func (c *Connector) Shutdown() { method Stats (line 101) | func (c *Connector) Stats() (queriesExecuted int64, uptime time.Durati... method connect (line 121) | func (c *Connector) connect() error { method messageLoop (line 245) | func (c *Connector) messageLoop() { method handleMessage (line 290) | func (c *Connector) handleMessage(msg GatewayMessage) { method executeQuery (line 312) | func (c *Connector) executeQuery(msg GatewayMessage) { method executeStreamQuery (line 380) | func (c *Connector) executeStreamQuery(msg GatewayMessage) { method testConnection (line 439) | func (c *Connector) testConnection(msg GatewayMessage) { method heartbeatLoop (line 462) | func (c *Connector) heartbeatLoop() { method sendHostInfo (line 485) | func (c *Connector) sendHostInfo() { method hostInfoLoop (line 502) | func (c *Connector) hostInfoLoop() { method reconnect (line 526) | func (c *Connector) reconnect() { method send (line 557) | func (c *Connector) send(msg AgentMessage) error { function New (line 46) | func New(cfg *config.Config, u *ui.UI) *Connector { type ConnectError (line 111) | type ConnectError struct method Error (line 117) | func (e *ConnectError) Error() string { function isPermanentAuthError (line 234) | func isPermanentAuthError(msg string) bool { function truncateStr (line 432) | func truncateStr(s string, maxLen int) string { function extractHost (line 573) | func extractHost(urlStr string) string { FILE: connector/hostinfo.go type HostInfo (line 10) | type HostInfo struct function CollectHostInfo (line 25) | func CollectHostInfo(agentStartTime time.Time) *HostInfo { function getMemoryInfo (line 53) | func getMemoryInfo() (total, free uint64) { FILE: connector/hostinfo_unix.go function getDiskInfo (line 8) | func getDiskInfo() (total, free uint64) { FILE: connector/hostinfo_windows.go function getDiskInfo (line 11) | func getDiskInfo() (total, free uint64) { FILE: connector/protocol.go type GatewayMessage (line 4) | type GatewayMessage struct type AgentMessage (line 17) | type AgentMessage struct type QueryStats (line 34) | type QueryStats struct constant MsgTypeAuthOK (line 42) | MsgTypeAuthOK = "auth_ok" constant MsgTypeAuthError (line 43) | MsgTypeAuthError = "auth_error" constant MsgTypeQuery (line 44) | MsgTypeQuery = "query" constant MsgTypeQueryStream (line 45) | MsgTypeQueryStream = "query_stream" constant MsgTypePing (line 46) | MsgTypePing = "ping" constant MsgTypeCancelQuery (line 47) | MsgTypeCancelQuery = "cancel_query" constant MsgTypeTestConnection (line 48) | MsgTypeTestConnection = "test_connection" constant MsgTypeAuth (line 53) | MsgTypeAuth = "auth" constant MsgTypePong (line 54) | MsgTypePong = "pong" constant MsgTypeQueryResult (line 55) | MsgTypeQueryResult = "query_result" constant MsgTypeQueryError (line 56) | MsgTypeQueryError = "query_error" constant MsgTypeTestResult (line 57) | MsgTypeTestResult = "test_result" constant MsgTypeHostInfo (line 58) | MsgTypeHostInfo = "host_info" constant MsgTypeQueryStreamStart (line 59) | MsgTypeQueryStreamStart = "query_stream_start" constant MsgTypeQueryStreamChunk (line 60) | MsgTypeQueryStreamChunk = "query_stream_chunk" constant MsgTypeQueryStreamEnd (line 61) | MsgTypeQueryStreamEnd = "query_stream_end" constant MsgTypeQueryStreamError (line 62) | MsgTypeQueryStreamError = "query_stream_error" FILE: connector/service/launchd.go constant launchdPlistTemplate (line 12) | launchdPlistTemplate = ` method launchdPlistPath (line 44) | func (m *Manager) launchdPlistPath() string { method launchdLogDir (line 49) | func (m *Manager) launchdLogDir() string { method launchdLogPath (line 54) | func (m *Manager) launchdLogPath() string { method launchdIsInstalled (line 58) | func (m *Manager) launchdIsInstalled() bool { method launchdIsRunning (line 62) | func (m *Manager) launchdIsRunning() (bool, error) { method launchdInstall (line 70) | func (m *Manager) launchdInstall(configPath string) error { method launchdUninstall (line 107) | func (m *Manager) launchdUninstall() error { method launchdStart (line 127) | func (m *Manager) launchdStart() error { method launchdStop (line 147) | func (m *Manager) launchdStop() error { method launchdRestart (line 161) | func (m *Manager) launchdRestart() error { method launchdStatus (line 181) | func (m *Manager) launchdStatus() (string, error) { method launchdLogs (line 208) | func (m *Manager) launchdLogs(follow bool, lines int) error { FILE: connector/service/service.go constant ServiceName (line 13) | ServiceName = "ch-ui" constant ServiceLabel (line 14) | ServiceLabel = "com.ch-ui" constant BinaryPath (line 15) | BinaryPath = "/usr/local/bin/ch-ui" constant SystemConfigDir (line 16) | SystemConfigDir = "/etc/ch-ui" constant SystemConfigPath (line 17) | SystemConfigPath = "/etc/ch-ui/config.yaml" type Manager (line 21) | type Manager struct method IsInstalled (line 31) | func (m *Manager) IsInstalled() bool { method IsRunning (line 43) | func (m *Manager) IsRunning() (bool, error) { method Install (line 55) | func (m *Manager) Install(configPath string) error { method Uninstall (line 67) | func (m *Manager) Uninstall() error { method Start (line 79) | func (m *Manager) Start() error { method Stop (line 91) | func (m *Manager) Stop() error { method Restart (line 103) | func (m *Manager) Restart() error { method Status (line 115) | func (m *Manager) Status() (string, error) { method Logs (line 127) | func (m *Manager) Logs(follow bool, lines int) error { method GetLogPath (line 139) | func (m *Manager) GetLogPath() string { method Platform (line 152) | func (m *Manager) Platform() string { method NeedsSudo (line 157) | func (m *Manager) NeedsSudo() bool { function New (line 26) | func New() *Manager { function runCommand (line 164) | func runCommand(name string, args ...string) (string, error) { function runCommandWithSudo (line 171) | func runCommandWithSudo(needsSudo bool, name string, args ...string) (st... function fileExists (line 180) | func fileExists(path string) bool { function GetConfigPath (line 186) | func GetConfigPath() string { function GetConfigDir (line 197) | func GetConfigDir() string { FILE: connector/service/systemd.go constant systemdServiceTemplate (line 11) | systemdServiceTemplate = `[Unit] constant systemdServicePath (line 37) | systemdServicePath = "/etc/systemd/system/ch-ui.service" method systemdIsInstalled (line 39) | func (m *Manager) systemdIsInstalled() bool { method systemdIsRunning (line 43) | func (m *Manager) systemdIsRunning() (bool, error) { method systemdInstall (line 51) | func (m *Manager) systemdInstall(configPath string) error { method systemdUninstall (line 107) | func (m *Manager) systemdUninstall() error { method systemdStart (line 128) | func (m *Manager) systemdStart() error { method systemdStop (line 146) | func (m *Manager) systemdStop() error { method systemdRestart (line 160) | func (m *Manager) systemdRestart() error { method systemdStatus (line 173) | func (m *Manager) systemdStatus() (string, error) { method systemdLogs (line 210) | func (m *Manager) systemdLogs(follow bool, lines int) error { FILE: connector/ui/ui.go type UI (line 14) | type UI struct method Logo (line 55) | func (u *UI) Logo(version string) { method Info (line 73) | func (u *UI) Info(format string, args ...interface{}) { method Success (line 82) | func (u *UI) Success(format string, args ...interface{}) { method Error (line 91) | func (u *UI) Error(format string, args ...interface{}) { method DiagnosticError (line 111) | func (u *UI) DiagnosticError(errType ErrorType, source, message string... method AuthError (line 151) | func (u *UI) AuthError(serverMessage string) { method ConnectionError (line 195) | func (u *UI) ConnectionError(err error, tunnelURL string) { method Warn (line 238) | func (u *UI) Warn(format string, args ...interface{}) { method Debug (line 247) | func (u *UI) Debug(format string, args ...interface{}) { method Status (line 255) | func (u *UI) Status(tunnelURL, clickhouseURL string, uptime time.Durat... method QueryLog (line 271) | func (u *UI) QueryLog(queryID string, elapsed time.Duration, rows int) { method QueryError (line 283) | func (u *UI) QueryError(queryID string, err error) { method Disconnected (line 294) | func (u *UI) Disconnected(reason string) { method Reconnecting (line 303) | func (u *UI) Reconnecting(delay time.Duration) { method Box (line 312) | func (u *UI) Box(title string, lines map[string]string, order []string) { function New (line 32) | func New(noColor, quiet, verbose, jsonMode bool) *UI { type ErrorType (line 100) | type ErrorType constant ErrorTypeNetwork (line 103) | ErrorTypeNetwork ErrorType = "NETWORK" constant ErrorTypeAuth (line 104) | ErrorTypeAuth ErrorType = "AUTH" constant ErrorTypeServer (line 105) | ErrorTypeServer ErrorType = "SERVER" constant ErrorTypeConfig (line 106) | ErrorTypeConfig ErrorType = "CONFIG" constant ErrorTypeUnknown (line 107) | ErrorTypeUnknown ErrorType = "UNKNOWN" function formatDuration (line 331) | func formatDuration(d time.Duration) string { function formatNumber (line 341) | func formatNumber(n int) string { function FormatBytes (line 352) | func FormatBytes(b uint64) string { FILE: frontend.go function frontendFS (line 12) | func frontendFS() fs.FS { FILE: internal/alerts/dispatcher.go constant ChannelTypeSMTP (line 24) | ChannelTypeSMTP = "smtp" constant ChannelTypeResend (line 25) | ChannelTypeResend = "resend" constant ChannelTypeBrevo (line 26) | ChannelTypeBrevo = "brevo" constant EventTypePolicyViolation (line 30) | EventTypePolicyViolation = "policy.violation" constant EventTypeScheduleFailed (line 31) | EventTypeScheduleFailed = "schedule.failed" constant EventTypeScheduleSlow (line 32) | EventTypeScheduleSlow = "schedule.slow" constant SeverityInfo (line 36) | SeverityInfo = "info" constant SeverityWarn (line 37) | SeverityWarn = "warn" constant SeverityError (line 38) | SeverityError = "error" constant SeverityCritical (line 39) | SeverityCritical = "critical" constant dispatchTickInterval (line 43) | dispatchTickInterval = 8 * time.Second constant maxNewEventsPerTick (line 44) | maxNewEventsPerTick = 100 constant maxJobsPerTick (line 45) | maxJobsPerTick = 30 type Dispatcher (line 48) | type Dispatcher struct method Start (line 66) | func (d *Dispatcher) Start() { method Stop (line 84) | func (d *Dispatcher) Stop() { method tick (line 88) | func (d *Dispatcher) tick() { method materializeEventJobs (line 97) | func (d *Dispatcher) materializeEventJobs() { method processDueJobs (line 161) | func (d *Dispatcher) processDueJobs() { method processDueDigests (line 224) | func (d *Dispatcher) processDueDigests() { method sendByChannelType (line 290) | func (d *Dispatcher) sendByChannelType(ctx context.Context, channelTyp... method tryEscalationForDispatchJob (line 411) | func (d *Dispatcher) tryEscalationForDispatchJob(job database.AlertDis... method tryEscalationForDigest (line 444) | func (d *Dispatcher) tryEscalationForDigest(digest database.AlertRoute... method sendSMTP (line 553) | func (d *Dispatcher) sendSMTP(ctx context.Context, cfg map[string]inte... method sendResend (line 683) | func (d *Dispatcher) sendResend(ctx context.Context, cfg map[string]in... method sendBrevo (line 732) | func (d *Dispatcher) sendBrevo(ctx context.Context, cfg map[string]int... function NewDispatcher (line 55) | func NewDispatcher(db *database.DB, cfg *config.Config) *Dispatcher { function SendDirect (line 283) | func SendDirect(ctx context.Context, channelType string, channelConfig m... function ruleMatchesEvent (line 303) | func ruleMatchesEvent(rule database.AlertRule, event database.AlertEvent... function severityRank (line 312) | func severityRank(s string) int { function parseRecipients (line 327) | func parseRecipients(raw string) []string { function parseStringList (line 345) | func parseStringList(raw string) []string { function defaultBody (line 363) | func defaultBody(job database.AlertDispatchJobWithDetails) string { function renderTemplate (line 378) | func renderTemplate(tpl string, job database.AlertDispatchJobWithDetails... function retryBackoff (line 398) | func retryBackoff(attempt int) time.Duration { function renderDigestBody (line 477) | func renderDigestBody(digest database.AlertRouteDigestWithDetails) string { function coalesce (line 502) | func coalesce(v *string, fallback string) string { function stringCfg (line 509) | func stringCfg(cfg map[string]interface{}, key string) string { function boolCfg (line 517) | func boolCfg(cfg map[string]interface{}, key string, defaultVal bool) bo... function intCfg (line 535) | func intCfg(cfg map[string]interface{}, key string, defaultVal int) int { FILE: internal/brain/provider.go type Message (line 17) | type Message struct type ProviderConfig (line 23) | type ProviderConfig struct type ChatResult (line 30) | type ChatResult struct type Provider (line 37) | type Provider interface function NewProvider (line 42) | func NewProvider(kind string) (Provider, error) { type openAIProvider (line 55) | type openAIProvider struct method baseURL (line 117) | func (p *openAIProvider) baseURL(cfg ProviderConfig) string { method StreamChat (line 182) | func (p *openAIProvider) StreamChat(ctx context.Context, cfg ProviderC... method streamChatAttempt (line 216) | func (p *openAIProvider) streamChatAttempt(ctx context.Context, cfg Pr... method ListModels (line 309) | func (p *openAIProvider) ListModels(ctx context.Context, cfg ProviderC... type openAIRequest (line 59) | type openAIRequest struct type openAIStreamOptions (line 67) | type openAIStreamOptions struct type openAIChunk (line 71) | type openAIChunk struct constant openAIDefaultTemperature (line 83) | openAIDefaultTemperature = 0.1 function ensureOpenAIV1Base (line 85) | func ensureOpenAIV1Base(rawBase string) string { function shouldRetryOpenAIV1 (line 109) | func shouldRetryOpenAIV1(status int, body []byte) bool { function DefaultModelParameters (line 138) | func DefaultModelParameters(kind, model string) map[string]interface{} { function openAIRequestTemperature (line 147) | func openAIRequestTemperature(model string) *float64 { function openAIModelRequiresDefaultTemperature (line 155) | func openAIModelRequiresDefaultTemperature(model string) bool { function openAIModelParameters (line 163) | func openAIModelParameters(temperature *float64) map[string]interface{} { function isUnsupportedOpenAITemperature (line 171) | func isUnsupportedOpenAITemperature(status int, body []byte) bool { type ollamaProvider (line 376) | type ollamaProvider struct method baseURL (line 380) | func (p *ollamaProvider) baseURL(cfg ProviderConfig) string { method StreamChat (line 387) | func (p *ollamaProvider) StreamChat(ctx context.Context, cfg ProviderC... method ListModels (line 457) | func (p *ollamaProvider) ListModels(ctx context.Context, cfg ProviderC... FILE: internal/brain/provider_test.go function TestOpenAIProviderStreamChatOmitsTemperatureForReasoningModels (line 14) | func TestOpenAIProviderStreamChatOmitsTemperatureForReasoningModels(t *t... function TestOpenAIProviderStreamChatRetriesWithoutTemperatureOnUnsupportedValue (line 68) | func TestOpenAIProviderStreamChatRetriesWithoutTemperatureOnUnsupportedV... function writeOpenAIStreamResponse (line 139) | func writeOpenAIStreamResponse(w http.ResponseWriter, content string, in... FILE: internal/config/config.go type Config (line 15) | type Config struct method IsProduction (line 218) | func (c *Config) IsProduction() bool { method IsPro (line 222) | func (c *Config) IsPro() bool { type serverConfigFile (line 41) | type serverConfigFile struct function DefaultServerConfigPath (line 53) | func DefaultServerConfigPath() string { function Load (line 65) | func Load(configPath string) *Config { function loadServerConfigFile (line 144) | func loadServerConfigFile(path string, cfg *Config) error { function GenerateServerTemplate (line 184) | func GenerateServerTemplate() string { function trimQuotes (line 227) | func trimQuotes(s string) string { FILE: internal/config/secret.go constant DefaultAppSecretKey (line 15) | DefaultAppSecretKey = "ch-ui-default-secret-key-change-in-production" type SecretKeySource (line 18) | type SecretKeySource constant SecretKeySourceConfigured (line 21) | SecretKeySourceConfigured SecretKeySource = "configured" constant SecretKeySourceFile (line 22) | SecretKeySourceFile SecretKeySource = "file" constant SecretKeySourceGenerated (line 23) | SecretKeySourceGenerated SecretKeySource = "generated" function AppSecretKeyPath (line 27) | func AppSecretKeyPath(databasePath string) string { function EnsureAppSecretKey (line 38) | func EnsureAppSecretKey(cfg *Config) (SecretKeySource, error) { function generateRandomSecret (line 76) | func generateRandomSecret(size int) (string, error) { FILE: internal/config/secret_test.go function TestEnsureAppSecretKeyConfigured (line 8) | func TestEnsureAppSecretKeyConfigured(t *testing.T) { function TestEnsureAppSecretKeyGenerateAndReload (line 26) | func TestEnsureAppSecretKeyGenerateAndReload(t *testing.T) { FILE: internal/crypto/aes.go function deriveKey (line 20) | func deriveKey(secret string) ([]byte, error) { function Encrypt (line 26) | func Encrypt(plaintext, secret string) (string, error) { function Decrypt (line 64) | func Decrypt(encryptedStr, secret string) (string, error) { function IsEncrypted (line 112) | func IsEncrypted(value string) bool { FILE: internal/database/alert_digests.go type AlertRouteDigestWithDetails (line 13) | type AlertRouteDigestWithDetails struct method UpsertAlertRouteDigest (line 45) | func (db *DB) UpsertAlertRouteDigest(rule AlertRule, route AlertRuleRout... method ListDueAlertRouteDigests (line 138) | func (db *DB) ListDueAlertRouteDigests(limit int) ([]AlertRouteDigestWit... method MarkAlertRouteDigestSending (line 199) | func (db *DB) MarkAlertRouteDigestSending(id string) error { method MarkAlertRouteDigestSent (line 214) | func (db *DB) MarkAlertRouteDigestSent(id string) error { method MarkAlertRouteDigestRetry (line 229) | func (db *DB) MarkAlertRouteDigestRetry(id string, nextAttemptAt time.Ti... method MarkAlertRouteDigestFailed (line 248) | func (db *DB) MarkAlertRouteDigestFailed(id string, lastError string) er... function parseDigestStringArray (line 265) | func parseDigestStringArray(raw string) []string { FILE: internal/database/alerts.go type AlertChannel (line 13) | type AlertChannel struct type AlertRule (line 24) | type AlertRule struct type AlertRuleRoute (line 39) | type AlertRuleRoute struct type AlertRuleRouteView (line 56) | type AlertRuleRouteView struct type AlertEvent (line 64) | type AlertEvent struct type AlertDispatchJob (line 79) | type AlertDispatchJob struct type AlertDispatchJobWithDetails (line 96) | type AlertDispatchJobWithDetails struct method CreateAlertChannel (line 122) | func (db *DB) CreateAlertChannel(name, channelType, encryptedConfig stri... method UpdateAlertChannel (line 136) | func (db *DB) UpdateAlertChannel(id, name, channelType string, encrypted... method DeleteAlertChannel (line 161) | func (db *DB) DeleteAlertChannel(id string) error { method GetAlertChannelByID (line 168) | func (db *DB) GetAlertChannelByID(id string) (*AlertChannel, error) { method ListAlertChannels (line 177) | func (db *DB) ListAlertChannels() ([]AlertChannel, error) { method CreateAlertRule (line 202) | func (db *DB) CreateAlertRule(name, eventType, severityMin string, enabl... method UpdateAlertRule (line 223) | func (db *DB) UpdateAlertRule(id, name, eventType, severityMin string, e... method DeleteAlertRule (line 243) | func (db *DB) DeleteAlertRule(id string) error { method GetAlertRuleByID (line 250) | func (db *DB) GetAlertRuleByID(id string) (*AlertRule, error) { method ListAlertRules (line 259) | func (db *DB) ListAlertRules() ([]AlertRule, error) { method ListEnabledAlertRules (line 284) | func (db *DB) ListEnabledAlertRules() ([]AlertRule, error) { method ReplaceAlertRuleRoutes (line 310) | func (db *DB) ReplaceAlertRuleRoutes(ruleID string, routes []AlertRuleRo... method ListAlertRuleRoutes (line 386) | func (db *DB) ListAlertRuleRoutes(ruleID string) ([]AlertRuleRouteView, ... method ListActiveAlertRuleRoutes (line 439) | func (db *DB) ListActiveAlertRuleRoutes(ruleID string) ([]AlertRuleRoute... method CreateAlertEvent (line 492) | func (db *DB) CreateAlertEvent(connectionID *string, eventType, severity... method ListAlertEvents (line 521) | func (db *DB) ListAlertEvents(limit int, eventType, status string) ([]Al... method ListNewAlertEvents (line 578) | func (db *DB) ListNewAlertEvents(limit int) ([]AlertEvent, error) { method MarkAlertEventProcessed (line 619) | func (db *DB) MarkAlertEventProcessed(id string) error { method HasRecentAlertDispatch (line 630) | func (db *DB) HasRecentAlertDispatch(routeID, fingerprint string, since ... method CreateAlertDispatchJob (line 650) | func (db *DB) CreateAlertDispatchJob(eventID, ruleID, routeID, channelID... method ListDueAlertDispatchJobs (line 666) | func (db *DB) ListDueAlertDispatchJobs(limit int) ([]AlertDispatchJobWit... method MarkAlertDispatchJobSending (line 740) | func (db *DB) MarkAlertDispatchJobSending(id string) error { method MarkAlertDispatchJobSent (line 755) | func (db *DB) MarkAlertDispatchJobSent(id, providerMessageID string) err... method MarkAlertDispatchJobRetry (line 771) | func (db *DB) MarkAlertDispatchJobRetry(id string, nextAttemptAt time.Ti... method MarkAlertDispatchJobFailed (line 787) | func (db *DB) MarkAlertDispatchJobFailed(id, lastError string) error { function scanAlertChannel (line 802) | func scanAlertChannel(scanner interface { function scanAlertChannelRow (line 819) | func scanAlertChannelRow(row *sql.Row) (*AlertChannel, error) { function scanAlertRule (line 838) | func scanAlertRule(scanner interface { function scanAlertRuleRow (line 857) | func scanAlertRuleRow(row *sql.Row) (*AlertRule, error) { function parseRecipientsJSON (line 878) | func parseRecipientsJSON(raw string) []string { FILE: internal/database/audit_logs.go type AuditLogParams (line 12) | type AuditLogParams struct type AuditLog (line 21) | type AuditLog struct method CreateAuditLog (line 32) | func (db *DB) CreateAuditLog(params AuditLogParams) error { method GetAuditLogs (line 46) | func (db *DB) GetAuditLogs(limit int) ([]AuditLog, error) { method GetAuditLogsFiltered (line 51) | func (db *DB) GetAuditLogsFiltered(limit int, timeRange, action, usernam... FILE: internal/database/audit_logs_test.go function openTestDB (line 8) | func openTestDB(t *testing.T) *DB { function insertAuditLogAt (line 21) | func insertAuditLogAt(t *testing.T, db *DB, action, username, details, i... function TestGetAuditLogsFiltered_TimeRangeActionUsernameSearch (line 33) | func TestGetAuditLogsFiltered_TimeRangeActionUsernameSearch(t *testing.T) { function TestGetAuditLogsFiltered_SearchMatchesMultipleFieldsCaseInsensitive (line 55) | func TestGetAuditLogsFiltered_SearchMatchesMultipleFieldsCaseInsensitive... FILE: internal/database/brain.go type BrainProvider (line 13) | type BrainProvider struct type BrainProviderSecret (line 27) | type BrainProviderSecret struct type BrainModel (line 33) | type BrainModel struct type BrainModelRuntime (line 45) | type BrainModelRuntime struct type BrainChat (line 58) | type BrainChat struct type BrainMessage (line 75) | type BrainMessage struct type BrainArtifact (line 87) | type BrainArtifact struct type BrainToolCall (line 99) | type BrainToolCall struct type BrainSkill (line 112) | type BrainSkill struct function boolToInt (line 123) | func boolToInt(v bool) int { function intToBool (line 130) | func intToBool(v int) bool { function nullableString (line 134) | func nullableString(value string) interface{} { method GetBrainProviders (line 142) | func (db *DB) GetBrainProviders() ([]BrainProvider, error) { method GetBrainProviderByID (line 171) | func (db *DB) GetBrainProviderByID(id string) (*BrainProviderSecret, err... method CreateBrainProvider (line 192) | func (db *DB) CreateBrainProvider(name, kind, baseURL string, encryptedA... method UpdateBrainProvider (line 233) | func (db *DB) UpdateBrainProvider(id, name, kind, baseURL string, encryp... method DeleteBrainProvider (line 288) | func (db *DB) DeleteBrainProvider(id string) error { method GetBrainModels (line 296) | func (db *DB) GetBrainModels(providerID string) ([]BrainModel, error) { method GetBrainModelByID (line 331) | func (db *DB) GetBrainModelByID(id string) (*BrainModel, error) { method EnsureBrainModel (line 349) | func (db *DB) EnsureBrainModel(providerID, name, displayName string) (st... method UpdateBrainModel (line 378) | func (db *DB) UpdateBrainModel(id string, displayName string, isActive, ... method SetBrainModelActive (line 415) | func (db *DB) SetBrainModelActive(id string, isActive bool) error { method ClearDefaultBrainModelsByProvider (line 427) | func (db *DB) ClearDefaultBrainModelsByProvider(providerID string) error { method ClearDefaultBrainModelByProviderExcept (line 439) | func (db *DB) ClearDefaultBrainModelByProviderExcept(providerID, keepMod... method GetDefaultBrainModelRuntime (line 451) | func (db *DB) GetDefaultBrainModelRuntime() (*BrainModelRuntime, error) { method GetBrainModelRuntimeByID (line 491) | func (db *DB) GetBrainModelRuntimeByID(modelID string) (*BrainModelRunti... method GetBrainSkills (line 530) | func (db *DB) GetBrainSkills() ([]BrainSkill, error) { method GetActiveBrainSkill (line 557) | func (db *DB) GetActiveBrainSkill() (*BrainSkill, error) { method GetBrainSkillByID (line 575) | func (db *DB) GetBrainSkillByID(id string) (*BrainSkill, error) { method UpsertDefaultBrainSkill (line 593) | func (db *DB) UpsertDefaultBrainSkill(name, content, createdBy string) (... method UpdateBrainSkill (line 615) | func (db *DB) UpdateBrainSkill(id, name, content string, isActive, isDef... method CreateBrainSkill (line 645) | func (db *DB) CreateBrainSkill(name, content, createdBy string, isActive... method GetBrainChatsByUser (line 676) | func (db *DB) GetBrainChatsByUser(username, connectionID string, include... function scanBrainChat (line 704) | func scanBrainChat(scanner interface { method GetBrainChatByIDForUser (line 724) | func (db *DB) GetBrainChatByIDForUser(chatID, username string) (*BrainCh... method CreateBrainChat (line 746) | func (db *DB) CreateBrainChat(username, connectionID, title, providerID,... method UpdateBrainChat (line 764) | func (db *DB) UpdateBrainChat(chatID, title, providerID, modelID string,... method TouchBrainChat (line 774) | func (db *DB) TouchBrainChat(chatID string) error { method DeleteBrainChat (line 783) | func (db *DB) DeleteBrainChat(chatID string) error { method GetBrainMessages (line 791) | func (db *DB) GetBrainMessages(chatID string) ([]BrainMessage, error) { method CreateBrainMessage (line 815) | func (db *DB) CreateBrainMessage(chatID, role, content, status, errorTex... method UpdateBrainMessage (line 828) | func (db *DB) UpdateBrainMessage(id, content, status, errorText string) ... method CreateBrainArtifact (line 837) | func (db *DB) CreateBrainArtifact(chatID, messageID, artifactType, title... method GetBrainArtifacts (line 847) | func (db *DB) GetBrainArtifacts(chatID string) ([]BrainArtifact, error) { method CreateBrainToolCall (line 872) | func (db *DB) CreateBrainToolCall(chatID, messageID, toolName, inputJSON... method GetBrainModelsWithProvider (line 882) | func (db *DB) GetBrainModelsWithProvider(activeOnly bool) ([]map[string]... FILE: internal/database/cleanup.go method StartCleanupJobs (line 10) | func (db *DB) StartCleanupJobs() { method cleanupExpiredSessions (line 35) | func (db *DB) cleanupExpiredSessions() { method cleanupRateLimits (line 48) | func (db *DB) cleanupRateLimits() { FILE: internal/database/connections.go type Connection (line 14) | type Connection struct type HostInfo (line 26) | type HostInfo struct method GetConnections (line 41) | func (db *DB) GetConnections() ([]Connection, error) { method GetConnectionByToken (line 70) | func (db *DB) GetConnectionByToken(token string) (*Connection, error) { method GetConnectionByTokenCtx (line 99) | func (db *DB) GetConnectionByTokenCtx(ctx context.Context, token string)... method GetConnectionByID (line 127) | func (db *DB) GetConnectionByID(id string) (*Connection, error) { method GetConnectionCount (line 151) | func (db *DB) GetConnectionCount() (int, error) { method CreateConnection (line 161) | func (db *DB) CreateConnection(name, token string, isEmbedded bool) (str... method UpdateConnectionStatus (line 178) | func (db *DB) UpdateConnectionStatus(id, status string) error { method DeleteConnection (line 191) | func (db *DB) DeleteConnection(id string) error { method UpdateConnectionToken (line 200) | func (db *DB) UpdateConnectionToken(id, newToken string) error { method UpdateConnectionName (line 209) | func (db *DB) UpdateConnectionName(id, newName string) error { method UpdateConnectionHostInfo (line 218) | func (db *DB) UpdateConnectionHostInfo(connId string, info HostInfo) err... method GetConnectionHostInfo (line 234) | func (db *DB) GetConnectionHostInfo(connId string) (*HostInfo, error) { method GetEmbeddedConnection (line 258) | func (db *DB) GetEmbeddedConnection() (*Connection, error) { FILE: internal/database/dashboards.go constant systemDashboardName (line 12) | systemDashboardName = "System Overview" constant systemDashboardDescription (line 13) | systemDashboardDescription = "Built-in operational dashboard for ClickHo... constant systemDashboardCreatedBy (line 14) | systemDashboardCreatedBy = "system" type Dashboard (line 18) | type Dashboard struct type Panel (line 28) | type Panel struct method GetDashboards (line 45) | func (db *DB) GetDashboards() ([]Dashboard, error) { method GetDashboardByID (line 73) | func (db *DB) GetDashboardByID(id string) (*Dashboard, error) { method CreateDashboard (line 94) | func (db *DB) CreateDashboard(name, description, createdBy string) (stri... method UpdateDashboard (line 118) | func (db *DB) UpdateDashboard(id, name, description string) error { method DeleteDashboard (line 137) | func (db *DB) DeleteDashboard(id string) error { method GetPanelsByDashboard (line 146) | func (db *DB) GetPanelsByDashboard(dashboardID string) ([]Panel, error) { method GetPanelByID (line 174) | func (db *DB) GetPanelByID(id string) (*Panel, error) { method CreatePanel (line 194) | func (db *DB) CreatePanel(dashboardID, name, panelType, query, connectio... method UpdatePanel (line 218) | func (db *DB) UpdatePanel(id, name, panelType, query, connectionID, conf... method DeletePanel (line 237) | func (db *DB) DeletePanel(id string) error { type seededPanel (line 245) | type seededPanel struct method EnsureSystemOverviewDashboard (line 258) | func (db *DB) EnsureSystemOverviewDashboard() error { FILE: internal/database/database.go function nullStringToPtr (line 15) | func nullStringToPtr(ns sql.NullString) *string { type DB (line 23) | type DB struct method Close (line 74) | func (db *DB) Close() error { method Conn (line 79) | func (db *DB) Conn() *sql.DB { function Open (line 29) | func Open(path string) (*DB, error) { FILE: internal/database/migrations.go method runMigrations (line 11) | func (db *DB) runMigrations() error { method migrateModelSchedulesAnchor (line 944) | func (db *DB) migrateModelSchedulesAnchor() error { method ensureColumn (line 1030) | func (db *DB) ensureColumn(tableName, columnName, definition string) err... FILE: internal/database/migrations_guardrails_test.go function TestGuardrailColumnsExistAfterMigrations (line 5) | func TestGuardrailColumnsExistAfterMigrations(t *testing.T) { function mustHaveColumn (line 13) | func mustHaveColumn(t *testing.T, db *DB, tableName, columnName string) { FILE: internal/database/models.go type Model (line 12) | type Model struct type ModelRun (line 31) | type ModelRun struct type ModelRunResult (line 46) | type ModelRunResult struct method GetModelsByConnection (line 63) | func (db *DB) GetModelsByConnection(connectionID string) ([]Model, error) { method GetModelByID (line 90) | func (db *DB) GetModelByID(id string) (*Model, error) { method GetModelByName (line 108) | func (db *DB) GetModelByName(connectionID, name string) (*Model, error) { method CreateModel (line 126) | func (db *DB) CreateModel(connectionID, name, description, targetDB, mat... method UpdateModel (line 149) | func (db *DB) UpdateModel(id, name, description, targetDB, materializati... method DeleteModel (line 165) | func (db *DB) DeleteModel(id string) error { method UpdateModelStatus (line 174) | func (db *DB) UpdateModelStatus(id, status, lastError string) error { method CreateModelRun (line 195) | func (db *DB) CreateModelRun(connectionID string, totalModels int, trigg... method FinalizeModelRun (line 216) | func (db *DB) FinalizeModelRun(id, status string, succeeded, failed, ski... method GetModelRuns (line 230) | func (db *DB) GetModelRuns(connectionID string, limit, offset int) ([]Mo... method GetModelRunByID (line 258) | func (db *DB) GetModelRunByID(id string) (*ModelRun, error) { method CreateModelRunResult (line 283) | func (db *DB) CreateModelRunResult(runID, modelID, modelName string) (st... method UpdateModelRunResult (line 299) | func (db *DB) UpdateModelRunResult(runID, modelID, status, resolvedSQL s... method GetModelRunResults (line 323) | func (db *DB) GetModelRunResults(runID string) ([]ModelRunResult, error) { method HasRunningModelRun (line 352) | func (db *DB) HasRunningModelRun(connectionID string) (bool, error) { function scanModel (line 366) | func scanModel(rows *sql.Rows) (Model, error) { function scanModelRow (line 381) | func scanModelRow(row *sql.Row) (*Model, error) { type ModelSchedule (line 400) | type ModelSchedule struct method GetModelSchedulesByConnection (line 416) | func (db *DB) GetModelSchedulesByConnection(connectionID string) ([]Mode... method GetModelScheduleByAnchor (line 439) | func (db *DB) GetModelScheduleByAnchor(connectionID, anchorModelID strin... method UpsertModelSchedule (line 470) | func (db *DB) UpsertModelSchedule(connectionID, anchorModelID, cron, nex... method UpdateModelScheduleStatusByID (line 495) | func (db *DB) UpdateModelScheduleStatusByID(scheduleID, status, lastErro... method DeleteModelScheduleByAnchor (line 516) | func (db *DB) DeleteModelScheduleByAnchor(connectionID, anchorModelID st... method GetEnabledModelSchedules (line 528) | func (db *DB) GetEnabledModelSchedules() ([]ModelSchedule, error) { function scanModelSchedule (line 550) | func scanModelSchedule(rows *sql.Rows) (ModelSchedule, error) { FILE: internal/database/pipelines.go type Pipeline (line 12) | type Pipeline struct type PipelineNode (line 28) | type PipelineNode struct type PipelineEdge (line 41) | type PipelineEdge struct type PipelineRun (line 52) | type PipelineRun struct type PipelineRunLog (line 67) | type PipelineRunLog struct method GetPipelines (line 78) | func (db *DB) GetPipelines() ([]Pipeline, error) { method GetPipelineByID (line 105) | func (db *DB) GetPipelineByID(id string) (*Pipeline, error) { method GetPipelinesByStatus (line 133) | func (db *DB) GetPipelinesByStatus(status string) ([]Pipeline, error) { method CreatePipeline (line 160) | func (db *DB) CreatePipeline(name, description, connectionID, createdBy ... method UpdatePipeline (line 184) | func (db *DB) UpdatePipeline(id, name, description string) error { method UpdatePipelineStatus (line 203) | func (db *DB) UpdatePipelineStatus(id, status, lastError string) error { method DeletePipeline (line 233) | func (db *DB) DeletePipeline(id string) error { method SavePipelineGraph (line 244) | func (db *DB) SavePipelineGraph(pipelineID string, nodes []PipelineNode,... method GetPipelineGraph (line 318) | func (db *DB) GetPipelineGraph(pipelineID string) ([]PipelineNode, []Pip... method CreatePipelineRun (line 375) | func (db *DB) CreatePipelineRun(pipelineID, status string) (string, erro... method UpdatePipelineRun (line 391) | func (db *DB) UpdatePipelineRun(id, status string, rowsIngested, bytesIn... method GetPipelineRuns (line 418) | func (db *DB) GetPipelineRuns(pipelineID string, limit, offset int) ([]P... method CreatePipelineRunLog (line 452) | func (db *DB) CreatePipelineRunLog(runID, level, message string) error { method GetPipelineRunLogs (line 467) | func (db *DB) GetPipelineRunLogs(runID string, limit int) ([]PipelineRun... function scanPipeline (line 499) | func scanPipeline(rows *sql.Rows) (Pipeline, error) { FILE: internal/database/rate_limits.go type RateLimitEntry (line 10) | type RateLimitEntry struct method GetRateLimit (line 21) | func (db *DB) GetRateLimit(identifier string) (*RateLimitEntry, error) { method UpsertRateLimit (line 47) | func (db *DB) UpsertRateLimit(identifier, limitType string, attempts int... method DeleteRateLimit (line 73) | func (db *DB) DeleteRateLimit(identifier string) error { method CleanupExpiredRateLimits (line 83) | func (db *DB) CleanupExpiredRateLimits(windowMs int64) (int64, error) { FILE: internal/database/saved_queries.go type SavedQuery (line 12) | type SavedQuery struct type CreateSavedQueryParams (line 24) | type CreateSavedQueryParams struct method GetSavedQueries (line 33) | func (db *DB) GetSavedQueries() ([]SavedQuery, error) { method GetSavedQueryByID (line 62) | func (db *DB) GetSavedQueryByID(id string) (*SavedQuery, error) { method CreateSavedQuery (line 84) | func (db *DB) CreateSavedQuery(params CreateSavedQueryParams) (string, e... method UpdateSavedQuery (line 111) | func (db *DB) UpdateSavedQuery(id, name, description, query, connectionI... method DeleteSavedQuery (line 133) | func (db *DB) DeleteSavedQuery(id string) error { FILE: internal/database/schedules.go type Schedule (line 12) | type Schedule struct type ScheduleRun (line 31) | type ScheduleRun struct method GetSchedules (line 44) | func (db *DB) GetSchedules() ([]Schedule, error) { method GetEnabledSchedules (line 70) | func (db *DB) GetEnabledSchedules() ([]Schedule, error) { method GetScheduleByID (line 96) | func (db *DB) GetScheduleByID(id string) (*Schedule, error) { method CreateSchedule (line 127) | func (db *DB) CreateSchedule(name, savedQueryID, connectionID, cron, tim... method UpdateSchedule (line 157) | func (db *DB) UpdateSchedule(id, name, cron, timezone string, enabled bo... method UpdateScheduleStatus (line 175) | func (db *DB) UpdateScheduleStatus(id, status, lastError string, nextRun... method DeleteSchedule (line 197) | func (db *DB) DeleteSchedule(id string) error { method CreateScheduleRun (line 206) | func (db *DB) CreateScheduleRun(scheduleID, status string) (string, erro... method UpdateScheduleRun (line 222) | func (db *DB) UpdateScheduleRun(id, status string, rowsAffected, elapsed... method GetScheduleRuns (line 241) | func (db *DB) GetScheduleRuns(scheduleID string, limit, offset int) ([]S... function scanSchedule (line 276) | func scanSchedule(rows *sql.Rows) (Schedule, error) { FILE: internal/database/sessions.go type Session (line 12) | type Session struct type CreateSessionParams (line 24) | type CreateSessionParams struct type SessionUser (line 34) | type SessionUser struct method GetSession (line 42) | func (db *DB) GetSession(token string) (*Session, error) { method CreateSession (line 84) | func (db *DB) CreateSession(params CreateSessionParams) (string, error) { method DeleteSession (line 106) | func (db *DB) DeleteSession(token string) error { method SetSessionsUserRole (line 115) | func (db *DB) SetSessionsUserRole(username, role string) error { method GetUsers (line 127) | func (db *DB) GetUsers() ([]SessionUser, error) { method GetActiveSessionsByConnection (line 165) | func (db *DB) GetActiveSessionsByConnection(connectionID string, limit i... FILE: internal/database/settings.go constant SettingGovernanceSyncEnabled (line 12) | SettingGovernanceSyncEnabled = "governance.sync_enabled" constant SettingGovernanceUpgradeBanner (line 13) | SettingGovernanceUpgradeBanner = "governance.upgrade_banner_dismissed" constant SettingGovernanceSyncUpdatedBy (line 14) | SettingGovernanceSyncUpdatedBy = "governance.sync_updated_by" constant SettingGovernanceSyncUpdatedAt (line 15) | SettingGovernanceSyncUpdatedAt = "governance.sync_updated_at" method GovernanceSyncEnabled (line 20) | func (db *DB) GovernanceSyncEnabled() bool { method SetGovernanceSyncEnabled (line 26) | func (db *DB) SetGovernanceSyncEnabled(enabled bool, actor string) error { method GetSetting (line 41) | func (db *DB) GetSetting(key string) (string, error) { method SetSetting (line 54) | func (db *DB) SetSetting(key, value string) error { method GetAllSettings (line 68) | func (db *DB) GetAllSettings() (map[string]string, error) { method DeleteSetting (line 90) | func (db *DB) DeleteSetting(key string) error { FILE: internal/database/user_roles.go type UserRole (line 9) | type UserRole struct method GetUserRole (line 17) | func (db *DB) GetUserRole(username string) (string, error) { method SetUserRole (line 30) | func (db *DB) SetUserRole(username, role string) error { method DeleteUserRole (line 43) | func (db *DB) DeleteUserRole(username string) error { method GetAllUserRoles (line 52) | func (db *DB) GetAllUserRoles() ([]UserRole, error) { method CountUsersWithRole (line 74) | func (db *DB) CountUsersWithRole(role string) (int, error) { method IsUserRole (line 84) | func (db *DB) IsUserRole(username, role string) (bool, error) { FILE: internal/embedded/embedded.go type EmbeddedAgent (line 18) | type EmbeddedAgent struct method Stop (line 97) | func (ea *EmbeddedAgent) Stop() { function Start (line 26) | func Start(db *database.DB, port int, clickhouseURL, connectionName stri... FILE: internal/governance/guardrails.go constant defaultGuardrailStaleAfter (line 15) | defaultGuardrailStaleAfter = 10 * time.Minute type guardrailStore (line 19) | type guardrailStore interface type alertEventWriter (line 27) | type alertEventWriter interface type GuardrailService (line 31) | type GuardrailService struct method EvaluateQuery (line 61) | func (s *GuardrailService) EvaluateQuery(connectionID, user, queryText... method EvaluateTable (line 66) | func (s *GuardrailService) EvaluateTable(connectionID, user, databaseN... method evaluate (line 77) | func (s *GuardrailService) evaluate(connectionID, user, queryText stri... method isAccessStateUncertain (line 191) | func (s *GuardrailService) isAccessStateUncertain(connectionID string)... method emitUncertainGuardrailEvent (line 216) | func (s *GuardrailService) emitUncertainGuardrailEvent(connectionID, u... type GuardrailDecision (line 38) | type GuardrailDecision struct type GuardrailBlock (line 43) | type GuardrailBlock struct function NewGuardrailService (line 52) | func NewGuardrailService(store *Store, db *database.DB) *GuardrailService { function pickBlockingPolicy (line 243) | func pickBlockingPolicy(policies []Policy) Policy { function guardrailSeverityPriority (line 264) | func guardrailSeverityPriority(v string) int { function normalizeGuardrailSeverity (line 279) | func normalizeGuardrailSeverity(v string) string { function extractPolicyTablesFromQuery (line 292) | func extractPolicyTablesFromQuery(queryText string) []string { FILE: internal/governance/guardrails_test.go type guardrailTestContext (line 10) | type guardrailTestContext struct method setAccessSyncFresh (line 47) | func (c *guardrailTestContext) setAccessSyncFresh(t *testing.T) { method createPolicy (line 54) | func (c *guardrailTestContext) createPolicy(t *testing.T, name, severi... function newGuardrailTestContext (line 17) | func newGuardrailTestContext(t *testing.T) *guardrailTestContext { function TestGuardrailsWarnPolicyAllowsExecution (line 75) | func TestGuardrailsWarnPolicyAllowsExecution(t *testing.T) { function TestGuardrailsBlockPolicyBlocksAndPersistsViolation (line 89) | func TestGuardrailsBlockPolicyBlocksAndPersistsViolation(t *testing.T) { function TestGuardrailsPickDeterministicBlockingPolicy (line 123) | func TestGuardrailsPickDeterministicBlockingPolicy(t *testing.T) { function TestGuardrailsUncertainAccessStateAllowsAndEmitsAlert (line 142) | func TestGuardrailsUncertainAccessStateAllowsAndEmitsAlert(t *testing.T) { function TestExtractPolicyTablesFromQuery (line 167) | func TestExtractPolicyTablesFromQuery(t *testing.T) { FILE: internal/governance/harvester_access.go constant overPermissionInactiveDays (line 13) | overPermissionInactiveDays = 30 method syncAccess (line 17) | func (s *Syncer) syncAccess(ctx context.Context, creds CHCredentials) (*... function toBool (line 264) | func toBool(v interface{}) bool { FILE: internal/governance/harvester_metadata.go method syncMetadata (line 16) | func (s *Syncer) syncMetadata(ctx context.Context, creds CHCredentials) ... function toInt64 (line 277) | func toInt64(v interface{}) int64 { function toStringPtr (line 302) | func toStringPtr(v interface{}) *string { FILE: internal/governance/harvester_querylog.go constant queryLogBatchLimit (line 17) | queryLogBatchLimit = 5000 constant defaultQueryLogWatermark (line 18) | defaultQueryLogWatermark = "2000-01-01 00:00:00" method syncQueryLog (line 22) | func (s *Syncer) syncQueryLog(ctx context.Context, creds CHCredentials) ... function classifyQuery (line 293) | func classifyQuery(query string) string { function normalizeQuery (line 326) | func normalizeQuery(query string) string { function hashNormalized (line 334) | func hashNormalized(normalized string) string { function extractTablesJSON (line 339) | func extractTablesJSON(v interface{}) string { function sanitizeQueryLogWatermark (line 373) | func sanitizeQueryLogWatermark(v string) string { FILE: internal/governance/incidents.go method CreateObjectComment (line 14) | func (s *Store) CreateObjectComment(connectionID, objectType, dbName, ta... method ListObjectComments (line 40) | func (s *Store) ListObjectComments(connectionID, objectType, dbName, tab... method DeleteObjectComment (line 102) | func (s *Store) DeleteObjectComment(connectionID, id string) error { method ListIncidents (line 119) | func (s *Store) ListIncidents(connectionID, status, severity string, lim... method GetIncidentByID (line 167) | func (s *Store) GetIncidentByID(id string) (*Incident, error) { method CreateIncident (line 185) | func (s *Store) CreateIncident(connectionID, sourceType, sourceRef, dedu... method UpdateIncident (line 214) | func (s *Store) UpdateIncident(id, title, severity, status, assignee, de... method UpsertIncidentFromViolation (line 239) | func (s *Store) UpsertIncidentFromViolation(connectionID, sourceRef, pol... method GetViolationByID (line 296) | func (s *Store) GetViolationByID(id string) (*PolicyViolation, error) { method ListIncidentComments (line 319) | func (s *Store) ListIncidentComments(incidentID string, limit int) ([]In... method CreateIncidentComment (line 355) | func (s *Store) CreateIncidentComment(incidentID, commentText, createdBy... function scanIncident (line 380) | func scanIncident(scanner interface { function nullableValue (line 418) | func nullableValue(v string) interface{} { FILE: internal/governance/lineage.go constant tableRefPattern (line 15) | tableRefPattern = `((?:` + "`" + `[^` + "`" + `]+` + "`" + `|[a-zA-Z_][a... type tableRefParsed (line 25) | type tableRefParsed struct function ExtractLineage (line 36) | func ExtractLineage(connectionID string, entry QueryLogEntry) []LineageE... type ColumnMapping (line 88) | type ColumnMapping struct type LineageResult (line 94) | type LineageResult struct function ExtractColumnLineage (line 109) | func ExtractColumnLineage(query string) []ColumnMapping { function ExtractLineageWithColumns (line 154) | func ExtractLineageWithColumns(connectionID string, entry QueryLogEntry)... function splitAndTrimColumns (line 173) | func splitAndTrimColumns(s string) []string { function splitSelectExpressions (line 188) | func splitSelectExpressions(s string) []string { function extractColumnName (line 218) | func extractColumnName(expr string) string { function extractTarget (line 245) | func extractTarget(query string) *tableRefParsed { function classifyEdgeType (line 260) | func classifyEdgeType(query string) EdgeType { function extractSourceTables (line 272) | func extractSourceTables(query string) []tableRefParsed { function parseTableRef (line 303) | func parseTableRef(groups []string) (database, table string) { function stripBackticks (line 318) | func stripBackticks(s string) string { function isSystemTable (line 327) | func isSystemTable(db, table string) bool { function normaliseWhitespace (line 345) | func normaliseWhitespace(s string) string { FILE: internal/governance/policy_engine.go type PolicyStore (line 19) | type PolicyStore interface function EvaluatePolicies (line 28) | func EvaluatePolicies(connectionID string, entry QueryLogEntry, policies... function parseTablesUsed (line 91) | func parseTablesUsed(raw string) []string { function collectUserRoles (line 105) | func collectUserRoles(entries []AccessMatrixEntry) map[string]bool { function hasRole (line 117) | func hasRole(userRoles map[string]bool, requiredRole string) bool { function queryTouchesObject (line 123) | func queryTouchesObject(tablesUsed []string, queryText string, policy Po... function touchesDatabase (line 151) | func touchesDatabase(tablesUsed []string, database string) bool { function touchesTable (line 167) | func touchesTable(tablesUsed []string, database, table string) bool { function columnMentioned (line 195) | func columnMentioned(queryText, column string) bool { function isIdentChar (line 217) | func isIdentChar(c byte) bool { function describePolicyObject (line 226) | func describePolicyObject(p Policy) string { function deref (line 251) | func deref(s *string) string { FILE: internal/governance/store.go function nullStringToPtr (line 14) | func nullStringToPtr(ns sql.NullString) *string { function nullIntToPtr (line 22) | func nullIntToPtr(ni sql.NullInt64) *int { function ptrToNullString (line 31) | func ptrToNullString(s *string) sql.NullString { type Store (line 39) | type Store struct method conn (line 52) | func (s *Store) conn() *sql.DB { method GetSyncStates (line 59) | func (s *Store) GetSyncStates(connectionID string) ([]SyncState, error) { method GetSyncState (line 88) | func (s *Store) GetSyncState(connectionID string, syncType string) (*S... method UpsertSyncState (line 110) | func (s *Store) UpsertSyncState(connectionID string, syncType string, ... method UpdateSyncWatermark (line 133) | func (s *Store) UpdateSyncWatermark(connectionID string, syncType stri... method GetDatabases (line 148) | func (s *Store) GetDatabases(connectionID string) ([]GovDatabase, erro... method UpsertDatabase (line 173) | func (s *Store) UpsertDatabase(d GovDatabase) error { method MarkDatabaseDeleted (line 195) | func (s *Store) MarkDatabaseDeleted(connectionID, name string) error { method GetTables (line 210) | func (s *Store) GetTables(connectionID string) ([]GovTable, error) { method GetTablesByDatabase (line 224) | func (s *Store) GetTablesByDatabase(connectionID, databaseName string)... method GetTableByName (line 239) | func (s *Store) GetTableByName(connectionID, dbName, tableName string)... method UpsertTable (line 258) | func (s *Store) UpsertTable(t GovTable) error { method MarkTableDeleted (line 285) | func (s *Store) MarkTableDeleted(connectionID, dbName, tableName strin... method GetColumns (line 316) | func (s *Store) GetColumns(connectionID, dbName, tableName string) ([]... method UpsertColumn (line 355) | func (s *Store) UpsertColumn(c GovColumn) error { method MarkColumnDeleted (line 383) | func (s *Store) MarkColumnDeleted(connectionID, dbName, tableName, col... method InsertSchemaChange (line 398) | func (s *Store) InsertSchemaChange(sc SchemaChange) error { method CreateSchemaChange (line 411) | func (s *Store) CreateSchemaChange(connectionID string, changeType Sch... method GetSchemaChanges (line 427) | func (s *Store) GetSchemaChanges(connectionID string, limit int) ([]Sc... method BatchInsertQueryLog (line 456) | func (s *Store) BatchInsertQueryLog(connectionID string, entries []Que... method InsertQueryLogBatch (line 498) | func (s *Store) InsertQueryLogBatch(entries []QueryLogEntry) (int, err... method GetQueryLog (line 554) | func (s *Store) GetQueryLog(connectionID string, limit, offset int, us... method GetTopQueries (line 606) | func (s *Store) GetTopQueries(connectionID string, limit int) ([]map[s... method InsertLineageEdge (line 654) | func (s *Store) InsertLineageEdge(edge LineageEdge) error { method UpsertLineageEdge (line 670) | func (s *Store) UpsertLineageEdge(edge LineageEdge) error { method GetLineageForTable (line 675) | func (s *Store) GetLineageForTable(connectionID, dbName, tableName str... method GetFullLineageGraph (line 710) | func (s *Store) GetFullLineageGraph(connectionID string) ([]LineageEdg... method InsertColumnLineageEdge (line 742) | func (s *Store) InsertColumnLineageEdge(edge ColumnLineageEdge) error { method GetColumnEdgesForEdgeIDs (line 756) | func (s *Store) GetColumnEdgesForEdgeIDs(edgeIDs []string) (map[string... method GetQueryByQueryID (line 792) | func (s *Store) GetQueryByQueryID(connectionID, queryID string) (*Quer... method GetTags (line 815) | func (s *Store) GetTags(connectionID string) ([]TagEntry, error) { method GetTagsForTable (line 829) | func (s *Store) GetTagsForTable(connectionID, dbName, tableName string... method GetTagsForColumn (line 844) | func (s *Store) GetTagsForColumn(connectionID, dbName, tableName, colN... method CreateTag (line 859) | func (s *Store) CreateTag(connectionID, objectType, dbName, tableName,... method DeleteTag (line 875) | func (s *Store) DeleteTag(id string) error { method GetTaggedTableCount (line 884) | func (s *Store) GetTaggedTableCount(connectionID string) (int, error) { method DeleteChUsersForConnection (line 912) | func (s *Store) DeleteChUsersForConnection(connectionID string) error { method DeleteChRolesForConnection (line 920) | func (s *Store) DeleteChRolesForConnection(connectionID string) error { method DeleteRoleGrantsForConnection (line 928) | func (s *Store) DeleteRoleGrantsForConnection(connectionID string) err... method DeleteGrantsForConnection (line 936) | func (s *Store) DeleteGrantsForConnection(connectionID string) error { method UpsertChUser (line 946) | func (s *Store) UpsertChUser(u ChUser) error { method GetChUsers (line 964) | func (s *Store) GetChUsers(connectionID string) ([]ChUser, error) { method UpsertChRole (line 995) | func (s *Store) UpsertChRole(r ChRole) error { method GetChRoles (line 1010) | func (s *Store) GetChRoles(connectionID string) ([]ChRole, error) { method UpsertRoleGrant (line 1037) | func (s *Store) UpsertRoleGrant(rg RoleGrant) error { method GetRoleGrants (line 1063) | func (s *Store) GetRoleGrants(connectionID string) ([]RoleGrant, error) { method UpsertGrant (line 1090) | func (s *Store) UpsertGrant(g Grant) error { method GetGrants (line 1114) | func (s *Store) GetGrants(connectionID string) ([]Grant, error) { method RebuildAccessMatrix (line 1148) | func (s *Store) RebuildAccessMatrix(connectionID string) (int, error) { method GetAccessMatrix (line 1281) | func (s *Store) GetAccessMatrix(connectionID string) ([]AccessMatrixEn... method GetAccessMatrixForUser (line 1295) | func (s *Store) GetAccessMatrixForUser(connectionID, userName string) ... method UserHasRole (line 1310) | func (s *Store) UserHasRole(connectionID, userName, roleName string) (... method GetOverPermissions (line 1324) | func (s *Store) GetOverPermissions(connectionID string) ([]OverPermiss... method GetOverPermissionsWithDays (line 1330) | func (s *Store) GetOverPermissionsWithDays(connectionID string, inacti... method GetPolicies (line 1399) | func (s *Store) GetPolicies(connectionID string) ([]Policy, error) { method GetEnabledPolicies (line 1407) | func (s *Store) GetEnabledPolicies(connectionID string) ([]Policy, err... method scanPolicies (line 1414) | func (s *Store) scanPolicies(query string, args ...interface{}) ([]Pol... method GetPolicyByID (line 1443) | func (s *Store) GetPolicyByID(id string) (*Policy, error) { method CreatePolicy (line 1468) | func (s *Store) CreatePolicy(connectionID, name, description, objectTy... method UpdatePolicy (line 1501) | func (s *Store) UpdatePolicy(id, name, description, requiredRole, seve... method DeletePolicy (line 1525) | func (s *Store) DeletePolicy(id string) error { method InsertPolicyViolation (line 1536) | func (s *Store) InsertPolicyViolation(v PolicyViolation) error { method CreateViolation (line 1549) | func (s *Store) CreateViolation(connectionID, policyID, queryLogID, us... method GetViolations (line 1566) | func (s *Store) GetViolations(connectionID string, limit int, policyID... method GetOverview (line 1633) | func (s *Store) GetOverview(connectionID string) (*GovernanceOverview,... method CleanupOldQueryLogs (line 1678) | func (s *Store) CleanupOldQueryLogs(connectionID string, before string... method CleanupOldViolations (line 1690) | func (s *Store) CleanupOldViolations(connectionID string, before strin... function NewStore (line 44) | func NewStore(db *database.DB) *Store { function scanTables (line 297) | func scanTables(rows *sql.Rows) ([]GovTable, error) { function scanLineageEdges (line 724) | func scanLineageEdges(rows *sql.Rows) ([]LineageEdge, error) { function scanTags (line 896) | func scanTags(rows *sql.Rows) ([]TagEntry, error) { function scanAccessMatrix (line 1376) | func scanAccessMatrix(rows *sql.Rows) ([]AccessMatrixEntry, error) { function normalizePolicyEnforcementMode (line 1610) | func normalizePolicyEnforcementMode(v string) string { function normalizeDetectionPhase (line 1620) | func normalizeDetectionPhase(v string) string { FILE: internal/governance/syncer.go constant syncTickInterval (line 17) | syncTickInterval = 5 * time.Minute constant queryTimeout (line 18) | queryTimeout = 60 * time.Second constant staleDuration (line 19) | staleDuration = 10 * time.Minute constant retentionDays (line 20) | retentionDays = 30 type Syncer (line 26) | type Syncer struct method GetStore (line 49) | func (s *Syncer) GetStore() *Store { method StartBackground (line 56) | func (s *Syncer) StartBackground() { method Stop (line 91) | func (s *Syncer) Stop() { method IsRunning (line 102) | func (s *Syncer) IsRunning() bool { method SyncConnection (line 110) | func (s *Syncer) SyncConnection(ctx context.Context, creds CHCredentia... method SyncSingle (line 150) | func (s *Syncer) SyncSingle(ctx context.Context, creds CHCredentials, ... method backgroundTick (line 169) | func (s *Syncer) backgroundTick() { method pruneRetention (line 232) | func (s *Syncer) pruneRetention(connections []database.Connection) { method isSyncStale (line 253) | func (s *Syncer) isSyncStale(connectionID string) bool { method findCredentials (line 276) | func (s *Syncer) findCredentials(connectionID string) (CHCredentials, ... method auditCredentialBorrow (line 302) | func (s *Syncer) auditCredentialBorrow(connectionID string, sess datab... method executeQuery (line 336) | func (s *Syncer) executeQuery(creds CHCredentials, sql string) ([]map[... function NewSyncer (line 39) | func NewSyncer(store *Store, db *database.DB, gw *tunnel.Gateway, secret... FILE: internal/governance/types.go type SensitivityTag (line 5) | type SensitivityTag constant TagPII (line 8) | TagPII SensitivityTag = "PII" constant TagFinancial (line 9) | TagFinancial SensitivityTag = "FINANCIAL" constant TagInternal (line 10) | TagInternal SensitivityTag = "INTERNAL" constant TagPublic (line 11) | TagPublic SensitivityTag = "PUBLIC" constant TagCritical (line 12) | TagCritical SensitivityTag = "CRITICAL" type SyncType (line 22) | type SyncType constant SyncMetadata (line 25) | SyncMetadata SyncType = "metadata" constant SyncQueryLog (line 26) | SyncQueryLog SyncType = "query_log" constant SyncAccess (line 27) | SyncAccess SyncType = "access" type SchemaChangeType (line 32) | type SchemaChangeType constant ChangeDatabaseAdded (line 35) | ChangeDatabaseAdded SchemaChangeType = "database_added" constant ChangeDatabaseRemoved (line 36) | ChangeDatabaseRemoved SchemaChangeType = "database_removed" constant ChangeTableAdded (line 37) | ChangeTableAdded SchemaChangeType = "table_added" constant ChangeTableRemoved (line 38) | ChangeTableRemoved SchemaChangeType = "table_removed" constant ChangeColumnAdded (line 39) | ChangeColumnAdded SchemaChangeType = "column_added" constant ChangeColumnRemoved (line 40) | ChangeColumnRemoved SchemaChangeType = "column_removed" constant ChangeColumnTypeChanged (line 41) | ChangeColumnTypeChanged SchemaChangeType = "column_type_changed" type EdgeType (line 46) | type EdgeType constant EdgeSelectFrom (line 49) | EdgeSelectFrom EdgeType = "select_from" constant EdgeInsertSelect (line 50) | EdgeInsertSelect EdgeType = "insert_select" constant EdgeCreateAsSelect (line 51) | EdgeCreateAsSelect EdgeType = "create_as_select" type SyncState (line 56) | type SyncState struct type GovDatabase (line 69) | type GovDatabase struct type GovTable (line 79) | type GovTable struct type GovColumn (line 95) | type GovColumn struct type SchemaChange (line 112) | type SchemaChange struct type QueryLogEntry (line 125) | type QueryLogEntry struct type LineageEdge (line 147) | type LineageEdge struct type ColumnLineageEdge (line 161) | type ColumnLineageEdge struct type TagEntry (line 169) | type TagEntry struct type ChUser (line 181) | type ChUser struct type ChRole (line 192) | type ChRole struct type RoleGrant (line 200) | type RoleGrant struct type Grant (line 211) | type Grant struct type AccessMatrixEntry (line 226) | type AccessMatrixEntry struct type Policy (line 238) | type Policy struct type PolicyViolation (line 256) | type PolicyViolation struct type ObjectComment (line 272) | type ObjectComment struct type Incident (line 285) | type Incident struct type IncidentComment (line 306) | type IncidentComment struct type GovernanceOverview (line 316) | type GovernanceOverview struct type OverPermission (line 334) | type OverPermission struct type SyncResult (line 347) | type SyncResult struct type MetadataSyncResult (line 356) | type MetadataSyncResult struct type QueryLogSyncResult (line 363) | type QueryLogSyncResult struct type AccessSyncResult (line 370) | type AccessSyncResult struct type CHCredentials (line 380) | type CHCredentials struct type LineageNode (line 388) | type LineageNode struct type LineageGraph (line 396) | type LineageGraph struct function StrPtr (line 403) | func StrPtr(s string) *string { FILE: internal/langfuse/langfuse.go type Config (line 16) | type Config struct method Enabled (line 23) | func (c Config) Enabled() bool { method NormalizeBaseURL (line 28) | func (c *Config) NormalizeBaseURL() { type Usage (line 36) | type Usage struct type TraceParams (line 43) | type TraceParams struct type GenerationParams (line 56) | type GenerationParams struct type ScoreParams (line 71) | type ScoreParams struct type EventParams (line 80) | type EventParams struct type event (line 87) | type event struct type Client (line 96) | type Client struct method Reconfigure (line 116) | func (c *Client) Reconfigure(cfg Config) { method IsEnabled (line 129) | func (c *Client) IsEnabled() bool { method getConfig (line 135) | func (c *Client) getConfig() Config { method Start (line 142) | func (c *Client) Start() { method Stop (line 148) | func (c *Client) Stop() { method loop (line 154) | func (c *Client) loop() { method enqueue (line 187) | func (c *Client) enqueue(e event) { method LogTrace (line 207) | func (c *Client) LogTrace(p TraceParams) { method LogGeneration (line 247) | func (c *Client) LogGeneration(p GenerationParams) { method LogScore (line 287) | func (c *Client) LogScore(p ScoreParams) { method LogEvent (line 311) | func (c *Client) LogEvent(p EventParams) { method flush (line 331) | func (c *Client) flush(batch []event) { method TestConnection (line 372) | func (c *Client) TestConnection(cfg Config) error { function New (line 107) | func New() *Client { function now (line 198) | func now() string { function newID (line 202) | func newID() string { type ConnectionError (line 393) | type ConnectionError struct method Error (line 397) | func (e *ConnectionError) Error() string { FILE: internal/license/license.go type LicenseFile (line 17) | type LicenseFile struct type LicenseInfo (line 29) | type LicenseInfo struct function CommunityLicense (line 38) | func CommunityLicense() *LicenseInfo { function ValidateLicense (line 47) | func ValidateLicense(licenseJSON string) *LicenseInfo { function SignablePayload (line 112) | func SignablePayload(lf LicenseFile) []byte { function parsePublicKey (line 144) | func parsePublicKey(pemData []byte) (ed25519.PublicKey, error) { FILE: internal/license/tokens.go function GenerateTunnelToken (line 13) | func GenerateTunnelToken() string { function GenerateSessionToken (line 20) | func GenerateSessionToken() string { function IsValidTunnelToken (line 29) | func IsValidTunnelToken(token string) bool { FILE: internal/models/dag.go type DepGraph (line 6) | type DepGraph struct method ConnectedComponents (line 78) | func (g *DepGraph) ConnectedComponents() [][]string { method ComponentContaining (line 128) | func (g *DepGraph) ComponentContaining(modelID string) []string { function BuildDAG (line 19) | func BuildDAG(modelIDs []string, refsByID map[string][]string, nameToID ... function GetUpstreamDeps (line 140) | func GetUpstreamDeps(modelID string, deps map[string][]string) map[strin... FILE: internal/models/ref.go function stripSQLComments (line 11) | func stripSQLComments(sql string) string { function ValidateModelName (line 29) | func ValidateModelName(name string) error { function ExtractRefs (line 41) | func ExtractRefs(sqlBody string) []string { function ResolveRefs (line 58) | func ResolveRefs(sqlBody string, modelTargets map[string]string) (string... FILE: internal/models/runner.go type Runner (line 15) | type Runner struct method RunAll (line 34) | func (r *Runner) RunAll(connectionID, triggeredBy string) (string, err... method RunPipeline (line 66) | func (r *Runner) RunPipeline(connectionID, anchorModelID, triggeredBy ... method RunSingle (line 104) | func (r *Runner) RunSingle(connectionID, modelID, triggeredBy string) ... method Validate (line 145) | func (r *Runner) Validate(connectionID string) ([]ValidationError, err... method buildDAG (line 212) | func (r *Runner) buildDAG(allModels []database.Model) (*DepGraph, map[... method execute (line 235) | func (r *Runner) execute(connectionID, triggeredBy string, dag *DepGra... method acquireLock (line 343) | func (r *Runner) acquireLock(connectionID string) error { method releaseLock (line 353) | func (r *Runner) releaseLock(connectionID string) { method findCredentials (line 359) | func (r *Runner) findCredentials(connectionID string) (string, string,... function NewRunner (line 24) | func NewRunner(db *database.DB, gw *tunnel.Gateway, secret string) *Runn... type ValidationError (line 204) | type ValidationError struct function buildDDL (line 328) | func buildDDL(m database.Model, resolvedSQL string) []string { FILE: internal/models/scheduler.go constant modelTickInterval (line 11) | modelTickInterval = 30 * time.Second type Scheduler (line 14) | type Scheduler struct method Start (line 30) | func (s *Scheduler) Start() { method Stop (line 49) | func (s *Scheduler) Stop() { method tick (line 53) | func (s *Scheduler) tick() { function NewScheduler (line 21) | func NewScheduler(db *database.DB, runner *Runner) *Scheduler { FILE: internal/pipelines/clickhouse_sink.go type ClickHouseSink (line 19) | type ClickHouseSink struct method Type (line 37) | func (s *ClickHouseSink) Type() string { return "sink_clickhouse" } method Validate (line 40) | func (s *ClickHouseSink) Validate(cfg ConnectorConfig) error { method WriteBatch (line 53) | func (s *ClickHouseSink) WriteBatch(ctx context.Context, cfg Connector... method ensureTable (line 108) | func (s *ClickHouseSink) ensureTable(ctx context.Context, cfg Connecto... method findCredentials (line 184) | func (s *ClickHouseSink) findCredentials(connectionID string) (string,... function NewClickHouseSink (line 29) | func NewClickHouseSink(gw *tunnel.Gateway, db *database.DB, secretKey st... function inferClickHouseType (line 168) | func inferClickHouseType(v interface{}) string { FILE: internal/pipelines/database_source.go type DatabaseSource (line 17) | type DatabaseSource struct method Type (line 19) | func (d *DatabaseSource) Type() string { return "source_database" } method Validate (line 22) | func (d *DatabaseSource) Validate(cfg ConnectorConfig) error { method Start (line 43) | func (d *DatabaseSource) Start(ctx context.Context, cfg ConnectorConfi... FILE: internal/pipelines/helpers.go function intField (line 4) | func intField(fields map[string]interface{}, key string, def int) int { function stringField (line 22) | func stringField(fields map[string]interface{}, key, def string) string { function boolField (line 35) | func boolField(fields map[string]interface{}, key string, def bool) bool { FILE: internal/pipelines/kafka.go type KafkaSource (line 16) | type KafkaSource struct method Type (line 18) | func (k *KafkaSource) Type() string { return "source_kafka" } method Validate (line 21) | func (k *KafkaSource) Validate(cfg ConnectorConfig) error { method Start (line 34) | func (k *KafkaSource) Start(ctx context.Context, cfg ConnectorConfig, ... type kafkaGroupHandler (line 99) | type kafkaGroupHandler struct method Setup (line 105) | func (h *kafkaGroupHandler) Setup(_ sarama.ConsumerGroupSession) error... method Cleanup (line 106) | func (h *kafkaGroupHandler) Cleanup(_ sarama.ConsumerGroupSession) err... method ConsumeClaim (line 108) | func (h *kafkaGroupHandler) ConsumeClaim(session sarama.ConsumerGroupS... FILE: internal/pipelines/kafka_scram.go type scramClient (line 18) | type scramClient struct method Begin (line 23) | func (c *scramClient) Begin(userName, password, authzID string) (err e... method Step (line 32) | func (c *scramClient) Step(challenge string) (string, error) { method Done (line 36) | func (c *scramClient) Done() bool { FILE: internal/pipelines/registry.go function NewSource (line 6) | func NewSource(nodeType string) (SourceConnector, error) { FILE: internal/pipelines/runner.go type RunningPipeline (line 17) | type RunningPipeline struct type Runner (line 27) | type Runner struct method Start (line 49) | func (r *Runner) Start() { method Stop (line 69) | func (r *Runner) Stop() { method StartPipeline (line 93) | func (r *Runner) StartPipeline(pipelineID string) error { method StopPipeline (line 213) | func (r *Runner) StopPipeline(pipelineID string) error { method GetRunningMetrics (line 237) | func (r *Runner) GetRunningMetrics(pipelineID string) *Metrics { method runPipeline (line 248) | func (r *Runner) runPipeline(ctx context.Context, rp *RunningPipeline,... function NewRunner (line 38) | func NewRunner(db *database.DB, gw *tunnel.Gateway, cfg *config.Config) ... function isSourceType (line 317) | func isSourceType(nodeType string) bool { function parseNodeConfig (line 325) | func parseNodeConfig(node *database.PipelineNode) (ConnectorConfig, erro... FILE: internal/pipelines/s3_source.go type S3Source (line 19) | type S3Source struct method Type (line 21) | func (s *S3Source) Type() string { return "source_s3" } method Validate (line 24) | func (s *S3Source) Validate(cfg ConnectorConfig) error { method Start (line 46) | func (s *S3Source) Start(ctx context.Context, cfg ConnectorConfig, out... method processFile (line 119) | func (s *S3Source) processFile(ctx context.Context, client *minio.Clie... method parseNDJSON (line 139) | func (s *S3Source) parseNDJSON(ctx context.Context, r io.Reader, batch... method parseCSV (line 185) | func (s *S3Source) parseCSV(ctx context.Context, r io.Reader, batchSiz... FILE: internal/pipelines/types.go type Record (line 10) | type Record struct type Batch (line 16) | type Batch struct type ConnectorConfig (line 22) | type ConnectorConfig struct type SourceConnector (line 28) | type SourceConnector interface type SinkConnector (line 41) | type SinkConnector interface type Metrics (line 48) | type Metrics struct FILE: internal/pipelines/webhook.go type WebhookSource (line 18) | type WebhookSource struct method Type (line 20) | func (w *WebhookSource) Type() string { return "source_webhook" } method Validate (line 23) | func (w *WebhookSource) Validate(cfg ConnectorConfig) error { method Start (line 29) | func (w *WebhookSource) Start(ctx context.Context, cfg ConnectorConfig... type webhookReceiver (line 90) | type webhookReceiver struct function HandleWebhook (line 97) | func HandleWebhook(w http.ResponseWriter, r *http.Request) { function parseWebhookBody (line 159) | func parseWebhookBody(body []byte, contentType string) ([]Record, error) { FILE: internal/queryproc/variables.go type TimeRange (line 13) | type TimeRange struct type ProcessorOptions (line 20) | type ProcessorOptions struct type ProcessedResult (line 30) | type ProcessedResult struct function HasTimeVariables (line 54) | func HasTimeVariables(query string) bool { function ProcessQueryVariables (line 69) | func ProcessQueryVariables(opts ProcessorOptions) ProcessedResult { function InferTimeUnit (line 196) | func InferTimeUnit(columnName string) string { function getTimeBounds (line 216) | func getTimeBounds(tr *TimeRange) (from, to time.Time, ok bool) { function parseRelativeTime (line 249) | func parseRelativeTime(timeStr string, base time.Time) time.Time { function parseAbsoluteTime (line 306) | func parseAbsoluteTime(s string) time.Time { function generateTimeFilter (line 334) | func generateTimeFilter(from, to time.Time, columnName, timeUnit string)... function convertToEpoch (line 341) | func convertToEpoch(t time.Time, unit string) int64 { function calculateInterval (line 358) | func calculateInterval(from, to time.Time, maxDataPoints int) int { FILE: internal/queryproc/variables_test.go function TestParseRelativeTime_NowMinusMinutes (line 9) | func TestParseRelativeTime_NowMinusMinutes(t *testing.T) { function TestGetTimeBounds_RelativeRangeWithCustomTo (line 22) | func TestGetTimeBounds_RelativeRangeWithCustomTo(t *testing.T) { function TestProcessQueryVariables_TimestampMacroWithRelativeExpression (line 36) | func TestProcessQueryVariables_TimestampMacroWithRelativeExpression(t *t... FILE: internal/scheduler/cron.go function parseField (line 11) | func parseField(field string, min, max int) map[int]bool { function ComputeNextRun (line 64) | func ComputeNextRun(cron string, from time.Time) *time.Time { function ValidateCron (line 104) | func ValidateCron(cron string) bool { FILE: internal/scheduler/runner.go constant tickInterval (line 17) | tickInterval = 30 * time.Second constant maxConcurrent (line 18) | maxConcurrent = 3 type Runner (line 22) | type Runner struct method Start (line 40) | func (r *Runner) Start() { method Stop (line 59) | func (r *Runner) Stop() { method tick (line 64) | func (r *Runner) tick() { method runSchedule (line 110) | func (r *Runner) runSchedule(schedule database.Schedule) { method findCredentials (line 282) | func (r *Runner) findCredentials(connectionID string) (string, string,... function NewRunner (line 30) | func NewRunner(db *database.DB, gw *tunnel.Gateway, secret string) *Runn... function nullableConnectionID (line 266) | func nullableConnectionID(connectionID string) *string { function maxInt (line 274) | func maxInt(a, b int) int { function countRows (line 300) | func countRows(result *tunnel.QueryResult) int { FILE: internal/server/handlers/admin.go type AdminHandler (line 24) | type AdminHandler struct method Routes (line 33) | func (h *AdminHandler) Routes(r chi.Router) { method GetUsers (line 75) | func (h *AdminHandler) GetUsers(w http.ResponseWriter, r *http.Request) { method fetchCurrentClickHouseUsers (line 160) | func (h *AdminHandler) fetchCurrentClickHouseUsers(r *http.Request) (m... method GetUserRoles (line 201) | func (h *AdminHandler) GetUserRoles(w http.ResponseWriter, r *http.Req... method SetUserRole (line 218) | func (h *AdminHandler) SetUserRole(w http.ResponseWriter, r *http.Requ... method DeleteUserRole (line 292) | func (h *AdminHandler) DeleteUserRole(w http.ResponseWriter, r *http.R... method GetConnections (line 350) | func (h *AdminHandler) GetConnections(w http.ResponseWriter, r *http.R... method GetStats (line 384) | func (h *AdminHandler) GetStats(w http.ResponseWriter, r *http.Request) { method GetClickHouseUsers (line 432) | func (h *AdminHandler) GetClickHouseUsers(w http.ResponseWriter, r *ht... method CreateClickHouseUser (line 474) | func (h *AdminHandler) CreateClickHouseUser(w http.ResponseWriter, r *... method UpdateClickHouseUserPassword (line 599) | func (h *AdminHandler) UpdateClickHouseUserPassword(w http.ResponseWri... method DeleteClickHouseUser (line 725) | func (h *AdminHandler) DeleteClickHouseUser(w http.ResponseWriter, r *... function buildClickHouseCreateAuthClause (line 677) | func buildClickHouseCreateAuthClause(authType, password string) string { function buildClickHouseAlterAuthClause (line 688) | func buildClickHouseAlterAuthClause(authType, password string) string { function parseDefaultRolesInput (line 699) | func parseDefaultRolesInput(input []string) (all bool, roles []string, e... function escapeString (line 786) | func escapeString(s string) string { FILE: internal/server/handlers/admin_brain.go function normalizeProviderKind (line 20) | func normalizeProviderKind(kind string) (string, bool) { function modelDisplayName (line 33) | func modelDisplayName(m database.BrainModel) string { function scoreRecommendedModel (line 40) | func scoreRecommendedModel(name string) int { function pickRecommendedModel (line 62) | func pickRecommendedModel(models []database.BrainModel) *database.BrainM... function applyModelBulkAction (line 81) | func applyModelBulkAction(db *database.DB, providerID, action string) (i... method ListBrainProviders (line 144) | func (h *AdminHandler) ListBrainProviders(w http.ResponseWriter, r *http... method CreateBrainProvider (line 156) | func (h *AdminHandler) CreateBrainProvider(w http.ResponseWriter, r *htt... method UpdateBrainProvider (line 222) | func (h *AdminHandler) UpdateBrainProvider(w http.ResponseWriter, r *htt... method DeleteBrainProvider (line 315) | func (h *AdminHandler) DeleteBrainProvider(w http.ResponseWriter, r *htt... method SyncBrainProviderModels (line 342) | func (h *AdminHandler) SyncBrainProviderModels(w http.ResponseWriter, r ... method ListBrainModels (line 443) | func (h *AdminHandler) ListBrainModels(w http.ResponseWriter, r *http.Re... method UpdateBrainModel (line 452) | func (h *AdminHandler) UpdateBrainModel(w http.ResponseWriter, r *http.R... method BulkUpdateBrainModels (line 521) | func (h *AdminHandler) BulkUpdateBrainModels(w http.ResponseWriter, r *h... method ListBrainSkills (line 567) | func (h *AdminHandler) ListBrainSkills(w http.ResponseWriter, r *http.Re... method CreateBrainSkill (line 579) | func (h *AdminHandler) CreateBrainSkill(w http.ResponseWriter, r *http.R... method UpdateBrainSkill (line 629) | func (h *AdminHandler) UpdateBrainSkill(w http.ResponseWriter, r *http.R... FILE: internal/server/handlers/admin_governance.go type governanceSettingsResponse (line 15) | type governanceSettingsResponse struct method GetGovernanceSettings (line 24) | func (h *AdminHandler) GetGovernanceSettings(w http.ResponseWriter, r *h... method UpdateGovernanceSettings (line 31) | func (h *AdminHandler) UpdateGovernanceSettings(w http.ResponseWriter, r... method buildGovernanceSettingsResponse (line 81) | func (h *AdminHandler) buildGovernanceSettingsResponse() governanceSetti... FILE: internal/server/handlers/admin_langfuse.go method GetLangfuseConfig (line 15) | func (h *AdminHandler) GetLangfuseConfig(w http.ResponseWriter, r *http.... method UpdateLangfuseConfig (line 34) | func (h *AdminHandler) UpdateLangfuseConfig(w http.ResponseWriter, r *ht... method DeleteLangfuseConfig (line 110) | func (h *AdminHandler) DeleteLangfuseConfig(w http.ResponseWriter, r *ht... method TestLangfuseConnection (line 135) | func (h *AdminHandler) TestLangfuseConnection(w http.ResponseWriter, r *... function loadLangfuseConfig (line 188) | func loadLangfuseConfig(db *database.DB, appSecretKey string) (langfuse.... FILE: internal/server/handlers/auth.go constant SessionCookie (line 25) | SessionCookie = "chui_session" constant SessionDuration (line 26) | SessionDuration = 7 * 24 * time.Hour constant RateLimitWindow (line 27) | RateLimitWindow = 15 * time.Minute constant MaxAttemptsPerIP (line 28) | MaxAttemptsPerIP = 5 constant MaxAttemptsPerUser (line 29) | MaxAttemptsPerUser = 3 type AuthHandler (line 33) | type AuthHandler struct method Routes (line 41) | func (h *AuthHandler) Routes(r chi.Router) { method Login (line 140) | func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request) { method Logout (line 339) | func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request) { method Session (line 377) | func (h *AuthHandler) Session(w http.ResponseWriter, r *http.Request) { method Connections (line 449) | func (h *AuthHandler) Connections(w http.ResponseWriter, r *http.Reque... method SwitchConnection (line 476) | func (h *AuthHandler) SwitchConnection(w http.ResponseWriter, r *http.... method detectClickHouseRole (line 633) | func (h *AuthHandler) detectClickHouseRole(connectionID, username, pas... method resolveUserRole (line 669) | func (h *AuthHandler) resolveUserRole(connectionID, username, password... type loginRequest (line 51) | type loginRequest struct method resolvedConnectionID (line 74) | func (r loginRequest) resolvedConnectionID() string { type switchConnectionRequest (line 58) | type switchConnectionRequest struct method resolvedConnectionID (line 81) | func (r switchConnectionRequest) resolvedConnectionID() string { type connectionInfo (line 65) | type connectionInfo struct function normalizeRateLimitUsername (line 88) | func normalizeRateLimitUsername(username string) string { function userRateLimitKey (line 92) | func userRateLimitKey(username, connectionID string) string { function sanitizeClickHouseAuthMessage (line 96) | func sanitizeClickHouseAuthMessage(raw string) string { function shouldUseSecureCookie (line 120) | func shouldUseSecureCookie(r *http.Request, cfg *config.Config) bool { function classifyGrants (line 712) | func classifyGrants(result *tunnel.QueryResult) string { function isPermissionError (line 757) | func isPermissionError(errStr string) bool { function escapeSingleQuotes (line 766) | func escapeSingleQuotes(s string) string { function getClientIP (line 775) | func getClientIP(r *http.Request) string { FILE: internal/server/handlers/auth_helpers_test.go function TestUserRateLimitKeyScopedByConnection (line 5) | func TestUserRateLimitKeyScopedByConnection(t *testing.T) { function TestSanitizeClickHouseAuthMessage (line 18) | func TestSanitizeClickHouseAuthMessage(t *testing.T) { FILE: internal/server/handlers/brain.go constant baseBrainPrompt (line 24) | baseBrainPrompt = `You are Brain, an expert ClickHouse assistant for ana... type BrainHandler (line 39) | type BrainHandler struct method Routes (line 46) | func (h *BrainHandler) Routes(r chi.Router) { method ListModels (line 103) | func (h *BrainHandler) ListModels(w http.ResponseWriter, r *http.Reque... method GetSkill (line 117) | func (h *BrainHandler) GetSkill(w http.ResponseWriter, r *http.Request) { method ListChats (line 131) | func (h *BrainHandler) ListChats(w http.ResponseWriter, r *http.Reques... method CreateChat (line 152) | func (h *BrainHandler) CreateChat(w http.ResponseWriter, r *http.Reque... method GetChat (line 201) | func (h *BrainHandler) GetChat(w http.ResponseWriter, r *http.Request) { method UpdateChat (line 222) | func (h *BrainHandler) UpdateChat(w http.ResponseWriter, r *http.Reque... method DeleteChat (line 329) | func (h *BrainHandler) DeleteChat(w http.ResponseWriter, r *http.Reque... method ListMessages (line 355) | func (h *BrainHandler) ListMessages(w http.ResponseWriter, r *http.Req... method ListArtifacts (line 382) | func (h *BrainHandler) ListArtifacts(w http.ResponseWriter, r *http.Re... method RunQueryArtifact (line 409) | func (h *BrainHandler) RunQueryArtifact(w http.ResponseWriter, r *http... method StreamMessage (line 506) | func (h *BrainHandler) StreamMessage(w http.ResponseWriter, r *http.Re... method LegacyChat (line 782) | func (h *BrainHandler) LegacyChat(w http.ResponseWriter, r *http.Reque... method resolveRuntimeModel (line 929) | func (h *BrainHandler) resolveRuntimeModel(chat *database.BrainChat, r... method buildSystemPrompt (line 958) | func (h *BrainHandler) buildSystemPrompt(contexts []schemaContext) str... type schemaColumn (line 63) | type schemaColumn struct type schemaContext (line 68) | type schemaContext struct type createChatRequest (line 75) | type createChatRequest struct type updateChatRequest (line 80) | type updateChatRequest struct type streamMessageRequest (line 89) | type streamMessageRequest struct type runQueryArtifactRequest (line 96) | type runQueryArtifactRequest struct function brainModelParameters (line 922) | func brainModelParameters(result *braincore.ChatResult, providerKind, mo... function buildMultiSchemaPrompt (line 975) | func buildMultiSchemaPrompt(contexts []schemaContext) string { function writeSSE (line 1001) | func writeSSE(w http.ResponseWriter, flusher http.Flusher, payload map[s... function autoTitle (line 1013) | func autoTitle(prompt string) string { function isBrainReadOnlyQuery (line 1024) | func isBrainReadOnlyQuery(query string) bool { function containsSQL (line 1031) | func containsSQL(text string) bool { FILE: internal/server/handlers/connections.go type ConnectionsHandler (line 21) | type ConnectionsHandler struct method List (line 37) | func (h *ConnectionsHandler) List(w http.ResponseWriter, r *http.Reque... method Get (line 55) | func (h *ConnectionsHandler) Get(w http.ResponseWriter, r *http.Reques... method Create (line 78) | func (h *ConnectionsHandler) Create(w http.ResponseWriter, r *http.Req... method Delete (line 131) | func (h *ConnectionsHandler) Delete(w http.ResponseWriter, r *http.Req... method TestConnection (line 173) | func (h *ConnectionsHandler) TestConnection(w http.ResponseWriter, r *... method GetToken (line 229) | func (h *ConnectionsHandler) GetToken(w http.ResponseWriter, r *http.R... method RegenerateToken (line 255) | func (h *ConnectionsHandler) RegenerateToken(w http.ResponseWriter, r ... method buildConnectionResponse (line 302) | func (h *ConnectionsHandler) buildConnectionResponse(c database.Connec... type connectionResponse (line 28) | type connectionResponse struct function getSetupInstructions (line 324) | func getSetupInstructions(token string) map[string]string { function connJSON (line 332) | func connJSON(w http.ResponseWriter, status int, v interface{}) { FILE: internal/server/handlers/dashboards.go type DashboardsHandler (line 21) | type DashboardsHandler struct method Routes (line 28) | func (h *DashboardsHandler) Routes() chi.Router { method ListDashboards (line 52) | func (h *DashboardsHandler) ListDashboards(w http.ResponseWriter, r *h... method GetDashboard (line 72) | func (h *DashboardsHandler) GetDashboard(w http.ResponseWriter, r *htt... method CreateDashboard (line 106) | func (h *DashboardsHandler) CreateDashboard(w http.ResponseWriter, r *... method UpdateDashboard (line 151) | func (h *DashboardsHandler) UpdateDashboard(w http.ResponseWriter, r *... method DeleteDashboard (line 232) | func (h *DashboardsHandler) DeleteDashboard(w http.ResponseWriter, r *... method CreatePanel (line 274) | func (h *DashboardsHandler) CreatePanel(w http.ResponseWriter, r *http... method UpdatePanel (line 366) | func (h *DashboardsHandler) UpdatePanel(w http.ResponseWriter, r *http... method DeletePanel (line 482) | func (h *DashboardsHandler) DeletePanel(w http.ResponseWriter, r *http... method ExecutePanelQuery (line 525) | func (h *DashboardsHandler) ExecutePanelQuery(w http.ResponseWriter, r... FILE: internal/server/handlers/governance.go type GovernanceHandler (line 24) | type GovernanceHandler struct method Routes (line 33) | func (h *GovernanceHandler) Routes() chi.Router { method getCredentials (line 128) | func (h *GovernanceHandler) getCredentials(r *http.Request) (*governan... method executeClickHouseSQL (line 144) | func (h *GovernanceHandler) executeClickHouseSQL(creds *governance.CHC... method triggerSyncAsync (line 152) | func (h *GovernanceHandler) triggerSyncAsync(creds governance.CHCreden... method connectionID (line 165) | func (h *GovernanceHandler) connectionID(r *http.Request) string { method GetOverview (line 198) | func (h *GovernanceHandler) GetOverview(w http.ResponseWriter, r *http... method TriggerSync (line 215) | func (h *GovernanceHandler) TriggerSync(w http.ResponseWriter, r *http... method TriggerSingleSync (line 247) | func (h *GovernanceHandler) TriggerSingleSync(w http.ResponseWriter, r... method GetSyncStatus (line 276) | func (h *GovernanceHandler) GetSyncStatus(w http.ResponseWriter, r *ht... method ListDatabases (line 298) | func (h *GovernanceHandler) ListDatabases(w http.ResponseWriter, r *ht... method ListTables (line 318) | func (h *GovernanceHandler) ListTables(w http.ResponseWriter, r *http.... method GetTableDetail (line 358) | func (h *GovernanceHandler) GetTableDetail(w http.ResponseWriter, r *h... method UpdateTableComment (line 422) | func (h *GovernanceHandler) UpdateTableComment(w http.ResponseWriter, ... method UpdateColumnComment (line 473) | func (h *GovernanceHandler) UpdateColumnComment(w http.ResponseWriter,... method ListTableNotes (line 526) | func (h *GovernanceHandler) ListTableNotes(w http.ResponseWriter, r *h... method ListColumnNotes (line 547) | func (h *GovernanceHandler) ListColumnNotes(w http.ResponseWriter, r *... method CreateTableNote (line 569) | func (h *GovernanceHandler) CreateTableNote(w http.ResponseWriter, r *... method CreateColumnNote (line 612) | func (h *GovernanceHandler) CreateColumnNote(w http.ResponseWriter, r ... method DeleteObjectNote (line 656) | func (h *GovernanceHandler) DeleteObjectNote(w http.ResponseWriter, r ... method ListSchemaChanges (line 685) | func (h *GovernanceHandler) ListSchemaChanges(w http.ResponseWriter, r... method ListQueryLog (line 708) | func (h *GovernanceHandler) ListQueryLog(w http.ResponseWriter, r *htt... method TopQueries (line 733) | func (h *GovernanceHandler) TopQueries(w http.ResponseWriter, r *http.... method GetLineage (line 756) | func (h *GovernanceHandler) GetLineage(w http.ResponseWriter, r *http.... method GetLineageGraph (line 825) | func (h *GovernanceHandler) GetLineageGraph(w http.ResponseWriter, r *... method GetQueryByQueryID (line 908) | func (h *GovernanceHandler) GetQueryByQueryID(w http.ResponseWriter, r... method ListTags (line 932) | func (h *GovernanceHandler) ListTags(w http.ResponseWriter, r *http.Re... method CreateTag (line 962) | func (h *GovernanceHandler) CreateTag(w http.ResponseWriter, r *http.R... method DeleteTag (line 1017) | func (h *GovernanceHandler) DeleteTag(w http.ResponseWriter, r *http.R... method ListChUsers (line 1048) | func (h *GovernanceHandler) ListChUsers(w http.ResponseWriter, r *http... method CreateChUser (line 1068) | func (h *GovernanceHandler) CreateChUser(w http.ResponseWriter, r *htt... method DeleteChUser (line 1175) | func (h *GovernanceHandler) DeleteChUser(w http.ResponseWriter, r *htt... method ListChRoles (line 1222) | func (h *GovernanceHandler) ListChRoles(w http.ResponseWriter, r *http... method GetAccessMatrix (line 1242) | func (h *GovernanceHandler) GetAccessMatrix(w http.ResponseWriter, r *... method GetOverPermissions (line 1270) | func (h *GovernanceHandler) GetOverPermissions(w http.ResponseWriter, ... method ListPolicies (line 1293) | func (h *GovernanceHandler) ListPolicies(w http.ResponseWriter, r *htt... method CreatePolicy (line 1313) | func (h *GovernanceHandler) CreatePolicy(w http.ResponseWriter, r *htt... method GetPolicy (line 1375) | func (h *GovernanceHandler) GetPolicy(w http.ResponseWriter, r *http.R... method UpdatePolicy (line 1390) | func (h *GovernanceHandler) UpdatePolicy(w http.ResponseWriter, r *htt... method DeletePolicy (line 1440) | func (h *GovernanceHandler) DeletePolicy(w http.ResponseWriter, r *htt... method ListViolations (line 1466) | func (h *GovernanceHandler) ListViolations(w http.ResponseWriter, r *h... method CreateIncidentFromViolation (line 1489) | func (h *GovernanceHandler) CreateIncidentFromViolation(w http.Respons... method ListIncidents (line 1537) | func (h *GovernanceHandler) ListIncidents(w http.ResponseWriter, r *ht... method GetIncident (line 1560) | func (h *GovernanceHandler) GetIncident(w http.ResponseWriter, r *http... method CreateIncident (line 1584) | func (h *GovernanceHandler) CreateIncident(w http.ResponseWriter, r *h... method UpdateIncident (line 1646) | func (h *GovernanceHandler) UpdateIncident(w http.ResponseWriter, r *h... method ListIncidentComments (line 1726) | func (h *GovernanceHandler) ListIncidentComments(w http.ResponseWriter... method CreateIncidentComment (line 1758) | func (h *GovernanceHandler) CreateIncidentComment(w http.ResponseWrite... function queryInt (line 173) | func queryInt(r *http.Request, key string, defaultVal int) int { function queryIntBounded (line 185) | func queryIntBounded(r *http.Request, key string, defaultVal, minVal, ma... function enrichLineageNodes (line 876) | func enrichLineageNodes(store *governance.Store, connID string, nodes []... function enrichLineageEdges (line 888) | func enrichLineageEdges(store *governance.Store, edges []governance.Line... function normalizeIncidentSeverity (line 1809) | func normalizeIncidentSeverity(v string) string { function normalizePolicyEnforcementMode (line 1818) | func normalizePolicyEnforcementMode(v string) (string, error) { function normalizeIncidentStatus (line 1830) | func normalizeIncidentStatus(v string) string { function derefString (line 1839) | func derefString(v *string) string { FILE: internal/server/handlers/governance_alerts.go type alertRuleRoutePayload (line 22) | type alertRuleRoutePayload struct type alertRuleResponse (line 33) | type alertRuleResponse struct method ListAlertChannels (line 38) | func (h *GovernanceHandler) ListAlertChannels(w http.ResponseWriter, r *... method CreateAlertChannel (line 75) | func (h *GovernanceHandler) CreateAlertChannel(w http.ResponseWriter, r ... method UpdateAlertChannel (line 138) | func (h *GovernanceHandler) UpdateAlertChannel(w http.ResponseWriter, r ... method DeleteAlertChannel (line 222) | func (h *GovernanceHandler) DeleteAlertChannel(w http.ResponseWriter, r ... method TestAlertChannel (line 256) | func (h *GovernanceHandler) TestAlertChannel(w http.ResponseWriter, r *h... method ListAlertRules (line 312) | func (h *GovernanceHandler) ListAlertRules(w http.ResponseWriter, r *htt... method CreateAlertRule (line 336) | func (h *GovernanceHandler) CreateAlertRule(w http.ResponseWriter, r *ht... method UpdateAlertRule (line 418) | func (h *GovernanceHandler) UpdateAlertRule(w http.ResponseWriter, r *ht... method DeleteAlertRule (line 521) | func (h *GovernanceHandler) DeleteAlertRule(w http.ResponseWriter, r *ht... method ListAlertEvents (line 554) | func (h *GovernanceHandler) ListAlertEvents(w http.ResponseWriter, r *ht... method validateRuleRoutes (line 572) | func (h *GovernanceHandler) validateRuleRoutes(payload []alertRuleRouteP... function sanitizeChannelConfig (line 652) | func sanitizeChannelConfig(channelType string, cfg map[string]interface{... function validateChannelConfig (line 673) | func validateChannelConfig(channelType string, cfg map[string]interface{... function validateRecipients (line 709) | func validateRecipients(values []string) ([]string, error) { function isSupportedChannelType (line 730) | func isSupportedChannelType(v string) bool { function isSupportedEventType (line 739) | func isSupportedEventType(v string) bool { function isSupportedSeverity (line 748) | func isSupportedSeverity(v string) bool { function coalesceStringPtr (line 757) | func coalesceStringPtr(v *string, fallback *string) string { FILE: internal/server/handlers/governance_auditlog.go method GetAuditLogs (line 15) | func (h *GovernanceHandler) GetAuditLogs(w http.ResponseWriter, r *http.... FILE: internal/server/handlers/governance_querylog.go method GetClickHouseQueryLog (line 23) | func (h *GovernanceHandler) GetClickHouseQueryLog(w http.ResponseWriter,... function shouldFallbackToQueryThreadLog (line 150) | func shouldFallbackToQueryThreadLog(err error) bool { FILE: internal/server/handlers/health.go type HealthHandler (line 11) | type HealthHandler struct method Health (line 13) | func (h *HealthHandler) Health(w http.ResponseWriter, r *http.Request) { FILE: internal/server/handlers/license.go type LicenseHandler (line 14) | type LicenseHandler struct method GetLicense (line 21) | func (h *LicenseHandler) GetLicense(w http.ResponseWriter, r *http.Req... method ActivateLicense (line 28) | func (h *LicenseHandler) ActivateLicense(w http.ResponseWriter, r *htt... method DeactivateLicense (line 63) | func (h *LicenseHandler) DeactivateLicense(w http.ResponseWriter, r *h... FILE: internal/server/handlers/models.go type ModelsHandler (line 21) | type ModelsHandler struct method Routes (line 29) | func (h *ModelsHandler) Routes() chi.Router { method ListModels (line 57) | func (h *ModelsHandler) ListModels(w http.ResponseWriter, r *http.Requ... method CreateModel (line 77) | func (h *ModelsHandler) CreateModel(w http.ResponseWriter, r *http.Req... method GetModel (line 138) | func (h *ModelsHandler) GetModel(w http.ResponseWriter, r *http.Reques... method UpdateModel (line 154) | func (h *ModelsHandler) UpdateModel(w http.ResponseWriter, r *http.Req... method DeleteModel (line 218) | func (h *ModelsHandler) DeleteModel(w http.ResponseWriter, r *http.Req... method GetDAG (line 228) | func (h *ModelsHandler) GetDAG(w http.ResponseWriter, r *http.Request) { method ValidateAll (line 339) | func (h *ModelsHandler) ValidateAll(w http.ResponseWriter, r *http.Req... method RunAll (line 359) | func (h *ModelsHandler) RunAll(w http.ResponseWriter, r *http.Request) { method RunSingle (line 376) | func (h *ModelsHandler) RunSingle(w http.ResponseWriter, r *http.Reque... method ListRuns (line 394) | func (h *ModelsHandler) ListRuns(w http.ResponseWriter, r *http.Reques... method GetRun (line 420) | func (h *ModelsHandler) GetRun(w http.ResponseWriter, r *http.Request) { method ListPipelines (line 447) | func (h *ModelsHandler) ListPipelines(w http.ResponseWriter, r *http.R... method RunPipeline (line 530) | func (h *ModelsHandler) RunPipeline(w http.ResponseWriter, r *http.Req... method ListSchedules (line 550) | func (h *ModelsHandler) ListSchedules(w http.ResponseWriter, r *http.R... method GetSchedule (line 570) | func (h *ModelsHandler) GetSchedule(w http.ResponseWriter, r *http.Req... method UpsertSchedule (line 588) | func (h *ModelsHandler) UpsertSchedule(w http.ResponseWriter, r *http.... method DeleteSchedule (line 631) | func (h *ModelsHandler) DeleteSchedule(w http.ResponseWriter, r *http.... FILE: internal/server/handlers/pipelines.go type PipelinesHandler (line 20) | type PipelinesHandler struct method Routes (line 28) | func (h *PipelinesHandler) Routes() chi.Router { method ListPipelines (line 56) | func (h *PipelinesHandler) ListPipelines(w http.ResponseWriter, r *htt... method GetPipeline (line 72) | func (h *PipelinesHandler) GetPipeline(w http.ResponseWriter, r *http.... method CreatePipeline (line 113) | func (h *PipelinesHandler) CreatePipeline(w http.ResponseWriter, r *ht... method UpdatePipeline (line 160) | func (h *PipelinesHandler) UpdatePipeline(w http.ResponseWriter, r *ht... method DeletePipeline (line 195) | func (h *PipelinesHandler) DeletePipeline(w http.ResponseWriter, r *ht... method SaveGraph (line 236) | func (h *PipelinesHandler) SaveGraph(w http.ResponseWriter, r *http.Re... method StartPipeline (line 298) | func (h *PipelinesHandler) StartPipeline(w http.ResponseWriter, r *htt... method StopPipeline (line 334) | func (h *PipelinesHandler) StopPipeline(w http.ResponseWriter, r *http... method GetStatus (line 370) | func (h *PipelinesHandler) GetStatus(w http.ResponseWriter, r *http.Re... method ListRuns (line 397) | func (h *PipelinesHandler) ListRuns(w http.ResponseWriter, r *http.Req... method GetRunLogs (line 427) | func (h *PipelinesHandler) GetRunLogs(w http.ResponseWriter, r *http.R... type graphNode (line 452) | type graphNode struct type graphEdge (line 461) | type graphEdge struct type graphViewport (line 469) | type graphViewport struct FILE: internal/server/handlers/query.go constant maxQueryTimeout (line 23) | maxQueryTimeout = 5 * time.Minute type QueryHandler (line 26) | type QueryHandler struct method Routes (line 34) | func (h *QueryHandler) Routes(r chi.Router) { method ExecuteQuery (line 151) | func (h *QueryHandler) ExecuteQuery(w http.ResponseWriter, r *http.Req... method FormatSQL (line 241) | func (h *QueryHandler) FormatSQL(w http.ResponseWriter, r *http.Reques... method ExplainQuery (line 261) | func (h *QueryHandler) ExplainQuery(w http.ResponseWriter, r *http.Req... method QueryPlan (line 313) | func (h *QueryHandler) QueryPlan(w http.ResponseWriter, r *http.Reques... method EstimateQuery (line 389) | func (h *QueryHandler) EstimateQuery(w http.ResponseWriter, r *http.Re... method SampleQuery (line 503) | func (h *QueryHandler) SampleQuery(w http.ResponseWriter, r *http.Requ... method QueryProfile (line 616) | func (h *QueryHandler) QueryProfile(w http.ResponseWriter, r *http.Req... method StreamQuery (line 700) | func (h *QueryHandler) StreamQuery(w http.ResponseWriter, r *http.Requ... method ExplorerData (line 832) | func (h *QueryHandler) ExplorerData(w http.ResponseWriter, r *http.Req... method ListDatabases (line 946) | func (h *QueryHandler) ListDatabases(w http.ResponseWriter, r *http.Re... method ListTables (line 982) | func (h *QueryHandler) ListTables(w http.ResponseWriter, r *http.Reque... method ListColumns (line 1043) | func (h *QueryHandler) ListColumns(w http.ResponseWriter, r *http.Requ... method ListDataTypes (line 1087) | func (h *QueryHandler) ListDataTypes(w http.ResponseWriter, r *http.Re... method ListClusters (line 1151) | func (h *QueryHandler) ListClusters(w http.ResponseWriter, r *http.Req... method CreateDatabase (line 1189) | func (h *QueryHandler) CreateDatabase(w http.ResponseWriter, r *http.R... method DropDatabase (line 1275) | func (h *QueryHandler) DropDatabase(w http.ResponseWriter, r *http.Req... method CreateTable (line 1352) | func (h *QueryHandler) CreateTable(w http.ResponseWriter, r *http.Requ... method DropTable (line 1541) | func (h *QueryHandler) DropTable(w http.ResponseWriter, r *http.Reques... method GetHostInfo (line 1627) | func (h *QueryHandler) GetHostInfo(w http.ResponseWriter, r *http.Requ... method ListCompletions (line 1654) | func (h *QueryHandler) ListCompletions(w http.ResponseWriter, r *http.... method guardrailsEnabled (line 1723) | func (h *QueryHandler) guardrailsEnabled() bool { method enforceGuardrailsForQuery (line 1733) | func (h *QueryHandler) enforceGuardrailsForQuery(w http.ResponseWriter... method enforceGuardrailsForTable (line 1756) | func (h *QueryHandler) enforceGuardrailsForTable(w http.ResponseWriter... method writePolicyBlocked (line 1779) | func (h *QueryHandler) writePolicyBlocked(w http.ResponseWriter, block... method requireSchemaAdmin (line 1827) | func (h *QueryHandler) requireSchemaAdmin(w http.ResponseWriter, r *ht... type executeQueryRequest (line 62) | type executeQueryRequest struct type executeQueryResponse (line 68) | type executeQueryResponse struct type formatRequest (line 77) | type formatRequest struct type formatResponse (line 81) | type formatResponse struct type explainRequest (line 85) | type explainRequest struct type sampleRequest (line 89) | type sampleRequest struct type planNode (line 96) | type planNode struct type createDatabaseRequest (line 103) | type createDatabaseRequest struct type dropDatabaseRequest (line 110) | type dropDatabaseRequest struct type createTableColumn (line 117) | type createTableColumn struct type createTableRequest (line 124) | type createTableRequest struct type dropTableRequest (line 140) | type dropTableRequest struct function toInt64 (line 481) | func toInt64(v interface{}) int64 { function writeJSON (line 1707) | func writeJSON(w http.ResponseWriter, status int, v interface{}) { function writeError (line 1714) | func writeError(w http.ResponseWriter, status int, message string) { function escapeIdentifier (line 1802) | func escapeIdentifier(name string) string { function escapeLiteral (line 1809) | func escapeLiteral(value string) string { function stripTrailingSemicolon (line 1813) | func stripTrailingSemicolon(query string) string { function stripFormatClause (line 1817) | func stripFormatClause(query string) string { function isReadOnlyQuery (line 1822) | func isReadOnlyQuery(query string) bool { function validateSimpleObjectName (line 1846) | func validateSimpleObjectName(name string, label string) error { function isUnsafeSQLFragment (line 1859) | func isUnsafeSQLFragment(value string) bool { function isSystemDatabaseName (line 1872) | func isSystemDatabaseName(name string) bool { function shouldFallbackToGlobalSample (line 1881) | func shouldFallbackToGlobalSample(message string) bool { function strPtr (line 1889) | func strPtr(s string) *string { function decodeRows (line 1893) | func decodeRows(data json.RawMessage) []map[string]interface{} { function extractExplainLines (line 1915) | func extractExplainLines(data json.RawMessage) []string { function buildPlanTree (line 1950) | func buildPlanTree(lines []string) []planNode { function planLineLevel (line 1991) | func planLineLevel(line string) int { function cleanPlanLabel (line 2014) | func cleanPlanLabel(line string) string { function countRows (line 2025) | func countRows(data json.RawMessage) int { function extractNames (line 2038) | func extractNames(data json.RawMessage) []string { function formatSQL (line 2063) | func formatSQL(sql string) string { FILE: internal/server/handlers/query_guardrails_test.go function TestQueryEndpointsBlockedByGuardrailPolicy (line 15) | func TestQueryEndpointsBlockedByGuardrailPolicy(t *testing.T) { function newBlockedQueryHandler (line 61) | func newBlockedQueryHandler(t *testing.T) (*QueryHandler, func()) { FILE: internal/server/handlers/query_upload.go constant maxUploadBytes (line 29) | maxUploadBytes = 25 * 1024 * 1024 constant maxUploadPreviewRows (line 30) | maxUploadPreviewRows = 20 type uploadDiscoveredColumn (line 33) | type uploadDiscoveredColumn struct type parsedUploadDataset (line 40) | type parsedUploadDataset struct type uploadInsertColumn (line 45) | type uploadInsertColumn struct method DiscoverUploadSchema (line 51) | func (h *QueryHandler) DiscoverUploadSchema(w http.ResponseWriter, r *ht... method IngestUpload (line 90) | func (h *QueryHandler) IngestUpload(w http.ResponseWriter, r *http.Reque... function readUploadFile (line 237) | func readUploadFile(w http.ResponseWriter, r *http.Request) (filename, f... function detectUploadFormat (line 277) | func detectUploadFormat(filename string, explicit string) (string, error) { function parseUploadDataset (line 301) | func parseUploadDataset(format string, payload []byte) (parsedUploadData... function parseCSVDataset (line 316) | func parseCSVDataset(payload []byte) (parsedUploadDataset, error) { function parseJSONDataset (line 362) | func parseJSONDataset(payload []byte) (parsedUploadDataset, error) { function parseJSONLinesDataset (line 395) | func parseJSONLinesDataset(payload []byte) (parsedUploadDataset, error) { function parseParquetDataset (line 423) | func parseParquetDataset(payload []byte) (parsedUploadDataset, error) { function normalizeCSVHeaders (line 485) | func normalizeCSVHeaders(header []string) []string { function normalizeRowFromAny (line 508) | func normalizeRowFromAny(raw interface{}) map[string]interface{} { function normalizeUploadValue (line 539) | func normalizeUploadValue(value interface{}) interface{} { function inferUploadColumns (line 613) | func inferUploadColumns(dataset parsedUploadDataset) []uploadDiscoveredC... function inferUploadColumnType (line 675) | func inferUploadColumnType(values []interface{}) (baseType string, nulla... function isDateTimeString (line 768) | func isDateTimeString(value string) bool { function parseUploadColumnsForm (line 785) | func parseUploadColumnsForm(raw string) ([]uploadDiscoveredColumn, error) { function parseMultipartBool (line 812) | func parseMultipartBool(raw string, defaultValue bool) bool { function boolPtr (line 827) | func boolPtr(value bool) *bool { function buildCreateTableSQL (line 831) | func buildCreateTableSQL(req createTableRequest) (string, error) { method resolveInsertColumns (line 965) | func (h *QueryHandler) resolveInsertColumns( method insertJSONEachRowBatches (line 1068) | func (h *QueryHandler) insertJSONEachRowBatches( function buildJSONEachRowInsertQuery (line 1114) | func buildJSONEachRowInsertQuery( function humanizeUploadInsertError (line 1194) | func humanizeUploadInsertError(message string) string { function truncateUploadCommand (line 1203) | func truncateUploadCommand(sql string, limit int) string { function coerceUploadValueForType (line 1210) | func coerceUploadValueForType(value interface{}, typeExpr string) (inter... function normalizeClickHouseType (line 1255) | func normalizeClickHouseType(typeExpr string) string { function parseBoolUploadValue (line 1274) | func parseBoolUploadValue(value interface{}) (bool, error) { function parseIntUploadValue (line 1301) | func parseIntUploadValue(value interface{}) (int64, error) { function parseFloatUploadValue (line 1340) | func parseFloatUploadValue(value interface{}) (float64, error) { function parseDateUploadValue (line 1375) | func parseDateUploadValue(value interface{}) (string, error) { function parseDateTimeUploadValue (line 1383) | func parseDateTimeUploadValue(value interface{}) (string, error) { function parseFlexibleTime (line 1391) | func parseFlexibleTime(value interface{}) (time.Time, error) { FILE: internal/server/handlers/saved_queries.go type SavedQueriesHandler (line 16) | type SavedQueriesHandler struct method Routes (line 21) | func (h *SavedQueriesHandler) Routes(r chi.Router) { method List (line 31) | func (h *SavedQueriesHandler) List(w http.ResponseWriter, r *http.Requ... method Get (line 47) | func (h *SavedQueriesHandler) Get(w http.ResponseWriter, r *http.Reque... method Create (line 69) | func (h *SavedQueriesHandler) Create(w http.ResponseWriter, r *http.Re... method Update (line 132) | func (h *SavedQueriesHandler) Update(w http.ResponseWriter, r *http.Re... method Delete (line 233) | func (h *SavedQueriesHandler) Delete(w http.ResponseWriter, r *http.Re... method Duplicate (line 273) | func (h *SavedQueriesHandler) Duplicate(w http.ResponseWriter, r *http... FILE: internal/server/handlers/schedules.go type SchedulesHandler (line 23) | type SchedulesHandler struct method Routes (line 30) | func (h *SchedulesHandler) Routes(r chi.Router) { method List (line 41) | func (h *SchedulesHandler) List(w http.ResponseWriter, r *http.Request) { method Get (line 57) | func (h *SchedulesHandler) Get(w http.ResponseWriter, r *http.Request) { method Create (line 79) | func (h *SchedulesHandler) Create(w http.ResponseWriter, r *http.Reque... method Update (line 180) | func (h *SchedulesHandler) Update(w http.ResponseWriter, r *http.Reque... method Delete (line 291) | func (h *SchedulesHandler) Delete(w http.ResponseWriter, r *http.Reque... method ListRuns (line 331) | func (h *SchedulesHandler) ListRuns(w http.ResponseWriter, r *http.Req... method ManualRun (line 386) | func (h *SchedulesHandler) ManualRun(w http.ResponseWriter, r *http.Re... FILE: internal/server/handlers/view_graph.go type viewEntry (line 18) | type viewEntry struct constant vgTableRef (line 28) | vgTableRef = "(" + method GetViewGraph (line 41) | func (h *GovernanceHandler) GetViewGraph(w http.ResponseWriter, r *http.... function buildViewGraph (line 100) | func buildViewGraph(rows []viewEntry) governance.LineageGraph { type parsedRef (line 202) | type parsedRef struct method key (line 207) | func (r parsedRef) key() string { function extractToTarget (line 215) | func extractToTarget(query string) *parsedRef { function extractViewSources (line 225) | func extractViewSources(query string) []parsedRef { function splitRef (line 254) | func splitRef(raw string) (string, string) { function stripBT (line 264) | func stripBT(s string) string { function normaliseWS (line 272) | func normaliseWS(s string) string { function isSystemDB (line 277) | func isSystemDB(db string) bool { FILE: internal/server/middleware/context.go type contextKey (line 8) | type contextKey constant sessionKey (line 11) | sessionKey contextKey = "session" type SessionInfo (line 15) | type SessionInfo struct function SetSession (line 24) | func SetSession(ctx context.Context, session *SessionInfo) context.Conte... function GetSession (line 29) | func GetSession(r *http.Request) *SessionInfo { FILE: internal/server/middleware/cors.go type CORSConfig (line 10) | type CORSConfig struct function CORS (line 17) | func CORS(cfg CORSConfig) func(http.Handler) http.Handler { FILE: internal/server/middleware/license.go function RequirePro (line 11) | func RequirePro(cfg *config.Config) func(http.Handler) http.Handler { FILE: internal/server/middleware/logging.go type responseWriter (line 12) | type responseWriter struct method WriteHeader (line 17) | func (rw *responseWriter) WriteHeader(code int) { method Hijack (line 23) | func (rw *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { method Flush (line 32) | func (rw *responseWriter) Flush() { method Push (line 39) | func (rw *responseWriter) Push(target string, opts *http.PushOptions) ... function Logger (line 47) | func Logger(next http.Handler) http.Handler { FILE: internal/server/middleware/ratelimit.go type RateLimiter (line 13) | type RateLimiter struct method CheckAuthRateLimit (line 38) | func (rl *RateLimiter) CheckAuthRateLimit(identifier, limitType string... method RecordAttempt (line 119) | func (rl *RateLimiter) RecordAttempt(identifier, limitType string) { method ResetLimit (line 143) | func (rl *RateLimiter) ResetLimit(identifier string) { function NewRateLimiter (line 18) | func NewRateLimiter(db *database.DB) *RateLimiter { type RateLimitResult (line 23) | type RateLimitResult struct function parseLimitTypeAndLockLevel (line 147) | func parseLimitTypeAndLockLevel(storedType, fallback string) (string, in... function formatLimitTypeWithLockLevel (line 169) | func formatLimitTypeWithLockLevel(base string, level int) string { function nextLockoutLevel (line 176) | func nextLockoutLevel(current int) int { function lockoutDurationForLevel (line 187) | func lockoutDurationForLevel(level int) time.Duration { FILE: internal/server/middleware/ratelimit_test.go function TestProgressiveLockoutSchedule (line 11) | func TestProgressiveLockoutSchedule(t *testing.T) { function TestLegacyLongLockIsCappedToCurrentSchedule (line 101) | func TestLegacyLongLockIsCappedToCurrentSchedule(t *testing.T) { FILE: internal/server/middleware/security.go function SecurityHeaders (line 6) | func SecurityHeaders(isProduction bool) func(http.Handler) http.Handler { FILE: internal/server/middleware/session.go function writeJSON (line 13) | func writeJSON(w http.ResponseWriter, status int, v interface{}) { function Session (line 20) | func Session(db *database.DB, _ *tunnel.Gateway) func(http.Handler) http... function RequireAdmin (line 64) | func RequireAdmin(db *database.DB) func(http.Handler) http.Handler { FILE: internal/server/server.go type Server (line 28) | type Server struct method setupRoutes (line 96) | func (s *Server) setupRoutes() { method Start (line 252) | func (s *Server) Start() error { method Shutdown (line 272) | func (s *Server) Shutdown(ctx context.Context) error { function New (line 46) | func New(cfg *config.Config, db *database.DB, frontendFS fs.FS) *Server { function loadLangfuseConfigFromDB (line 285) | func loadLangfuseConfigFromDB(db *database.DB, appSecretKey string) (lan... FILE: internal/tunnel/api.go method IsTunnelOnline (line 13) | func (g *Gateway) IsTunnelOnline(connectionID string) bool { method GetTunnelStatus (line 19) | func (g *Gateway) GetTunnelStatus(connectionID string) (online bool, las... method GetConnectedCount (line 29) | func (g *Gateway) GetConnectedCount() int { method ExecuteQuery (line 39) | func (g *Gateway) ExecuteQuery(connectionID, sql, user, password string,... method ExecuteQueryWithFormat (line 99) | func (g *Gateway) ExecuteQueryWithFormat(connectionID, sql, user, passwo... method ExecuteStreamQuery (line 164) | func (g *Gateway) ExecuteStreamQuery(connectionID, sql, user, password s... method CleanupStream (line 205) | func (g *Gateway) CleanupStream(connectionID, requestID string) { method TestConnection (line 215) | func (g *Gateway) TestConnection(connectionID, user, password string, ti... FILE: internal/tunnel/gateway.go function splitHostPort (line 54) | func splitHostPort(hostport string) (string, string) { function isLoopbackHost (line 69) | func isLoopbackHost(host string) bool { type PendingRequest (line 78) | type PendingRequest struct type PendingStreamRequest (line 84) | type PendingStreamRequest struct type ConnectedTunnel (line 92) | type ConnectedTunnel struct type Gateway (line 102) | type Gateway struct method Stop (line 120) | func (g *Gateway) Stop() { method HandleWebSocket (line 125) | func (g *Gateway) HandleWebSocket(w http.ResponseWriter, r *http.Reque... method readLoop (line 138) | func (g *Gateway) readLoop(conn *websocket.Conn) { method handleAuth (line 225) | func (g *Gateway) handleAuth(conn *websocket.Conn, token string, takeo... method handlePong (line 300) | func (g *Gateway) handlePong(connID string) { method touchTunnel (line 308) | func (g *Gateway) touchTunnel(connID string) { method handleQueryResult (line 318) | func (g *Gateway) handleQueryResult(connID string, msg *AgentMessage) { method handleQueryError (line 351) | func (g *Gateway) handleQueryError(connID string, msg *AgentMessage) { method handleTestResult (line 375) | func (g *Gateway) handleTestResult(connID string, msg *AgentMessage) { method handleHostInfo (line 412) | func (g *Gateway) handleHostInfo(connID string, msg *AgentMessage) { method handleStreamStart (line 427) | func (g *Gateway) handleStreamStart(connID string, msg *AgentMessage) { method handleStreamChunk (line 455) | func (g *Gateway) handleStreamChunk(connID string, msg *AgentMessage) { method handleStreamEnd (line 479) | func (g *Gateway) handleStreamEnd(connID string, msg *AgentMessage) { method handleStreamError (line 513) | func (g *Gateway) handleStreamError(connID string, msg *AgentMessage) { method handleDisconnect (line 541) | func (g *Gateway) handleDisconnect(connID string, ws *websocket.Conn) { method sendJSON (line 586) | func (g *Gateway) sendJSON(conn *websocket.Conn, msg GatewayMessage) { method heartbeatLoop (line 592) | func (g *Gateway) heartbeatLoop() { method pingAll (line 606) | func (g *Gateway) pingAll() { function NewGateway (line 109) | func NewGateway(db *database.DB) *Gateway { function strPtr (line 584) | func strPtr(s string) *string { return &s } FILE: internal/tunnel/protocol.go type AgentMessage (line 6) | type AgentMessage struct method GetMessageID (line 26) | func (m *AgentMessage) GetMessageID() string { method GetStats (line 34) | func (m *AgentMessage) GetStats() json.RawMessage { method IsTestSuccess (line 42) | func (m *AgentMessage) IsTestSuccess() bool { type GatewayMessage (line 53) | type GatewayMessage struct type QueryResult (line 69) | type QueryResult struct type TestResult (line 76) | type TestResult struct type StreamDone (line 83) | type StreamDone struct type HostInfo (line 89) | type HostInfo struct FILE: internal/version/version.go function Set (line 9) | func Set(v, c, d string) { FILE: main.go function main (line 14) | func main() { FILE: ui/src/lib/api/alerts.ts constant BASE (line 4) | const BASE = '/api/governance/alerts' type AlertRuleRoutePayload (line 6) | type AlertRuleRoutePayload = { function adminListAlertChannels (line 17) | async function adminListAlertChannels(): Promise { function adminCreateAlertChannel (line 22) | async function adminCreateAlertChannel(payload: { function adminUpdateAlertChannel (line 31) | async function adminUpdateAlertChannel(id: string, payload: { function adminDeleteAlertChannel (line 40) | async function adminDeleteAlertChannel(id: string): Promise { function adminTestAlertChannel (line 44) | async function adminTestAlertChannel(id: string, payload: { function adminListAlertRules (line 52) | async function adminListAlertRules(): Promise { function adminCreateAlertRule (line 57) | async function adminCreateAlertRule(payload: { function adminUpdateAlertRule (line 71) | async function adminUpdateAlertRule(id: string, payload: { function adminDeleteAlertRule (line 85) | async function adminDeleteAlertRule(id: string): Promise { function adminListAlertEvents (line 89) | async function adminListAlertEvents(params: { limit?: number; eventType?... FILE: ui/src/lib/api/auth.ts type LoginParams (line 4) | interface LoginParams { type LoginResponse (line 10) | interface LoginResponse { type ConnectionsResponse (line 15) | interface ConnectionsResponse { type SessionResponse (line 20) | interface SessionResponse { function login (line 26) | function login(params: LoginParams): Promise { function logout (line 31) | function logout(): Promise { function checkSession (line 36) | async function checkSession(): Promise { function listConnections (line 47) | async function listConnections(): Promise { FILE: ui/src/lib/api/brain.ts function listBrainModels (line 12) | async function listBrainModels(): Promise { function listBrainChats (line 17) | async function listBrainChats(includeArchived = false): Promise { function listBrainMessages (line 35) | async function listBrainMessages(chatId: string): Promise { function listBrainArtifacts (line 40) | async function listBrainArtifacts(chatId: string): Promise { function adminCreateBrainProvider (line 109) | async function adminCreateBrainProvider(payload: { function adminUpdateBrainProvider (line 120) | async function adminUpdateBrainProvider(id: string, payload: { function adminDeleteBrainProvider (line 131) | async function adminDeleteBrainProvider(id: string): Promise { function adminSyncBrainProviderModels (line 135) | async function adminSyncBrainProviderModels(id: string): Promise { function adminListBrainModels (line 139) | async function adminListBrainModels(): Promise { function adminUpdateBrainModel (line 144) | async function adminUpdateBrainModel(id: string, payload: { function adminBulkUpdateBrainModels (line 152) | async function adminBulkUpdateBrainModels(payload: { function adminListBrainSkills (line 159) | async function adminListBrainSkills(): Promise { function adminCreateBrainSkill (line 164) | async function adminCreateBrainSkill(payload: { function adminUpdateBrainSkill (line 173) | async function adminUpdateBrainSkill(id: string, payload: { FILE: ui/src/lib/api/client.ts function parseResponseBody (line 5) | async function parseResponseBody(res: Response): Promise { function buildErrorMessage (line 21) | function buildErrorMessage(status: number, body: any): string { function request (line 35) | async function request( function apiGet (line 71) | function apiGet(url: string): Promise { function apiPost (line 75) | function apiPost(url: string, data?: unknown): Promise { function apiPostForm (line 82) | function apiPostForm(url: string, data: FormData): Promise<... function apiPut (line 89) | function apiPut(url: string, data?: unknown): Promise { function apiDel (line 96) | function apiDel(url: string): Promise { FILE: ui/src/lib/api/governance.ts constant BASE (line 26) | const BASE = '/api/governance' function fetchOverview (line 30) | function fetchOverview() { function triggerSync (line 35) | function triggerSync() { function triggerSingleSync (line 39) | function triggerSingleSync(type: 'metadata' | 'query_log' | 'access') { function fetchSyncStatus (line 43) | function fetchSyncStatus() { function fetchGovernanceSettings (line 49) | function fetchGovernanceSettings() { function updateGovernanceSettings (line 53) | function updateGovernanceSettings(payload: { function fetchDatabases (line 62) | function fetchDatabases() { function fetchTables (line 66) | function fetchTables(params?: { database?: string; tag?: string; search?... function fetchTableDetail (line 75) | function fetchTableDetail(database: string, table: string) { function fetchTableNotes (line 91) | function fetchTableNotes(database: string, table: string) { function fetchColumnNotes (line 95) | function fetchColumnNotes(database: string, table: string, column: strin... function createTableNote (line 99) | function createTableNote(database: string, table: string, commentText: s... function createColumnNote (line 103) | function createColumnNote(database: string, table: string, column: strin... function deleteObjectNote (line 107) | function deleteObjectNote(id: string) { function fetchSchemaChanges (line 111) | function fetchSchemaChanges(limit = 50) { function fetchQueryLog (line 117) | function fetchQueryLog(params?: { user?: string; table?: string; limit?:... function fetchTopQueries (line 127) | function fetchTopQueries(limit = 20) { function fetchLineage (line 144) | function fetchLineage(database: string, table: string) { function fetchLineageGraph (line 149) | function fetchLineageGraph(includeColumns = false) { function fetchViewGraph (line 155) | function fetchViewGraph() { function fetchLineageWithColumns (line 160) | function fetchLineageWithColumns(database: string, table: string) { function fetchQueryByQueryID (line 166) | function fetchQueryByQueryID(queryId: string) { function fetchTags (line 172) | function fetchTags(params?: { database?: string; table?: string }) { function createTag (line 180) | function createTag(data: { object_type: string; database_name: string; t... function deleteTag (line 184) | function deleteTag(id: string) { function fetchAccessUsers (line 190) | function fetchAccessUsers() { function fetchAccessRoles (line 194) | function fetchAccessRoles() { function fetchAccessMatrix (line 198) | function fetchAccessMatrix(user?: string) { function fetchOverPermissions (line 203) | function fetchOverPermissions(days = 30) { function fetchPolicies (line 209) | function fetchPolicies() { function createPolicy (line 213) | function createPolicy(data: Partial) { function getPolicy (line 217) | function getPolicy(id: string) { function updatePolicy (line 221) | function updatePolicy(id: string, data: Partial) { function deletePolicy (line 225) | function deletePolicy(id: string) { function fetchViolations (line 231) | function fetchViolations(params?: { policy_id?: string; limit?: number }) { function promoteViolationToIncident (line 239) | function promoteViolationToIncident(id: string) { function fetchIncidents (line 243) | function fetchIncidents(params?: { status?: string; severity?: string; l... function getIncident (line 252) | function getIncident(id: string) { function createIncident (line 256) | function createIncident(data: { function updateIncident (line 268) | function updateIncident(id: string, data: { function fetchIncidentComments (line 279) | function fetchIncidentComments(id: string) { function createIncidentComment (line 283) | function createIncidentComment(id: string, commentText: string) { FILE: ui/src/lib/api/models.ts constant BASE (line 4) | const BASE = '/api/models' function listModels (line 6) | function listModels() { function createModel (line 10) | function createModel(data: { function getModel (line 22) | function getModel(id: string) { function updateModel (line 26) | function updateModel(id: string, data: Partial { function formatSQL (line 34) | async function formatSQL(query: string): Promise { function explainQuery (line 40) | function explainQuery(query: string): Promise { function fetchQueryPlan (line 45) | function fetchQueryPlan(query: string): Promise { function fetchQueryProfile (line 50) | function fetchQueryProfile(query: string): Promise { function estimateQuery (line 55) | function estimateQuery(query: string): Promise { function runSampleQuery (line 60) | function runSampleQuery(params: { function fetchExplorerData (line 75) | function fetchExplorerData(params: { function listDatabases (line 94) | async function listDatabases(): Promise { function fetchCompletions (line 100) | async function fetchCompletions(): Promise<{ functions: string[]; keywor... function listTables (line 106) | async function listTables(database: string): Promise { function listColumns (line 112) | async function listColumns(database: string, table: string): Promise { function refreshModelCache (line 48) | function refreshModelCache(): void { function detectRefContext (line 52) | function detectRefContext(doc: string, pos: number): { inside: boolean; ... function buildModelCompletions (line 59) | function buildModelCompletions(): Completion[] { type SqlContext (line 68) | type SqlContext = 'table' | 'column' | 'dot' | 'function' | 'default' type TableRef (line 70) | interface TableRef { function normalizeIdent (line 75) | function normalizeIdent(id: string): string { function parseTableRef (line 79) | function parseTableRef(ref: string): TableRef | null { function tableKey (line 96) | function tableKey(db: string, table: string): string { function ensureFunctionKeywordCache (line 100) | async function ensureFunctionKeywordCache(): Promise { function ensureDatabasesLoaded (line 120) | async function ensureDatabasesLoaded(): Promise { function ensureTablesCached (line 130) | async function ensureTablesCached(dbName: string): Promise { function ensureColumnsCached (line 160) | async function ensureColumnsCached(dbName: string, tableName: string): P... function detectContext (line 192) | function detectContext(doc: string, pos: number): SqlContext { function buildAliasMap (line 208) | function buildAliasMap(doc: string): Map { function buildReferencedTables (line 222) | function buildReferencedTables(doc: string): string[] { function knownDatabases (line 233) | function knownDatabases(): string[] { function findTablesForDatabase (line 238) | function findTablesForDatabase(dbName: string): string[] { function findColumns (line 244) | function findColumns(dbName: string, tableName: string): Column[] { function fuzzyScore (line 252) | function fuzzyScore(text: string, term: string): number { function rankCompletions (line 274) | function rankCompletions(items: Completion[], term: string): Completion[] { function dedupeCompletions (line 287) | function dedupeCompletions(items: Completion[]): Completion[] { function resolveUnqualifiedTableRefs (line 299) | async function resolveUnqualifiedTableRefs(tableName: string): Promise { function buildReferencedColumnCompletions (line 421) | async function buildReferencedColumnCompletions(doc: string): Promise { FILE: ui/src/lib/stores/number-format.svelte.ts constant STORAGE_KEY (line 1) | const STORAGE_KEY = 'ch-ui-format-numbers' function getFormatNumbers (line 6) | function getFormatNumbers(): boolean { function toggleFormatNumbers (line 10) | function toggleFormatNumbers(): void { FILE: ui/src/lib/stores/query-limit.svelte.ts constant STORAGE_KEY (line 1) | const STORAGE_KEY = 'ch-ui-max-result-rows' constant DEFAULT_LIMIT (line 2) | const DEFAULT_LIMIT = 1000 function getMaxResultRows (line 7) | function getMaxResultRows(): number { function setMaxResultRows (line 11) | function setMaxResultRows(value: number): void { FILE: ui/src/lib/stores/router.svelte.ts constant TAB_PATHS (line 7) | const TAB_PATHS: Record = { constant PATH_TABS (line 21) | const PATH_TABS: Record { function loadTables (line 27) | async function loadTables(dbName: string): Promise { function loadColumns (line 48) | async function loadColumns(dbName: string, tableName: string): Promise { function login (line 38) | async function login(connectionId: string, username: string, password: s... function logout (line 53) | async function logout(): Promise { FILE: ui/src/lib/stores/tabs.svelte.ts type TabType (line 8) | type TabType = 'home' | 'query' | 'table' | 'database' | 'dashboard' | '... type TabBase (line 10) | interface TabBase { type QueryTab (line 16) | interface QueryTab extends TabBase { type TableTab (line 24) | interface TableTab extends TabBase { type DatabaseTab (line 30) | interface DatabaseTab extends TabBase { type DashboardTab (line 35) | interface DashboardTab extends TabBase { type ModelTab (line 40) | interface ModelTab extends TabBase { type HomeTab (line 50) | interface HomeTab extends TabBase { type SingletonTab (line 54) | interface SingletonTab extends TabBase { type Tab (line 58) | type Tab = HomeTab | QueryTab | TableTab | DatabaseTab | DashboardTab | ... type TabGroup (line 62) | interface TabGroup { type TabResult (line 70) | interface TabResult { constant STORAGE_KEY (line 81) | const STORAGE_KEY = 'ch-ui-tabs' constant HOME_TAB_ID (line 82) | const HOME_TAB_ID = 'home' constant HOME_TAB_NAME (line 83) | const HOME_TAB_NAME = 'Home' type StorageFormat (line 85) | interface StorageFormat { function saveTabs (line 91) | function saveTabs(): void { function loadTabs (line 103) | function loadTabs(): StorageFormat { type CreateQueryTabOptions (line 151) | interface CreateQueryTabOptions { function createQueryTab (line 157) | function createQueryTab(sql = '', options: CreateQueryTabOptions = {}): ... function createHomeTab (line 171) | function createHomeTab(): HomeTab { function normalizeTabsState (line 179) | function normalizeTabsState(state: StorageFormat): StorageFormat { function queueSave (line 268) | function queueSave(): void { function findGroupForTab (line 279) | function findGroupForTab(tabId: string): string | undefined { function isHomeTabId (line 283) | function isHomeTabId(tabId: string): boolean { function resolveTargetGroupId (line 288) | function resolveTargetGroupId(targetGroupId?: string): string { function getTabs (line 296) | function getTabs(): Tab[] { function getActiveTabId (line 301) | function getActiveTabId(): string { function getActiveTab (line 307) | function getActiveTab(): Tab | undefined { function getGroups (line 313) | function getGroups(): TabGroup[] { function getFocusedGroupId (line 317) | function getFocusedGroupId(): string { function isSplit (line 321) | function isSplit(): boolean { function getGroupTabs (line 325) | function getGroupTabs(groupId: string): Tab[] { function getGroupActiveTab (line 331) | function getGroupActiveTab(groupId: string): Tab | undefined { function getGroupActiveTabId (line 337) | function getGroupActiveTabId(groupId: string): string { function getTabResult (line 344) | function getTabResult(tabId: string): TabResult | undefined { function setTabResult (line 348) | function setTabResult(tabId: string, partial: Partial): void { function clearTabResult (line 362) | function clearTabResult(tabId: string): void { function setActiveTab (line 370) | function setActiveTab(id: string, groupId?: string): void { function setFocusedGroup (line 382) | function setFocusedGroup(groupId: string): void { function openHomeTab (line 388) | function openHomeTab(): void { function openQueryTab (line 412) | function openQueryTab(sql = '', targetGroupId?: string): void { type SavedQueryTabInput (line 423) | interface SavedQueryTabInput { function openSavedQueryTab (line 429) | function openSavedQueryTab(savedQuery: SavedQueryTabInput, targetGroupId... function openTableTab (line 463) | function openTableTab(database: string, table: string, targetGroupId?: s... function openDatabaseTab (line 487) | function openDatabaseTab(database: string, targetGroupId?: string): void { function openDashboardTab (line 512) | function openDashboardTab(dashboardId: string, name = 'Dashboard', targe... function openSingletonTab (line 538) | function openSingletonTab(type: SingletonTab['type'], name: string, targ... function closeTab (line 565) | function closeTab(id: string): void { function updateTabSQL (line 617) | function updateTabSQL(id: string, sql: string): void { function renameTab (line 626) | function renameTab(id: string, name: string): void { function markQueryTabSaved (line 632) | function markQueryTabSaved(id: string, options: { savedQueryId?: string;... function isTabDirty (line 648) | function isTabDirty(id: string): boolean { function reorderTab (line 658) | function reorderTab(groupId: string, fromIndex: number, toIndex: number)... function splitTabToSide (line 680) | function splitTabToSide(tabId: string, side: 'left' | 'right'): void { function splitTab (line 719) | function splitTab(tabId: string): void { function moveTabToGroup (line 732) | function moveTabToGroup(tabId: string, targetGroupId: string): void { function unsplit (line 779) | function unsplit(): void { function modelEditEqual (line 792) | function modelEditEqual(a: ModelEditState, b: ModelEditState): boolean { type ModelTabInput (line 802) | interface ModelTabInput { function openModelTab (line 815) | function openModelTab(model: ModelTabInput, targetGroupId?: string): void { function updateModelTabEdit (line 854) | function updateModelTabEdit(tabId: string, partial: Partial = { function normalizeMessage (line 13) | function normalizeMessage(message: string): string { function resolveToastOptions (line 17) | function resolveToastOptions( function addToast (line 30) | function addToast(message: string, type: ToastType = 'info', duration?: ... function removeToast (line 48) | function removeToast(id: number | string): void { function dismiss (line 52) | function dismiss(id?: number | string): void { function getToasts (line 56) | function getToasts() { function success (line 60) | function success(message: string, optionsOrDuration?: number | ExternalT... function error (line 66) | function error(message: string, optionsOrDuration?: number | ExternalToa... function warning (line 72) | function warning(message: string, optionsOrDuration?: number | ExternalT... function info (line 78) | function info(message: string, optionsOrDuration?: number | ExternalToas... FILE: ui/src/lib/types/alerts.ts type AlertChannelType (line 1) | type AlertChannelType = 'smtp' | 'resend' | 'brevo' type AlertSeverity (line 2) | type AlertSeverity = 'info' | 'warn' | 'error' | 'critical' type AlertEventType (line 3) | type AlertEventType = 'policy.violation' | 'schedule.failed' | 'schedule... type AlertChannel (line 5) | interface AlertChannel { type AlertRuleRoute (line 17) | interface AlertRuleRoute { type AlertRule (line 36) | interface AlertRule { type AlertEvent (line 52) | interface AlertEvent { FILE: ui/src/lib/types/api.ts type ApiResponse (line 2) | interface ApiResponse { type Session (line 9) | interface Session { type Connection (line 21) | interface Connection { type HostInfo (line 31) | interface HostInfo { type LicenseInfo (line 46) | interface LicenseInfo { type SavedQuery (line 55) | interface SavedQuery { type Dashboard (line 65) | interface Dashboard { type Panel (line 75) | interface Panel { type Schedule (line 92) | interface Schedule { type ScheduleRun (line 111) | interface ScheduleRun { type PanelConfig (line 123) | interface PanelConfig { type AuditLog (line 132) | interface AuditLog { type AdminStats (line 143) | interface AdminStats { FILE: ui/src/lib/types/brain.ts type SchemaContextEntry (line 1) | interface SchemaContextEntry { type BrainChat (line 7) | interface BrainChat { type BrainMessage (line 23) | interface BrainMessage { type BrainArtifact (line 34) | interface BrainArtifact { type BrainModelOption (line 45) | interface BrainModelOption { type BrainProviderAdmin (line 58) | interface BrainProviderAdmin { type BrainSkill (line 71) | interface BrainSkill { FILE: ui/src/lib/types/governance.ts type GovernanceSettings (line 3) | interface GovernanceSettings { type SyncState (line 11) | interface SyncState { type SyncResult (line 24) | interface SyncResult { type GovernanceOverview (line 35) | interface GovernanceOverview { type GovDatabase (line 55) | interface GovDatabase { type GovTable (line 65) | interface GovTable { type GovColumn (line 81) | interface GovColumn { type SchemaChange (line 98) | interface SchemaChange { type QueryLogEntry (line 113) | interface QueryLogEntry { type TopQuery (line 134) | interface TopQuery { type ColumnLineageEdge (line 145) | interface ColumnLineageEdge { type LineageEdge (line 150) | interface LineageEdge { type LineageNode (line 163) | interface LineageNode { type LineageGraph (line 171) | interface LineageGraph { type TagEntry (line 178) | interface TagEntry { type ChUser (line 192) | interface ChUser { type ChRole (line 202) | interface ChRole { type AccessMatrixEntry (line 209) | interface AccessMatrixEntry { type OverPermission (line 220) | interface OverPermission { type Policy (line 233) | interface Policy { type PolicyViolation (line 251) | interface PolicyViolation { type GovernanceObjectComment (line 266) | interface GovernanceObjectComment { type GovernanceIncident (line 279) | interface GovernanceIncident { type GovernanceIncidentComment (line 300) | interface GovernanceIncidentComment { FILE: ui/src/lib/types/models.ts type Materialization (line 1) | type Materialization = 'view' | 'table' type ModelStatus (line 2) | type ModelStatus = 'draft' | 'success' | 'error' type RunStatus (line 3) | type RunStatus = 'running' | 'success' | 'partial' | 'error' type ResultStatus (line 4) | type ResultStatus = 'pending' | 'running' | 'success' | 'error' | 'skipped' type Model (line 6) | interface Model { type ModelRun (line 24) | interface ModelRun { type ModelRunResult (line 38) | interface ModelRunResult { type DAGNode (line 52) | interface DAGNode { type DAGEdge (line 63) | interface DAGEdge { type ModelDAG (line 69) | interface ModelDAG { type ValidationError (line 74) | interface ValidationError { type ValidationResult (line 80) | interface ValidationResult { type ModelSchedule (line 85) | interface ModelSchedule { type Pipeline (line 100) | interface Pipeline { type ModelEditState (line 106) | interface ModelEditState { FILE: ui/src/lib/types/pipelines.ts type PipelineStatus (line 1) | type PipelineStatus = 'draft' | 'stopped' | 'starting' | 'running' | 'er... type NodeType (line 3) | type NodeType = type Pipeline (line 10) | interface Pipeline { type PipelineNode (line 25) | interface PipelineNode { type PipelineEdge (line 37) | interface PipelineEdge { type PipelineGraph (line 47) | interface PipelineGraph { type PipelineRun (line 52) | interface PipelineRun { type PipelineRunLog (line 66) | interface PipelineRunLog { type ConnectorFieldDef (line 74) | interface ConnectorFieldDef { constant SOURCE_NODE_TYPES (line 85) | const SOURCE_NODE_TYPES: { type: NodeType; label: string; description: s... constant SINK_NODE_TYPES (line 92) | const SINK_NODE_TYPES: { type: NodeType; label: string; description: str... constant CONNECTOR_FIELDS (line 96) | const CONNECTOR_FIELDS: Record = { FILE: ui/src/lib/types/query.ts type ColumnMeta (line 2) | interface ColumnMeta { type CompactResult (line 8) | interface CompactResult { type QueryStats (line 16) | interface QueryStats { type ExplorerDataResponse (line 23) | interface ExplorerDataResponse { type LegacyQueryResult (line 34) | interface LegacyQueryResult { type SampleQueryResult (line 43) | interface SampleQueryResult extends LegacyQueryResult { type QueryPlanNode (line 48) | interface QueryPlanNode { type QueryPlanResult (line 55) | interface QueryPlanResult { type QueryProfileResult (line 62) | interface QueryProfileResult { type TableEstimate (line 70) | interface TableEstimate { type QueryEstimateResult (line 79) | interface QueryEstimateResult { type StreamMessage (line 89) | type StreamMessage = FILE: ui/src/lib/types/schema.ts type Database (line 2) | interface Database { type Table (line 10) | interface Table { type Column (line 19) | interface Column { FILE: ui/src/lib/utils/calendar.ts function daysInMonth (line 2) | function daysInMonth(year: number, month: number): number { function firstDayOfWeek (line 7) | function firstDayOfWeek(year: number, month: number): number { function buildMonthGrid (line 15) | function buildMonthGrid(year: number, month: number): (Date | null)[][] { function shiftMonth (line 40) | function shiftMonth(year: number, month: number, delta: number): { year:... function isSameDay (line 46) | function isSameDay(a: Date, b: Date): boolean { function isInRange (line 55) | function isInRange(date: Date, from: Date, to: Date): boolean { function isToday (line 63) | function isToday(date: Date): boolean { function monthName (line 68) | function monthName(month: number): string { FILE: ui/src/lib/utils/ch-types.ts type DisplayType (line 2) | type DisplayType = 'number' | 'string' | 'date' | 'bool' | 'json' | 'nul... function getDisplayType (line 4) | function getDisplayType(chType: string): DisplayType { function isRightAligned (line 17) | function isRightAligned(chType: string): boolean { FILE: ui/src/lib/utils/chart-transform.ts type ColumnMeta (line 4) | interface ColumnMeta { constant DEFAULT_COLORS (line 9) | const DEFAULT_COLORS = [ constant TIME_RANGES (line 20) | const TIME_RANGES = [ type ExtendedPreset (line 30) | interface ExtendedPreset { constant EXTENDED_PRESETS (line 36) | const EXTENDED_PRESETS: ExtendedPreset[] = [ constant DATE_TYPES (line 57) | const DATE_TYPES = new Set([ constant NUMERIC_TYPES (line 62) | const NUMERIC_TYPES = new Set([ function isDateType (line 68) | function isDateType(chType: string): boolean { function isNumericType (line 73) | function isNumericType(chType: string): boolean { function isCategoricalX (line 80) | function isCategoricalX(meta: ColumnMeta[], xColumn: string): boolean { function toUPlotData (line 90) | function toUPlotData( function getStatValue (line 127) | function getStatValue(data: Record[], meta: ColumnMeta[... FILE: ui/src/lib/utils/dashboard-time.ts type DashboardTimeRangePayload (line 1) | interface DashboardTimeRangePayload { function encodeAbsoluteDashboardRange (line 9) | function encodeAbsoluteDashboardRange(fromISO: string, toISO: string): s... function decodeAbsoluteDashboardRange (line 13) | function decodeAbsoluteDashboardRange(value: string): { from: string; to... function normalizeRelative (line 25) | function normalizeRelative(value: string, fallback: string): string { function isAbsoluteToken (line 62) | function isAbsoluteToken(value: string): boolean { constant PRESET_LABELS (line 70) | const PRESET_LABELS: Record = { constant DURATION_LABELS (line 81) | const DURATION_LABELS: Record = { function resolveNamedPreset (line 94) | function resolveNamedPreset(name: string): { from: string; to: string } ... function formatDashboardTimeRangeLabel (line 146) | function formatDashboardTimeRangeLabel(value: string): string { function toDashboardTimeRangePayload (line 162) | function toDashboardTimeRangePayload(value: string): DashboardTimeRangeP... FILE: ui/src/lib/utils/export.ts function normalizeScalar (line 3) | function normalizeScalar(val: unknown): string { function escapeDelimited (line 9) | function escapeDelimited(val: unknown, delimiter: ',' | '\t'): string { function rowsToObjects (line 22) | function rowsToObjects(meta: ColumnMeta[], data: unknown[][]): Record { function downloadFile (line 133) | function downloadFile(content: string, filename: string, mimeType: strin... FILE: ui/src/lib/utils/format.ts function formatNumber (line 2) | function formatNumber(n: number): string { function formatBytes (line 7) | function formatBytes(bytes: number): string { function formatElapsed (line 16) | function formatElapsed(seconds: number): string { function formatDuration (line 26) | function formatDuration(ms: number): string { FILE: ui/src/lib/utils/grid-layout.ts constant COLS (line 3) | const COLS = 12 constant ROW_H (line 4) | const ROW_H = 60 constant GAP (line 5) | const GAP = 16 constant MIN_W (line 6) | const MIN_W = 2 constant MIN_H (line 7) | const MIN_H = 2 type LayoutItem (line 9) | interface LayoutItem { function gridToPixel (line 18) | function gridToPixel( function calcColW (line 31) | function calcColW(containerWidth: number): number { function rectsOverlap (line 36) | function rectsOverlap(a: LayoutItem, b: LayoutItem): boolean { function compact (line 52) | function compact(items: LayoutItem[], movedId?: string): LayoutItem[] { function containerHeight (line 103) | function containerHeight(items: LayoutItem[]): number { FILE: ui/src/lib/utils/lineage-layout.ts constant LAYER_GAP (line 4) | const LAYER_GAP = 300 constant NODE_GAP (line 5) | const NODE_GAP = 140 constant NODE_WIDTH (line 6) | const NODE_WIDTH = 220 type LineageFlowNode (line 8) | interface LineageFlowNode extends Node { function layoutLineageGraph (line 22) | function layoutLineageGraph( FILE: ui/src/lib/utils/safe-json.ts function getFallbackParser (line 37) | function getFallbackParser() { function safeParse (line 51) | function safeParse(text: string): any { FILE: ui/src/lib/utils/sql.ts constant WRITE_PATTERN (line 1) | const WRITE_PATTERN = /^\s*(INSERT|CREATE|DROP|ALTER|TRUNCATE|RENAME|ATT... function isWriteQuery (line 4) | function isWriteQuery(query: string): boolean { FILE: ui/src/lib/utils/stats.ts type ColumnStats (line 4) | interface ColumnStats { constant DISTINCT_SAMPLE (line 26) | const DISTINCT_SAMPLE = 10000 function computeColumnStats (line 29) | function computeColumnStats(meta: ColumnMeta[], data: unknown[][]): Colu... FILE: ui/src/lib/utils/uuid.ts function bytesToHex (line 1) | function bytesToHex(bytes: Uint8Array): string { function createUUID (line 5) | function createUUID(): string { FILE: ui/vite.config.ts method manualChunks (line 41) | manualChunks(id) {