A CLI tool to organize and handling meta-data imports to SFCC environments
npm install @red-van-workshop/autobahn-cli!Logo
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 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
* autobahn-cli getGlobalPreferenceGroup - Print current set values for a given global preference group to stdout
* autobahn-cli setGlobalPreferenceGroup - Set values for a given global preference group
Install
---
#### npm install
``bash`
npm install -g @red-van-workshop/autobahn-cli
autobahn-cli --help
Setup
---
#### Configuration
#### data example
!Data-1
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:
`json`
{
"hostname": "",
"username": "",
"password": "",
"clientId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"clientSecret": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"dataFinal": "data_final"
}`
or using a .js file:javascript`
module.exports = {
hostname: '',
username: '',
password: '',
clientId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
clientSecret: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
dataFinal: 'data_final'
}--config-cmd start
or using a .js file function with optional command string :`javascript`
module.exports = function (cmd) {
return {
hostname: '',
username: '',
password: '',
clientId: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
clientSecret: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
dataFinal: 'data_final'
};
}
#### Open Commerce API Settings (data)`json`
{
"_v":"21.9",
"clients":
[
{
"client_id":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"resources": [
{
"resource_id":"/**",
"methods":["get","put","post","patch","delete"],
"read_attributes":"(**)",
"write_attributes":"(**)"
}
]
}
]
}
#### WebDAV Client Permissions
`json`
{
"clients":[
{
"client_id":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"permissions":[
{
"path":"/impex",
"operations":[
"read_write"
]
},
{
"path":"/cartridges",
"operations":[
"read_write"
]
},
{
"path":"/static",
"operations":[
"read_write"
]
},
{
"path":"/catalogs/
"operations":[
"read_write"
]
},
{
"path":"/libraries/
"operations":[
"read_write"
]
},
{
"path":"/dynamic/
"operations":[
"read_write"
]
}
]
}
]
}
Contributing
---
#### git clone
`bash`
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 the import 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 the import and upload 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 the upload and import 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 to import and upload 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
* and upload 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