Working starter for a third-party secator template pack. Fork this repo, extend the pieces you need, then install it in one shot:
# Try it as-is
secator template add https://github.com/freelabz/secator-pack-example
# Or fork + install your own
secator template add https://github.com/YOU/your-fork| File | What it registers |
|---|---|
src/lib.rs — HELLO |
native task hello (emit an Info per input) |
src/lib.rs — WebhookDriver |
driver webhook (per-finding hook + run-end summary) |
src/lib.rs — UppercaseTxtExporter |
exporter uppercase_txt (writes report.uppercase.txt) |
workflows/recon_lite.yaml |
workflow recon_lite — chains hello + built-in httpx |
scans/recon_lite_scan.yaml |
scan recon_lite_scan — wraps recon_lite |
secator.yml |
(optional) declares what this pack exposes |
Cargo.toml |
cdylib crate depending on secator-plugin-api |
# One-time install (clones + builds)
secator template add https://github.com/freelabz/secator-pack-example
secator template ls # confirm registered
# Verify the pieces landed
secator health | grep hello # task
secator w recon_lite example.com # workflow
secator s recon_lite_scan example.com # scan
# Iterate: push commits → sync
secator template sync # skip-if-unchanged (git ref unchanged = no rebuild)
# Uninstall
secator template remove https://github.com/freelabz/secator-pack-example --purgeDrivers and exporters registered by a pack are just as available as built-ins.
Turn them on in ~/.secator/config.yml:
tasks:
exporters: [json, csv, uppercase_txt] # add your custom exporter here
drivers:
defaults: [webhook] # add your custom driver hereWhile iterating, point the secator-plugin-api dependency at your local
checkout rather than the git branch:
# Cargo.toml
[dependencies]
secator-plugin-api = { path = "/path/to/secator/rust/crates/secator-plugin-api" }
async-trait = "0.1"Then cargo build --release produces target/release/libmy_pack.so. Drop it
directly under ~/.secator/templates/target/release/ (or configure a local
custom_templates: entry pointing at a local file:// URL) and reload.
Rust has no stable ABI. This plugin MUST be built with the same rustc
toolchain + the same secator-plugin-api revision as the host binary you
installed. secator template sync shells out to your local cargo, so this
Just Works in the common case. The host refuses to load a plugin whose ABI
version doesn't match; you'll see a clear [WRN] at startup.