Internal/Parameterized Flows¶
The feature to be able to use Flows to perform certain functions in synQup. The first module for this case is the Validation Export that was included on the Validation Info Listing in the UI. Where there is a button to open the Validations Export Modal in the said page and takes the Flow Id, Severity Levels, Email To, BCC, and CC inputs.

The Internal/Parameterized Flows are excluded on the Flow Listing, but its executions are not excluded on the Flow Execution Listing.
To be able to attain this, only two endpoints were created: the /internal-flow/{moduleName} &
/internal-flow/check/{moduleName} which are both in POST method to be able to pass the needed info. The checker
endpoint’s main purpose is to check if the Module is installed by using the Composer\InstalledVersions::isInstalled()
and checks if the module/flow is currently running/active. While the main endpoint’s purpose is to configure and
start the flow of the passed module.
On the Main Endpoint, it is still checking if the module is installed like the checker endpoint. These are the fields that it needs on its Payload: vendor, process_step, fqcn, and the jdm_config where the moduleName is already on the parameter passed on the URL. These are the simple steps that will be taken upon calling the Main Endpoint of the Internal/Parameterized Flow:
- Checks if the Module is installed.
- Create/Update the Private Flow Entry of the passed Module. The new “private” boolean field on the Flows table is created to be able to mark the Flow as an Internal/Parameterized Flow and to be able to exclude it on the Flow Listing.
- Execute the Private Flow.
Example Requests¶
Creating an internal flow for the Training CSV Module:
POST https://localhost/api/internal-flow/training-csv-module HTTP/1.1
Content-Type: application/json
Accept: application/vnd.api+json, application/json
Authorization: Bearer {{ right_token }}
{
"vendor": "synqup",
"process_step": "input",
"fqcn": "Synqup\\Modules\\TrainingCsvModuleBundle\\Input\\StartTrainingModuleInputMessage",
"jdm_config": {
"filesystemIdentifier": "local"
}
}
Checking the state of the flow of the Training CSV Module:
POST https://localhost/api/internal-flow/check/training-csv-module HTTP/1.1
Content-Type: application/json
Accept: application/vnd.api+json, application/json
Authorization: Bearer {{ right_token }}
{
"vendor": "synqup",
"fqcn": "Synqup\\Modules\\TrainingCsvModuleBundle\\Input\\StartTrainingModuleInputMessage"
}
Further Development:¶
The Validations Export was the only one discussed back then that will be developed and supported in the UI as an Internal/Parameterized Flow. For the others like the Shopware Flows, I can think of supporting it on UI by creating a new button in the Flow Listing Page that will show the Internal/Parameterized Flow Modal showing the inputs from above like the vendor, process_step, fqcn, jdm_config, and the finally the module name.