Hello! I’m running into a problem with file ingestion workflows in NocoBase 2.0.0-alpha.36.
This appears to be either a bug in the Alpha workflow engine or a missing feature, so I’m posting here for clarification.
SUMMARY OF THE ISSUE
When a record is created with an uploaded file:
- The workflow can see the file object, but
- The workflow cannot access any of the file’s sub-fields (such as URL, filename, or preview), and
- Any workflow expression that attempts to reference the file URL is treated as literal text, not evaluated.
Because of this, the HTTP Request node can never receive the actual file path or file URL, and the whole ingestion pipeline fails.
DETAILS
1. File subfields do not appear in workflow variable selection
Inside the workflow editor:
- Node Result → Get_Upload → file
- Only shows “file” (an array), with no drill-down into its properties.
There is no way to select:
- file[0]
- file[0].url
- file[0].filename
- file[0].preview
- file[0].path
Even though these fields correctly exist in the Upload record.
2. Workflow expressions are stored literally
Any of the following forms:
- {{ steps.Get_Upload.data.file[0].url }}
- {{ $context.data.file[0].url }}
- {{ $jobsMapByNodeKey.XYZ.data.file[0].url }}
are stored as literal strings when writing to a field.
The database ends up storing exactly the curly-braced text, not the evaluated value.
This prevents any downstream node from receiving the actual URL.
3. Calculation engines reject workflow variable syntax
Using formula engines such as:
- Math.js
- Formula.js
The workflow raises an immediate “Expression syntax error” as soon as variables such as “steps.Get_Upload…” are referenced.
This prevents even basic string building or extraction of a file URL.
4. HTTP Request node receives literal template text
Because the variables never evaluate, the HTTP node receives things like:
“{{ steps.Get_Upload.data.file[0].url }}”
instead of:
“/storage/uploads/filename.txt”
The external extractor service then fails with “path not found.”
When the correct path is manually inserted, the extractor works properly.
WHAT HAS BEEN TESTED
- JSON body mode
- Query parameter mode
- Using “data.file”, “file”, “file.[0]”, and other permutations
- Using $context, $jobsMapByNodeKey, and steps. styles
- Adding Dynamic Calculation plugin
- Confirming the JSON Variable Mapping plugin does not appear in Plugin Manager
- Confirming there is no “Variable” workflow node available in this Alpha version
In all cases, the workflow engine does not resolve variables and always treats them as literal text.
WHAT I NEED HELP WITH
- Is this a known limitation or bug in the workflow engine of 2.0.0-alpha.36?
- Should the workflow engine be able to access file sub-fields (url, filename, path) from File fields?
- Should expressions inside Create/Update nodes correctly evaluate workflow variables, or are they expected to store literal text in this Alpha version?
- If this is intentional behavior, what is the recommended method to pass a file URL to an HTTP Request node?
- Are there required plugins (such as JSON Variable Mapping) that are not currently available in the Alpha.36 build?
ADDITIONAL CONTEXT
- I can manually pass the correct file path to the extractor service and it works perfectly.
- The problem is strictly that workflow variables cannot access or resolve the file URL automatically.