# 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 ```bash # 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: ```bash ln -s $(pwd)/pkg/freecad ~/.local/share/FreeCAD/Mod/Silo ``` Then in FreeCAD: - `silo checkout PROTO-AS-0001` - `silo commit -m "Updated dimensions"` - `silo status` ## License Proprietary - Kindred Systems LLC