profullstack / profullstack/meshhook

Node configuration forms (JSON Schema-driven)

Open
#123 0 comments 0 reactions 1 assignee View on GitHub

@ralyodio is already working on this.

Since Oct 10, 2025.

hacktoberfest workflow-builder
Dominant language
JavaScript
Stars
6
Forks
6
Avg merge
1m
Merged PRs (30d)
1

Description

📋 Product Requirements Document

PRD: Node configuration forms (JSON Schema-driven)

Issue: #123
Milestone: Phase 3: Frontend (SvelteKit)
Labels: workflow-builder, hacktoberfest


PRD: Node Configuration Forms (JSON Schema-driven)

Issue: #123
Milestone: Phase 3: Frontend (SvelteKit)
Labels: workflow-builder, hacktoberfest
Phase: Phase 3
Section: Workflow Builder


Overview

The objective of this task is to enhance the MeshHook workflow builder's user experience by implementing JSON Schema-driven configuration forms for workflow nodes. This aligns with MeshHook's goal to provide a visually simple yet powerful workflow engine. By leveraging JSON Schema, we aim to standardize node configurations, ensuring flexibility, validation, and ease of use.

Goals
  • Provide dynamic, schema-driven forms for configuring nodes within workflows.
  • Improve user experience by simplifying the node configuration process.
  • Ensure robust validation and feedback mechanisms for configuration data.

Requirements

Functional Requirements
  1. Schema-Driven Forms: Dynamically generate node configuration forms based on JSON Schema definitions associated with each node type.
  2. Validation: Implement client-side validation of form inputs against the JSON Schema, providing immediate feedback on errors.
  3. Compatibility: Ensure forms are compatible with existing and future node types by adhering to a standardized schema format.
  4. UI Components: Develop reusable Svelte components for generating form elements from JSON Schema (text inputs, selects, checkboxes).
  5. Integration: Seamlessly integrate these forms into the existing DAG editor, ensuring a smooth user experience.
Non-Functional Requirements
  • Performance: Ensure the form generation and validation processes are efficient, aiming for minimal impact on UI responsiveness.
  • Usability: Achieve high usability standards, with clear, intuitive forms and immediate validation feedback.
  • Scalability: Design with scalability in mind, allowing for easy addition of new node types and corresponding schemas.
  • Maintainability: Follow clean code practices, ensuring code is modular, well-commented, and easy to extend.

Technical Specifications

Architecture Context

MeshHook utilizes a SvelteKit/Svelte 5 stack for the frontend, integrated with Supabase for real-time data updates and Postgres-native functionalities. This task must consider seamless integration with the existing SvelteKit application and the established component architecture.

Implementation Approach
  1. Schema Definition: For each node type (e.g., http_call, transform), define a JSON Schema describing configuration options.
  2. UI Component Development: Create Svelte components capable of rendering form elements based on JSON Schema inputs.
  3. Integration: Embed the schema-driven forms into the workflow builder's node configuration modal.
  4. Validation: Implement real-time validation, displaying error messages from schema violations.
  5. Testing: Write unit and integration tests for new components and their interaction with the workflow builder.
Data Model

No changes to the database schema are required for this task. However, JSON Schemas for node configurations will be stored as part of the project's static assets or potentially fetched from a central schema repository in future iterations.

API Endpoints

No new API endpoints are required for this task. Existing endpoints for workflow CRUD operations will accommodate the structured configuration data generated by the forms.

Acceptance Criteria

  • Dynamic forms for at least two node types (http_call, transform) are implemented and functional.
  • Form inputs are validated in real-time against their JSON Schemas, with appropriate feedback provided to the user.
  • The user experience of configuring nodes is seamless and integrated into the existing workflow builder UI.
  • All new code is covered by unit tests, with integration tests validating form interaction within the workflow builder.
  • Documentation is updated to include information on the JSON Schema structure for node configurations and guidelines for extending it.

Dependencies

  • Existing SvelteKit frontend setup.
  • Access to static assets or configuration data for JSON Schemas.

Implementation Notes

Development Guidelines
  • Adhere to the existing coding, naming, and documentation standards.
  • Use TypeScript for type safety and better developer experience.
  • Ensure responsiveness and accessibility of the UI components.
Testing Strategy
  • Unit Tests: For each new Svelte component and utility function.
  • Integration Tests: Covering the interaction between the node configuration forms and the workflow builder.
Security Considerations
  • Validate all user inputs against the schema to prevent injection attacks.
  • Ensure any data fetching for schemas is secured and authenticated if necessary.
Monitoring & Observability

No specific monitoring or observability tools are required for this task. However, general frontend monitoring (e.g., error tracking, performance metrics) should capture the behavior of the new components.

Related Documentation


This PRD was AI-generated using gpt-4-turbo-preview from GitHub issue #123
Generated: 2025-10-10

📎 Generated Documentation

Diagram


This issue body was auto-generated from the PRD. Original issue content is preserved in the PRD document.
Last updated: 2025-10-10

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.