Documentation

Configuration

The fourteen source types and what each needs, and the environment variables that change a default.

Sources

PYXA centralizes far more than vulnerability scanners through its connector architecture — 22 source types across scanners, endpoint and cloud platforms, code-level findings, attack surface, patch confirmation, bug bounty, and vendor risk:

SourceType IDDeploymentsConfiguration
Qualys VMqualysCloud (every platform pod)API base URL, username, password
TenabletenableTenable Vulnerability Management (cloud, FedRAMP), Tenable Security Center (on-prem), Nessus Professional/Expert/ManagerHost/URL, access key, secret key. The product is recognised from the host: *.tenable.com is the cloud; an appliance is asked whether it is Security Center or Nessus
OpenVAS / GreenboneopenvasGreenbone Community Edition and Enterprise appliances (GMP over TLS, port 9390)Host/URL, username, password
Rapid7 InsightVMrapid7Security Console (on-prem, API v3) and the Insight Platform (cloud, integration API v4)Console URL with a console user and password, or https://<region>.api.insight.rapid7.com with an Insight API key; optional site ID
CSV / JSON importcsv_importAnyLocal file paths for assets/vulns/KB files
SARIF import (SAST/SCA — CodeQL, Semgrep, Snyk, etc.)sarif_importAny SARIF 2.1.0 producerLocal SARIF file path
ASFF import (AWS Security Hub — Inspector, GuardDuty, IAM Access Analyzer)asff_importAWS Security Hub exports (ASFF; not the OCSF format)Local ASFF file path
EASM import (attack surface, file-based)easm_importAnyLocal file path
Patrowl (attack surface, live API)patrowlSelf-hosted PatrowlManager or Patrowl SaaSPatrowl/PatrowlManager URL, API key
watchTowr Platform (attack surface, live API)watchtowrCloudAPI base URL, API key
Patch deployment import (WSUS/SCCM/Ansible, file-based)patch_deployment_importAnyLocal file path
Microsoft Intune (patch deployment, live API)intuneCommercial and GCC, GCC High, DoD, 21Vianet (China)Azure AD tenant ID, app client ID, client secret, optional cloud
Bug bounty import (HackerOne/Bugcrowd/Intigriti)bugbounty_importHackerOne and Bugcrowd API exports as saved; others in PYXA's flat formatLocal file path
Microsoft Defender Vulnerability Management (live API)defender_vmCommercial (global and regional hosts), GCC, GCC High, DoDEntra ID tenant ID, app client ID, client secret
CrowdStrike Falcon Spotlight (live API)crowdstrike_spotlightUS-1, US-2, EU-1, US-GOV-1API client ID and secret, cloud
Amazon Inspector (live API)aws_inspectorAny region where Inspector is enabledAccess key ID, secret access key, optional session token, regions
Wiz (cloud workloads, live API)wizCloudService account client ID and secret, tenant API endpoint
GitHub Advanced Security (live API)github_securitygithub.com and GitHub Enterprise ServerOrganization, access token
GitLab Security (live API)gitlab_securitygitlab.com and self-managed (Ultimate)Group path, access token
Snyk (live API)snykUS, EU, AUOrganization ID, API token
BloodHound CE (AD attack paths, live API)bloodhound_apiSelf-hosted BloodHound Community EditionServer URL, API token ID and key
BloodHound Enterprise (attack path findings)bloodhound_enterpriseBloodHound Enterprise tenantTenant URL, API token ID and key
BloodHound / SharpHound importbloodhound_importSharpHound output, as the ZIP or unzippedLocal directory
ServiceNow CMDB (asset inventory and owners, live API)servicenow_cmdbAny supported releaseInstance URL, user name, password, optional table and encoded query
SecurityScorecard (vendor/third-party risk)securityscorecardCloudAPI key, portfolio ID or domain list
Custom / Othercustom—Free-form — for community connectors

Every live-API connector retries a throttled (429) or unavailable (502–504) response, waiting as long as the vendor's Retry-After asks. A verifying scanner's run is only used to close findings when it covered what it claims to: an incremental Tenable run, a Rapid7 run with unreadable assets, and hosts an OpenVAS or Nessus scan did not reach are never read as fixed.

Add any of these from the app itself at /connectors/ — no manual JSON or admin-panel editing needed for the ones above. The in-app Setup wizard (/setup/) walks through which of these are relevant to your organization one question at a time.

Environment Variables

See .env.example for all configuration options. Key variables:

VariableDescriptionDefault
DJANGO_SECRET_KEYDjango secret key (set a random value)—
DJANGO_DEBUGVerbose error pages — leave offFalse
PYXA_TLSon: nginx serves HTTPS with the certificate in nginx/certs/ (generated if absent). off: plain HTTPon
PYXA_HTTPS_PORT / PYXA_HTTP_PORTHost ports for HTTPS and for the redirect from HTTP443 / 80
DJANGO_FORCE_HTTPS_COOKIESSecure cookies and redirects with PYXA_TLS=off, when a TLS proxy of your own sits in frontFalse
DJANGO_ALLOWED_HOSTSComma-separated allowed hostslocalhost
DB_ENGINEDatabase enginedjango.db.backends.postgresql (matches docker-compose)
DJANGO_SUPERUSER_USERNAME/_EMAIL/_PASSWORDAuto-create an admin account on first start if all three are set—
LDAP_ENABLEDEnable LDAP authenticationFalse

Generated from README.md in the PYXA repository.

Make security everyone's job, starting this week.

Run the free edition on your own server today, or see PYXA on your own scanner data in a 30-minute demo.