Forbes d5be2eb152 fix: push detects locally modified files, renumber migration to 010
- Fix FreeCAD Push command: compare local file mtime against server's
  latest file revision timestamp instead of just checking file existence.
  Previously, any file already uploaded (even at an older revision) was
  skipped, causing 'All local files are already uploaded' when local
  files were newer.
- Add SiloClient.latest_file_revision() helper method
- Renumber 009_item_extended_fields.sql to 010 to avoid collision
  with 009_auth.sql from the auth system
2026-01-31 19:13:21 -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%