79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# Kindred Silo
|
|
|
|
Item database and part management system for Kindred Create.
|
|
|
|
## Overview
|
|
|
|
Kindred 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/
|
|
│ ├── api/ # HTTP handlers, routes, and templates
|
|
│ ├── config/ # Configuration loading
|
|
│ ├── db/ # PostgreSQL access
|
|
│ ├── migration/ # Property migration utilities
|
|
│ ├── partnum/ # Part number generation
|
|
│ ├── schema/ # YAML schema parsing
|
|
│ └── storage/ # MinIO file storage
|
|
├── pkg/
|
|
│ └── freecad/ # FreeCAD workbench (Python)
|
|
├── migrations/ # Database migration SQL scripts
|
|
├── schemas/ # Part numbering schema definitions (YAML)
|
|
├── deployments/ # Docker Compose and systemd configs
|
|
├── scripts/ # Deployment and setup scripts
|
|
└── 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 --category F01
|
|
```
|
|
|
|
## Configuration
|
|
|
|
See `config.example.yaml` for all options.
|
|
|
|
## Kindred Create Integration
|
|
|
|
Install the workbench:
|
|
|
|
```bash
|
|
ln -s $(pwd)/pkg/freecad ~/.local/share/FreeCAD/Mod/KindredSilo
|
|
```
|
|
|
|
Then in Kindred Create, use the Silo workbench toolbar commands:
|
|
- **Pull** - Download an item by part number
|
|
- **Commit** - Save current state as a new revision with comment
|
|
- **Push** - Batch upload modified files
|
|
- **Info** - View revision history
|
|
|
|
## License
|
|
|
|
MIT License - Copyright (c) 2026 Kindred Systems LLC
|
|
|
|
See [LICENSE](LICENSE) for details.
|