Add section 8.4 to SPECIFICATION.md describing the flat BOM flattening
and assembly cost roll-up endpoints with example request/response JSON.
- GET /api/items/{pn}/bom/flat — consolidated leaf parts with
rolled-up quantities and cycle detection
- GET /api/items/{pn}/bom/cost — per-line extended costs and total
assembly cost using standard_cost
Update endpoint count from 74 to 76 in SPECIFICATION.md and README.md.
Add checklist entries for flat BOM and assembly costing features.
110 lines
4.2 KiB
Markdown
110 lines
4.2 KiB
Markdown
# Kindred Silo
|
|
|
|
Item database and part management system.
|
|
|
|
## Overview
|
|
|
|
Kindred Silo is an R&D-oriented item database with:
|
|
|
|
- **Configurable part number generation** via YAML schemas
|
|
- **Revision tracking** with append-only history, rollback, comparison, and status labels
|
|
- **BOM management** with multi-level expansion, flat BOM flattening, assembly costing, where-used queries, CSV/ODS export
|
|
- **Authentication** with local (bcrypt), LDAP/FreeIPA, and OIDC/Keycloak backends
|
|
- **Role-based access control** (admin > editor > viewer) with API tokens and sessions
|
|
- **ODS import/export** for items, BOMs, and project sheets
|
|
- **Audit/completeness scoring** with weighted per-category property validation
|
|
- **Web UI** with htmx-based item browser, project management, and schema editing
|
|
- **CAD integration** via REST API ([silo-mod](https://git.kindred-systems.com/kindred/silo-mod), [silo-calc](https://git.kindred-systems.com/kindred/silo-calc))
|
|
- **Physical inventory** tracking with hierarchical locations (schema ready)
|
|
|
|
## Components
|
|
|
|
```
|
|
silo/
|
|
├── cmd/
|
|
│ ├── silo/ # CLI tool
|
|
│ └── silod/ # API server
|
|
├── internal/
|
|
│ ├── api/ # HTTP handlers, routes, templates (76 endpoints)
|
|
│ ├── auth/ # Authentication (local, LDAP, OIDC)
|
|
│ ├── config/ # Configuration loading
|
|
│ ├── db/ # PostgreSQL repositories
|
|
│ ├── migration/ # Property migration utilities
|
|
│ ├── odoo/ # Odoo ERP integration
|
|
│ ├── ods/ # ODS spreadsheet library
|
|
│ ├── partnum/ # Part number generation
|
|
│ ├── schema/ # YAML schema parsing
|
|
│ └── storage/ # MinIO file storage
|
|
├── migrations/ # Database migrations (10 files)
|
|
├── schemas/ # Part numbering schemas (YAML)
|
|
├── deployments/ # Docker Compose and systemd configs
|
|
├── scripts/ # Deployment and setup scripts
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Docker Compose (quickest)
|
|
cp config.example.yaml config.yaml
|
|
# Edit config.yaml with your database, MinIO, and auth settings
|
|
make docker-up
|
|
|
|
# Or manual setup
|
|
psql -h localhost -U silo -d silo -f migrations/*.sql
|
|
go run ./cmd/silod -config config.yaml
|
|
```
|
|
|
|
When auth is enabled, a default admin account is created on first startup using the credentials in `config.yaml` under `auth.local.default_admin_username` and `auth.local.default_admin_password`.
|
|
|
|
```bash
|
|
# CLI usage
|
|
go run ./cmd/silo register --schema kindred-rd --category F01
|
|
```
|
|
|
|
## Configuration
|
|
|
|
See `config.example.yaml` for all options.
|
|
|
|
## Authentication
|
|
|
|
Silo supports three authentication backends, configured in `config.yaml`:
|
|
|
|
| Backend | Description |
|
|
|---------|-------------|
|
|
| **Local** | Built-in accounts with bcrypt passwords |
|
|
| **LDAP** | FreeIPA / Active Directory integration |
|
|
| **OIDC** | Keycloak / OpenID Connect providers |
|
|
|
|
Roles: **admin** (full access) > **editor** (create/modify items) > **viewer** (read-only).
|
|
|
|
API tokens provide programmatic access for scripts and CAD clients. Set `auth.enabled: false` for development without authentication.
|
|
|
|
See [docs/AUTH.md](docs/AUTH.md) for full details.
|
|
|
|
## Client Integrations
|
|
|
|
CAD and spreadsheet integrations are maintained in separate repositories:
|
|
|
|
- **Kindred Create / FreeCAD workbench** -- [silo-mod](https://git.kindred-systems.com/kindred/silo-mod)
|
|
- **LibreOffice Calc extension** -- [silo-calc](https://git.kindred-systems.com/kindred/silo-calc)
|
|
|
|
The server provides the REST API and ODS endpoints consumed by these clients.
|
|
|
|
## Documentation
|
|
|
|
| Document | Description |
|
|
|----------|-------------|
|
|
| [docs/AUTH.md](docs/AUTH.md) | Authentication system design |
|
|
| [docs/AUTH_USER_GUIDE.md](docs/AUTH_USER_GUIDE.md) | User guide for login, tokens, and roles |
|
|
| [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) | Production deployment guide |
|
|
| [docs/SPECIFICATION.md](docs/SPECIFICATION.md) | Full design specification and API reference |
|
|
| [docs/STATUS.md](docs/STATUS.md) | Implementation status |
|
|
| [ROADMAP.md](ROADMAP.md) | Feature roadmap and gap analysis |
|
|
|
|
## License
|
|
|
|
MIT License - Copyright (c) 2026 Kindred Systems LLC
|
|
|
|
See [LICENSE](LICENSE) for details.
|