specification icon indicating copy to clipboard operation
specification copied to clipboard

Remove Shell Process

Open cdavernas opened this issue 1 year ago • 3 comments

What would you like to be added:

Remove the shell process, as suggested by @fjtirado in https://github.com/serverlessworkflow/specification/pull/859.

Why is this needed:

  • Is not portable if not restricted to a specific OS
  • There is, by definition, an isolation concern when using commands, even though runtimes can easily choose to solve them by... using containers, for example.
  • The exact same functionality can be achieved in a fully isolated and portable way using containers, making it, at best, redundant.

cdavernas avatar May 28 '24 10:05 cdavernas

I believe we all agree our goal should be to achieve full portability of spec files across implementors. Thats why I think we need to replace shell, which have security, portability and performance implications, by a set of simple task which are universal and might be used to compose another more complex task. Then, implementors can implement these single task the way they see fit (using shell, an operating system call or using a portable language library) We might start with a small set and then add new ones base on user feedback. One lame example. "dump": has as arguments a message (which is a literal string or an expr), a destination: stdout, stderr or file path (expressed as an array to avoid SO dependant operation) and that just append the stirng to stdout, stderr or file path. Im noy saying that is really needed (thats a different discussion) but an example of iteraction with the underlying file system we might want to support in the spec.

fjtirado avatar May 28 '24 12:05 fjtirado

Maybe the conclusion is that these set of task size is zero ;) and we can just remove shell ;). But probably we need "primitives" to create, read from, write to and delete files (logging is just a special case of write)

fjtirado avatar May 28 '24 12:05 fjtirado

@cdavernas Maybe moving this one to extensions instead of removing it?

ricardozanini avatar May 28 '24 18:05 ricardozanini

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Aug 04 '24 00:08 github-actions[bot]

@cdavernas Maybe moving this one to extensions instead of removing it?

Unhappilly, I don't think that it would address the feature set nor the issues at hand, which can by the way be extended to scripts.

Removing shell and/or script is IMHO a bad idea, as we would drastically reduce the ability for less technical authors to painlessly achieve a lot of use cases.

I am therefore taking the freedom to close this issue in favor of #998, and will eventually reopen it depending on the outcome of said issue.

cdavernas avatar Aug 28 '24 13:08 cdavernas