Documentation
¶
Overview ¶
Package api serves the single-binary HTTP surface: event ingestion + the server-rendered dashboard. No web framework, no SPA build step — the whole UI is embedded in the binary and rendered fast on the server (the speed IS a feature).
Index ¶
- Variables
- type Server
- func (s *Server) EvaluateAlerts()
- func (s *Server) Handler() http.Handler
- func (s *Server) SetAlerts(a *alert.Store)
- func (s *Server) SetAliases(a *alias.Map)
- func (s *Server) SetAudit(l *audit.Log)
- func (s *Server) SetCloudURL(u string)
- func (s *Server) SetCohorts(st *cohort.Store)
- func (s *Server) SetDefined(d *defined.Store)
- func (s *Server) SetDeploys(d *deploys.Store)
- func (s *Server) SetExportLinks(st *exportlink.Store)
- func (s *Server) SetFlags(f *flag.Store)
- func (s *Server) SetGSC(g *gsc.Store)
- func (s *Server) SetGeo(g *geo.Resolver)
- func (s *Server) SetGoals(g *goal.Store)
- func (s *Server) SetInsights(st *insights.Store)
- func (s *Server) SetMCPReadOnly(v bool)
- func (s *Server) SetReadKey(k string)
- func (s *Server) SetSettings(st *settings.Store)
- func (s *Server) SetShares(st *share.Store)
- func (s *Server) SetSurveys(sv *survey.Store)
- func (s *Server) SetTrackPlan(tp *trackplan.Store)
- func (s *Server) SetWebhooks(w *webhook.Store)
- func (s *Server) SetWriteKey(k string)
Constants ¶
This section is empty.
Variables ¶
var Version = "0.1.0"
Version is the build version (overridable at build time via -ldflags).
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) EvaluateAlerts ¶
func (s *Server) EvaluateAlerts()
func (*Server) SetAliases ¶ added in v0.4.0
SetAliases attaches the identity-stitching map (ingest records anon→user on $identify; the MCP import tool does the same for imported history).
func (*Server) SetCloudURL ¶ added in v0.12.1
SetCloudURL sets where the dashboard header's "Cloud ↗" link points. The hosted product passes the project's own page so a user who lands on their instance has a way back into their account. Empty (every self-hosted install) keeps the default link to smolanalytics.com, so a self-hoster never sees a cloud-specific or broken link.
func (*Server) SetCohorts ¶
SetCohorts swaps in a persistent cohort store (shared with MCP).
func (*Server) SetDefined ¶ added in v0.9.0
SetDefined attaches the retroactive defined-events store (shared with MCP + the dashboard "save as event" builder).
func (*Server) SetDeploys ¶ added in v0.9.3
SetDeploys attaches the store to both the HTTP server and the MCP server, so a marker recorded over HTTP is visible to the editor and vice-versa (one store, every surface).
func (*Server) SetExportLinks ¶ added in v0.8.0
func (s *Server) SetExportLinks(st *exportlink.Store)
SetExportLinks attaches the one-time export-link store (minted by the create_export_link MCP tool, served by GET /export/{token}).
func (*Server) SetFlags ¶ added in v0.9.6
SetFlags attaches the feature-flag store (shared with MCP + the SDK evaluate endpoint).
func (*Server) SetGSC ¶ added in v0.4.1
SetGSC attaches the Search Console store (dashboard card + MCP report).
func (*Server) SetGeo ¶ added in v0.9.1
SetGeo enables ingest-time country resolution (the IP is used for one lookup and never stored, only the ISO code lands on the event).
func (*Server) SetGoals ¶ added in v0.4.0
SetGoals attaches the goals store (dashboard card + MCP goal tools).
func (*Server) SetInsights ¶
SetInsights swaps in a persistent saved-reports store (shared with the MCP action tools, so "save this report" from the editor lands on the dashboard instantly).
func (*Server) SetMCPReadOnly ¶ added in v0.13.0
SetMCPReadOnly refuses every mutating MCP tool. The public demo serves /mcp with no credential on purpose (nothing is configured, so authorized() opens it), which also means any stranger could otherwise create flags, delete goals, mint export links or change retention on the very instance the marketing site renders.
func (*Server) SetReadKey ¶ added in v0.9.1
SetReadKey sets the SECRET read/MCP key. It authorizes reads (GET /v1/* reports, the raw export) and MCP — everything that returns data. It must NEVER be embedded in client code; only the write key is public. This is what stops a scraped write key from reading data.
func (*Server) SetSettings ¶
SetSettings swaps in a persistent settings store (project, keys, session secret).
func (*Server) SetSurveys ¶ added in v0.9.9
SetSurveys attaches the survey store (shared with MCP + the SDK active-surveys endpoint).
func (*Server) SetTrackPlan ¶ added in v0.3.0
SetTrackPlan attaches the tracking-plan store (shared with the MCP instrumentation tools).
func (*Server) SetWebhooks ¶
SetWebhooks / SetAlerts swap in the persistent notification stores (shared with MCP).
func (*Server) SetWriteKey ¶
SetWriteKey gates event ingestion behind a write key (production). Empty = open (dev). The SDK passes the same key.
Source Files
¶
- agent_api.go
- aicrawl.go
- aicrawl_vm.go
- alert_eval.go
- api.go
- ask.go
- ask_scope.go
- ask_toolkit.go
- auth.go
- cohort_api.go
- dashboard.go
- defined_api.go
- deploys_api.go
- errors_api.go
- explore.go
- export.go
- flags_api.go
- formula_api.go
- goals_api.go
- group_grain.go
- heatmap_api.go
- insights_api.go
- notify_api.go
- people_api.go
- query_api.go
- sessions_api.go
- settings_api.go
- share_api.go
- sql_api.go
- surveys_api.go