Skip to content

Visual Workflow & Plugin System for Part-DB #1220

@T0b121

Description

@T0b121

Overview

A proposal for a visual workflow and plugin system that allows users to extend and customize Part-DB without needing PHP knowledge. Logic would be created through a graphical node-based editor (rete.js, vue flow ...).

Motivation

Part-DB is valuable because it is server-based and requires no additional software installation. A flexible plugin system would allow users to tailor Part-DB to their needs. For example, a user could generate a QR code that triggers an API endpoint to adjust stock levels (e.g., +x or −x) when scanning a part.

This avoids adding niche features directly into the core and empowers end users to build their own extensions.

Key Capabilities

  • Creation of custom API endpoints, including dynamic parameters such as /api/part/{id}/change/{value}.
  • Visual workflows triggered by:
    • Page loads
    • Button clicks
    • API requests (GET/POST with URL parameters)
    • Scheduled tasks
    • Data changes within Part-DB
  • Ability to inject UI elements (buttons, menu items) at defined locations, to trigger the plugin function.
  • Support for building new distributor integrations as plugins without writing PHP.

Community Questions

  • Would this system be useful to you?
  • Which node types would you need?
  • What use cases do you envision?
  • Would a plugin repository or plugin store be beneficial?

Brief Objection

I myself also don’t know how much work that would be, since my PHP experience goes back several years. But from my point of view, it would make later adjustments easier. For example, one could move all info providers from the PHP system there. That way, if something changes with the APIs or a new distributor is needed, you can easily put it together yourself without having to update the PartDB itself. The plugins (which ultimately are JSON, XML, or whatever you want) can then be imported/exported and shared in that way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions