Starlark library usage examples

Community Platform

This document provides sample usage for common runZero Starlark libraries used in custom integration scripts.

requests

load('requests', 'Session', 'Cookie')
load('json', json_decode='decode')

def requests_example():
    session = Session()
    session.headers.set('Accept', 'application/json')
    session.headers.set('User-Agent', 'Mozilla/5.0')
    session.headers.set('User-Agent', None)  # remove header

    url = 'https://hacker-news.firebaseio.com/v0/topstories.json'
    session.cookies.set(url, {"test_cookie": "cookie_value"})

    response = session.get(url)
    if response and response.status_code == 200:
        data = json_decode(response.body)
        print("Top story IDs:", data[:5])
    else:
        print("Failed to fetch stories")

http

load('http', http_post='post', http_get='get', 'url_encode')

def fetch_example():
    url = "https://hacker-news.firebaseio.com/v0/topstories.json"
    headers = {"Accept": "application/json"}
    
    response = http_get(url, headers=headers)
    
    if response and response.status_code == 200:
        print("Top stories retrieved successfully.")
    else:
        print("Request failed with status:", response.status_code)

net

load('net', 'ip_address')

def parse_ip_list():
    ips = ["192.168.1.1", "2607:f8b0:4005:805::200e"]
    for ip in ips:
        addr = ip_address(ip)
        print("IP:", addr, "Version:", addr.version)

json

load('json', json_encode='encode', json_decode='decode')

def test_json_handling():
    data = {"name": "runZero", "features": ["scan", "API", "integrations"]}
    
    encoded = json_encode(data)
    print("Encoded JSON:", encoded)
    
    decoded = json_decode(encoded)
    print("Decoded:", decoded["name"])

time

load('time', 'parse_time')

def parse_example_time():
    time_str = "2025-05-01T15:00:00Z"
    parsed = parse_time(time_str)
    print("Parsed time:", parsed)

uuid

load('uuid', 'new_uuid')

def create_unique_id():
    uid = new_uuid()
    print("Generated UUID:", uid)

gzip

load('gzip', gzip_decompress='decompress', gzip_compress='compress')

def gzip_example():
    original = "Hello, runZero!".encode("utf-8")

    # Compress the data
    compressed = gzip_compress(original)
    print("Compressed length:", len(compressed))

    # Decompress it back
    decompressed = gzip_decompress(compressed)
    print("Decompressed value:", decompressed.decode("utf-8"))

base64

load('base64', base64_encode='encode', base64_decode='decode')

def b64_example():
    username = "xxx"
    password = "yyy"
    enc = base64_encode(username + ":" + password)
    dec = base64_decode(enc)
    return (enc, dec)
Updated