Customizing with Lifecycle Hooks

Background

Lifecycle Hooks

Writing a Lifecycle Hooks Script

  1. Write a Python script (e.g. lifecycle_hooks.py)

  2. In this script, define the lifecycle events to hook into

  3. 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.

from stoobly_agent.app.proxy.replay.context import ReplayContext

def handle_before_replay(context: ReplayContext):
    print('Before replay!')

After a request gets intercepted, the string "Before replay!" 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.replay.context import ReplayContext
from stoobly_agent.config.constants import record_policy, replay_policy

def handle_before_replay(context: ReplayContext):
    intercept_settings = context.intercept_settings
    flow = context.flow
    headers = flow.request
    request = request.headers
    
    is_overwriting = intercept_settings.policy == record_policy.OVERWRITE
    if is_overwriting:
        # Handle setting credentials here
        # e.g. headers['authorization'] = '<TOKEN>'
        pass

Last updated

Was this helpful?