mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-11 14:52:55 +01:00
Tasks completed to update Storybook and Typescript versions. Please see phase-1-summary.md for details
This commit is contained in:
69
dev-docs/tasks/phase-2/TASK-001-http-node.md/NOTES.md
Normal file
69
dev-docs/tasks/phase-2/TASK-001-http-node.md/NOTES.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# TASK-001 Working Notes
|
||||
|
||||
## Research
|
||||
|
||||
### Existing Patterns Found
|
||||
|
||||
**REST Node (restnode.js)**
|
||||
- Script-based request/response handling
|
||||
- Dynamic ports created by parsing `Inputs.X` and `Outputs.X` from 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, calls `sendDynamicPorts()`
|
||||
- Schema introspection creates visual filter UI
|
||||
- Follow this pattern for visual editors
|
||||
|
||||
**Query Editor Components**
|
||||
- `QueryRuleEditPopup` - good pattern for visual list item editors
|
||||
- `RuleDropdown`, `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
|
||||
|
||||
```bash
|
||||
# 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]
|
||||
Reference in New Issue
Block a user