validateEngineMCPSessionTimeout validates optional engine.mcp.session-timeout configuration. The value must be a valid Go duration string of at least 5m (no upper bound).
(workflowData *WorkflowData)
| 177 | // validateEngineMCPSessionTimeout validates optional engine.mcp.session-timeout configuration. |
| 178 | // The value must be a valid Go duration string of at least 5m (no upper bound). |
| 179 | func (c *Compiler) validateEngineMCPSessionTimeout(workflowData *WorkflowData) error { |
| 180 | if workflowData == nil || workflowData.EngineConfig == nil || workflowData.EngineConfig.MCPSessionTimeout == "" { |
| 181 | return nil |
| 182 | } |
| 183 | |
| 184 | raw := workflowData.EngineConfig.MCPSessionTimeout |
| 185 | |
| 186 | d, err := time.ParseDuration(raw) |
| 187 | if err != nil { |
| 188 | return fmt.Errorf("engine.mcp.session-timeout: invalid duration %q. Must be a valid Go duration string (e.g. \"30m\", \"4h\", \"24h\").\n\nExamples:\n engine:\n mcp:\n session-timeout: 4h\n\nSee: %s", raw, constants.DocsEnginesURL) |
| 189 | } |
| 190 | |
| 191 | if d < constants.MCPSessionTimeoutMin { |
| 192 | return fmt.Errorf("engine.mcp.session-timeout: %q is too short (minimum is 5m).\n\nExamples:\n session-timeout: 30m\n session-timeout: 4h\n\nSee: %s", raw, constants.DocsEnginesURL) |
| 193 | } |
| 194 | |
| 195 | engineValidationLog.Printf("engine.mcp.session-timeout validated: %s (%s)", raw, d) |
| 196 | return nil |
| 197 | } |
| 198 | |
| 199 | // validateEngineMCPToolTimeout validates optional engine.mcp.tool-timeout configuration. |
| 200 | // The value must be a valid Go duration string between 10s and 600s inclusive. |