Files
silo/docs/STATUS.md
Forbes 124eac1391 docs: update STATUS.md for current state
- Update migration count to 11, add 011_item_files.sql
- Update endpoint count from 74 to 75
- Replace htmx reference with React SPA
- Add file attachments as complete feature
- Update test file count from 1 to 9
- Update date to 2026-02-08

Closes #27
2026-02-08 14:04:26 -06:00

4.5 KiB

Silo Development Status

Last Updated: 2026-02-08


Implementation Status

Core Systems

Component Status Notes
PostgreSQL schema Complete 11 migrations applied
YAML schema parser Complete Supports enum, serial, constant, string segments
Part number generator Complete Scoped sequences, category-based format
API server (silod) Complete 75 REST endpoints via chi/v5
CLI tool (silo) Complete Item registration and management
MinIO file storage Complete Upload, download, versioning, checksums
Revision control Complete Append-only history, rollback, comparison, status/labels
Project management Complete CRUD, many-to-many item tagging
CSV import/export Complete Dry-run validation, template generation
ODS import/export Complete Items, BOMs, project sheets, templates
Multi-level BOM Complete Recursive expansion, where-used, CSV/ODS export/import
Authentication Complete Local (bcrypt), LDAP/FreeIPA, OIDC/Keycloak
Role-based access control Complete admin > editor > viewer hierarchy
API token management Complete SHA-256 hashed, bearer auth
Session management Complete PostgreSQL-backed (pgxstore), 24h lifetime
Audit logging Complete audit_log table, completeness scoring
CSRF protection Complete nosurf on web forms
Fuzzy search Complete sahilm/fuzzy library
Web UI Complete React SPA (Vite + TypeScript), 6 pages, Catppuccin Mocha theme
File attachments Complete Presigned uploads, item file association, thumbnails
Odoo ERP integration Partial Config and sync-log CRUD functional; push/pull are stubs
Docker Compose Complete Dev and production configurations
Deployment scripts Complete setup-host, deploy, init-db, setup-ipa-nginx
systemd service Complete Unit file and environment template

Client Integrations

FreeCAD workbench and LibreOffice Calc extension are maintained in separate repositories (silo-mod, silo-calc). The server provides the REST API and ODS endpoints consumed by those clients.

Not Yet Implemented

Feature Notes
Location API endpoints Database tables exist (locations, inventory), no REST handlers
Inventory API endpoints Database tables exist, no REST handlers
Date segment type Schema parser placeholder only
Part number format validation API accepts but does not validate format on creation
Unit tests 9 Go test files across api, db, ods, partnum, schema packages

Infrastructure

Service Host Status
PostgreSQL psql.kindred.internal:5432 Running
MinIO localhost:9000 (API) / :9001 (console) Configured
Silo API localhost:8080 Builds successfully

Schema Status

The part numbering schema (kindred-rd) is at version 3 using the {category}-{sequence} format (e.g., F01-0001). This replaced the earlier {project}-{type}-{sequence} format. Projects are now managed as many-to-many tags rather than being embedded in part numbers.

The schema defines 170 category codes across 10 groups:

  • F01-F18: Fasteners
  • C01-C17: Fluid Fittings
  • R01-R44: Motion Components
  • S01-S17: Structural Materials
  • E01-E27: Electrical Components
  • M01-M18: Mechanical Components
  • T01-T08: Tooling and Fixtures
  • A01-A07: Assemblies
  • P01-P05: Purchased/Off-the-Shelf
  • X01-X08: Custom Fabricated Parts

Database Migrations

Migration Description
001_initial.sql Core schema (items, revisions, relationships, locations, inventory, sequences)
002_sequence_by_name.sql Sequence naming changes
003_remove_material.sql Schema cleanup
004_cad_sync_state.sql CAD synchronization state
005_property_schema_version.sql Property versioning framework
006_project_tags.sql Many-to-many project-item relationships
007_revision_status.sql Revision status and labels
008_odoo_integration.sql Odoo ERP integration tables (integrations, sync_log)
009_auth.sql Authentication system (users, api_tokens, sessions, audit_log, user tracking columns)
010_item_extended_fields.sql Extended item fields (sourcing_type, sourcing_link, standard_cost, long_description)
011_item_files.sql Item file attachments (item_files table, thumbnail_key column)