Surface Command SDK
The surcom-sdk helps you build data connectors for the Rapid7 Surface Command platform.
Source code for all connectors is available in our GitHub repository.
Getting Started
-
Install the SDK:
pip install r7-surcom-sdk
-
Configure the SDK with your API key
-
Build your first connector by following our tutorial
-
Contribute to our open source connectors or share your own connector with the community!
Documentation
Changes
0.17.20 - 2026-07-14
Added
- MockServer: new
mockserver loadcommand. connector invoke --extra-volume: support for mounting additional volumes to the invoked Docker container.connector invoke --env-var: support for injecting environment variables (asKEY=VALUE) into the invoked Docker container.- Validate:
- line-length check (max 72-byte lines for signed connectors; JAR manifest max 67).
- module folder must match the connector directory name (handles
.appsuffix). - required-keys validation on the type checker.
privileged_access_managementaccepted as a valid category.
- Docs:
Required?column,Valid Valuescolumn for enum settings, bold setting titles;Componentsand requirements sections only rendered when non-empty. - Package (Orchestrator):
- manually install the latest
certifiwhen building for orchestrator. - copy
.json/.yamlfiles (and jinja2 templates in subdirs) from the functions directory. - copy
types/to the pluginutil/directory. - no longer ignore files starting with
__(still ignores__init__.py).
- manually install the latest
- Manifest: support legacy
testfunction id,legacy_idproperty, and customsecret_reference. - Plugin:
connector_typeis now passed down; handle mismatched legacy function parameter vs. setting name. - Import: install unique types when importing data.
- Hidden settings: pass through
x-samos-hiddensettings. - Skills:
sc-connectorsupdated with the new PAM category.
Changed
- Legacy validation: improved wording and deduplicated checks.
surcom_api:import_idsare now URL-escaped in requests (they can contain/).- Deps: bumped
packaging(→ 26.0),argcomplete(→ 3.7),uv(→ 0.11.28),requests(→ 2.34.2), andurllib3(→ 2.7.0),requests/urllib3were also unpinned from exact versions to compatible-release specifiers.
0.16.19 - 2026-05-05
Added
- Orchestrator / Plugin conversion: build a plugin from a Legacy Connector; support connectors with a custom tarball; new
save_docker_imageconfig that skips producing a.tarfile; combine connector + plugin deps viauv; dep dry-run runs inside apython:3.11container. sdk_helpers: newget_path_to_functions_dirhelper and legacy-to-plugin building support.sdk_config: new method to add a config to the root section.- Validation: new
iconvalidation. - Docs: handle
communityas an author. - Plugin Wrapper: extra error handling for improved logging.
- Codegen: uses latest deps when compiling requirements.
- Packaging:
.txtfiles now included in package data;insightconnect-plugin-runtimebumped to6.4.4.
Fixed
- Plugin: return an empty
dict/listwhen a connector returnsNone/nothing; do not raise if there is notypes/directory. - Orchestrator: resolve settings when converting to a plugin; connector deps now take precedence over plugin deps.
0.15.18 - 2026-04-14
Added
data delete: new command for deleting imported data, with import-id lookup helpers added tosurcom_api. Tutorial andconnector_idnow share the same lookup logic.- Orchestrator: when a
build-numberis provided,+customis no longer appended.
Changed
- ext lib: skipped entirely for vendored connectors.
- Deps:
uvupdated to0.11.6;requestsbumped.
Removed
- Validate: removed the
betavalidation (tests retained).
0.14.16 - 2026-03-23
Added
- Agent Skills: new
sc-surcom-sdk,sc-cypher-queries, andsc-connectorsskills.sc-surcom-sdkincludes a config overview, connector-generation guidance, and a list of valid URLs.sc-cypher-queriesandsc-type-systemnow include a derived-properties reference. - KeyboardInterrupt:
Ctrl+Cis now handled gracefully across commands. config init: no longer prompts per-skill — installs all in one go.validate: checks that every type in thetypes/directory is defined.
Changed
sc-type-system: cypher query details moved out into the dedicatedsc-cypher-queriesskill.
Release files for r7-surcom-sdk 0.17.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| r7_surcom_sdk-0.17.20.tar.gz | 679.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| r7_surcom_sdk-0.17.20-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / r7_surcom_sdk-0.17.20.tar.gz
| Download URL | r7_surcom_sdk-0.17.20.tar.gz |
|---|---|
| Size | 679.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b31936e617dfc936de97f32c935d2a759cc2e85ff99191de1f5a83c650cda3be
|
|
BLAKE2b-256 checksum How to use checksums |
5caecbe92319bdf92966fe397c996b8cdb2afc81dd7089ae3d1d3a41db078fbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / r7_surcom_sdk-0.17.20-py3-none-any.whl
| Download URL | r7_surcom_sdk-0.17.20-py3-none-any.whl |
|---|---|
| Size | 738.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a8b25593d55e1fbf6508f7e5805e183121c448eccb647fdf103c29c565a2f96
|
|
BLAKE2b-256 checksum How to use checksums |
a6d06dc2ab599337133de9ff4ff14cf148f78609ab0e3570a956cf39ed07afae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|