JCPA study materials
JCPA study resources

JCPA key terms

JCPA · Get comfortable with the vocabulary.

Idempotency

A property of an operation where applying it repeatedly produces the same end state as applying it once. Automation tools rely on this so reruns converge devices to the intended configuration without duplicating changes.

Related: Declarative Configuration, Configuration Drift
Declarative Configuration

An approach where you describe the desired end state of a system rather than the step-by-step commands to reach it. The tool computes and applies whatever changes are needed to match that state.

Related: Idempotency, Imperative Automation
Imperative Automation

An approach where you script the exact sequence of commands or actions to execute. It gives precise control but requires you to handle ordering, error checking, and repeat-run safety yourself.

Related: Declarative Configuration, Idempotency
Configuration Drift

The gradual divergence between a device's actual running configuration and the intended or source-controlled baseline. It typically results from manual changes, and automation is used to detect and correct it.

Related: Idempotency, Source of Truth
Source of Truth (SoT)

An authoritative repository or database holding the intended state of the network, such as device inventory, addressing, and policy. Automation reads from it so that generated configurations and audits share one consistent reference.

Related: Configuration Drift, Configuration Template
Infrastructure as Code (IaC)

Managing network and compute infrastructure through machine-readable definition files kept in version control instead of manual CLI changes. It enables review, repeatability, testing, and rollback of infrastructure changes.

Related: Version Control, Configuration Template
Python List and Dictionary

Core Python data structures: a list is an ordered, mutable sequence accessed by index; a dictionary is a collection of key-value pairs accessed by key. Both are heavily used to hold parsed device data and API responses.

Related: JSON, Python Module Import
Python Module Import

The statement that loads a Python library or file so its functions and classes can be used. Automation scripts import libraries such as requests, lxml, or Junos PyEZ to gain their capabilities.

Related: Junos PyEZ, Python Exception Handling
Python Exception Handling

Using try, except, and related blocks to catch and respond to runtime errors instead of letting a script crash. In automation it allows graceful handling of timeouts, authentication failures, and unreachable devices.

Related: Python Module Import, Connection Timeout
Loop and Iteration

Repeating a block of code over items such as a list of devices or interfaces. Automation scripts use loops to apply the same logic across many network elements without duplicating code.

Related: Python List and Dictionary, Device Inventory
String Formatting

Building text output by substituting values into a template string, for example with f-strings or the format method. It is commonly used to assemble CLI commands, URLs, and configuration snippets dynamically.

Related: Configuration Template, Jinja2
REST API

An interface style using HTTP methods such as GET, POST, PUT, PATCH, and DELETE on resource URLs, typically exchanging JSON or XML. Network devices and controllers expose REST APIs for programmatic configuration and monitoring.

Related: HTTP Status Code, JSON, RESTCONF
HTTP Status Code

A three-digit number in an HTTP response indicating the outcome, such as 200 for success, 401 for unauthorized, and 404 for not found. Automation code checks these codes to detect and handle failures.

Related: REST API, Connection Timeout
JSON

A lightweight text data format built from objects (key-value pairs), arrays, strings, numbers, booleans, and null. It is the most common payload format for REST APIs and is easily parsed into Python dictionaries.

Related: REST API, YANG, Python List and Dictionary
XML

A markup format using nested elements with tags and attributes to represent structured data. NETCONF encodes its messages and configuration data in XML, and many legacy APIs also accept it.

Related: NETCONF, YANG, XPath
YANG

A data modeling language that defines the structure, types, and constraints of configuration and state data for a device. Tools generate schemas and APIs from YANG models so changes can be validated before being applied.

Related: NETCONF, RESTCONF, XML
XPath

A query syntax for selecting nodes within an XML document, for example by hierarchical path. It appears in NETCONF filters and in some XML-based APIs to narrow which data is returned.

Related: XML, NETCONF
NETCONF

A standards-based protocol that uses SSH transport and XML-encoded remote procedure calls to retrieve, edit, and validate device configuration. It supports candidate configurations and transactions, making changes more reliable than CLI scripting.

Related: YANG, Candidate Configuration, RESTCONF
RESTCONF

A protocol that maps YANG-modeled data onto HTTP methods and URLs, using JSON or XML payloads. It offers a REST-like alternative to NETCONF for reading and writing device configuration and state.

Related: NETCONF, YANG, REST API
Candidate Configuration

A working copy of device configuration that can be edited and validated before being committed to the active configuration. It allows changes to be staged and discarded without affecting running services.

Related: NETCONF, Commit Confirmed
Commit Confirmed

A commit option that activates changes only if the change is explicitly confirmed within a time limit; otherwise the device automatically rolls back. It protects against configuration mistakes that could cut off management access.

Related: Candidate Configuration, Rollback
Junos PyEZ

A Python library for automating Junos devices, offering an object-oriented interface to retrieve configuration and operational data, load changes, and run remote procedure calls over NETCONF.

Related: NETCONF, YANG, Python Module Import
Ansible Playbook

A YAML file describing an ordered set of tasks to run against managed hosts, often organized into roles. For network devices it typically runs on a control node and uses vendor-specific modules.

Related: Idempotency, Configuration Template, Device Inventory
Salt State

A declarative definition in Salt describing the desired state of a system, applied by the Salt master to managed minions. State files express outcomes and rely on the tool to determine required actions.

Related: Declarative Configuration, Idempotency
Device Inventory

A structured list of network devices with attributes such as hostname, address, credentials reference, platform, and role. Automation tools and scripts read it to know which devices to target and how to connect.

Related: Source of Truth (SoT), Ansible Playbook
Configuration Template

A parameterized text file that generates device configuration by filling in variables for a specific device or role. Templating reduces duplication and keeps generated configurations consistent across the network.

Related: Jinja2, Source of Truth (SoT), String Formatting
Jinja2

A Python templating engine that supports variables, filters, conditionals, and loops inside text templates. It is widely used to render device configurations and is the default templating language in Ansible.

Related: Configuration Template, Ansible Playbook
Variable Precedence

The rules determining which value wins when the same variable is defined in multiple places. Understanding it prevents unexpected rendered configurations when templates and inventories supply conflicting values.

Related: Configuration Template, Jinja2
Rollback

Restoring a device or system to a previously known-good configuration or version after a failed or unwanted change. Automation platforms support it through stored configuration history or version-controlled baselines.

Related: Commit Confirmed, Version Control
Telemetry

Streaming operational data from network devices to a collector at intervals or on change, rather than polling. It gives near-real-time visibility into interface, CPU, and flow metrics for monitoring and analysis.

Related: gRPC, Event-Driven Automation
gRPC

A high-performance remote procedure call framework using HTTP/2 and protocol buffers. It is a common transport for model-driven telemetry and for programmatic interaction with network devices and controllers.

Related: Telemetry, YANG
Event-Driven Automation

Automation triggered by a detected condition or message, such as a link-down syslog or telemetry threshold, rather than a fixed schedule. It shortens response time and can apply remediation automatically.

Related: Telemetry, Webhook
Webhook

An HTTP callback that sends a payload to a configured URL when an event occurs. Automation platforms and chat tools use webhooks to notify or trigger workflows from external events.

Related: Event-Driven Automation, REST API
Version Control

A system such as Git that records changes to files over time, enabling history review, branching, and rollback. Automation code, templates, and inventories are stored in it so changes are auditable and reversible.

Related: CI/CD Pipeline, Infrastructure as Code (IaC)
CI/CD Pipeline

An automated sequence that builds, tests, and deploys changes after code is committed. For networks it can validate templates, run syntax and unit tests, and push approved configurations to devices.

Related: Version Control, Pre-change Validation
Pre-change Validation

Checking intended changes for syntax, policy, and impact before applying them to production. It includes rendering templates, linting, and simulation or lab testing to catch errors early.

Related: CI/CD Pipeline, Commit Confirmed
Least Privilege

Granting accounts and automation tools only the permissions needed for their tasks. It limits the blast radius of compromised credentials or faulty scripts and is a core security practice in automation.

Related: Secrets Management, Role-Based Access Control
Secrets Management

Storing and retrieving credentials, keys, and tokens in a protected vault rather than hardcoding them in scripts or repositories. It supports rotation and auditing of sensitive automation access.

Related: Least Privilege, Version Control
Role-Based Access Control (RBAC)

Assigning permissions according to a user's or system's role instead of individually. In network automation it restricts which devices and operations an account or tool can reach.

Related: Least Privilege, Secrets Management
Connection Timeout

A limit on how long a client waits for a network connection or response before giving up. Proper timeout and retry settings keep automation from hanging when a device is slow or unreachable.

Related: Python Exception Handling, HTTP Status Code