Slack ↔ Teams Messaging Bridge
Conduit is a bidirectional messaging bridge that connects Slack and Microsoft Teams, allowing cross-platform communication in real-time. Messages posted in a Slack channel are relayed to a Teams channel, and vice versa, with sender attribution and identity mapping.
Version: 0.1.0
Phase: -1 (Sandbox & API Validation) Last Updated: May 10, 2026
- ✅ Story -1.1 — Repo scaffold
- ✅ Story -1.4 — Teams SDK spike (Bot Framework → migrated to Teams SDK Python v2.0.0)
- ✅ Story -1.5 — Slack SDK spike (OAuth flow, webhook verification, event parsing validated)
- ⏳ Story -1.2 — Slack sandbox workspace setup
- ⏳ Story -1.3 — Teams developer tenant setup
Epic -1 validates the platform shape before writing production code. The Teams SDK decision is locked in via ADR-003 v0.3 (Teams SDK Python) and the Slack SDK decision is confirmed (no ADR needed—using original slack-sdk 3.33.0). Both SDK spikes are complete with full smoke test coverage.
- Python 3.12+
- uv (package manager)
# Install dependencies
uv sync
# Create config files
cp config.example.yaml config.yaml
cp secrets.example.yaml secrets.dev.yaml
# Edit secrets.dev.yaml with your actual secrets
# Run database migrations
uv run alembic upgrade head
# Start development server
uv run uvicorn bridge.main:app --reload# Start all services (bridge + PostgreSQL)
docker compose up
# Start with Cloudflare tunnel for public ingress
docker compose --profile tunnel up- Liveness:
GET /health/live- Returns 200 if the app is running - Readiness:
GET /health/ready- Returns 200 with database and secret store status
- User Stories:
docs/USER_STORIES.md - System Design:
docs/SYSTEM_DESIGN.md - Product Requirements:
docs/CrossPlatformMessagingBridge.md - Spikes & Research:
docs/spikes/ - Runbooks:
docs/runbooks/- Deployment setup — stand up Slack + Teams for a new deployment
- Deployment provisioning:
deploy/README.md— template + values pattern for per-client Slack/Teams app manifests
Conduit is single-tenant per deployment (PRD §3). Each client engagement gets its own values file under deployments/<name>.values.yaml, which renders to platform-specific manifests in build/<name>/. The BitStorm internal sandbox lives at deployments/bitstorm-sandbox.values.yaml.
uv run python scripts/render_deployment.py bitstorm-sandboxSee deploy/README.md for the full pattern.
Copyright © 2026 BitStorm Technologies. All rights reserved.