sfdx-profile-decompose
Decomposes profile metadata into separate, more managable files.
Installing
$ npm install -g @rdietrick/sfdx-profile-decompose
- If you receive the npm error
'sfdx-profile-decompose@*' is not in the npm registry.
from thenpm install -g sfdx-profile-decompose
command then try installing with the following commands:
$ git clone git@github.com:rdietrick/sfdx-profile-decompose.git
$ npm install -g ./sfdx-profile-decompose
sfdx profiles:aggregate [-s <directory>] [-d <string>] [-m <array>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
sfdx profiles:decompose [-s <directory>] [-d <string>] [-n] [-m <array>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
sfdx profiles:aggregate [-s <directory>] [-d <string>] [-m <array>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
Aggregates decomposed profiles back into monolithic metadata files.
USAGE
$ sfdx profiles:aggregate [-s <directory>] [-d <string>] [-m <array>] [--json] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
OPTIONS
-d, --decompose-dir=decompose-dir [default: decomposed] The name of
the directory where decomposed
metadata files reside.
-m, --md-types=md-types [default: profiles,permissionsets]
Comma-separated list of metadata
types to decompose (can only include
'profiles' and 'permnissionsets').
-s, --source-path=source-path [default: ./force-app/main/default]
The path to the directory containing
the the decomposed metadata files.
Default value is './force-app/main/d
efault/profiles/decomposed'.
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
EXAMPLE
$ sfdx profiles:aggregate --source-path=path/to/source --decompose-dir=decomposed
See code: src/commands/profiles/aggregate.ts
sfdx profiles:decompose [-s <directory>] [-d <string>] [-n] [-m <array>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
Decomposes monolithic profile metadata files into smaller, more manageable units with less likelihood of conflicts in your source control repository.
USAGE
$ sfdx profiles:decompose [-s <directory>] [-d <string>] [-n] [-m <array>] [--json] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
OPTIONS
-d, --decompose-dir=decompose-dir [default: decomposed] The name of
the directory where decomposed
metadata files reside.
-m, --md-types=md-types [default: profiles,permissionsets]
Comma-separated list of metadata
types to decompose (can only include
'profiles' and 'permnissionsets').
-n, --no-prod If present/true, production-only
profile permissions will be stripped
from the decomposed profile files.
-s, --source-path=source-path [default: ./force-app/main/default]
The path to the directory containing
the original profile XML files.
Default value is
'./force-app/main/default/profiles'.
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
EXAMPLES
$ sfdx profiles:decompose --source-path=path/to/source --decompose-dir=decomposed
$ sfdx profiles:decompose --source-path=path/to/source --decompose-dir=decomposed --no-prod
$ sfdx profiles:decompose --source-path=path/to/source --decompose-dir=decomposed --md-types=profiles
See code: src/commands/profiles/decompose.ts
Debugging your plugin
We recommend using the Visual Studio Code (VS Code) IDE for your plugin development. Included in the .vscode
directory of this plugin is a launch.json
config file, which allows you to attach a debugger to the node process when running your commands.
To debug the hello:org
command:
- Start the inspector
If you linked your plugin to the sfdx cli, call your command with the dev-suspend
switch:
$ sfdx hello:org -u myOrg@example.com --dev-suspend
Alternatively, to call your command using the bin/run
script, set the NODE_OPTIONS
environment variable to --inspect-brk
when starting the debugger:
$ NODE_OPTIONS=--inspect-brk bin/run hello:org -u myOrg@example.com
- Set some breakpoints in your command code
- Click on the Debug icon in the Activity Bar on the side of VS Code to open up the Debug view.
- In the upper left hand corner of VS Code, verify that the "Attach to Remote" launch configuration has been chosen.
- Hit the green play button to the left of the "Attach to Remote" launch configuration window. The debugger should now be suspended on the first line of the program.
- Hit the green play button at the top middle of VS Code (this play button will be to the right of the play button that you clicked in step #5).
Congrats, you are debugging!