Module API Interface
Reference for implementing custom modules.
Module Interface​
type Module interface {
// Metadata
Name() string
Description() string
Version() string
// Configuration
ConfigSchema() Schema
Configure(config Config) error
// Dependencies
Requires() []string
Provides() []string
// Execution
Execute(ctx context.Context, data DataContext) error
// Lifecycle
Initialize() error
Cleanup() error
}
Methods​
Name()​
Returns unique module identifier.
Example:
func (m *CustomModule) Name() string {
return "custom_scanner"
}
Requires()​
Declares required DataContext keys.
Example:
func (m *CustomModule) Requires() []string {
return []string{"discovered_hosts", "open_ports"}
}
Provides()​
Declares produced DataContext keys.
Example:
func (m *CustomModule) Provides() []string {
return []string{"scan_results"}
}
Execute()​
Main module logic.
Example:
func (m *CustomModule) Execute(ctx context.Context, data DataContext) error {
hosts, _ := data.GetHosts("discovered_hosts")
results := m.scan(hosts)
return data.Set("scan_results", results)
}
See Custom Modules Guide for examples.