# 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** — React SPA (Vite + TypeScript, Catppuccin Mocha theme) for item browsing, project management, schema editing, and audit - **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 and routes (78 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 │ └── testutil/ # Test helpers ├── web/ # React SPA (Vite + TypeScript) │ └── src/ │ ├── api/ # API client and type definitions │ ├── components/ # Reusable UI components │ ├── context/ # Auth context provider │ ├── hooks/ # Custom React hooks │ ├── pages/ # Page components (Items, Projects, Schemas, Settings, Audit, Login) │ └── styles/ # Catppuccin Mocha theme and global styles ├── migrations/ # Database migrations (11 files) ├── schemas/ # Part numbering schemas (YAML) ├── deployments/ # Docker Compose and systemd configs ├── scripts/ # Deployment and setup scripts └── docs/ # Documentation ``` ## Quick Start See the **[Installation Guide](docs/INSTALL.md)** for complete setup instructions. **Docker Compose (quickest — includes PostgreSQL, MinIO, OpenLDAP, and Silo):** ```bash ./scripts/setup-docker.sh docker compose -f deployments/docker-compose.allinone.yaml up -d ``` **Development (local Go + Docker services):** ```bash make docker-up # Start PostgreSQL + MinIO in Docker make run # Run silo locally with Go ``` 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/INSTALL.md](docs/INSTALL.md) | Installation guide (Docker Compose and daemon) | | [docs/SPECIFICATION.md](docs/SPECIFICATION.md) | Full design specification and API reference | | [docs/STATUS.md](docs/STATUS.md) | Implementation status | | [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) | Production deployment and operations guide | | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) | Configuration reference (all `config.yaml` options) | | [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/GAP_ANALYSIS.md](docs/GAP_ANALYSIS.md) | Gap analysis and revision control roadmap | | [docs/COMPONENT_AUDIT.md](docs/COMPONENT_AUDIT.md) | Component audit tool design | | [docs/ROADMAP.md](docs/ROADMAP.md) | Platform roadmap, dependency tiers, and gap summary | | [frontend-spec.md](frontend-spec.md) | React SPA frontend specification | ## License MIT License - Copyright (c) 2026 Kindred Systems LLC See [LICENSE](LICENSE) for details.