Files
create/docs/src/guide/silo.md
forbes-0023 64bde8d97a
Some checks failed
Build and Test / build (pull_request) Has been cancelled
docs: initialize mdBook structure with stub pages and deployment workflow
- 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.
2026-02-09 07:59:01 -06:00

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).