@red-van-workshop/autobahn-cli
v2.2.3
Published
A CLI tool to organize and handling meta-data imports to SFCC environments
Downloads
47
Keywords
Readme
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.
- [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 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 --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'
}
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 --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 directorydata-dirs
option has been added for theimport
andupload
command. It allows you to have multiple directories in/data
and choose which ones to processsite-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 easegetSitePreferenceGroup
command has been added to retrieve set site preference group values from the specified host and instancesetSitePreferenceGroup
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 configurationimport
andupload
will 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-cmd
and--config
js file function export