-
Notifications
You must be signed in to change notification settings - Fork 9
feat: Add extension system for custom app question types #226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Implement extension discovery, validation, and runtime registration allowing custom apps to define their own renderers, functions, and schema definitions without modifying ODE core. - ExtensionService discovers and merges ext.json files - Synkronus validates extension structure and references - Formplayer dynamically loads and registers extensions at runtime - Full backwards compatibility maintained See EXTENSION_IMPLEMENTATION.md for details.
r0ssing
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you so much @Bahati308. I think this is exactly what we need! 👍
Would it be possible to add a an example of this system to our malaria demo app?
That way we could see if it works end-to-end, by:
- Defining the appropriate ext.json (e.g. a "Mosquito size" question type, with 5 sketches of mosquitoes in different sizes or something)
- Defining the appropriate renderer +tester
- Defining the question in jsonforms schema/ui json
Mishael-2584
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work @Bahati308 would love to see how this takes shape with the forms we have
r0ssing
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Solid work! I really think this enables a rich ecosystem of extensions for the custom apps👌😃
thanks @r0ssing , let's go for it. |
- Add support for v1 extension format (PR #18) with renderer/tester objects - Maintain backward compatibility with legacy format (PR #226) - Add 'html' to known formats list for HtmlLabelRenderer support - Fix ext.json file handling to prevent form validation errors - Add comprehensive test cases for both formats Fixes bundle upload failures for AnthroCollect and other apps using v1 format. Tested with real bundle (bundle-v1.0.6.zip) - validation passes.
Add comprehensive extension support allowing custom apps (e.g., AnthroCollect)
to define their own question types, renderers, functions, and schema definitions
without requiring changes to ODE core.
Architecture:
Key Features:
(/forms/{formName}/ext.json) with merge precedence
Files Added:
Files Modified:
Constraints Met: