- Add docs/book.toml with coal theme, repo link, and custom CSS - Add docs/src/SUMMARY.md with navigation structure - Create 16 content pages across guide/, architecture/, development/, reference/ - Add docs/theme/kindred.css with minimal sidebar overrides - Add .gitea/workflows/docs.yml for auto-deploy on push to main - Add docs/book/ to .gitignore Pages are populated with real content from the codebase where possible. Remaining pages have TODO markers for future content.
2.6 KiB
Silo
Silo is an item database and part management system for Kindred Create. It provides revision-controlled storage for CAD files, part number generation, BOM management, and team collaboration.
- Submodule path:
mods/silo/ - Source:
git.kindred-systems.com/kindred/silo-mod
Architecture
Silo has three components:
- Go REST API server (
cmd/silod/) — 38+ routes, backed by PostgreSQL and MinIO - FreeCAD workbench (
freecad/) — Python commands integrated into Kindred Create - Shared API client (
silo-client/) — Python library used by the workbench (nested submodule)
The silo-mod repository was split from a monorepo into three repos: silo-client (shared Python API client), silo-mod (FreeCAD workbench, used as Create's submodule), and silo-calc (LibreOffice Calc extension).
Workbench commands
| Command | Description |
|---|---|
| New | Create a new item in the database |
| Open | Open an item by part number |
| Save | Save the current document locally |
| Commit | Save current state as a new revision with comment |
| Pull | Download an item by part number |
| Push | Batch upload modified files |
| Info | View revision history and metadata |
| BOM | View or edit the bill of materials |
| TagProjects | Tag items with project identifiers |
| Rollback | Revert to a previous revision |
| SetStatus | Change item lifecycle status |
| Settings | Configure Silo server connection |
| Auth | Authenticate with the Silo server |
Origin integration
Silo registers as a file origin via the FileOrigin interface in src/Gui/. This makes Silo commands (Commit, Pull, Push, Info, BOM) available in the File menu and Origin Tools toolbar across all workbenches.
The registration happens via a deferred QTimer (1500ms after startup) in src/Mod/Create/InitGui.py.
Configuration
The FreeCAD workbench reads configuration from:
SILO_API_URL— Server API endpoint (default:http://localhost:8080/api)SILO_PROJECTS_DIR— Local projects directory (default:~/projects)
On first launch, Kindred Create prompts for Silo server configuration via the Settings command.
Server setup
See mods/silo/README.md for full server deployment instructions. Quick start:
# Database setup
psql -h psql.kindred.internal -U silo -d silo -f migrations/001_initial.sql
# Configure
cp config.example.yaml config.yaml
# Edit config.yaml with your settings
# Run server
go run ./cmd/silod
The server supports LDAP and OIDC authentication, and provides a real-time activity feed via Server-Sent Events (SSE).