Skip to content

Allow users to pass parameters which are large in size to Python actions #1598

Closed
@Kami

Description

@Kami

Currently parameters are passed to the Python action wrapper via command line arguments. This was done to provide better visibility and make Python actions easier to test and debug.

Both on Windows and Linux there is a limit on maximum size of the command line arguments (ARG_MAX, 8k on Windows, platform specific) which means users can't use really large values for parameters.

There are different ways around this limitation (e.g. store parameter value in the datastore instead), but instead of passing the arguments using command line arguments we could pass it to the action using stdin. This way users could pass parameters of (almost) arbitrary size to an action, although I don't think it makes much sense to pass arguments which are more than 4-8k or so in size.

I'm personally not convinced yet that's the best thing to do since switching to stdin decreases visibility, makes actions harder to test and if you want to pass really large value to an action as a parameter (> 8k) you should probably handle that in a different way anyway (e.g. store value in a datastore, upload it to object storage service or similar), but I'm open to feedback and I can be convinced otherwise :)

Note: This was originally reported by a user on the IRC.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions