Files
attune/packs/core/actions/http_request.yaml

132 lines
3.3 KiB
YAML

# HTTP Request Action
# Make HTTP requests to external APIs
ref: core.http_request
label: "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 + DOTENV for secure parameter passing (credentials won't appear in process list)
parameter_delivery: stdin
parameter_format: dotenv
# 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