[Schema Consistency] Schema Consistency Analysis - February 5, 2026 #13862
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-02-12T06:47:07.650Z.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Completed comprehensive schema consistency analysis across 4 key areas: JSON schema definitions, parser/compiler implementation, documentation, and actual workflow usage.
🚨 Critical Issues
1. Firewall Configuration Fields Not Extracted from YAML
Severity: High
Impact: Configuration fields exist in schema and are used in code, but cannot be set via workflow frontmatter
Details:
Schema defines (
pkg/parser/schemas/main_workflow_schema.json):network.firewall.ssl-bump(boolean)network.firewall.allow-urls(array of strings)network.firewall.cleanup-script(string, deprecated)Struct has fields (
pkg/workflow/firewall.go:12-22):Extraction code MISSING (
pkg/workflow/frontmatter_extraction_security.go:98-132):extractFirewallConfig()function only extracts:args,version,log-levelssl-bump,allow-urls,cleanup-scriptUsed downstream (
pkg/workflow/firewall.go:195-218):getSSLBumpArgs()function usesSSLBumpandAllowURLsto generate AWF command-line argumentsRecommendation:
Add extraction logic to
extractFirewallConfig()inpkg/workflow/frontmatter_extraction_security.go:📖 Documentation Gaps
1. Firewall Advanced Features Not Documented
Issue: The network documentation (
docs/src/content/docs/reference/network.md) mentions thelog-levelfield (lines 243-262) but does NOT document:ssl-bump: Enable SSL interception for HTTPS URL filteringallow-urls: URL patterns to allow when SSL bump is enabledcleanup-script: Custom cleanup script path (deprecated)Current Documentation Coverage:
network.firewall(boolean and object form)network.firewall.log-level(enum values documented)network.firewall.version(implied by examples)network.firewall.ssl-bump(NOT documented)network.firewall.allow-urls(NOT documented)network.firewall.cleanup-script(NOT documented, deprecated)Recommendation:
Even though these fields are currently not extracted (see Critical Issue #1), they should be documented once the extraction bug is fixed. Add to
docs/src/content/docs/reference/network.mdafter the log-level section:✅ Schema Improvements (Good News)
1. Engine Configuration: Fully Consistent
Analyzed 166+ workflow files using the
engine:field. All observed usage patterns are properly defined in the schema:engine: copilot) - ~100+ workflowsid+ properties - ~50+ workflowsmodel,max-turns,agent,env,steps,error_patterns,config,args,version,user-agent,command,concurrency) are in schemaValidation: Schema at
pkg/parser/schemas/main_workflow_schema.json(engine_config definition) is comprehensive and matches real-world usage.2. Top-Level Fields: All Accounted For
Cross-referenced schema properties with compiler frontmatter access patterns:
Schema fields properly accessed:
bots,description,engine,features,github-token,if,mcp-servers,name,network,on,permissions,roles,safe-inputs,safe-outputs,sandbox,secret-masking,source,tools,tracker-idSchema fields used in WorkflowData struct but accessed differently:
cache,imports,runtimes,jobs,steps,labels,metadata- These are extracted through specialized functions inpkg/workflow/frontmatter_extraction_metadata.goand stored in WorkflowData struct fieldsconcurrency,run-name,runs-on,timeout-minutes,env,container,services,post-steps- GitHub Actions passthrough fields rendered directlyFinding: No schema fields are unused. Different access patterns reflect different compilation strategies (direct frontmatter access vs. typed struct extraction).
🗑️ Deprecated Fields
1. MCP Server
networkFieldStatus: Properly deprecated
Schema:
pkg/parser/schemas/mcp_config_schema.json:150-192Assessment: ✅ Well-documented deprecation with clear migration path. Users are directed to use top-level
network:instead.📊 Strategy Performance
Strategy Used: Multi-layer field extraction comparison (ID: strategy-1)
Approach:
yaml:tags in Go codeResults:
Effectiveness: High - This is a new strategy being saved to cache for future runs
🎯 Recommendations
Immediate Actions (High Priority)
Fix firewall field extraction in
pkg/workflow/frontmatter_extraction_security.gossl-bump,allow-urls,cleanup-scriptDocument SSL bump feature in
docs/src/content/docs/reference/network.mdFuture Improvements (Medium Priority)
Add integration test for firewall field extraction
Schema validation for
allow-urlspatterns📁 Key Files Referenced
pkg/parser/schemas/main_workflow_schema.jsonpkg/parser/schemas/mcp_config_schema.jsonpkg/workflow/firewall.gopkg/workflow/frontmatter_extraction_security.gopkg/workflow/firewall.gopkg/workflow/compiler_types.godocs/src/content/docs/reference/network.mddocs/src/content/docs/reference/frontmatter.md🔄 Next Steps
Analysis Methodology: Used day-of-year modulo strategy selection (day 36 → new approach). This run established baseline detection strategies now saved to
/tmp/gh-aw/cache-memory/strategies.jsonfor future efficiency improvements.References:
Beta Was this translation helpful? Give feedback.
All reactions