2026-01-24 15:03:17 -06:00

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-0001
  • silo commit -m "Updated dimensions"
  • silo status

License

Proprietary - Kindred Systems LLC

Description
No description provided
Readme MIT 3.6 MiB
Languages
Go 68.5%
TypeScript 25.5%
Shell 2.7%
PLpgSQL 2.4%
Makefile 0.5%
Other 0.3%