Shared parameters: HTTPBaseStep
Step facilitates HTTP interactions
HTTPBaseStep is a base class, not a step you place in a workflow. Every step
that inherits from it accepts all of the parameters below in addition to
its own.
Base class version:
1.3.1Required parameters:
prefix_url
Parameters
Name |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
json |
no |
|
Dictionary for the API parameters. Example: |
|
string |
yes |
– |
used with relative_url to create the full URL. Example: |
|
string |
no |
– |
The URL suffix Example: |
|
number |
no |
|
If this has a constant response, what you expect it to be. Example: |
|
json |
no |
|
Header dictionary for the REST command. Example: |
|
array of strings |
no |
|
An array of names from the header to capture in the output. Example: |
|
number |
no |
|
Time in seconds to wait for HTTP Connect Response. |
|
boolean |
no |
|
Set to pickle output to next step Example: |
|
enum |
no |
|
Specify a single authentication method for REST protocol |
|
number |
no |
|
Time in seconds to wait for HTTP Read Response. |
|
boolean |
no |
|
If true, use the input data as payload for executing the HTTP method. |
|
boolean |
no |
|
Set this to perform a rest query to a URI generated from input data from each element in the input_data. The input variables can be referenced from the relative_url parameter, but not prefix_url |
|
json |
no |
|
the payload for a POST command. Example: |
|
string |
no |
|
The field in the response that contains the data for the arrays of rows returned. |
|
string |
no |
– |
the REST username Example: |
|
string |
no |
– |
the REST password Example: |
|
array of strings |
no |
|
List of OAuth2 Scopes to apply |
|
string |
no |
– |
OAuth2 Client ID |
|
string |
no |
– |
Full authentication URL including host and protocol. |
|
string |
no |
– |
OAuth2 Client secret |
|
boolean |
no |
|
Enable if your provider requires that you pass auth credentials in a Basic Auth Header |
|
json |
no |
|
Additional key-value pairs to pass to the authentication form. |
|
boolean |
no |
|
Enable to verify SSL cert for request |
|
boolean |
no |
|
Enable if payload body contains multiple payloads and urls to be processed |
|
string |
no |
– |
Optional certificate to use to enable mTLS communication. This certificate must be mounted and available in the steprunner container |
|
boolean |
no |
|
Enable if api response does not contain a result key |
|
enum |
no |
|
Oauth Grant type for client |
|
boolean |
no |
|
Set to log headers for REST request |
|
string (long) |
no |
– |
The Graphql request to make against the remote endpoint Example: |
|
json |
no |
|
gql variables to include with query Example: |
|
boolean |
no |
|
Whether or not to read the request from the input of a previous step. Overrides ‘query’ if set |
|
boolean |
no |
|
Whether or not to read the variables from the input of a previous step. Overrides ‘variables’ if set |
Every step also accepts the platform parameters common to all steps – see Platform parameters.
Behaviour
HTTPBaseStep is never executed directly. A concrete subclass sets
self.method and self.enable_paging in __init__ and then calls
self.execute_request() from its own execute().
It provides four things to every HTTP step:
Important
Only ``prefix_url`` is marked required, but that is not the whole story.
Which credential parameters you must set depends on auth_method, and none
of them are flagged required, because whether they are needed depends on
another parameter’s value:
|
Also set |
|---|---|
|
|
|
|
|
nothing |
A step configured with the default http_basic and no credentials passes
validation and fails at runtime with a 401.
- Authentication (
create_session) Basic, OAuth2 (
client_credentialsandpasswordgrants), bearer, mTLS, or none, selected byauth_method. OAuth tokens are cached in the platform’s content bucket underoauth_cache_key, so a workflow with many HTTP steps fetches one token rather than one per step.- Pagination (
process_rest_command/process_response_counts) Driven by
chunk_sizeplus the fourchunk_name_for_*parameters. There is also a “missing return total” mode for APIs that do not report a total: it keeps paging until a page returns fewer thanchunk_sizerecords.- Multiple payloads
With
multiple_request_payloads=Truethe payload is treated as a list and iterated. Progress is checkpointed in the cache understep_retry+{task_id}, so a retry resumes where it stopped instead of replaying every request.- Input chaining
payload_from_input,url_from_input,query_from_inputandvariables_from_inputeach switch one input from the step’s own configuration to the previous step’s output.
Outputs
execute_rest_command saves the accumulated results with
save_data_for_next_step:
the list or dict found at
result_key, orthe full response dict when
no_result_keyis set or no result key is found,
with any headers named in headers_to_capture merged in. When
pickle_output is true, the output is pickle.dumps(...) bytes rather than a
dict — the next step has to unpickle it.
Notes
execute_request()readsretry_max, which is not registered here — it is one of the platform parameters supplied byBaseStep, so it is documented on Platform parameters rather than in the table above. Retry behaviour belongs to the platform, not to this step.mtls_certnames a certificate that must already be mounted into the steprunner container — setting the parameter alone is not enough.verify_ssldefaults to false. Set it explicitly for anything production-facing.