Hi APISIX Dashboard team,

I'm Deep Shekhar Singh, and I've been contributing to the apisix-dashboard
project. I'm interested in working on the "JSON Schema to Form UI" feature
(Issue #2986) as part of my preparation for GSoC 2026.

Background

Following the discussion in issue #2986, I've built a proof-of-concept
demonstrating a custom adapter approach for auto-generating form UIs from
APISIX plugin JSON Schemas.

What I've Built

I've created a working demo that shows:

1. *SchemaForm component* - Renders forms from JSON Schema
2. *oneOf support* - Handles conditional field groups (e.g., OAuth vs API
Key authentication)
3. *dependencies support* - Shows/hides fields based on other field values
(e.g., Redis config when storage_type=redis)
4. *Zero bundle impact* - Reuses existing FormItem components (TextInput,
Select, Switch, NumberInput)

*PR*: https://github.com/apache/apisix-dashboard/pull/3274
*Issue*: https://github.com/apache/apisix-dashboard/issues/2986

*Technical Approach*

- Uses React Hook Form's useWatch() for conditional rendering
- Maps JSON Schema types directly to existing Mantine components
- No additional state management libraries needed
- Estimated bundle size impact: ~23 kB (vs ~69 kB for react-jsonschema-form)

*Demo*

A demo page is available at /schema_form_demo showing:
- Basic type mapping (string, number, boolean, enum)
- Conditional field groups with oneOf
- Conditional fields with dependencies
- Live form data preview

*Seeking Feedback*

I'd appreciate feedback on:
1. Is this approach aligned with the project's direction?
2. Any concerns about the implementation?
3. What additional features/tests would be needed for production?

I'm happy to iterate on this based on community feedback and potentially
expand it as a GSoC 2026 project to cover all 80+ APISIX plugins.

Looking forward to your thoughts!

Best regards,
Deep Shekhar Singh

GitHub: @DSingh0304
Previous contributions: 10 merged PRs in apisix-dashboard

Reply via email to