Zoe Forbes 071cba2ef9 fix: include parent_part_number in BOM API response
BOMEntryResponse was missing the ParentPartNumber field. The database
query populates it correctly, but the API serialization dropped it.
This caused the Calc extension to never populate the hidden
_silo_parent_pn column during pull, so push never called
_update_bom_relationship and no BOM entries were created.
2026-02-01 14:24:35 -06:00
2026-01-29 13:10:12 -06:00
2026-01-29 13:10:12 -06:00
2026-01-29 13:10:12 -06:00
2026-01-29 13:10:12 -06:00
2026-01-29 13:10:12 -06:00

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

# 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:

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 for details.

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%