@@ -11,18 +11,23 @@ import (
1111
1212// Config holds all configuration settings
1313type Config struct {
14- Logging LoggingConfig `mapstructure:"logging"`
15- ExecutionMode string `mapstructure:"execution_mode"`
16- Executor string `mapstructure:"executor"` // "local" or "temporal"
17- Temporal TemporalConfig `mapstructure:"temporal"`
18- API APIConfig `mapstructure:"api"`
19- Daemon DaemonConfig `mapstructure:"daemon"`
20- Revert bool `mapstructure:"revert"`
21- Tags TagsConfig `mapstructure:"tags"`
22- Facts map [string ]interface {} `mapstructure:"facts"`
23- HostKeyChecking bool `mapstructure:"host_key_checking"`
24- RolesPath string `mapstructure:"roles_path"` // Colon-delimited paths to search for roles
25- Inventory string `mapstructure:"inventory"` // Colon-delimited paths to search for inventory files
14+ Logging LoggingConfig `mapstructure:"logging"`
15+ ExecutionMode string `mapstructure:"execution_mode"`
16+ Executor string `mapstructure:"executor"` // "local" or "temporal"
17+ Temporal TemporalConfig `mapstructure:"temporal"`
18+ API APIConfig `mapstructure:"api"`
19+ Daemon DaemonConfig `mapstructure:"daemon"`
20+ Revert bool `mapstructure:"revert"`
21+ Tags TagsConfig `mapstructure:"tags"`
22+ Facts map [string ]interface {} `mapstructure:"facts"`
23+ HostKeyChecking bool `mapstructure:"host_key_checking"`
24+ RolesPath string `mapstructure:"roles_path"` // Colon-delimited paths to search for roles
25+ Inventory string `mapstructure:"inventory"` // Colon-delimited paths to search for inventory files
26+ // Inventory plugins configuration (Ansible-like behaviour)
27+ // Colon-delimited paths to search for inventory plugins (e.g. "./plugins/inventory:/usr/share/ansible/plugins/inventory")
28+ InventoryPlugins string `mapstructure:"inventory_plugins"`
29+ // List of enabled plugin names/patterns (e.g. ["host_list", "script", "yaml", "monkeypatch_batch_strategy"])
30+ EnablePlugins []string `mapstructure:"enable_plugins"`
2631 PrivilegeEscalation PrivilegeEscalationConfig `mapstructure:"privilege_escalation"`
2732 SSH SSHConfig `mapstructure:"ssh"`
2833
@@ -302,6 +307,9 @@ func setDefaults(v *viper.Viper) {
302307
303308 // Inventory default
304309 v .SetDefault ("inventory" , "" ) // Default to empty, SDK will use default inventory
310+ // Inventory plugins defaults
311+ v .SetDefault ("inventory_plugins" , "" )
312+ v .SetDefault ("enable_plugins" , []string {})
305313
306314 // PrivilegeEscalation defaults
307315 v .SetDefault ("privilege_escalation.use_interactive" , false ) // Default to non-interactive (-u) for SSH sessions
0 commit comments