7f375fec7ce2dbe82cc503c42267ff36ccd6bf90
Silo
Item database and part management system for FreeCAD.
Overview
Silo is an R&D-oriented item database with:
- Configurable part number generation via YAML schemas
- FreeCAD integration with git-like commands (checkout, commit, status)
- Revision tracking with append-only history
- BOM management with reference designators and alternates
- Physical inventory tracking with hierarchical locations
Components
silo/
├── cmd/
│ ├── silo/ # CLI tool
│ └── silod/ # API server
├── internal/
│ ├── config/ # Configuration loading
│ ├── db/ # PostgreSQL access
│ ├── schema/ # YAML schema parsing
│ ├── storage/ # MinIO file storage
│ ├── partnum/ # Part number generation
│ ├── inventory/ # Location and stock management
│ └── api/ # HTTP handlers
├── pkg/
│ └── freecad/ # FreeCAD workbench (Python)
├── web/
│ ├── templates/ # HTML templates
│ └── static/ # CSS, JS assets
├── migrations/ # Database migrations
├── schemas/ # Example YAML schemas
└── docs/ # Documentation
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
# CLI usage
go run ./cmd/silo register --schema kindred-rd --project PROTO --type AS
Configuration
See config.example.yaml for all options.
FreeCAD Integration
Install the workbench:
ln -s $(pwd)/pkg/freecad ~/.local/share/FreeCAD/Mod/Silo
Then in FreeCAD:
silo checkout PROTO-AS-0001silo commit -m "Updated dimensions"silo status
License
Proprietary - Kindred Systems LLC
Languages
Go
68.5%
TypeScript
25.5%
Shell
2.7%
PLpgSQL
2.4%
Makefile
0.5%
Other
0.3%