Skip to content

Import & Export

Import & Export: Bulk Device Import and Table Export in rConfig V8

Section titled “Import & Export: Bulk Device Import and Table Export in rConfig V8”

The Import / Export page brings two data tools together in one place. The Import tab is a guided wizard for adding many devices at once from a spreadsheet, which is ideal for initial onboarding or migrating from a legacy system. The Export tab lets you write any rConfig database table out to a CSV file for backup, reporting, or offline analysis.

This page is the canonical reference for the import column schema and the export behaviour. For planning a large migration (naming conventions, building prerequisite IDs, transforming legacy data) see the Device Import Workbook.

The importer reads a spreadsheet (.xlsx or .csv) where each row is one device, then creates the matching Device records. The wizard walks you through three steps.

Open the Import tab and use Download Template. rConfig generates the template locally and streams it to your browser as device_import_template.xlsx.

The template is generated on demand from the exact column list the importer expects, so it can never drift out of sync with the application, and it works on offline or air-gapped installs (no internet download).

These are the exact column headers in the template. Keep the header row as is.

ColumnRequiredDescription
device_nameYesUnique device name. Invalid characters are stripped on import; only letters, numbers, dot, dash, and underscore are kept (so core switch 1 becomes coreswitch1).
device_ipYesManagement IP address (IPv4 or IPv6).
device_main_promptYesThe device CLI prompt used to detect the device is ready for commands.
device_enable_promptYesThe privileged (enable) mode prompt. Use placeholder text if the device has no enable mode.
device_modelYesFree text model designation, for example Cisco-Catalyst-9500.
device_category_idYesCommand Group ID. Must reference an existing Command Group.
device_templateYesConnection Template ID. Must reference an existing Template.
device_vendorYesVendor ID. Must reference an existing Vendor.
device_tagYesTag ID, or a comma separated list of Tag IDs (“1,2,5”). At least one valid Tag is required.
device_default_creds_onYes1 to use a saved credential set (see device_cred_id), or 0 to use the inline credential columns below.
device_cred_idYesWhen device_default_creds_on is 1, the ID of the Device Credential set to apply. Set to 0 when using inline credentials.
device_usernameNoInline username. Used only when device_default_creds_on is 0.
device_passwordNoInline password. Stored encrypted. Used only when device_default_creds_on is 0.
device_enable_passwordNoInline enable password. Stored encrypted. Used only when device_default_creds_on is 0.

When a field contains commas (such as multiple tag IDs) wrap it in double quotes so the CSV parser keeps it as one value.

device_name,device_ip,device_username,device_password,device_enable_password,device_main_prompt,device_enable_prompt,device_category_id,device_template,device_model,device_vendor,device_tag,device_default_creds_on,device_cred_id
core-rtr-01,192.168.1.1,admin,s3cret,en4ble,>,#,1,1,Cisco-ASR-1000,1,"1,3",0,0
access-sw-01,192.168.2.10,,,,>,#,2,1,Cisco-Catalyst-2960X,1,2,1,5

In this example core-rtr-01 uses inline credentials (device_default_creds_on is 0), while access-sw-01 reuses saved credential set 5 (device_default_creds_on is 1, so its blank username and password columns are ignored).

Each row is checked in order. The first failed check skips the row and records a warning. Valid rows are imported.

CheckWarning message when it fails
No blank required fieldsImport Error {name}: Blank Fields
Credential ID exists (when device_default_creds_on is 1)Import Error {name}: Invalid Credentials ID
Command Group ID existsImport Error {name}: Invalid Category ID
Vendor ID existsImport Error {name}: Invalid Vendor ID
Template ID existsImport Error {name}: Invalid Template ID
Tag ID(s) existImport Error {name}: Invalid Tag ID

On completion you get a summary such as 3 Devices successfully imported, and the warnings list shows every skipped row. The same messages are written to the Application Log, and a notification is raised for all users.

The Export tab writes a single rConfig database table to a CSV file you can download.

  1. Open the Export tab.
  2. Choose a table from the Select Table dropdown.
  3. Choose Export to CSV. rConfig writes the file and shows a Download CSV button.
  4. Download the file. It is also retrievable later from the exports storage location.

The devices table export is enhanced: it adds a tags column with each device’s tag names joined together and drops internal helper fields. Other tables export their columns as stored.

Internal and transient tables are hidden from the dropdown because exporting them has no value or could expose system internals. These include migrations, sessions, queue and job tables, OAuth and personal access token tables, scheduled task bookkeeping, and various pivot tables.

”Permission denied” creating a temporary file

Section titled “”Permission denied” creating a temporary file”

Exports and the template download build a short lived temporary file before sending it to you. If that temporary directory is owned by a different user than the web server, you may see a log entry like:

touch(): Unable to create file .../laravel-excel/...xlsx because Permission denied

rConfig V8 writes these temporary files to the operating system temporary directory (usually /tmp), which avoids most ownership problems. If your environment needs a specific path, set it explicitly and the importer and exporter will use it:

LARAVEL_EXCEL_TEMP_PATH=/var/tmp

After changing environment values, clear the cached config so the new path takes effect:

Terminal window
php artisan config:clear

Every skipped row reports a precise reason in the warnings list and the Application Log. The most common cause is an ID reference (command group, template, vendor, tag, or credential set) that does not yet exist. Create the missing prerequisites first, then re-import. See the Device Import Workbook for a structured approach to preparing prerequisites at scale.