Forbes 888cebe875 feat(web): remove max-width constraint and reduce main padding
Remove maxWidth: 1400 and margin: 0 auto from AppShell main container.
Reduce padding from 2rem to 1rem so content fills available browser width.
Adjust height calc in ItemsPage and AuditPage from 80px to 64px offset
to account for reduced top padding.

Closes #16
2026-02-07 14:51:55 -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.

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, 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

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

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

Client Integrations

CAD and spreadsheet integrations are maintained in separate repositories:

  • Kindred Create / FreeCAD workbench -- silo-mod
  • LibreOffice Calc extension -- silo-calc

The server provides the REST API and ODS endpoints consumed by these clients.

Documentation

Document Description
docs/AUTH.md Authentication system design
docs/AUTH_USER_GUIDE.md User guide for login, tokens, and roles
docs/DEPLOYMENT.md Production deployment guide
docs/SPECIFICATION.md Full design specification and API reference
docs/STATUS.md Implementation status
ROADMAP.md Feature roadmap and gap analysis

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%