Files
silo/docs/STATUS.md
Forbes 21c592bcb2 docs: update all docs for sessions, solver, approvals, and recent features
- STATUS.md: migration count 18→23, endpoint count 86→~140, add approval
  workflows, solver service, workstations, edit sessions, SSE targeted
  delivery rows, update test file count 9→31, add migrations 019-023
- MODULES.md: add solver and sessions to registry, dependencies, endpoint
  mappings (sections 3.11, 3.12), discovery response, admin settings,
  config YAML, and future considerations
- CONFIGURATION.md: add Approval Workflows, Solver, and Modules config
  sections, add SILO_SOLVER_DEFAULT env var
- ROADMAP.md: mark Job Queue Complete (Tier 0), Audit Trail Complete
  (Tier 1), Approval/ECO Complete (Tier 4), update Workflow Engine tasks,
  add Recently Completed section, update counts, resolve job queue question
- GAP_ANALYSIS.md: mark approval workflow Implemented, locking Partial,
  update workflow comparison (C.2), update check-in/check-out to Partial,
  task scheduler to Full, update endpoint counts, rewrite Appendix A
- INSTALL.md: add MODULES.md, WORKERS.md, SOLVER.md to Further Reading
- WORKERS.md: status Draft→Implemented
- SOLVER.md: add spec doc, mark Phase 3b as complete
2026-03-03 13:26:08 -06:00

6.3 KiB

Silo Development Status

Last Updated: 2026-03-01


Implementation Status

Core Systems

Component Status Notes
PostgreSQL schema Complete 23 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 ~140 REST endpoints via chi/v5
CLI tool (silo) Complete Item registration and management
Filesystem file storage Complete Upload, download, 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 Direct uploads, item file association, thumbnails
.kc extraction pipeline Complete Metadata, dependencies, macros indexed on commit
.kc checkout packing Complete Manifest, metadata, history, dependencies repacked on download
.kc metadata API Complete GET/PUT metadata, lifecycle transitions, tag management
.kc dependency API Complete List raw deps, resolve UUIDs to part numbers + file availability
.kc macro API Complete List macros, get source content by filename
Approval workflows Complete YAML-configurable ECO workflows, multi-stage review gates, digital signatures
Solver service Complete Server-side assembly constraint solving, result caching, job definitions
Workstation registration Complete Device identity, heartbeat tracking, per-user workstation management
Edit sessions Complete Acquire/release locks, hard interference detection, SSE notifications
SSE targeted delivery Complete Per-item, per-user, per-workstation event filtering
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 31 Go test files across api, db, modules, ods, partnum, schema packages

Infrastructure

Service Host Status
PostgreSQL psql.example.internal:5432 Running
File Storage /opt/silo/data (filesystem) 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, long_description)
011_item_files.sql Item file attachments (item_files table, thumbnail_key column)
012_bom_source.sql BOM entry source tracking
013_move_cost_sourcing_to_props.sql Move sourcing_link and standard_cost from item columns to revision properties
014_settings.sql Settings overrides and module state tables
015_jobs.sql Job queue, runner, and job log tables
016_dag.sql Dependency DAG nodes and edges
017_locations.sql Location hierarchy and inventory tracking
018_kc_metadata.sql .kc metadata tables (item_metadata, item_dependencies, item_macros, item_approvals, approval_signatures)
019_approval_workflow_name.sql Approval workflow name column
020_storage_backend_filesystem_default.sql Storage backend default to filesystem
021_solver_results.sql Solver result caching table
022_workstations.sql Workstation registration table
023_edit_sessions.sql Edit session tracking table with hard interference unique index