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.