Autobahn-CLI
A command line suite for performing autobahn related tasks with ease
Current Version: 2.2.1
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.
- [x] Import instance meta/site data
- [x] Upload a zipped folder to any eligible webdav location
- [x] Perform string replacements for files and file contents
Developer Overview
Commands
-
autobahn-cli import
- Execute meta/site data import into configured instance -
autobahn-cli upload
- Execute desired data upload any eligible webdav location -
autobahn-cli getSitePreferenceGroup
- Print current set values for a given site preference group to stdout -
autobahn-cli setSitePreferenceGroup
- Set values for a given site preference group
Install
npm install
npm install -g @redvanworkshop/autobahn-cli
autobahn-cli --help
Setup
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'
}
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 --help
Change History
v2.0
-
--initialize
option has been removed from theimport
command. 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/**"
-
upload
command has been added to upload a zip file (and unzip it on demand) to an arbitrary WebDAV directory -
data-dirs
option has been added for theimport
andupload
command. It allows you to have multiple directories in/data
and choose which ones to process -
site-rename
has been added as an option for both theupload
andimport
commands to allow you to deploy generic site data as a new fully renamed site with ease -
getSitePreferenceGroup
command has been added to retrieve set site preference group values from the specified host and instance -
setSitePreferenceGroup
command has been added to set set site preference group values for the specified host and instance -
--debug
command has been added toimport
andupload
so that you can inspect the payload zip without actually sending it to your instance
v2.0.1
- added a
.nvmrc
file - fixed an issue where renamed folders were not cleaned up
v2.0.2
-
--config
now supports using.js
files. This allows you to have dynamic runtime configuration -
import
andupload
will no longer attempt to upload/import an empty .zip file to prevent job errors