Identifies which LaunchDarkly projects/environments use a Relay Proxy versus direct connections.
-
Install dependencies:
pip install -r requirements.txt
-
Configure API key:
echo "LAUNCHDARKLY_API_KEY=your-api-key-here" > .env
-
Run scanner:
python relay_scanner.py
-
Export results:
python relay_scanner.py --output report.csv
- Login to LaunchDarkly
- Go to Account Settings → Authorization → API Access Tokens
- Create token with Admin role (required for Usage API access)
- Copy token to
.envfile
python relay_scanner.pypython relay_scanner.py --project my-project-key# Scan last 6 months (timestamps in Unix milliseconds)
python relay_scanner.py --from 1715000000000 --to 1732000000000python relay_scanner.py --output compliance_report.csvpython relay_scanner.py --verboseThe scanner uses the LaunchDarkly Usage API to detect Relay Proxy usage:
- Fetches service connection data grouped by
relayVersion,projectId, andenvironmentId - Detection Logic:
- Empty
relayVersion("") = NOT using Relay Proxy ❌ - Non-empty
relayVersion(e.g.,"8.14.0") = Using Relay Proxy ✅
- Empty
- Generates compliance report showing which projects/environments need configuration
Note: Only projects with active SDK connections during the specified time period will appear in results.
======================================================================
LaunchDarkly Relay Proxy Compliance Report
======================================================================
🔴 NON-COMPLIANT (Not using Relay Proxy):
Project: My Project (my-project)
- Environment: Production (production) [Usage: 150 minutes]
🟢 COMPLIANT (Using Relay Proxy):
Project: Secure Project (secure-project)
- Environment: Production (production) [Relay v8.14.0, Usage: 300 minutes]
======================================================================
SUMMARY
======================================================================
Total Projects Analyzed: 2
Compliance Rate: 50.0%
======================================================================
Includes: Project Key/Name, Environment Key/Name, Relay Proxy Status, Relay Version, Usage Minutes
- Endpoint:
/api/v2/usage/service-connections(Beta API) - Header Required:
LD-API-Version: beta - Permissions: Admin role or custom role with Account Usage permissions
- Plan: Usage API may require Enterprise plan
0: All connections compliant1: Non-compliant connections detected or error
Suitable for CI/CD pipelines:
python relay_scanner.py || echo "Compliance check failed!"403 Forbidden Error
- Ensure API token has Admin permissions
- Usage API may not be enabled for your plan (contact LaunchDarkly support)
No Data Found
- Projects without SDK connections in the time period won't appear
- Try expanding the time range with
--fromand--toparameters
relay_scanner.py- Main scanner scriptrequirements.txt- Python dependenciesenv.example- Environment variable templateREADME.md- This file
Provided as-is for use with LaunchDarkly.