Merge the tactical root ROADMAP.md (SOLIDWORKS PDM gap analysis, Phase 1-6 timelines, project inventory) with the visionary docs/ROADMAP.md (modular platform architecture, .kc format, dependency tiers) into a single unified document at docs/ROADMAP.md. - Adopt dependency tier structure (Tier 0-6) as the organizing spine - Add Status column to each tier table from project inventory - Replace Phase 1-6 calendar timelines with Near-Term Priorities section - Migrate 9 SOLIDWORKS PDM comparison tables to docs/GAP_ANALYSIS.md - Migrate Feature Comparison Matrix to docs/GAP_ANALYSIS.md - Preserve Phase 1 task checklists and success metrics as appendices - Update README.md link from ROADMAP.md to docs/ROADMAP.md - Delete root ROADMAP.md
129 lines
5.5 KiB
Markdown
129 lines
5.5 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** — 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.
|