132 lines
3.3 KiB
YAML
132 lines
3.3 KiB
YAML
# HTTP Request Action
|
|
# Make HTTP requests to external APIs
|
|
|
|
name: http_request
|
|
ref: core.http_request
|
|
description: "Make HTTP requests to external APIs with support for various methods, headers, and authentication"
|
|
enabled: true
|
|
|
|
# Runner type determines how the action is executed
|
|
runner_type: shell
|
|
|
|
# Entry point is the bash script to execute
|
|
entry_point: http_request.sh
|
|
|
|
# Parameter delivery configuration (for security)
|
|
# Use stdin + JSON for secure parameter passing (credentials won't appear in process list)
|
|
parameter_delivery: stdin
|
|
parameter_format: json
|
|
|
|
# Output format: json (structured data parsing enabled)
|
|
output_format: json
|
|
|
|
# Action parameters schema (standard JSON Schema format)
|
|
parameters:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
description: "URL to send the request to"
|
|
method:
|
|
type: string
|
|
description: "HTTP method to use"
|
|
default: "GET"
|
|
enum:
|
|
- GET
|
|
- POST
|
|
- PUT
|
|
- PATCH
|
|
- DELETE
|
|
- HEAD
|
|
- OPTIONS
|
|
headers:
|
|
type: object
|
|
description: "HTTP headers to include in the request"
|
|
default: {}
|
|
body:
|
|
type: string
|
|
description: "Request body (for POST, PUT, PATCH methods)"
|
|
json_body:
|
|
type: object
|
|
description: "JSON request body (alternative to body parameter)"
|
|
query_params:
|
|
type: object
|
|
description: "URL query parameters as key-value pairs"
|
|
default: {}
|
|
timeout:
|
|
type: integer
|
|
description: "Request timeout in seconds"
|
|
default: 30
|
|
minimum: 1
|
|
maximum: 300
|
|
verify_ssl:
|
|
type: boolean
|
|
description: "Verify SSL certificates"
|
|
default: true
|
|
auth_type:
|
|
type: string
|
|
description: "Authentication type"
|
|
enum:
|
|
- none
|
|
- basic
|
|
- bearer
|
|
auth_username:
|
|
type: string
|
|
description: "Username for basic authentication"
|
|
auth_password:
|
|
type: string
|
|
description: "Password for basic authentication"
|
|
secret: true
|
|
auth_token:
|
|
type: string
|
|
description: "Bearer token for bearer authentication"
|
|
secret: true
|
|
follow_redirects:
|
|
type: boolean
|
|
description: "Follow HTTP redirects"
|
|
default: true
|
|
max_redirects:
|
|
type: integer
|
|
description: "Maximum number of redirects to follow"
|
|
default: 10
|
|
required:
|
|
- url
|
|
|
|
# Output schema: describes the JSON structure written to stdout
|
|
# Note: stdout/stderr/exit_code are captured automatically by the execution system
|
|
output_schema:
|
|
type: object
|
|
properties:
|
|
status_code:
|
|
type: integer
|
|
description: "HTTP status code"
|
|
headers:
|
|
type: object
|
|
description: "Response headers"
|
|
body:
|
|
type: string
|
|
description: "Response body as text"
|
|
json:
|
|
type: object
|
|
description: "Parsed JSON response (if applicable, null otherwise)"
|
|
elapsed_ms:
|
|
type: integer
|
|
description: "Request duration in milliseconds"
|
|
url:
|
|
type: string
|
|
description: "Final URL after redirects"
|
|
success:
|
|
type: boolean
|
|
description: "Whether the request was successful (2xx status code)"
|
|
error:
|
|
type: string
|
|
description: "Error message if request failed (only present on failure)"
|
|
|
|
# Tags for categorization
|
|
tags:
|
|
- http
|
|
- api
|
|
- web
|
|
- utility
|
|
- integration
|