Customizing with Lifecycle Hooks
Background
Lifecycle HooksWriting a Lifecycle Hooks Script
Write a Python script (e.g. lifecycle_hooks.py)
In this script, define the lifecycle events to hook into
Define what kind of behavior to execute for each of those events
Below is a sample script that prints some strings during two lifecycle events.
Manipulating the context object will affect the behaviour of the request interception.
from stoobly_agent.app.proxy.context import InterceptContext
from stoobly_agent.app.proxy.record.context import RecordContext
def handle_before_request(context: InterceptContext):
print('Before request!')
def handle_before_record(context: RecordContext):
print('Before record!')
handle_before_request
is for before a request gets senthandle_before_record
is for before a request gets recorded
After a request gets intercepted, the string "Before request!"
will be printed. After the response returns, but before the request gets recorded, "Before record!"
will be printed.
Enabling Lifecycle Hook Script Use
Pass the path to the lifecycle hooks scripts using the --lifecycle-hooks-path
option:
stoobly-agent run --lifecycle-hooks-path ~/path-to-file/lifecycle_hooks.py
Example
from stoobly_agent.app.proxy.record.context import RecordContext
def handle_before_record(context: RecordContext):
request = context.flow.request
respose = context.flow.response
request.headers['Authorization'] = '<REDACTED>'
request.headers['Cookie'] = ''
response.headers['Set-Cookie'] = ''
Last updated
Was this helpful?