Go port
A port of this package written in golang is available at https://github.com/judedaryl/go-ieftool. Both packages these packages will be supported. If you want to use the tool but do not want the node runtime that it requires, please check out the port.
About
ieftool is a cli library based on npm for uploading B2C TrustFramework Policies.
This tool makes it easier for B2C policies to be uploaded in-order based on the inheritance of a policy. Uploads are also faster because policies are uploaded by batch depending on its position on the inheritance tree.
src/
├─ social/
│ ├─ base.xml (1A_SBASE)
│ ├─ signupsignin.xml (1A_SSS)
├─ local/
│ ├─ base.xml (1A_LBASE)
│ ├─ signupsignin.xml (1A_LSS)
│ ├─ passwordreset.xml (1A_LPR)
├─ base.xml (1A_BASE)
├─ extension.xml (1A_EXT)
The example folder structure above has the following inheritance tree.
1A_BASE
|
1A_EXT
/ \
1A_LBASE 1A_SBASE
/ \ \
1A_LSS 1A_LPR 1A_SSSThese policies are then batched by their hierarchy in the tree, as well as their parent policy. The order of upload would then be.
- 1A_Base
- 1A_EXT
- 1A_LBASE, 1A_LSBASE
- 1A_LSS, 1A_LPR
- 1A_LSSS
Installation
Via npm
npm install -g ieftoolVia yarn
yarn global add ieftoolSupported node versions
ieftool only supports LTS releases, largely because it is using @azure/msal-node.
Options
Usage: ieftool [options] [command]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
deploy [options]
help [command] display help for commanddeploy
The deploy command is responsible for uploading policies to B2C.
Usage: ieftool deploy [options]
Options:
-t, --tenant_id <tenant_id> B2C tenant id
-c, --client_id <client_id> App registration client id
-s, --client_secret <client_secret> App registration client secret
-p, --path <path> Build path
-h, --help display help for commandbuild
Usage: ieftool build [options]
Compiles B2C templates and policies
Options: -c, --config <path> Specify the path to the b2c compiler configuration (default: "./b2c-template.json") -p, --source_path <path> Specify the path to the templates folder (default: "./src") -o, --output_dir <path> Specify the output folder (default: "./build") -h, --help display help for command
Usage
To upload policies into a B2C tenant.
ieftool deploy -t { tenant } -c { client_id } -s { client_secret } -p { source_path }
| option | description |
|---|---|
| tenant | The B2C tenant, this can either be the tenantId or the tenant name (mytenant.onmicrosoft.com) |
| client_id | The client id of an app registration in B2C that has permissions for TrustFrameworkPolicies |
| client_secret | The client secret of an app registration in B2C that has permissions for TrustFrameworkPolicies |
| source_path | The path to your b2c policies. In the tree structure above it would be ./src |
To build policies
ieftool build -c { config_path } -p { source_path } -o { output_path }| option | description |
|---|---|
| config | The path to the configuration file. Defaults to './b2c-template.json' |
| source_path | The path to your b2c policies |
| output_path | The path where the compiled policies are written to |