Using a CSV Template
Use CSV data and a JSON template to create validated KeeperPAM imports.
Choose an import path
Keeper Commander supports two CSV-to-JSON workflows:
CSV only creates bare
pamMachine,pamDirectory, andpamUserrecords from the values in the CSV.CSV with a JSON template applies shared connection, rotation, and PAM Configuration settings while the CSV supplies the machine- and user-specific values.
Use a JSON template for any import that must create usable SSH, RDP, or database connections. CSV-only imports do not infer a machine management port, operating system, session protocol, or credential mapping.
Validate before importing
Always validate the generated JSON before creating a PAM project:
pam project import --filename /absolute/path/pam_import.json --name "My PAM Project" --dry-runUse an absolute file path. Do not rely on ~ expansion in the Commander command. Confirm that the dry run reports the expected number of resources and users before running the import without --dry-run.
For more validation and troubleshooting guidance, see Validate a PAM Project Import.
CSV-only imports
Required fields
The minimum CSV fields are:
DESKTOP-001.local
Administrator
DESKTOP-001.local
REPLACE-BEFORE-USE
user_path identifies the resource that owns a user. The example creates a machine named DESKTOP-001.local and a nested PAM user named DESKTOP-001.local - Administrator.
A minimum CSV-only import creates a bare resource similar to this:
This record is not yet configured for an interactive connection or password rotation. Add the required advanced fields, or use a JSON template.
Do not use empty rotation settings
Omit rotation_settings when rotation is not configured. Do not use an empty object:
In affected Commander versions, an empty object is interpreted as a rotation request. It can produce Failed to load rotation schedule warnings and stop the import while the first resource is processed. Supply a complete rotation configuration only when rotation is intended.
Some versions of pam_import_generator_v2.py emit an empty rotation_settings object for CSV-only output. Remove that property from the generated JSON before importing if you are not configuring rotation.
Configure usable machines with advanced CSV fields
A usable machine needs both a management port and an interactive session configuration:
rs.port: management or rotation port, such as22,5985, or5986.rs.operating_system: the machine operating system.rs.pam_settings.connection.protocol: interactive protocol, such assshorrdp.rs.pam_settings.connection.port: interactive session port, such as22for SSH or3389for RDP.rs.pam_settings.connection.administrative_credentials: a PAM user title or login used for administrative operations.rs.pam_settings.connection.launch_credentials: a PAM user title or login used to launch the connection.rs.pam_settings.connection.allow_supply_user: allow the session user to provide a username when no launch credential is selected.
Example: Windows machine with a WinRM management port and RDP session port.
Credential references must match a unique PAM user title or login. The CSV generator can de-duplicate repeated usernames globally, so use unique user titles and usernames when generating multiple local accounts.
Other fields can be applied with rs. for resources and usr. for users. Examples include:
folder_path is only used by pam project extend; it is ignored by pam project import.
CSV with a JSON template
Use a JSON template when machines share configuration. The template defines the project, PAM Configuration, and default machine settings; the CSV supplies host- and user-specific values.
Your machine template should include complete connection settings. For example:
Replace values beginning with XXX: with your static configuration. Values beginning with xxx: are placeholders replaced from CSV data. Use the complete template in Importing PAM Resources when your import also includes a PAM Directory or shared credential configuration.
Run the conversion
Download pam_import_generator_v2.py and save it with your CSV and, if used, import_template.json.
For a JSON template:
Before creating the project, run the generated file with --dry-run as shown above.
Last updated
Was this helpful?

