This is similar to REST API JobFlow/StartJob. The difference is that the caller of this API must be the service account of a client, and the
actual user is specified in the "User" parameter in the payload. Internally, this function validates the input parameters and then runs the
job script as the actual user who requests the workflow request.
This allows the same job script to be used when we allow the user to submit the workflow request from UI portal, where JobFlow/StartJob API is
used to start the job.
2. CommandID is used to identify the command instead of command name. The reason is that the command name maybe I18N already so may not be easily
handled by Linux systems which use UTF-8 instead of simple UCS-2 as in windows...
When we support user selection of commands to request workflow request on, the backend should send out a list of names with UUID. The UI displays
the name and let user to select the item. The sudo plugin needs to return the corresponding UUID.
3. Using collection as scope type is not supported yet in v1.