getFirewallConfig returns the firewall configuration from network permissions
(workflowData *WorkflowData)
| 61 | |
| 62 | // getFirewallConfig returns the firewall configuration from network permissions |
| 63 | func getFirewallConfig(workflowData *WorkflowData) *FirewallConfig { |
| 64 | if workflowData == nil { |
| 65 | return nil |
| 66 | } |
| 67 | |
| 68 | agentConfig := getAgentConfig(workflowData) |
| 69 | agentVersion := "" |
| 70 | if agentConfig != nil { |
| 71 | agentVersion = agentConfig.Version |
| 72 | } |
| 73 | |
| 74 | // Check resolved firewall configuration from network permissions |
| 75 | if workflowData.NetworkPermissions != nil && workflowData.NetworkPermissions.Firewall != nil { |
| 76 | config := workflowData.NetworkPermissions.Firewall |
| 77 | if agentVersion != "" { |
| 78 | if config.Version == agentVersion { |
| 79 | return config |
| 80 | } |
| 81 | |
| 82 | overrideConfig := *config |
| 83 | overrideConfig.Version = agentVersion |
| 84 | if config.Version == "" { |
| 85 | firewallLog.Printf("Using sandbox.agent.version %s for firewall version", agentVersion) |
| 86 | } else { |
| 87 | firewallLog.Printf("Overriding firewall version %s with sandbox.agent.version %s", config.Version, agentVersion) |
| 88 | } |
| 89 | return &overrideConfig |
| 90 | } |
| 91 | if firewallLog.Enabled() { |
| 92 | firewallLog.Printf("Retrieved firewall config: enabled=%v, version=%s, logLevel=%s", |
| 93 | config.Enabled, config.Version, config.LogLevel) |
| 94 | } |
| 95 | return config |
| 96 | } |
| 97 | |
| 98 | if agentVersion != "" { |
| 99 | firewallLog.Printf("Using sandbox.agent.version override: %s", agentVersion) |
| 100 | return &FirewallConfig{ |
| 101 | Enabled: isFirewallEnabled(workflowData), |
| 102 | Version: agentVersion, |
| 103 | } |
| 104 | } |
| 105 | |
| 106 | return nil |
| 107 | } |
| 108 | |
| 109 | // getAgentConfig returns the agent sandbox configuration from sandbox config |
| 110 | func getAgentConfig(workflowData *WorkflowData) *AgentSandboxConfig { |
no test coverage detected