mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-11 23:02:56 +01:00
2.1 KiB
2.1 KiB
TASK-001 Working Notes
Research
Existing Patterns Found
REST Node (restnode.js)
- Script-based request/response handling
- Dynamic ports created by parsing
Inputs.XandOutputs.Xfrom scripts - Uses XMLHttpRequest in browser, fetch in cloud runtime
- Good reference for request execution flow
DB Collection Node (dbcollectionnode2.js)
- Best example of dynamic port generation from configuration
- Pattern:
setup()function listens for node changes, callssendDynamicPorts() - Schema introspection creates visual filter UI
- Follow this pattern for visual editors
Query Editor Components
QueryRuleEditPopup- good pattern for visual list item editorsRuleDropdown,RuleInput- reusable input components- Pattern: components update node parameters, ports regenerate
Questions to Resolve
- How does node library export work for new nodes?
- Best way to handle file uploads in body?
- Should pagination results be streamed or collected?
- How to handle binary responses (images, files)?
Assumptions
- We keep REST2 for backwards compatibility: ✅ Validated
- Dynamic ports pattern from DB nodes will work: ❓ Pending validation
- Editor can register custom property panels: ❓ Pending validation
Implementation Notes
Approach Decisions
- [To be filled during implementation]
Gotchas / Surprises
- [To be filled during implementation]
Useful Commands
# Find all REST node usages
grep -r "REST2" packages/ --include="*.ts" --include="*.tsx" --include="*.js"
# Find QueryEditor components for patterns
find packages/noodl-editor -name "*Query*" -type f
# Find how nodes register data providers
grep -r "DataProvider" packages/noodl-editor --include="*.ts" --include="*.tsx"
# Build just the runtime for testing
cd packages/noodl-runtime && npm run build
# Test node appears in editor
npm run dev
Reference URLs
- n8n HTTP node: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/
- JSONPath spec: https://goessner.net/articles/JsonPath/
- cURL manual: https://curl.se/docs/manpage.html
Debug Log
[To be filled during implementation]