GSoC2026ProposalDivyanshuSingh.pdf
GSoC 2026 Proposal: JSON Schema to Form UI for APISIX Dashboard [APISIX-39]
1. Project Information
2. Why I Am the Right Candidate
I have been actively contributing to Apache open-source projects for the past 6+ months. My contributions directly relevant to this project:
| Organization |
PR |
Description |
Status |
| Apache Arrow JS |
PR #373 |
fix: Resolve TS2352 type error in MapBuilder for TypeScript 5.6+ |
✅ Merged |
| Apache Arrow JS |
PR #377 |
fix: implement Symbol.hasInstance for cross-library instanceof checks (+640 lines, 10 files) |
✅ Merged |
| OWASP |
PR #163 |
Fix: Replace document.onload with window.addEventListener in 404 page |
✅ Merged |
I am intimately familiar with the technologies this project requires: TypeScript, React, JSON Schema, AJV, and Ant Design — APISIX Dashboard's own stack.
3. Pre-GSoC Prototype
I have already built a working prototype of the SchemaForm system before submitting this proposal:
🔗 Prototype: https://github.com/Divyanshu-s13/apisix-schema-form-prototype
The prototype demonstrates:
- ✅ Core SchemaForm rendering all basic JSON Schema types (string, number, boolean, enum, array, object)
- ✅
oneOf branch switching with value clearing (tested with key-auth / jwt-auth / basic-auth schemas)
- ✅ AJV draft-07 validation pipeline with inline error display
- ✅
widgetMap registry for extensibility
- ✅ Three real APISIX plugin schemas used as demo:
limit-count, authentication (oneOf), cors (array)
4. Technical Approach
The SchemaForm system will be a self-contained React module using the existing APISIX Dashboard stack:
SchemaForm ← Entry point, AJV validation
└── SchemaField ← Dispatcher (routes to correct renderer)
├── PrimitiveField ← string / number / boolean / enum
├── ObjectField ← schema.properties (recursive)
├── ArrayField ← schema.type === 'array'
└── OneOfField ← schema.oneOf (branch switching)
Integration flow:
- User selects a plugin
- Dashboard fetches schema:
GET /apisix/admin/schema/plugins/{name}
- SchemaForm renders the form automatically
- AJV validates on submit →
PUT /apisix/admin/routes/{id}
5. Timeline
| Phase |
Weeks |
Deliverables |
| Community Bonding |
1–3 |
Codebase deep-dive, finalize API with mentor |
| Phase 1 |
4–6 |
Core renderer (primitive types), unit tests, draft PR |
| Phase 2 |
7–9 |
oneOf, dependencies, AJV validation pipeline |
| Phase 3 |
10–12 |
Dashboard integration, widgetMap, e2e tests |
| Phase 4 |
13–14 |
Developer docs, anyOf stretch goal, final polish |
Looking forward to your feedback @Baoyuantop ! Happy to answer any questions or make changes to the proposal based on your input.
GSoC2026ProposalDivyanshuSingh.pdf
GSoC2026ProposalDivyanshuSingh.pdf
GSoC 2026 Proposal: JSON Schema to Form UI for APISIX Dashboard [APISIX-39]
1. Project Information
2. Why I Am the Right Candidate
I have been actively contributing to Apache open-source projects for the past 6+ months. My contributions directly relevant to this project:
I am intimately familiar with the technologies this project requires: TypeScript, React, JSON Schema, AJV, and Ant Design — APISIX Dashboard's own stack.
3. Pre-GSoC Prototype
I have already built a working prototype of the SchemaForm system before submitting this proposal:
🔗 Prototype: https://github.com/Divyanshu-s13/apisix-schema-form-prototype
The prototype demonstrates:
oneOfbranch switching with value clearing (tested with key-auth / jwt-auth / basic-auth schemas)widgetMapregistry for extensibilitylimit-count, authentication (oneOf),cors(array)4. Technical Approach
The SchemaForm system will be a self-contained React module using the existing APISIX Dashboard stack:
Integration flow:
GET /apisix/admin/schema/plugins/{name}PUT /apisix/admin/routes/{id}5. Timeline
Looking forward to your feedback @Baoyuantop ! Happy to answer any questions or make changes to the proposal based on your input.
GSoC2026ProposalDivyanshuSingh.pdf