Introduction to Duro's Config System

Evolution of Duro's Configuration

Duro started as an "out of the box" PLM solution that worked well for hardware teams transitioning from spreadsheets. However, as organizations scaled and required deeper customization, we recognized the need for a more flexible approach. Instead of maintaining hard-coded rules, we developed a powerful configuration system that puts control in our users' hands.

The YAML-Based Configuration

Our "YAML all the things" philosophy enables extensive customization while maintaining Duro's core value of simplicity. Using YAML's human-readable format, you can configure:

  • Category definitions and specifications

  • Data validation rules

  • Custom revision and status workflows

  • Configurable part numbering schemes

  • Change order validation and approval flows

  • Event-driven notifications and webhooks

  • And more...

# Example: Simple category definition
categories:
  - code: "920"
    type: ASSEMBLY
    name: Cable Assembly
    specs:
      - name: Length
        type: string
        required: true
        validation:
          pattern: "^\\d+(\\.\\d+)?\\s*(mm|m)$"

Why YAML?

We chose YAML for its:

  • Readability: Clean, intuitive syntax that's easy to understand

  • Accessibility: Approachable for both technical and non-technical users

  • Flexibility: Supports complex configurations without overwhelming complexity

  • Industry adoption: Widely used in tools like GitHub Actions and Kubernetes

Our configuration system draws inspiration from proven approaches like GitHub Actions, Render.com Blueprints, and JSON Schema, combining their best aspects into a cohesive configuration definition system for your product data.

Getting Started

If you're new to YAML, we recommend these resources:

The following sections will guide you through configuring various aspects of your Duro environment, starting with the Category Registry.

Last updated