@red-van-workshop/autobahn-cli v2.2.3

Autobahn-CLI
A command line suite for performing autobahn related tasks with ease
Current Version: 2.2.3
Introduction
This tool originally was designed to handle cartridge specific data imports to SFCC instances. Our main product is titled Autobahn,
hence Autobahn-CLI. Since, it has evolved into a universal data management/import tool for any SFCC instance. By simply
creating a top level folder in your project called data, you can organize metadata based on specific cartridge integrations,
and import data on demand. This tool wraps the popular sfcc-ci library, and just extends on its functionality to provide the developer
with a more granular control over data management.
- Import instance meta/site data
- Upload a zipped folder to any eligible webdav location
- Perform string replacements for files and file contents
Developer Overview
Commands
autobahn-cli import- Execute meta/site data import into configured instanceautobahn-cli upload- Execute desired data upload any eligible webdav locationautobahn-cli getSitePreferenceGroup- Print current set values for a given site preference group to stdoutautobahn-cli setSitePreferenceGroup- Set values for a given site preference groupautobahn-cli getGlobalPreferenceGroup- Print current set values for a given global preference group to stdoutautobahn-cli setGlobalPreferenceGroup- Set values for a given global preference group
Install
npm install
npm install -g @red-van-workshop/autobahn-cli
autobahn-cli --helpSetup
Configuration
data example

Data folders should be structured as "Site Import" archives for the import command. They may be of any zippable structure for the upload command.

dw.json or a .js file using --config dw.js
For sandbox setup:
{
"hostname": "",
"username": "",
"password": "",
"clientId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"clientSecret": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"dataFinal": "data_final"
}or using a .js file:
module.exports = {
hostname: '',
username: '',
password: '',
clientId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
clientSecret: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
dataFinal: 'data_final'
}or using a .js file function with optional command string --config-cmd start:
module.exports = function (cmd) {
return {
hostname: '',
username: '',
password: '',
clientId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
clientSecret: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
dataFinal: 'data_final'
};
}Open Commerce API Settings (data)
{
"_v":"21.9",
"clients":
[
{
"client_id":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"resources": [
{
"resource_id":"/**",
"methods":["get","put","post","patch","delete"],
"read_attributes":"(**)",
"write_attributes":"(**)"
}
]
}
]
}WebDAV Client Permissions
{
"clients":[
{
"client_id":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"permissions":[
{
"path":"/impex",
"operations":[
"read_write"
]
},
{
"path":"/cartridges",
"operations":[
"read_write"
]
},
{
"path":"/static",
"operations":[
"read_write"
]
},
{
"path":"/catalogs/<your-catalog-id>",
"operations":[
"read_write"
]
},
{
"path":"/libraries/<your-library-id>",
"operations":[
"read_write"
]
},
{
"path":"/dynamic/<your-site-id>",
"operations":[
"read_write"
]
}
]
}
]
}Contributing
git clone
cd ~
git clone https://github.com/redvanworkshop/autobahn-cli.git
cd autobahn-cli
npm install -g .
autobahn-cli --helpChange History
v2.0
--initializeoption has been removed from theimportcommand. If you wish to imitate that old feature you would do so with:
autobahn-cli import --data-ignore "catalogs/**" "custom-objects/**" "custom-quotas/**" "libraries/**" "pricebooks/**" "inventory-lists/**" "sites/**" "static/**"uploadcommand has been added to upload a zip file (and unzip it on demand) to an arbitrary WebDAV directorydata-dirsoption has been added for theimportanduploadcommand. It allows you to have multiple directories in/dataand choose which ones to processsite-renamehas been added as an option for both theuploadandimportcommands to allow you to deploy generic site data as a new fully renamed site with easegetSitePreferenceGroupcommand has been added to retrieve set site preference group values from the specified host and instancesetSitePreferenceGroupcommand has been added to set set site preference group values for the specified host and instance--debugcommand has been added toimportanduploadso that you can inspect the payload zip without actually sending it to your instance
v2.0.1
- added a
.nvmrcfile - fixed an issue where renamed folders were not cleaned up
v2.0.2
--confignow supports using.jsfiles. This allows you to have dynamic runtime configurationimportanduploadwill no longer attempt to upload/import an empty .zip file to prevent job errors
v2.2.2
- added support for get and set global preferences
v2.2.3
- added support for
--config-cmdand--configjs file function export