Files
silo/ROADMAP.md
Forbes 004dc9aef0 docs: update stale documentation to reflect current state
Closes #1 — Bring documentation in line with implemented features.

GAP_ANALYSIS.md:
- Mark auth system and audit log gaps as Implemented
- Replace FreeCAD Integration section with Client Integration (silo-mod)
- Update Phase 2 sections: auth and audit marked COMPLETE
- Update Appendix A file structure and Appendix B endpoints

STATUS.md:
- Update client integrations to reference silo-mod and silo-calc repos
- Update unit tests row to remove pkg/calc/tests reference

ROADMAP.md:
- Update executive summary with links to silo-mod and silo-calc
- Update unit tests row, CAD gap section references

SPECIFICATION.md:
- Update architecture overview to reference silo-mod and silo-calc
- Update Section 5 Client Integration with both repos

REPOSITORY_STATUS.md:
- Remove Python/FreeCAD row from language stats, update totals
2026-02-06 16:18:58 -06:00

23 KiB

Silo Roadmap

Version: 1.1
Date: February 2026
Purpose: Project inventory, SOLIDWORKS PDM gap analysis, and development roadmap


Table of Contents

  1. Executive Summary
  2. Current Project Inventory
  3. SOLIDWORKS PDM Gap Analysis
  4. Feature Roadmap
  5. Implementation Phases

Executive Summary

Silo is an R&D-oriented item database and part management system. It provides configurable part number generation, revision tracking, BOM management, and file versioning through MinIO storage. CAD integration (FreeCAD workbench, LibreOffice Calc extension) is maintained in separate repositories (silo-mod, silo-calc).

This document compares Silo's current capabilities against SOLIDWORKS PDM—the industry-leading product data management solution—to identify gaps and prioritize future development.

Key Differentiators

Aspect Silo SOLIDWORKS PDM
Target CAD FreeCAD / Kindred Create (open source) SOLIDWORKS (proprietary)
Part Numbering Schema-as-configuration (YAML) Fixed format with some customization
Licensing Open source / Kindred Proprietary Commercial ($3,000-$10,000+ per seat)
Storage PostgreSQL + MinIO (S3-compatible) SQL Server + File Archive
Philosophy R&D-oriented, lightweight Enterprise-grade, comprehensive

Current Project Inventory

Implemented Features (MVP Complete)

Core Database System

  • PostgreSQL schema with 10 migrations
  • UUID-based identifiers throughout
  • Soft delete support via archived_at timestamps
  • Atomic sequence generation for part numbers

Part Number Generation

  • YAML schema parser with validation
  • Segment types: string, enum, serial, constant
  • Scope templates for serial counters (e.g., {category}, {project})
  • Format templates for custom output

Item Management

  • Full CRUD operations for items
  • Item types: part, assembly, drawing, document, tooling, purchased, electrical, software
  • Custom properties via JSONB storage
  • Project tagging with many-to-many relationships

Revision Control

  • Append-only revision history
  • Revision metadata: properties, file reference, checksum, comment
  • Status tracking: draft, review, released, obsolete
  • Labels/tags per revision
  • Revision comparison (diff)
  • Rollback functionality

File Management

  • MinIO integration with versioning
  • File upload/download via REST API
  • SHA256 checksums for integrity
  • Storage path: items/{partNumber}/rev{N}.FCStd

Bill of Materials (BOM)

  • Relationship types: component, alternate, reference
  • Multi-level BOM (recursive expansion with configurable depth)
  • Where-used queries (reverse parent lookup)
  • BOM CSV and ODS export/import with cycle detection
  • Reference designators for electronics
  • Quantity tracking with units
  • Revision-specific child linking

Project Management

  • Project CRUD operations
  • Unique project codes (2-10 characters)
  • Item-to-project tagging
  • Project-filtered queries

Data Import/Export

  • CSV export with configurable properties
  • CSV import with dry-run validation
  • ODS spreadsheet import/export (items, BOMs, project sheets)
  • Template generation for import formatting

API & Web Interface

  • REST API with 74 endpoints
  • Authentication: local (bcrypt), LDAP/FreeIPA, OIDC/Keycloak
  • Role-based access control (admin > editor > viewer)
  • API token management (SHA-256 hashed)
  • Session management (PostgreSQL-backed, 24h lifetime)
  • CSRF protection (nosurf on web forms)
  • Middleware: logging, CORS, recovery, request ID
  • Web UI for items, projects, schemas, audit (htmx)
  • Fuzzy search
  • Health and readiness probes

Audit & Completeness

  • Audit logging (database table with user/action/resource tracking)
  • Item completeness scoring with weighted fields
  • Category-specific property validation
  • Tier classification (critical/low/partial/good/complete)

Configuration

  • YAML configuration with environment variable overrides
  • Multi-schema support
  • Docker Compose deployment ready

Partially Implemented

Feature Status Notes
Odoo ERP integration Partial Config and sync-log CRUD functional; push/pull sync operations are stubs
Date segment type Not started Schema parser placeholder exists
Part number validation Not started API accepts but doesn't validate format
Location hierarchy CRUD Schema only Tables exist, no API endpoints
Inventory tracking Schema only Tables exist, no API endpoints
Unit tests Minimal 1 Go test file (internal/ods/ods_test.go)

Infrastructure Status

Component Status
PostgreSQL Running (psql.kindred.internal)
MinIO Configured in Docker Compose
Silo API Server Builds successfully
Docker Compose Complete (dev and production)
systemd service Unit file and env template ready
Deployment scripts setup-host, deploy, init-db, setup-ipa-nginx

SOLIDWORKS PDM Gap Analysis

This section compares Silo's capabilities against SOLIDWORKS PDM features. Gaps are categorized by priority and implementation complexity.

Legend

  • Silo Status: Full / Partial / None
  • Priority: Critical / High / Medium / Low
  • Complexity: Simple / Moderate / Complex

1. Version Control & Revision Management

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Check-in/check-out Full pessimistic locking None High Moderate
Version history Complete with branching Full (linear) - -
Revision labels A, B, C or custom schemes Full (custom labels) - -
Rollback/restore Full Full - -
Compare revisions Visual + metadata diff Metadata diff only Medium Complex
Get Latest Revision One-click retrieval Partial (API only) Medium Simple

Gap Analysis: Silo lacks pessimistic locking (check-out), which is critical for multi-user CAD environments where file merging is impractical. Visual diff comparison would require FreeCAD integration for CAD file visualization.


2. Workflow Management

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Custom workflows Full visual designer None Critical Complex
State transitions Configurable with permissions Basic (status field only) Critical Complex
Parallel approvals Multiple approvers required None High Complex
Automatic transitions Timer/condition-based None Medium Moderate
Email notifications On state change None High Moderate
ECO process Built-in change management None High Complex
Child state conditions Block parent if children invalid None Medium Moderate

Gap Analysis: Workflow management is the largest functional gap. SOLIDWORKS PDM offers sophisticated state machines with parallel approvals, automatic transitions, and deep integration with engineering change processes. Silo currently has only a simple status field (draft/review/released/obsolete) with no transition rules or approval processes.


3. User Management & Security

Feature SOLIDWORKS PDM Silo Status Priority Complexity
User authentication Windows AD, LDAP Full (local, LDAP, OIDC) - -
Role-based permissions Granular per folder/state Partial (3-tier role model) Medium Moderate
Group management Full None Medium Moderate
Folder permissions Read/write/delete per folder None Medium Moderate
State permissions Actions allowed per state None High Moderate
Audit trail Complete action logging Full - -
Private files Pre-check-in visibility control None Low Simple

Gap Analysis: Authentication is implemented with three backends (local, LDAP/FreeIPA, OIDC/Keycloak) and a 3-tier role model (admin > editor > viewer). Audit logging captures user actions. Remaining gaps: group management, folder-level permissions, and state-based permission rules.


4. Search & Discovery

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Metadata search Full with custom cards Partial (API query params + fuzzy) High Moderate
Full-text content search iFilters for Office, CAD None Medium Complex
Quick search Toolbar with history Partial (fuzzy search API) Medium Simple
Saved searches User-defined favorites None Medium Simple
Advanced operators AND, OR, NOT, wildcards None Medium Simple
Multi-variable search Search across multiple fields None Medium Simple
Where-used search Find all assemblies using part Full - -

Gap Analysis: Silo has API-level filtering, fuzzy search, and where-used queries. Remaining gaps: saved searches, advanced search operators, and a richer search UI. Content search (searching within CAD files) is not planned for the server.


5. BOM Management

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Single-level BOM Yes Full - -
Multi-level BOM Indented/exploded views Full (recursive, configurable depth) - -
BOM comparison Between revisions None Medium Moderate
BOM export Excel, XML, ERP formats Full (CSV, ODS) - -
BOM import Bulk BOM loading Full (CSV with upsert) - -
Calculated BOMs Quantities rolled up None Medium Moderate
Reference designators Full support Full - -
Alternate parts Substitute tracking Full - -

Gap Analysis: Multi-level BOM retrieval (recursive CTE with configurable depth) and BOM export (CSV, ODS) are implemented. BOM import supports CSV with upsert and cycle detection. Remaining gap: BOM comparison between revisions.


6. CAD Integration

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Native CAD add-in Deep SOLIDWORKS integration FreeCAD workbench (silo-mod) Medium Complex
Property mapping Bi-directional sync Planned (silo-mod) Medium Moderate
Task pane Embedded in CAD UI Auth dock panel (silo-mod) Medium Complex
Lightweight components Handle without full load N/A - -
Drawing/model linking Automatic association Manual Medium Moderate
Multi-CAD support Third-party formats FreeCAD only Low -

Gap Analysis: CAD integration is maintained in separate repositories (silo-mod, silo-calc). The Silo server provides the REST API endpoints consumed by those clients.


7. External Integrations

Feature SOLIDWORKS PDM Silo Status Priority Complexity
ERP integration SAP, Dynamics, etc. Partial (Odoo stubs) Medium Complex
API access Full COM/REST API Full REST API (74 endpoints) - -
Dispatch scripts Automation without coding None Medium Moderate
Task scheduler Background processing None Medium Moderate
Email system SMTP integration None High Simple
Web portal Browser access Full (htmx + auth) - -

Gap Analysis: Silo has a comprehensive REST API (74 endpoints) and a full web UI with authentication. Odoo ERP integration has config/sync-log scaffolding but push/pull operations are stubs. Remaining gaps: email notifications, task scheduler, dispatch automation.


8. Reporting & Analytics

Feature SOLIDWORKS PDM Silo Status Priority Complexity
Standard reports Inventory, usage, activity None Medium Moderate
Custom reports User-defined queries None Medium Moderate
Dashboard Visual KPIs None Low Moderate
Export formats PDF, Excel, CSV CSV and ODS Medium Simple

Gap Analysis: Reporting capabilities are absent. Basic reports (item counts, revision activity, where-used) would provide immediate value.


9. File Handling

Feature SOLIDWORKS PDM Silo Status Priority Complexity
File versioning Automatic Full (MinIO) - -
File preview Thumbnails, 3D preview None Medium Complex
File conversion PDF, DXF generation None Medium Complex
Replication Multi-site sync None Low Complex
File copy with refs Copy tree with references None Medium Moderate

Gap Analysis: File storage works well. Thumbnail generation and file preview would significantly improve the web UI experience. Automatic conversion to PDF/DXF is valuable for sharing with non-CAD users.


Gap Summary by Priority

Completed (Previously Critical/High)

  1. User authentication - Implemented: local, LDAP, OIDC
  2. Role-based permissions - Implemented: 3-tier role model (admin/editor/viewer)
  3. Audit trail - Implemented: audit_log table with completeness scoring
  4. Where-used search - Implemented: reverse parent lookup API
  5. Multi-level BOM API - Implemented: recursive expansion with configurable depth
  6. BOM export - Implemented: CSV and ODS formats

Critical Gaps (Required for Team Use)

  1. Workflow engine - State machines with transitions and approvals
  2. Check-out locking - Pessimistic locking for CAD files

High Priority Gaps (Significant Value)

  1. Email notifications - Alert users on state changes
  2. Web UI search - Advanced search interface with saved searches
  3. Folder/state permissions - Granular access control beyond role model

Medium Priority Gaps (Nice to Have)

  1. Saved searches - Frequently used queries
  2. File preview/thumbnails - Visual browsing
  3. Reporting - Activity and inventory reports
  4. Scheduled tasks - Background automation
  5. BOM comparison - Revision diff for assemblies

Feature Roadmap

Phase 1: Foundation (Current - Q2 2026)

Complete MVP and stabilize core functionality

Feature Description Status
MinIO integration File upload/download with versioning and checksums Complete
Revision control Rollback, comparison, status/labels Complete
CSV import/export Dry-run validation, template generation Complete
ODS import/export Items, BOMs, project sheets, templates Complete
Project management CRUD, many-to-many item tagging Complete
Multi-level BOM Recursive expansion, where-used, export Complete
Authentication Local, LDAP, OIDC with role-based access Complete
Audit logging Action logging, completeness scoring Complete
Unit tests Core API and database operations Not Started
Date segment type Support date-based part number segments Not Started
Part number validation Validate format on creation Not Started
Location CRUD API Expose location hierarchy via REST Not Started
Inventory API Expose inventory operations via REST Not Started

Phase 2: Multi-User (Q2-Q3 2026)

Enable team collaboration

Feature Description Status
LDAP authentication Integrate with FreeIPA/Active Directory Complete
OIDC authentication Keycloak / OpenID Connect Complete
Audit logging Record all user actions with timestamps Complete
Session management Token-based and session-based API authentication Complete
User/group management Create, assign, manage users and groups Not Started
Folder permissions Read/write/delete per folder hierarchy Not Started
Check-out locking Pessimistic locks with timeout Not Started

Phase 3: Workflow Engine (Q3-Q4 2026)

Implement engineering change processes

Feature Description Complexity
Workflow designer YAML-defined state machines Complex
State transitions Configurable transition rules Complex
Transition permissions Who can execute which transitions Moderate
Single approvals Basic approval workflow Moderate
Parallel approvals Multi-approver gates Complex
Automatic transitions Timer and condition-based Complex
Email notifications SMTP integration for alerts Simple
Child state conditions Block parent transitions Moderate

Phase 4: Search & Discovery (Q4 2026 - Q1 2027)

Improve findability and navigation

Feature Description Status
Where-used queries Find parent assemblies Complete
Fuzzy search Quick search across items Complete
Advanced search UI Web interface with filters Not Started
Search operators AND, OR, NOT, wildcards Not Started
Saved searches User favorites Not Started
Content search Search within file content Not Started

Phase 5: BOM & Reporting (Q1-Q2 2027)

Enhanced BOM management and analytics

Feature Description Status
Multi-level BOM API Recursive assembly retrieval Complete
BOM export CSV and ODS formats Complete
BOM import CSV with upsert and cycle detection Complete
BOM comparison Diff between revisions Not Started
Standard reports Activity, inventory, usage Not Started
Custom queries User-defined report builder Not Started
Dashboard Visual KPIs and metrics Not Started

Phase 6: Advanced Features (Q2-Q4 2027)

Enterprise capabilities

Feature Description Complexity
File preview Thumbnail generation Complex
File conversion Auto-generate PDF/DXF Complex
ERP integration Adapter framework Complex
Task scheduler Background job processing Moderate
Webhooks Event notifications to external systems Moderate
API rate limiting Protect against abuse Simple

Implementation Phases

Phase 1 Detailed Tasks

1.1 MinIO Integration -- COMPLETE

  • MinIO service configured in Docker Compose
  • File upload via REST API
  • File download via REST API (latest and by revision)
  • SHA256 checksums on upload

1.2 Authentication & Authorization -- COMPLETE

  • Local authentication (bcrypt)
  • LDAP/FreeIPA authentication
  • OIDC/Keycloak authentication
  • Role-based access control (admin/editor/viewer)
  • API token management (SHA-256 hashed)
  • Session management (PostgreSQL-backed)
  • CSRF protection (nosurf)
  • Audit logging (database table)

1.3 Multi-level BOM & Export -- COMPLETE

  • Recursive BOM expansion with configurable depth
  • Where-used reverse lookup
  • BOM CSV export/import with cycle detection
  • BOM ODS export
  • ODS item export/import/template

1.4 Unit Test Suite

  • Database connection and transaction tests
  • Item CRUD operation tests
  • Revision creation and retrieval tests
  • Part number generation tests
  • File upload/download tests
  • CSV import/export tests
  • API endpoint tests

1.5 Missing Segment Types

  • Implement date segment type
  • Add strftime-style format support

1.6 Location & Inventory APIs

  • GET /api/locations - List locations
  • POST /api/locations - Create location
  • GET /api/locations/{path} - Get location
  • DELETE /api/locations/{path} - Delete location
  • GET /api/inventory/{partNumber} - Get inventory
  • POST /api/inventory/{partNumber}/adjust - Adjust quantity
  • POST /api/inventory/{partNumber}/move - Move between locations

Success Metrics

Phase 1 (Foundation)

  • All existing tests pass
  • File upload/download works end-to-end
  • FreeCAD users can checkout, modify, commit parts

Phase 2 (Multi-User)

  • 5+ concurrent users supported
  • No data corruption under concurrent access
  • Audit log captures all modifications

Phase 3 (Workflow)

  • Engineering change process completable in Silo
  • Email notifications delivered reliably
  • Workflow state visible in web UI

Phase 4+ (Advanced)

  • Search returns results in <2 seconds
  • Where-used queries complete in <5 seconds
  • BOM export matches assembly structure

References

SOLIDWORKS PDM Documentation

Silo Documentation


Appendix: Feature Comparison Matrix

Category Feature SW PDM Standard SW PDM Pro Silo Current Silo Planned
Version Control Check-in/out Yes Yes No Phase 2
Version history Yes Yes Yes -
Rollback Yes Yes Yes -
Revision labels/status Yes Yes Yes -
Revision comparison Yes Yes Yes (metadata) -
Workflow Custom workflows Limited Yes No Phase 3
Parallel approval No Yes No Phase 3
Notifications No Yes No Phase 3
Security User auth Windows Windows/LDAP Yes (local, LDAP, OIDC) -
Permissions Basic Granular Partial (role-based) Phase 2
Audit trail Basic Full Yes -
Search Metadata search Yes Yes Partial (API + fuzzy) Phase 4
Content search No Yes No Phase 4
Where-used Yes Yes Yes -
BOM Single-level Yes Yes Yes -
Multi-level Yes Yes Yes (recursive) -
BOM export Yes Yes Yes (CSV, ODS) -
Data CSV import/export Yes Yes Yes -
ODS import/export No No Yes -
Project management Yes Yes Yes -
Integration API Limited Full Full REST (74) -
ERP connectors No Yes Partial (Odoo stubs) Phase 6
Web access No Yes Yes (htmx + auth) -
Files Versioning Yes Yes Yes -
Preview Yes Yes No Phase 6
Multi-site No Yes No Not Planned