Add support for custom AWF installation path in firewall configuration #4873
+587
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds
pathfield to firewall config, allowing users to specify custom AWF binaries instead of downloading from GitHub releases. Useful for self-hosted runners with pre-installed AWF or custom builds.Changes
Pathfield toFirewallConfigstructpathproperty to firewall object in JSON schema${GITHUB_WORKSPACE}/pathspecified, generates validation step instead of download stepfilepath.Clean()Usage
When
pathis set:versionfield is ignoredWarning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/user/usr/bin/gh gh api user --jq .login(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
you are tasked to support custom awf installation path in agentic workflow frontmatter configurations, allowing users to bypass the default GitHub release download mechanism and use their own AWF binaries.
Recommended Approach
User-Facing Syntax
Path resolution rules:
/are treated as absolute paths${GITHUB_WORKSPACE}(repository root)pathis specified, AWF download is skippedversionfield is ignored whenpathis providedImplementation Steps
1. Data Structure Changes
File:
pkg/workflow/firewall.go(line ~16)Add
Pathfield toFirewallConfigstruct:2. Schema Updates
File:
pkg/parser/schemas/main_workflow_schema.json(line ~1670)Add
pathproperty to firewall object schema:3. Frontmatter Extraction
File:
pkg/workflow/frontmatter_extraction.go(after line 686)Add path extraction in
extractFirewallConfig:4. Core Logic Changes
File:
pkg/workflow/copilot_engine.go4.1 Modify
GetInstallationSteps(lines 64-76)Change from unconditional AWF installation to conditional:
4.2 Add New Helper Functions (after line 867)
Function:
generateAWFPathValidationStepCreates a validation step to verify custom AWF binary:
Function:
resolveAWFPathHandles path resolution for absolute and relative paths:
Function:
getAWFBinaryPathReturns appropriate AWF binary path for execution:
4.3 Update
GetExecutionSteps(line 256)Change from hardcoded
awfto dynamic path: