class
Analyzer::Specification::Envoy
Overview
Extracts HTTP endpoints from Envoy proxy route configuration files
(YAML or JSON). Handles three layout variants:
route_config.virtual_hosts[] (Envoy bootstrap / static RouteConfiguration)
virtual_hosts[] at top level (xDS RDS RouteConfiguration)
resources[].virtual_hosts[] (xDS resource array)
For each route the analyzer extracts:
- Path from
match.prefix, match.path, or match.safe_regex.regex
- HTTP method from
match.headers[] where name: ":method"
- An additional endpoint for
route.prefix_rewrite when it differs
from the matched path
Defined in:
analyzer/analyzers/specification/envoy.cr
Instance Method Summary
Instance methods inherited from class Analyzer
analyze
analyze,
base_path : String
base_path,
base_paths : Array(String)
base_paths,
callees_needed? : Bool
callees_needed?,
logger : NoirLogger
logger,
parallel_analyze(files : Array(String), &block : String -> Nil)
parallel_analyze,
read_file_content(path : String) : String
read_file_content,
result : Array(Endpoint)
result,
url : String
url
Constructor methods inherited from class Analyzer
new(options : Hash(String, YAML::Any))
new
Macros inherited from class Analyzer
define_getter_methods(names)
define_getter_methods
Instance methods inherited from module FileHelper
all_files : Array(String)
all_files,
get_files_by_extension(extension : String) : Array(String)
get_files_by_extension,
get_files_by_prefix(prefix : String) : Array(String)
get_files_by_prefix,
get_files_by_prefix_and_extension(prefix : String, extension : String) : Array(String)
get_files_by_prefix_and_extension,
get_public_dir_files(base_path : String, folder : String) : Array(String)
get_public_dir_files,
get_public_files(base_path : String, anchors : Array(String) = ["shard.yml", "Gemfile"]) : Array(String)
get_public_files
Instance Method Detail