Package and upload a network snapshot
Create the following directory structure to represent a network snapshot.
my-network-snapshot/
├── aws_configs/ # AWS JSON configuration files
├── batfish/ # Batfish ISP configuration (isp_config.json)
├── configs/ # On-premise device configurations
├── def/ # Network and service definitions (Aerleon or Capirca)
└── invariant/
├── locations/ # Location definitions (YAML)
└── policies/ # Access policy rules (YAML)
configs/
: Contains on-premise device configurations (Cisco, Juniper, Arista, etc.).aws_configs/
: Contains AWS resource configurations (optional, requires specific structure for accounts/regions if used).batfish/
: Holds optional Batfish configuration likeisp_config.json
.def/
: Contains YAML files defining named networks (IP ranges) and services (ports/protocols) defined in Aerleon format. Capirca format is also accepted.invariant/locations/
: Contains YAML files defining named locations (mapping names to device interfaces).invariant/policies/
: Contains YAML files defining access policy and critical flow rules.
Run invariant run
using the my-network-snapshot
directory to upload the snapshot and start the analysis and evaluation process.
If you have not already, create a Network to represent the target network
# Upload the current directory as a snapshot
$ cd my-network-snapshot
$ invariant run --network my-network
# Specify the snapshot directory using --target
$ invariant run --network my-network --target my-network-snapshot
See Docs > Reference > Snapshots for detailed directory structure and file format information.