This repository has been archived on 2026-04-03 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
70678cb352b689dfdd1bd20f6bc3bf69f53cf3c6
Some checks failed
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-frontend (pull_request) Successful in 4s
CI/CD / test-go-pg (pull_request) Failing after 2m18s
CI/CD / test-sqlite (pull_request) Successful in 2m40s
CI/CD / build-and-deploy (pull_request) Has been skipped
Default surface routing (v0.2.1): - `/` redirects to configurable default surface with fallback chain: configured → first enabled extension surface → /admin - Auto-sets default_surface on first extension surface install - Admin settings UI: Default Surface dropdown - disabledRedirect() and extension surface disabled redirect now go to /admin instead of / to prevent redirect loops Fix Gin route param conflict causing backend startup hang: - Team package settings routes used `:pkgId` while sibling routes used `:id` — Gin's radix tree entered infinite loop on conflicting param names. Unified to `:id`. Docker entrypoint hardening: - Health check timeout 10s → 60s - Stale backend process cleanup on restart - Crash detection (exit early if backend dies) Roadmap direction updates: - v0.3.0: Notes surface (Obsidian-style) replaces Editor surface - v0.4.0: MVP (was v0.5.0) — chat moved to post-MVP - No built-in auto-install — explicit install only Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Switchboard Core
A self-hosted extension platform. Identity, teams, permissions, workflows, and a package system. Everything else ships as installable extensions.
What This Is
Switchboard Core is the kernel. It provides the primitives that extensions build on: users, teams, groups, scoped credentials, a Starlark sandbox, workflow orchestration, notifications, and a package installer. It does not include AI chat, providers, personas, or any domain-specific features — those are all extension packages.
Stack
- Backend: Go / Gin
- Frontend: Preact + htm (no build step)
- Database: PostgreSQL (production) + SQLite (dev/test/edge)
- Sandbox: Starlark with capability-gated modules
- Deployment: Single Docker image, Kubernetes
Quick Start
git clone <repo-url> && cd switchboard-core
cp server/.env.example server/.env # edit DB credentials
cd server && go run .
# → http://localhost:8080
Kernel Features
- Auth: Builtin password, mTLS (client cert), OIDC (Keycloak et al.)
- Teams & Groups: Horizontal isolation + vertical permissions
- Packages: Unified registry for surfaces, extensions, libraries, workflows
- Starlark Sandbox: Capability-gated server-side scripting for extensions
- Workflows: Staged processes with forms, review, and webhooks
- Connections: Scoped credential storage (global/team/personal), AES-256-GCM encrypted
- Notifications: In-app with per-type preferences
- Audit Log: All admin operations logged
- Object Storage: PVC or S3-compatible
- Multi-Replica HA: PG-backed WS tickets and rate limit counters
Documentation
- Architecture — kernel components and design reasoning
- Roadmap — current status and planned milestones
- Changelog — version history
Project Status
v0.1.0 (in progress) — kernel extracted from chat-switchboard v0.38.5. ~44K lines of chat/AI code removed, 27 kernel tables, 20 store interfaces. See ROADMAP.md for details.
License
Proprietary. All rights reserved.
Description