hardis:org:configure:monitoring
Description
Command Behavior
This command requires human interaction and must be called manually, preferably from the VS Code SFDX Hardis UI. It is not suitable for automation or AI agent usage.
Configures the monitoring of a Salesforce org within a dedicated Git repository.
This command streamlines the setup of continuous monitoring for a Salesforce organization, ensuring that changes and health metrics are tracked and reported. It is designed to be run within a Git repository specifically dedicated to monitoring configurations.
Key functionalities include:
- Git Repository Validation: Ensures the current Git repository's name contains "monitoring" to enforce best practices for separating monitoring configurations from deployment sources.
- Prerequisite Check: Guides the user to confirm that necessary monitoring prerequisites (CI/CD variables, permissions) are configured on their Git server.
- Org Selection: Prompts the user to select or connect to the Salesforce org they wish to monitor.
- Monitoring Branch Creation: Creates or checks out a dedicated Git branch (e.g.,
monitoring_yourinstanceurl) for the monitoring configuration. - SFDX Project Setup: Initializes an SFDX project structure within the repository if it doesn't already exist, and copies default monitoring files.
- Configuration File Update: Updates the local
.sfdx-hardis.ymlfile with the target org's username and instance URL. - SSL Certificate Generation: Generates an SSL certificate for secure authentication to the monitored org.
- Automated Commit and Push: Offers to automatically commit and push the generated configuration files to the remote Git repository.
- Scheduling Guidance: Provides instructions and links for scheduling the monitoring job on the Git server.
Technical explanations
The command's technical implementation involves a series of Git operations, file system manipulations, and Salesforce CLI interactions:
- Git Operations: Utilizes
ensureGitRepository,getGitRepoName,execCommand(forgit add,git stash),ensureGitBranch, andgitAddCommitPushto manage the Git repository, branches, and commits. - Interactive Prompts: Employs the
promptslibrary to interact with the user for confirmations and selections. - File System Management: Uses
fs-extrafor copying default monitoring files (defaults/monitoring) and managing the SFDX project structure. - Salesforce CLI Integration: Calls
sf project generateto create a new SFDX project and usespromptOrgfor Salesforce org authentication and selection. - Configuration Management: Updates the
.sfdx-hardis.ymlfile usingsetInConfigFileto store org-specific monitoring configurations. - SSL Certificate Generation: Leverages
generateSSLCertificateto create the necessary SSL certificates for JWT-based authentication to the Salesforce org. - External Tool Integration: Requires
opensslto be installed on the system for SSL certificate generation. - WebSocket Communication: Uses
WebSocketClient.sendRunSfdxHardisCommandMessageto restart the command in VS Code if the default org changes, andWebSocketClient.sendRefreshStatusMessageto update the status.
Parameters
| Name | Type | Description | Default | Required | Options |
|---|---|---|---|---|---|
| debug -d |
boolean | Activate debug mode (more logs) | |||
| flags-dir | option | undefined | |||
| json | boolean | Format output as json. | |||
| orginstanceurl | option | Org instance url (technical param, do not use manually) | |||
| skipauth | boolean | Skip authentication check when a default username is required | |||
| target-org -o |
option | undefined | |||
| websocket | option | Websocket host:port for VsCode SFDX Hardis UI integration |
Examples
$ sf hardis:org:configure:monitoring