Skip to content

Changelog

[beta] (main)

  • Configuration: Add manualActionsMode (externalFile default / sfdxHardis) and orgAuthenticationMode (encryptedCert default / secretsOnly) JSON schema properties so the VS Code extension can suppress pipeline-view warnings when manual actions are managed within sfdx-hardis or when org authentication relies solely on CI/CD secrets variables.
  • hardis:work:save: When manualActionsMode is sfdxHardis, display a dedicated message and send a openPipelinePullRequest WebSocket event so the VS Code extension opens the DevOps Pipeline panel for the current pull request instead of warning about a missing external actions file.
  • Configuration: Add availableTargetBranchesLabels JSON schema property + default values for common branch names
  • hardis:org:diagnose:legacyapi: Add a SFDX_HARDIS_REASON column to the per-severity API clients summary file, listing the specific reasons each IP was flagged (e.g. SOAP login, REST API v3.0).
  • hardis:work:new: When checking out a parent branch with no upstream tracking, gitCheckOutRemote now falls back to git pull origin <branch> and automatically sets the upstream, fixing the There is no tracking information for the current branch failure.
  • CI/CD authentication: support bring-your-own CA-signed certificate flow (issue #1900)
  • Disable flavor suggestions in default MegaLinter config

[7.13.0] 2026-05-10

  • New command
    • hardis:org:configure:generic-prompt: Deploys the SfdxHardisGenericPrompt GenAiPromptTemplate metadata to a Salesforce org and optionally assigns the EinsteinGPTPromptTemplateUser Permission Set to the current user, enabling AI prompt integration via Agentforce.
  • DevOps
    • Send deployment notifications even when no metadata deployed after merge (ex: automated actions associated to the PR)
    • hardis:project:deploy:smart: When a deployment (or deployment check) is successful but package.xml is empty, the PR comment now renders as a successful deployment with a "No metadata to deploy" message instead of an empty body.
    • hardis:work:backpromote enhancements
      • Offer to open VS Code's native side-by-side diff editor for each conflicting file after org-conflict detection (skipped when running outside VS Code or in agent/CI mode).
      • Ignore whitespaces diff to reduce noise
  • Security: replaced unmaintained npm dependencies with actively maintained alternatives or lightweight inline helpers:
    • moment - replaced by a new DateHelper class (src/common/utils/dateHelper.ts) using native Date and Intl APIs
    • set-value - replaced by a new setDeepValue() helper (src/common/utils/objectUtils.ts)
    • pascalcase - replaced by a new toPascalCase() helper (src/common/utils/stringUtils.ts)
    • he - replaced by a new decodeHtmlEntities() helper (src/common/utils/stringUtils.ts)
    • string-template - replaced by a new formatTemplate() helper (src/common/utils/stringUtils.ts)
    • email-validator - replaced by a new isValidEmail() helper (src/common/utils/stringUtils.ts)
    • extract-zip - replaced by adm-zip (actively maintained)
    • split - replaced by Node.js built-in readline.createInterface
    • fs-readdir-recursive - replaced by Node.js built-in fs.readdirSync with { recursive: true } option

[7.12.1] 2026-05-05

  • hardis:packagexml:remove: Add --metadatatypes and --metadatanames CLI flags to remove specific metadata types and members directly without providing a filter package.xml file.
  • Make Git providers compliant with Jenkins by translating Jenkins variables into Git provider expected variables (Azure DevOps, Bitbucket, GitHub, GitLab).
  • Make JIRA integration compliant with Jira Data Center / Server
  • hardis:doc:release-notes: Auto-Format generated worksheets

[7.12.0] 2026-05-04

  • New commands
    • hardis:work:backpromote (Beta) - backpromotes changes from a parent branch (e.g. integration) to a developer's feature branch and deploys them to their dev sandbox. Lists merged PRs with commits, computes metadata delta via sfdx-git-delta, detects org conflicts with Excel + PDF diff reports, handles deployment actions with LoginAs support, and tracks backpromote state for incremental runs. Deprecates hardis:work:refresh.
    • hardis:doc:release-notes - generates release notes from git tags, pull requests, tickets, metadata changes (via sfdx-git-delta), and deployment actions. Supports prepare (preview) and post (document) modes. Outputs markdown + PDF + multi-tab XLSX into a dedicated subfolder with package.xml and destructiveChanges.xml. Bidirectional PR/ticket cross-references, contributor list, AI-powered summary, and Slack/Teams/Email notifications for production releases.
    • hardis:doc:dora-report - generates a DORA metrics report (Deployment Frequency, Lead Time, Change Failure Rate, MTTR, Rework Rate) from Tooling API deployments, Git provider PRs, and ticket references. Outputs markdown with Mermaid diagrams, CSV export, and notifications. Classifies metrics against industry benchmarks (Elite/High/Medium/Low).
    • hardis:packagexml:remove-managed - strips all managed-package items from a package.xml while preserving custom metadata built on top of managed objects (e.g. a custom field on SBQQ__Quote__c is kept, SBQQ__Quote__c.SBQQ__Status__c is removed). Namespaces are resolved automatically from InstalledPackage entries or API name patterns, or supplied explicitly via --namespaces. Detection strategy selectable with --namespace-detection (api-name default, or installed-packages).
  • CI/CD pipelines
    • Jenkins CI/CD pipeline (defaults/ci/Jenkinsfile): refactored to use a single top-level Docker agent, scoped withCredentials() blocks per stage (no global environment credentials), parallel MegaLinter + Validation on PRs, fixed branch condition syntax, added options and post cleanup blocks, and comprehensive setup comments. Updated Jenkins CI/CD documentation.
    • Jenkins CI support for Monitoring: added a ready-to-use Jenkinsfile template in defaults/monitoring/ and a new Jenkins configuration documentation page.
    • Add .gitattributes files to CI/CD and Monitoring defaults to ensure consistent line endings across platforms
  • VsCode integration
    • Allow to identify missing CI/CD variables only from found tokens in ENV vars (Git Providers, Ticketing providers)
  • Documentation
    • Rewrite package-no-overwrite documentation to make it more explicit, and with a diagram.
    • Improve CI/CD home page documentation.
    • Add SKILL for sfdmu management to configure data exports in natural language.
    • Activate Cloudity banner

[7.11.0] 2026-04-26

  • Added --agent flag for non-interactive headless execution to 100+ commands. Commands skip all interactive prompts and use sensible defaults or require explicit flags when running in agent mode.
  • New deployment action management commands with full --agent support for non-interactive execution:
  • hardis:org:monitor:backup
    • Feature: Data Cloud backup coverage has been expanded and made more reliable.
    • Feature: Added an option to skip Data Cloud backup when needed.
  • hardis:project:deploy:smart: Enhance the command to easily simulate deployments from local computer.
  • hardis:org:user:freeze and hardis:org:user:unfreeze: Added --usernames flag to target specific Salesforce usernames directly (takes priority over profile flags; makes --includeprofiles/--excludeprofiles optional in all modes including agent/CI).
  • Deployment Actions: runOnlyOnceByOrg now defaults to true and uses a dedicated PR comment ("Deployment Actions") as the sole state store - replacing the SfdxHardisTrace__c Salesforce custom object. The comment table (action / org branch / status / job) is readable by both humans and automation across all CI workflows on the same PR.
  • Fix: display error when JWT auth failed.
  • Add schedule-batch in JSON Schema

[7.10.0] 2026-04-24

  • hardis:org:monitor:all
    • AI-powered monitoring summary: generates a consolidated executive summary from monitoring notifications when an AI provider is configured
    • Weekly PPTX monitoring report (beta): on weekly runs, generates a PowerPoint report with a coding agent (Claude, Codex, Gemini, or Copilot) and attaches it to notifications
    • New --force-all flag to force all checks including weekly ones (equivalent to MONITORING_IGNORE_FREQUENCY=true)
    • Commands summary now includes execution duration per command
    • Monitoring notification files and coding-agent prompts are kept in report folders for auditability and troubleshooting
  • Monitoring commands now run in formal non-interactive agent mode for automation scenarios
  • Coding agents
    • codingAgent config property is now required (no auto-detection)
    • Local use: when the selected coding agent is already authenticated (for example Claude via claude login), commands run with that local agent without requiring API key environment variables

[7.9.1] 2026-04-21

Note: Can be used with sfdx plugins:install sfdx-hardis@beta and docker image hardisgroupcom/sfdx-hardis@beta

  • New command hardis:project:skills:import to import Claude Code skills, agents, and rules from a remote git repository
  • Implement Claude skills for sfdx-hardis repo

[7.9.0] 2026-04-21

  • Allow DevOps command to be call by headless agents using --agent
  • Allow to send auth headers to enterprise OpenAI servers

[7.8.0] 2026-04-19

  • Allow coding agents (claude, codex, gemini, copilot) to solve deployments errors
  • Override text of prompts in markdown file extension, not .txt (but .txt still supported for backward compatibility)
  • New command hardis:org:diagnose:flex-queue to monitor AsyncApexJob Holding backlog and get alerts before the flex queue is full (available in sfdx-hardis monitoring)
  • Document the Smart Deployment workflow
  • Upgrade dependencies
  • Configure osv-scanner

[7.7.1] 2026-04-09

  • Handle verification code for web org authentication

[7.7.0] 2026-04-08

  • Add more conditions to open WebSocketClient (exclude hidden commands, hardis-commands to list custom menus and known plugins)
  • Allow to use encrypted certificate in a secret variable instead of in local files

[7.6.4] 2026-04-05

  • Support localized configuration and CLI overrides for documentation publishing (Cloudflare & Confluence)
  • Update documentation related to sfdx-hardis plugins menus and commands discovery
  • hardis:doc:project2markdown:
    • Generate PDF files in a single final batch to improve Puppeteer reuse and reduce timeouts
    • Improve tables display to avoid overflow
  • hardis:org:monitor:backup:
    • When not running in CI and --skip-doc is not provided, prompt the user after backup completion and before doc generation
  • hardis:doc:mkdocs-to-confluence: Fix markdown/mermaid conversion to Confluence issues
  • CI: Scope SFDX_HARDIS_GITHUB_IO_SSH_PRIVATE_KEY to environment "doc" (also has been rotated)

[7.6.3] 2026-04-01

  • Expose more methods in plugin API

[7.6.2] 2026-03-31

  • Pin axios version to stay safe regarding its hack (we already were, it's a preventive action !)

[7.6.1] 2026-03-30

[7.6.0] 2026-03-29

  • New command hardis:org:diagnose:deployments to analyze metadata deployments and validations by querying DeployRequest records via the Tooling API (available in sfdx-hardis monitoring)
  • hardis:org:monitor:errors: Add aggregated summary report
  • Auto-update Grafana dashboards using yarn run sync:grafana

[7.5.0] 2026-03-24

  • Org Monitoring workflows: Fallback when git pull fails to avoid crash
  • hardis:org:diagnose:unsecure-connected-apps:
    • Now also checks External Client Apps in addition to Connected Apps
    • New App Type column in reports (Connected App or Ext Client App)
    • Security for External Client Apps is determined via ExtlClntAppOauthPlcyCnfg.PermittedUsersPolicyType (AdminApprovedPreAuthorized = secured)
    • AppName-based matching fallback when External Client App tokens have no AppMenuItem link
    • New stale-token cleanup: warns when a secured app still has old unsecured OAuth tokens and offers to delete them interactively

[7.4.0] 2026-03-23

  • Direct OpenAI integration: Migrated to OpenAI ResponsesAPI and Implemented service tier and reasoning options.
  • Update Metadata list
  • Add translation in Italian
  • Add translation in Dutch
  • CI: Disable trivy until they fix their security issues
  • Fix crash when XML is too large to be parsed (Entity expansion limit exceeded)

[7.3.0] 2026-03-18

  • Add summary files for sfdmu and file export templates
  • Jira connector: allow to use a service account and connect with client id and client secret
  • New command hardis:doc:mkdocs-to-confluence to export MkDocs documentation to Confluence wiki pages
  • hardis:doc:project2markdown: Fix wrong labels when generating doc over another language

[7.2.0] 2026-03-17

  • Update Org Monitoring documentation
  • New commands

[7.1.0] 2026-03-16

  • Add brazilian portuguese translation
  • Fix typo in GitHub CI/CD workflow

[7.0.1] 2026-03-15

  • hardis:org:sandbox:after-refresh
    • Integrate WebSocket progress messages for the custom settings restoration loop
    • Reorder External Client App restoration steps to delete existing ECAs before handling conflicting Connected Apps, ensuring a cleaner state for deployment.

[7.0.0] 2026-03-14

  • New commands

    • hardis:org:diagnose:underusedpermsets to identify underused Permission Sets and Permission Set Groups in a Salesforce org, with details and notifications (available in sfdx-hardis monitoring)
    • hardis:monitor:errors to collect and generate reports about Apex and Flow errors, then post notifications. (also added in daily task of sfdx-hardis monitoring)
  • Core improvements

    • Generate XSLX reports with tables for better readability in Excel and other spreadsheet software
    • Internal: Build internal Metadata List from https://raw.githubusercontent.com/forcedotcom/source-deploy-retrieve/refs/heads/main/src/registry/metadataRegistry.json (use yarn run build)
  • Fixes
    • Add quotes around arguments that can contain spaces (folders, paths, etc.) to avoid issues when running commands from CLI or CI/CD
    • Deployment actions: fix issue that made a successful data import appear as failed
    • Removed invalid Env Var already handled in getPullRequestInfo()

[6.27.2] 2026-03-10

  • Fix fatal error in 6.27.1 (fast-xml-parser dependency wrongly managed)

[6.27.1] 2026-03-10

  • Authentication: Ensure that target username is not lost to devhub
  • Azure integration: Make # optional in PR message
  • Update package description
  • Fix doc formatting
  • Configurable pollTimeout for bulk update
  • Make glob search OS agnostic

[6.27.0] 2026-02-27

[6.26.3] 2026-02-24

  • Update sfdmu-based commands documentation
  • Add Jenkins config in menu
  • New refresh event for Data Workbench UI

[6.26.2] 2026-02-22

[6.26.1] 2026-02-18

  • Fix issues related to langchain packages upgrade
  • Update CI/CD setup doc

[6.26.0] 2026-02-17

  • hardis:doc:project2markdown:
    • Fix mkdocs layout to better utilize screen space on FHD+ monitors
    • Fix flows parsing errors when they contain special characters in their labels
  • hardis:doc:fieldusage: Add field usage documentation: Execute dependencies query in batches
  • hardis:org:monitor:all: Fix active / unused users commands calls
  • Doc: Fix small typo
  • Upgrade npm dependencies

[6.25.1] 2026-02-10

[6.25.0] 2026-02-09

  • hardis:doc:project2markdown:
    • Refactor to parallelize generation and LLMs invocation (default: 5, can be overridden with property promptsParallelCallNumber or variable PROMPTS_PARALLEL_CALL_NUMBER )
  • hardis:org:diagnose:unusedusers Enhance unused users diagnosis with new license types and notification types
  • LLM Integration: allow to configure settings in .sfdx-hardis.yml.

[6.24.1] 2026-02-03

[6.24.0] 2026-02-01

  • New command hardis:org:monitor:health-check to analyze Salesforce Security Health Check and report deviations from recommended baseline.
  • hardis:project:clean:manageditems fix: OS agnostic folderscan for local items in clean managed items command
  • hardis:project:configure:auth: Fix External Client App creation according to Api Version
  • Upgrade dependencies
  • CI improvements:
    • Test docker images security using package generated from local sources
    • Test security on Ubuntu based docker images
    • Avoid duplicate jobs

[6.23.5] 2026-01-28

  • Authentication: When callback url port is busy, try to kill the ghost process then try again to run sf org login web
  • Display error in case of parsing issue in .sfdx-hardis.yml files
  • Switch MegaLinter LLM Advisor to Google Gemini 2.5 flash

[6.23.4] 2026-01-27

[6.23.3] 2026-01-22

  • Improve OIDC deployment config

[6.23.2] 2026-01-20

  • hardis:org:configure:monitoring enhancements:
    • Before deploying External Client App, check that there is not an already existing one with the same name
    • Suggest to git add+commit+push as soon as the branch is created to simplify configuration on Azure Pipelines
    • Improve assistance messages and links to documentation
  • Enhance CI/CD documentation and error messages for Azure, GitHub, and Jenkins variable referencing

[6.23.1] 2026-01-19

  • hardis:project:configure:auth: Make External Client App metadata compliant with the remote org api version (format differs between 65.0 and 66.0)
  • Improve developer experience by not running all tests at each commit (it will be done by CI/CD jobs anyway)

[6.23.0] 2026-01-18

  • hardis:project:deploy:smart enhancements & fixes:
    • Implement usage of RunRelevantTests deployment mode
    • Fix issue when using skipCodeCoverage=true
    • Check if a deployment is only caused by coverage failure but components and tests are ok (testCoverageNotBlocking)
    • Deploy with NoTestRun if deployment simulation has been performed with testCoverageNotBlocking=true
    • smartDeploymentTests: Add more metadata types that can not break apex test classes
  • hardis:project:configure:auth enhancements & fixes:
    • Fix creation of External Client App
    • Improve prompts when selecting branches (filter those with / in their name)
  • Update default api version to 64.0
  • Improve logging and documentation generation for Flow to Markdown and Flow Visual Git Diff commands

[6.22.0] 2026-01-13

  • hardis:project:configure:auth:
    • Use Connected App by default because issues have been reported with External Client Apps in some Salesforce editions / setups.
    • Add copy tags around values so VsCode SFDX-Hardis can display a copy button
  • hardis:doc:object-field-usage: Add a summary message
  • Upgrade farmhash package to about issues when installing npm packages with --no-script
  • Upgrade dependencies + package.json according to yarn.lock
  • Migrate from @gitbeaker/node (deprecated) to @gitbeaker/rest

[6.21.1] 2026-01-09

  • Update Security Documentation
  • Update Azure Pipelines setup documentation
  • hardis:doc:object-field-usage enhancements
    • Filter fields from managed packages
    • Add field creation date in the reports
    • Update CSV generation options to avoid sending WebSocket notifications in some contexts

[6.21.0] 2026-01-06

  • hardis:org:diagnose:unsecure-connected-apps enhancements:
    • Add OAuth Token usage details
    • Find application using AppMenuItem Id when its name is not matching
    • Allow to ignore some connected apps using monitoringUnsecureConnectedAppsIgnore (project config) or MONITORING_UNSECURE_CONNECTED_APPS_IGNORE (env var) config property.
    • Allow to delete "ghost" OAuth Tokens if user confirms it

[6.20.0] 2025-12-31

[6.19.0] 2025-12-30

  • hardis:project:generate:bypass: Added ability to apply the bypass to flows
  • hardis:org:configure:auth: Allow to create External Client Apps (metadata-based connected apps) for CI/CD authentication
  • hardis:project:clean:sensitive-metadatas: Remove secrets from more metadata types:
    • Connected Apps
    • Auth Providers
    • Named Credentials
  • DevOps: Improve identification of Pull Request in Azure Pipelines context
  • DevOps: Do not post a pull request comment when a flow has been created or deleted
  • Monitoring: Allow to override Grafana notification Monitoring key using SFDX_HARDIS_MONITORING_KEY
  • Docs: Improve clarity of manual steps for hiding standard applications

[6.18.0] 2025-12-26

  • Add capability to select specific Apex Test Classes (beta) to run during deployments in Smart Deploy feature.
    • New config property enableDeploymentApexTestClasses (boolean, default: false): Enable the use of custom Apex Test Classes list during deployments. Not recommended, as real DevOps best practice is to run all local tests: use only if you have specific needs.
    • New config property deploymentApexTestClasses (array of strings): List of Apex Test Classes that will be run during deployments. Requires enableDeploymentApexTestClasses to be set to true (Not recommended, use only if you have specific needs).
  • Add capability to override Pull Request config properties deploymentApexTestClasses, commandsPreDeploy and commandsPostDeploy directly in Pull Request description using special syntax.

Example:

deploymentApexTestClasses:
  - MyTestClass1
  - MyTestClass2
  • Disable deploymentPlan feature by default (can be re-enabled with enableDeprecatedDeploymentPlan in project configuration)

[6.17.1] 2025-12-22

[6.17.0] 2025-12-22

[6.16.1] 2025-12-16

  • Notif Provider: Add NOTIF_API_SKIP_LOGS and NOTIF_API_SKIP_METRICS env variables to skip posting logs or metrics to API for all notification types or specific ones. (See details in documentation)
  • CI: Use npm trusted providers to deploy package

[6.16.0] 2025-12-14

  • hardis:org:diagnose:legacyapi enhancements:
    • Detect calls to API Login to anticipate their deprecation in Summer 27
    • Make the command more efficient when handling a high number of log files
    • Api Versions 21 to 30 are now flagged as errors.
  • Add new Grafana Dashboard "Search Salesforce Org by Org Identifier"
  • Fix default ConnectedApp name if it contains multiple _
  • Fix tsconfig & vscode settings to improve VsCode performances

[6.15.1] 2025-12-10

  • hardis:doc:project2markdown: Fix crash when generating documentation when a formula is just true
  • Jira Provider: Fix label of jira server in output message when coming from config file.

[6.15.0] 2025-12-08

  • Ticketing: replace the deprecated jira-client dependency with the jira.js SDK to improve Atlassian Cloud API v3 compatibility and authentication handling.
  • Node.js 20 compatibility: force parse5@6.0.1 through Yarn resolutions to avoid the ERR_REQUIRE_ESM crash caused by newer jsdom transitive dependencies.
  • Ticketing: while collecting Jira tickets, also capture assignee/reporter identifiers so downstream logs and notifications can surface owners.
  • Add yarn.lock in the released package
  • GitHub Actions: consolidate the alpha, canary, beta and release deployment workflows into a single deploy.yml to reduce duplication and keep security tooling aligned.

[6.14.4] 2025-12-08

  • Ignore a trivy issue located in @salesforce/cli package (will be fixed by Salesforce)

[6.14.3] 2025-12-07

  • Optimize gitlab-ci workflow for scratch orgs testing step
  • Upgrade dependencies

[6.14.2] 2025-12-03

  • Add Java (JDK 11+) to Docker image to support PMD engine in Salesforce Code Analyzer

[6.14.1] 2025-12-01

[6.14.0] 2025-11-30

  • Upgrade MegaLinter default config + code-analyzer.yml + updated rulesets

[6.13.0] 2025-11-28

[6.12.10] 2025-11-25

  • Temporary downgrade isomorphic-dompurify package (jsdom dep not compliant with NodeJS < 20.19.5 and CodeBuilder / Agentforce Vibes is below)

[6.12.9] 2025-11-25

  • Fixes compatibility issues caused by upgrading to parse5 v8.0.0.

[6.12.8] 2025-11-25

  • Upgrade isomorphic-dompurify

[6.12.7] 2025-11-24

  • Include stack trace in warning log for Flow diff generation errors
  • Upgrade dependencies

[6.12.6] 2025-11-18

  • QuickFix typo in deployment actions

[6.12.5] 2025-11-18

  • Improve JIRA authentication and display
  • hardis:project:deploy:notify: Make default org optional
  • Improve pre/post deployment commands details display in PR comments

[6.12.4] 2025-11-18

  • Upgrade dependencies

[6.12.3] 2025-11-17

  • Add more logs to help investigation in case of issue
  • Fix: Issue with extraCommands defined in PR description text (#1540)
  • Fix: Resolve duplicate WHERE clause in bulkQueryByChunks pagination (#1539)

[6.12.2] 2025-11-11

  • Deployment Actions: When a custom username is defined, authenticate using the current Pull Request target branch, and not the origin Pull Request
  • Fix detection of deployment actions during deployments

[6.12.1] 2025-11-11

  • Optimize & fix git providers integrations

[6.12.0] 2025-11-10

  • hardis:work:new: If there are multiple - in a generated branch name , replace by single -, otherwise it messes with mermaid diagrams
  • Update json schema to add allowFailure & runOnlyOnceByOrg
  • Fix File Export SOQL with LIMIT Clause
  • hardis:org:purge:flow: Do not prompt user in CI context

[6.11.5] 2025-11-09

  • Excludes training branches from merge target suggestions
  • GitHub integration: Includes error stack in logs for easier debugging
  • Fix display of commands in GitHub Actions logs
  • Add permissions to Github deployment workflow
  • Upgrade npm dependencies

[6.11.4] 2025-11-06

  • hardis:org:test:apex: Fix bug when there are no Apex classes in the org
  • GitHub integration: Fix way to get Pull Request number
  • As SF Cli now requires NodeJs >= 24, set the same requirement to sfdx-hardis default workflows

[6.11.3] 2025-11-04

  • Handles errors from pull request commands

[6.11.2] 2025-11-03

  • Enhances storage stats with breakdown and filtering

[6.11.1] 2025-11-02

  • Fix manual checkbox display in PR comments

[6.11.0] 2025-11-02

  • New feature: Deployment actions at Pull Request level
    • Define pre-deploy and post-deploy commands to be executed during CI/CD deployments
    • Display summary in Pull Request with details of each command execution
  • Update CI/CD documentation & screenshots
  • Do not display generated time in JSON Schema doc

[6.10.0] 2025-10-31

  • New command hardis:org:diagnose:storage-stats to analyze storage usage per object and per year of creation / last update
  • Add explicit message in case of error when authenticating to Git provider API
  • Allow to override SFDX_TEST_WAIT_MINUTES and SFDX_DEPLOY_WAIT_MINUTES using CI/CD variables, and set 120 minutes as default value everywhere
  • Fix Validation Rules formula field in doc generation

[6.9.0] 2025-10-23

  • Bring back Microsoft Teams notifications using Teams Workflow
  • Update servicenow-report to add validity rows management

[6.8.1] 2025-10-22

  • Update Metadata List to use v65 one
  • Update servicenow-report command to handle more use cases

[6.8.0] 2025-10-19

  • Ticketing providers: Add more variables that can be defined in .sfdx-hardis.yml
    • ticketingProvider
    • genericTicketingProviderRegex
    • genericTicketingProviderUrlBuilder
    • jiraHost
    • jiraTicketRegex

[6.7.4] 2025-10-14

  • Enhances git commit logging with file status
  • Fix some grammar issues

[6.7.3] 2025-10-13

  • Handle cases where Azure DevOps is hosted on visualstudio.com
  • Hide credentials from user logs when they are in remote.origin.url

[6.7.2] 2025-10-13

  • Add 2 events to come where sfdx-hardis will be demonstrated
    • DevOps Dreamin: Why you don't need Salesforce DevOps vendors
    • French Touch Dreamin: Refresh your full sandboxes without needing to reconfigure everything
  • CodeBuilder: Prompt user when Git remote is not authenticated, then update Git remote URL to use token authentication

[6.7.1] 2025-10-12

  • hardis:org:diagnose:releaseupdates: Add Pending in list of statuses checked by the command
  • Update JSON schema to indicate useDeltaDeploymentWithDependencies is in beta
  • Fix activate-decomposed documentation formatting

[6.7.0] 2025-10-12

  • Improvements & Fixes

    • Cast descriptions to string before formatting to avoid rendering issues.
    • Avoid unnecessary file writes during builds to improve performance and CI speed.
    • Update JSON Schema to reflect new features and validation rules.
    • Add support for Vector (vector.dev) to enable ingestion by DataDog and other observability platforms.
  • Integrations

    • BitBucket: show a clear message when the Pull Requests app must be installed.
    • Azure Comment Reporter: create a Work Item and attach images when an item approaches the attachments limit.
  • Documentation
    • Update CI/CD documentation with the latest integration and workflow changes.
    • Update contributing documentation to include guidance for the vscode-sfdx-hardis extension.
    • Ensure docs reference the new JSON Schema and decomposed metadata command where relevant.

[6.6.0] 2025-10-05

  • hardis:project:deploy:smart: Enhance beta feature useDeltaDeploymentWithDependencies to add more dependencies to the delta deployment package (see related documentation)
  • Remove dev or config parts of the new git branches, as it is not relevant
  • Update global variables documentation to add AI related ones
  • Add more events about sfdx-hardis in the documentation
  • Update CI/CD Home Page documentation

[6.5.4] 2025-09-27

  • Update installation instructions
  • Update doc to explain how to remove metadatas from repository without deleting them from orgs.
  • Fix: adjust LIMIT_THRESHOLD_ERROR env var + align docs threshold values

[6.5.3] 2025-09-23

  • Install Chrome in Ubuntu docker image

[6.5.2] 2025-09-21

  • Display alias in org selection

[6.5.1] 2025-09-20

  • hardis:org:monitor:backup enhancements:
    • Creates the 'force-app/main/default' directory if it doesn't exist before retrieving metadatas
  • hardis:org:configure:monitoring:
    • Display the connected App XML in logs (while hiding sensitive info)
    • When production org, run the first found test class (or allow to force its selection using ENV variable SFDX_HARDIS_TECH_DEPLOY_TEST_CLASS )
    • Add instructions to use ghcr.io Docker image in case of rate limits reached on Docker Hub
  • Handle progress component in UI when generating documentation

[6.5.0] 2025-09-17

  • Files export enhancements:
    • Resume + validate downloaded files
    • Improves API limit handling for file export/import
  • When prompting for org url, allow to input just the domain (ex: hardis-group) and sfdx-hardis will build the rest of the url

[6.4.4] 2025-09-16

  • When prompting for org instance URL, allow to copy-paste the full URL to gain time
  • hardis:org:diagnose:unsecure-connected-apps: Salesforce limits OAuthToken queries to 2500 results. Be sneaky to get all results :)

[6.4.3] 2025-09-14

[6.4.2] 2025-09-14

  • Add additional dependencies in Ubuntu Dockerfile to allow mermaid-cli and chrome to run natively from the image.
  • hardis:org:file:export & hardis:org:file:import:
    • Send progress notifications to WebSocketServer
    • Improve console logs
    • Generate a CSV log file with all files
  • hardis:work:save: Display manual actions file as an action link

[6.4.1] 2025-09-10

  • Allow to override Bulk API v2 settings with env variables BULKAPIV2_POLL_INTERVAL, BULKAPIV2_POLL_TIMEOUT and BULK_QUERY_RETRY

[6.4.0] 2025-09-08

  • hardis:project:deploy:smart: New beta feature useDeltaDeploymentWithDependencies to add dependencies to the delta deployment package.
  • Fix npm dependencies (just in case, but the global npm packages hack has not impacted sfdx-hardis as it does not run in a browser)

[6.3.3] 2025-09-08

  • hardis:org:diagnose:unsecure-connected-apps
    • Add an additional columns on OAuth Usage to:
      • Show when the connected app has been last used
      • Show which profiles are the users using the OAuth Tokens
    • Run the command in the daily monitoring

[6.3.2] 2025-09-07

[6.3.1] 2025-09-07

  • Update Grafana Home Dashboard to add Unsecure Connected Apps
  • Fix Auth configuration command for Dev Hub
  • Allow to use org shapes for scratch org creation with env variable SCRATCH_ORG_SHAPE
  • Replace my.salesforce-setup.com by my.salesforce.com when prompting instance URL

[6.3.0] 2025-09-06

[6.2.1] 2025-09-04

  • hardis:work:save: Always display a button to create Merge Request
  • Update GitProvider to make it compliant with GitHub Enterprise hosted on ghe.com

[6.2.0] 2025-09-01

[6.1.4] 2025-08-25

  • Update Integrations & DevOps Documentation
  • Send message to refresh pipeline after updating package configuration

[6.1.3] 2025-08-24

  • hardis:org:configure:auth
    • Fix issues related to VsCode background mode
    • When updating existing branch authentication, pre-select merge targets.
    • Send more information to the user about files that are created/updated

[6.1.2] 2025-08-24

  • Simplify package retrieve command
  • Handle when an org is disconnected in CodeBuilder context

[6.1.1] 2025-08-24

  • Auto-detect which login type to use depending if we are in local or web context (Code Builder, CodeSpaces)
  • Add documentation for Ubuntu images
  • Wait for WebSocket Server to be initialized before continuing command.

[6.1.0] 2025-08-23

  • hardis:org:refresh:before-refresh
    • Retrieve Certificates and other metadatas that could need to be restored
    • Retrieve Custom Settings values
  • hardis:org:refresh:after-refresh
    • Restore Certificates and other metadatas that could need to be restored
    • Restore Custom Settings values
    • Smart restore of SAML SSO Config by prompting the user to select a valid certificate
  • Send path to command log file to WebSocketServer
  • Improve startup performances by checking for sfdx-hardis upgrades every 6h and not every 15 mn!
  • hardis:org:diagnose:unused-connected-app: Fix bug when not escaping App name in SOQL query
  • Update banner
  • New config property manualActionsFileUrl to indicate users where the deployment manual actions is located.

[6.0.6 (beta)] 2025-08-17

  • New command hardis:org:refresh:before-refresh : Save Connected Apps before refreshing a sandbox.
  • New command hardis:org:refresh:after-refresh : Restore Connected Apps after refreshing a sandbox.
  • Update JSON Schema documentation
  • When authenticating to an expired org token, delete the SF Cli file that can mess with us when we refreshed a sandbox.
  • Improve logs display

[6.0.5 (beta)] 2025-08-14

  • Add ENV SF_DATA_DIR to the ubuntu Dockerfile to install plugins "globally" and make the image work as non-root user

[6.0.4 (beta)] 2025-08-14

  • Immediately stop when a user cancelled a multi-questions prompts
  • Add log used for background process in LWC UI
  • Refactor logging methods
  • Display labels of prompt answers, not technical values
  • Improve naming of report files

[6.0.3 (beta)] 2025-08-12

[6.0.2 (beta)] 2025-08-11

  • Renaming "task" to "User Story" across the codebase and documentation for clarity.
  • Enhancing SFDMU integration by improving UX and linking external docs.
  • Improving CLI command outputs and workflows.

[6.0.1 (beta)] 2025-08-11

  • Send messages to VsCode to enhance buttons and links
  • Send messages to VsCode to display tables
  • Unify the way to handle table display in all commands formerly using console.table or columnify

[6.0.0 (beta)] 2025-08-09

  • Implement advanced websocket messaging for vscode sfdx-hardis LWC UI
  • Refactor logging within commands for better display on vscode sfdx-hardis LWC UI
  • Generate commands documentation with AI
  • Refactor hardis:org:configure:auth for better UX
  • Enhance org selection prompt

[5.45.0] 2025-07-22

  • Generate ubuntu-based Docker images
    • docker.io/hardisgroupcom/sfdx-hardis-ubuntu
    • ghcr.io/hardisgroupcom/sfdx-hardis-ubuntu
  • Display commands in blue for better readability on BitBucket
  • Fix bug that did not replace existing comments on BitBucket
  • Decrease docker images size

[5.44.1] 2025-07-16

[5.44.0] 2025-06-29

  • hardis:project:generate:bypass: Code rework + removed global flag + Added ability to apply the bypass to VRs and Triggers
  • Refactored logic to ensure preprod branches are only added if they exist, preventing null pointer exceptions.
  • Upgrade npm dependencies

[5.43.5] 2025-06-27

[5.43.4] 2025-06-26

  • Fix use of org API version

[5.43.3] 2025-06-26

[5.43.2] 2025-06-25

  • Update default API version to 63.0, but if --skipauth is not used, get the apiVersion of default org
  • hardis:org:monitor:backup: Automate update of sfdx-project.json and package.xml at the beginning of the command

[5.43.1] 2025-06-24

  • Refactor part of the documentation + add pages about events and videos
  • Upgrade dependency @cparra/apexdocs

[5.43.0] 2025-06-22

  • hardis:doc:project2markdown enhancements

    • Generate Apex Class relationship diagram on each apex doc page
    • Improve display of Object and Class diagrams when there are too many items
  • Upgrade npm dependencies

[5.42.0] 2025-06-18

  • hardis:project:deploy:smart: CI/CD enhancements
    • Allow to activate special behaviors when words are written in Pull Request description
      • NO_DELTA: Even if delta deployments are activated, a deployment in mode full will be performed for this Pull Request
      • PURGE_FLOW_VERSIONS: After deployment, inactive and obsolete Flow Versions will be deleted (equivalent to command sf hardis:org:purge:flow)
        Caution: This will also purge active Flow Interviews !
      • DESTRUCTIVE_CHANGES_AFTER_DEPLOYMENT: If a file manifest/destructiveChanges.xml is found, it will be executed in a separate step, after the deployment of the main package
    • Use CommonPullRequestInfo strong type for better use of cross-platform PR functions
    • Manage cache to get Pull Request info to improve performances

[5.41.0] 2025-06-15

  • Factorize common prompt text into prompt variables, that can be overridable by user.
  • Implement cache for prompt templates and variables to improve performances
  • New command hardis:doc:override-prompts: Create local override files for AI prompt templates that can be customized to match your organization's specific needs and terminology
  • Add Github Copilot instructions

[5.40.0] 2025-06-15

[5.39.1] 2025-06-05

  • hardis:doc:project2markdown: Define DO_NOT_OVERWRITE_INDEX_MD=true to avoid overwriting the index.md file in docs folder, useful if you want to keep your own index.md file.

[5.39.0] 2025-06-05

  • When in CI, by default a maximum time of 30 minutes can be used to call AI. This value can be overridden using AI_MAX_TIMEOUT_MINUTES.
  • New documentation page with all environment variables used by sfdx-hardis

[5.38.2] 2025-06-05

  • hardis:org:monitor:backup: Do not filter standard objects if they have at least one custom field defined.
  • Upgrade tar-fs to fix CVE

[5.38.1] 2025-06-02

[5.38.0] 2025-05-27

  • New command hardis:misc:servicenow-report to generate reports crossing data from a Salesforce object and related entries in ServiceNow
  • Automatically open Excel report files when possible (disable with env var NO_OPEN=true)
  • Defer the sortCrossPlatform operation for member lists until after all elements for a specific metadata type have been collected. Sorting is now performed only once per type improving the overall performance
  • Upgrade npm dependencies

[5.37.1] 2025-05-23

  • Update PROMPT_DESCRIBE_PACKAGE
  • Update common instructions about prompt reply language
  • Make sure that projectName is compliant with the format of an environment variable

[5.37.0] 2025-05-22

  • Generate and publish multilingual documentation from sfdx-hardis monitoring
  • Update command to install mkdocs-material & dependencies to match more python installation types
  • Upgrade way to call wrangler to publish to Cloudflare

[5.36.3] 2025-05-21

  • Azure CI/CD workflows: use ubuntu-latest as default image
  • Fix doc overwrite in case apex docs failed
  • Sort by alphabetical order, ignoring uppercase / lowercase
  • Update default prompts
  • Fix & delete generated files that are not compliant with Windows file system

[5.36.2] 2025-05-19

  • Do not create package files with git forbidden characters

[5.36.1] 2025-05-18

[5.36.0] 2025-05-18

  • Allow to use another org to call Agentforce, by previously connecting to an org alias TECHNICAL_ORG (to do that, just define SFDX_AUTH_URL_TECHNICAL_ORG and hardis:auth:login will handle the rest)

[5.35.0] 2025-05-18

  • hardis:doc:project2markdown new features and fixes:
    • Add doc for installed packages, enhanced with LLM
    • Fix markdown returned by LLMs so it is compliant with mkdocs
    • Allow to define a property truncateAfter on prompts variables to avoid crashes in case value is too long
    • Authorizations doc:
      • Filter non accessible items from tree
      • Display special icons for ModifyAllData and ViewAllData items
      • Fix display of Dataspace scope
    • Allow to override text generated by LLM
    • Allow to override a full documentation page using <!-- DO_NOT_OVERWRITE_DOC=FALSE -->
  • Upgrade dependencies

[5.34.1] 2025-05-15

[5.34.0] 2025-05-13

  • hardis:org:diagnose:audittrail: Add audit Custom Setting values updates
  • Improve SOQL query functions by adding warning logs for record limits and removing redundant warning handling
  • New command hardis:misc:custom-label-translations: Extract selected custom labels, or of a given Lightning Web Component (LWC), from all language translation files. This command generates translation files ('*.translation - meta.xml') for each language already retrieved in the current project, containing only the specified custom labels.

[5.33.0] 2025-05-10

  • hardis:doc:project2markdown: Allow to use ollama, Anthropic and Gemini LLMs, through langchainJs
  • sfdx-hardis prompt templates enhancements:
  • Improve VsCode workspace configuration to avoid performance issues
  • Upgrade npm dependencies

[5.32.1] 2025-05-09

[5.32.0] 2025-05-06

[5.31.0] 2025-05-05

[5.30.0] 2025-05-04

[5.29.1] 2025-05-02

  • hardis:org:diagnose:audittrail: Flag more audit trail actions as not relevant
  • Generate SBOM (Software Bill Of Material) from CI/CD jobs
  • Expose security scan results and SBOM as artifacts on release jobs

[5.29.0] 2025-05-02

  • hardis:doc:project2markdown: Generate Approval Process documentation
  • Bitbucket Integration: Update default pipeline to add clone: depth: full
  • Security: Remove markdown-toc dependency as it is not maintained anymore and contains a CVE on old lodash version
  • Add documentation page about how security is handled with sfdx-hardis
  • Add trivy reports in Github Actions Workflows

[5.28.1] 2025-04-25

[5.28.0] 2025-04-23

  • hardis:lint:metadatastatus: Detect more inactive elements that are technical debt to be cleaned
    • Approval Processes
    • Assignment Rules
    • Auto Response Rules
    • Escalation Rules
    • Forecasting Types
    • Record Types
    • Workflow Rules

[5.27.0] 2025-04-18

  • hardis:doc:project2markdown new features
    • Generate Permission sets and Permission Set Groups documentation
    • Display Profiles & Permission Sets attributes in a tree

[5.26.1] 2025-04-15

  • Also Display JIRA and Azure Boards issue status labels in notifications
  • hardis:org:monitor:backup enhancements
    • Add --start-chunk to help solving rotten Metadata retrieve issues
    • When using --full-apply-filters, do not kee Custom Objects who do not have Custom Fields locally defined
    • Update package-skip-items template to add MilestoneType
    • Add troubleshooting documentation

[5.26.0] 2025-04-11

[5.25.2] 2025-04-10

  • Display JIRA and Azure Boards issue status labels in Pull Request comments

[5.25.1] 2025-04-08

[5.25.0] 2025-04-06

[5.24.3] 2025-04-04

  • Fix visualization of Azure DevOps images by linking attachments to a generic work item.

[5.24.2] 2025-04-02

  • Upgrade npm dependencies

[5.24.1] 2025-03-24

[5.24.0] 2025-03-21

  • Flow documentation: Take in account new Transform Element

[5.23.0] 2025-03-19

  • Lazy loading in hooks to improve performances when other CLI plugins commands are called
  • hardis:org:file:export: Fix 100000 characters SOQL error limit
  • Upgrade npm dependencies

[5.22.0] 2025-03-13

[5.21.4] 2025-03-11

  • Support edge-case when package.xml is empty but destructive changes are present. (see Github issue)
  • Upgrade dependencies

[5.21.3] 2025-03-01

[5.21.2] 2025-03-01

[5.21.1] 2025-02-27

[5.21.0] 2025-02-27

[5.20.0] 2025-02-22

  • hardis:work:new
    • Document properties availableProjects and availableTargetBranches
    • Allow to define newTaskNameRegex to enforce the naming of a new task
    • Allow to remove question about upgrading the dev sandbox is sharedDevSandboxes: true is set
  • Fix issue with monitoringAllowedSectionsActions not taking in account when a section is defined as [] to ignore all of its member types.
  • Upgrade npm dependencies

[5.19.4] 2025-02-17

  • Do not check for missing descriptions on Data Cloud & Managed package metadatas
  • Doc: display where subflows are used in a new Dependencies paragraph
  • mkdocs-to-cf: No need to authenticate to SF org

[5.19.3] 2025-02-15

  • Doc: Add Cloudflare setup instructions
  • Doc: Reorganize Project documentation menus
  • Update default workflows to handle Cloudflare variables

[5.19.2] 2025-02-14

  • hardis:project:generate:bypass: Added necessary flags to be run from vscode sfdx-hardis extension + added skip-credits
    • Bypass generator: Create metadatas folders if not existing yet
  • Change default CF policy
  • Update doc to request activation of ExperienceBundle Metadata API

[5.19.1] 2025-02-09

  • Quickfix cf upload

[5.19.0] 2025-02-09

[5.18.1] 2025-02-04

  • Fix typo in docUtils
  • Stealth enhancements

[5.18.0] 2025-02-03

  • New command hardis:doc:fieldusage : generate a report with custom field's usage from metadata dependencies.

[5.17.4] 2025-01-31

[5.17.3] 2025-01-29

[5.17.2] 2025-01-29

[5.17.1] 2025-01-27

[5.17.0] 2025-01-26

  • hardis:doc:project2markdown enhancements:
    • Generate Apex classes documentation using @cparra/apexdocs, and describe them using AI if available
    • Generate Lightning Pages documentation and describe them using AI if available
    • Display error message in case of XML parsing error
    • Do not raise issues when managed items fields don't have descriptions
    • Do not raise inactive validation rule issue when the VR is from a managed package
    • Fix New JSON coverage formatter is selecting wrong JSON from sf project deploy command

[5.16.4] 2025-01-22

  • Doc: Exclude not relevant md from search
  • Upgrade npm dependencies
  • Add more logs to login command

[5.16.3] 2025-01-22

  • Do not post comments with Flows if there is no real differences
  • Truncate the number of flows git diff displayed in Pull Request comments to 30 (override the number using MAX_FLOW_DIFF_TO_SHOW )
  • Keep history link in main flow doc if available and history not recalculated
  • Remove Flows History mkdocs menu if present from an old sfdx-hardis doc generation
  • QuickFix AI Generated Summary text in PRs

[5.16.2] 2025-01-21

  • Strip XML to save prompts tokens
  • Fix issue when parsing CustomObject metadata
  • Install latest version of plugin @salesforce/plugin-deploy-retrieve in Dockerfile to avoid the bug of its current version
  • Fix: Do not recalculate Flow History doc if flow has not been updated
  • Skip Data Cloud objects from documentation (enforce using variable INCLUDE_DATA_CLOUD_DOC=true)

[5.16.1] 2025-01-19

  • AI Cache results enhancements
    • Normalize strings before creating fingerprint to handle multiple platforms
    • Delete unused cache files
  • Fix variables mismatch when calling generateFlowMarkdownFile

[5.16.0] 2025-01-19

  • New AI Provider: Agentforce
  • Create Objects AI-powered documentation
    • Summary
    • Relationships with other objects
    • Fields
    • Validation rules
    • Related flows
  • Handle prompts multilingualism (ex: PROMPTS_LANGUAGE=fr)
  • Handle prompts cache to save tokens
  • Add SFDX_DISABLE_FLOW_DIFF: false in default CI/CD pipelines (must be set to true during CI/CD setup)
  • Enhance branches & orgs CI/CD strategy mermaid diagram
  • Improve performances by using GLOB_IGNORE_PATTERNS for all calls to glob

[5.15.5] 2025-01-16

  • Flow Visual Diff enhancements
    • Display full node fields table when it contains updated elements
    • Fix removed long links
    • Handle cases where Flow has been added or deleted
  • Update hardis:project:deploy:notify documentation

[5.15.4] 2025-01-15

  • Allow to disable calls to AI prompts API using DISABLE_AI=true
  • Implement AI cache to save calls to AI prompts API (can be disabled using IGNORE_AI_CACHE)

[5.15.3] 2025-01-14

[5.15.2] 2025-01-13

  • Add AI security considerations in documentation
  • Do not prompt for AI API TOKEN
  • Do not crash in case of AI call failure

[5.15.1] 2025-01-12

  • Improve prompt templates

[5.15.0] 2025-01-12

  • Allow to call AI to describe flows in documentation
  • Allow to call AI to describe differences between 2 flow versions in a pull request comment
  • Ai Provider enhancements
    • Change default model from gpt-4o to gpt-4o-mini
    • Prompt templates factory, with capability to override default prompt with ENV variable
    • Translate prompts in french
  • Add dotenv to allow to define secrets variables in a local .env file (never commit it !)
  • Add more ways to call python depending on the installation

[5.14.3] 2025-01-10

[5.14.2] 2025-01-10

[5.14.1] 2025-01-09

[5.14.0] 2025-01-09

  • Add ability to replace ApiVersion on specific Metadata Types file using sf hardis:project:audit:apiversion
  • Add parameters fix and metadatatype on sf hardis:project:audit:apiversion
  • Fix build of formula markdown when generating a Flow Visual Documentation

[5.13.3] 2025-01-08

  • Update default JIRA Regex to catch tickets when there is an number in the project name

[5.13.2] 2025-01-07

  • hardis:project:deploy:smart: Fix parsing when deployment failure is related to Apex code coverage
  • Flow doc fix: add description for constants, variables, text template & formulas
  • Flow parsing: Fix error when there is only one formula

[5.13.1] 2025-01-07

  • hardis:doc:project2markdown Display a screen emoji in documentation flows table when they are not tied to an Object
  • hardis:project:deploy:smart: Shorten log lines when there is a too big JSON, by removing info not relevant for display, like unchanged files or test classes results.

[5.13.0] 2025-01-05

[5.12.0] 2025-01-04

  • New command hardis:doc:mkdocs-to-salesforce to generate static HTML doc and host it in a Static Resource and a VisualForce page
  • Remove hyperlinks from MermaidJs on Pull Request comments, to improve display on GitHub & Gitlab
  • Upgrade base image to python:3.12.8-alpine3.20, so mkdocs can be installed and run if necessary
  • Add links in package.xml Markdown documentation

[5.11.0] 2025-01-03

  • New command hardis:project:deploy:notify to send Pull Request comments (with Flow Visual Git Diff) and Slack / Teams notifications even if you are not using a sfdx-hardis command to check or process a deployment.
  • Command updates

    • hardis:project:deploy:smart: Refactor deployment errors parsing: use JSON output instead of text output
    • hardis:org:test:apex: Display the number of failed tests in messages and notifications
    • hardis:org:monitor:backup:
      • New option --exclude-namespaces that can be used with --full option
      • New option --full-apply-filters that can be used with --full option to apply filters anyway
  • Core enhancements & fixes

    • Obfuscate some data from text log files
    • Kill some exit handlers in case they are making the app crash after a throw SfError
    • Trigger notifications during the command execution, not after
    • Do not display warning in case no notification has been configured in case we are running locally
    • Fix Individual deployment tips markdown docs by adding quotes to YML properties
    • Fix init sfdx-hardis project commands and docs
    • Display warning message in case package.xml has wrong format
    • Allow to override package-no-overwrite from a branch .sfdx-hardis.yml config file
    • Using target_branch for Jira labels when isDeployBeforeMerge flag is true
  • Doc
    • Update Microsoft Teams notifications integration User Guide
    • Add troubleshooting section in Email integration User Guide

[5.10.1] 2024-12-12

  • Fix sfdx-hardis docker image build by adding coreutils in dependencies

[5.10.0] 2024-12-12

  • Update Docker base image to alpine to 3.21

[5.9.3] 2024-12-12

  • hardis:org:data:import: Allow to run the command in production using, by either:
    • Define sfdmuCanModify in your .sfdx-hardis.yml config file. (Example: sfdmuCanModify: prod-instance.my.salesforce.com)
    • Define an environment variable SFDMU_CAN_MODIFY. (Example: SFDMU_CAN_MODIFY=prod-instance.my.salesforce.com)

[5.9.2] 2024-12-10

  • Fallback message in case sfdx-hardis is not able to parse newest SF CLI errors format.

[5.9.1] 2024-12-09

  • Fix issue that generates valid Pull Request comment whereas there is 1 error
  • Add TS test case
  • Upgrade NPM dependencies

[5.9.0] 2024-12-02

  • hardis:org:monitor:backup: New mode --full, much slower than default filtered one, but that can retrieve ALL metadatas of an org

[5.8.1] 2024-11-26

[5.8.0] 2024-11-25

[5.7.2] 2024-11-25

  • Fix issue with auth just before running a command (ask to run again the same command meanwhile we find a way to avoid that using SF CLI architecture)

[5.7.1] 2024-11-22

  • In case a prompt is requested during CI and makes a command fail, display the content of the prompt

[5.7.0] 2024-11-22

  • New command hardis:git:pull-requests:extract: Extract Pull Requests from Git Server into CSV/XLS (Azure only for now)
  • Fix bug when scratch org username is > 80 chars
  • Make markdown-links-check not blocking by default in MegaLinter base config
  • Make yamllint not blocking by default in MegaLinter base config

[5.6.3] 2024-11-17

  • MegaLinter config: disable APPLY_FIXES by default
  • Upgrade npm dependencies

[5.6.2] 2024-11-12

  • hardis:org:diagnose:unused-apex-classes
    • Display class created by and created name MIN(date from org,date from git)
    • Replace errors by warnings, and add a message so users double-check before removing a class
    • Reorder console log
  • Remove unused code from MetadataUtils class

[5.6.1] 2024-11-11

  • Fix hardis:org:user:activateinvalid interactive mode
  • Update Dockerfile email address
  • Upgrade default Grafana Dashboards to add Unused Apex Classes indicator
  • Update hardis:org:diagnose:unused-apex-classes and hardis:doc:packagexml2markdown documentation

[5.6.0] 2024-11-09

  • New command hardis:org:diagnose:unused-apex-classes, to detect Apex classes (Batch,Queueable,Schedulable) that has not been called for more than 365 days, that might be deleted to improve apex tests performances
  • hardis:doc:project2markdown: Update documentation
  • Polish CI/CD home doc
  • Refactor the build of hardis:org:monitor:all documentation
  • Fix issue with ToolingApi calls: handle paginated results instead of only the first 200 records.

[5.5.0] 2024-11-03

  • hardis:doc:packagexml2markdown: Generate markdown documentation from a package.xml file
  • hardis:doc:project2markdown: Generate markdown documentation from any SFDX project (CI/CD, monitoring, projects not using sfdx-hardis...) in docs folder and add a link in README.md if existing.
  • hardis:org:monitor:backup: Call hardis:doc:project2markdown after backup
  • hardis:org:retrieve:packageconfig: Ignore standard Salesforce packages
  • Update CI/CD home documentation

[5.4.1] 2024-11-02

  • hardis:org:multi-org-query enhancements
    • Improve documentation
    • Allow to use --query-template as option to use one of the predefined templates via command line
    • Handle errors if issues when the command is called via a CI/CD job
  • Upgrade dependencies

[5.4.0] 2024-11-02

  • New command hardis:org:multi-org-query allowing to execute a SOQL Bulk Query in multiple orgs and aggregate the results in a single CSV / XLS report
  • New command hardis:org:community:update to Activate / Deactivate communities from command line

[5.3.0] 2024-10-24

  • Update default Monitoring workflow for GitHub
  • Refactor file download code
    • Display progress
    • Better error handling
  • hardis:org:diagnose:legacyapi: Fix issue with big log files: Use stream to parse CSV and perform checks
  • Update default API version toto 62.0 (Winter 25 release)

[5.2.4] 2024-10-21

  • Fix hardis:org:fix:listviewmine: Use chrome-launcher to find chrome executable to use with puppeteer-core
  • Remove keyv dependency

[5.2.3] 2024-10-19

  • Change default .mega-linter.yml config
  • Display number of package.xml items before or after retrieving them
  • Doc: Update youtube preview images

[5.2.2] 2024-10-14

  • Fix doubling -d option in hardis:scratch:create

[5.2.1] 2024-10-14

  • 2 hardis commands: rename -d into something else when the short option was available twice on the same command

[5.2.0] 2024-10-14

  • Improve BUILD & RUN documentation
  • 21 hardis commands: rename -o short into -f when possible, or other short letter, to avoid collision with -o (--target-org) option
  • Fix GitHub Org Monitoring workflow (remove push event + fix command typo)

[5.1.0] 2024-10-11

  • hardis:project:deploy:smart: Fix to adapt stdout checks to output of sf project deploy start in case code coverage is ignored
  • hardis:org:monitor:backup: Allow spaces in folders
  • Remove pubsub from default .forceignore
  • Change default deployment waiting time from 60mn to 120mn
  • Display explicit warning message before ConnectedApp deployment so users don't forget to manually create the connected app with the certificate

[5.0.10] 2024-10-03

  • hardis:project:deploy:smart : Fix parsing of error strings
  • hardis:project:deploy:smart : Fix markdown display on PR summary

[5.0.9] 2024-10-03

  • Fix link to tip doc from Pull Request / Merge Request comments
  • Fixing small issues with creating scratch org and scratch org pool

[5.0.8] 2024-10-01

  • Monitoring config: Fix way to define how to upload connected app
  • New deployment tip: Couldn't retrieve or load information on the field
  • Fix parsing of errors when they are unknown
  • Fix SEO info in deployment tips documentation

[5.0.7] 2024-09-25

  • hardis:org:monitoring:backup : fix issue when metadata type is unknown

[5.0.6] 2024-09-25

  • Allow to purge flows & flow interviews using --no-prompt option
  • Fix duplicate -f short option by replacing delete-flow-interviews short by -w

[5.0.5] 2024-09-24

  • When git add / stash failure, display a message explaining to run git config --system core.longpaths true to solve the issue.
  • Improve test classes errors collection during deployment check
  • Display the number of elements deployed within a package.xml

[5.0.4] 2024-09-24

  • Fix errors collection during deployment check
  • Display in deployment check summary when useSmartDeploymentTests has been activated
  • Do not send coverage formatters options when test level is NoTestRun

[5.0.3] 2024-09-23

  • Add --ignore-conflicts to smartDeploy

[5.0.2] 2024-09-23

  • Always use project deploy start --dry-run for deployment validation, until command project deploy validate works with --ignore-warnings & NoTestRun

[5.0.0] 2024-09-23

Refactoring explanations

The future deprecation of sfdx force:source:** commands on 6 november finally convinced us to switch everything from SFDX core to SF CLI core. (otherwise existing CI/CD pipelines would not work anymore from this date !)

Therefore, sfdx-hardis required a complete refactoring as described below, but this won't impact existing CI/CD and Monitoring pipelines.

We made many tests but risk zero do not exist, so if you see any bug, please report them ASAP and we'll solve them quickly :)

Major changes

  • Change background calls to legacy sfdx commands to call their SF Cli replacements

    • sfdx force:mdapi:convert -> sf project convert mdapi
    • sfdx force:mdapi:deploy -> sf project deploy start --metadata-dir
    • sfdx force:source:retrieve -> sf project retrieve start
    • sfdx force:source:deploy -> sf project deploy start
    • sfdx force:source:pull -> sf project retrieve start
    • sfdx force:source:push -> sf project deploy start
    • sfdx force:source:tracking:clear -> sf project delete tracking
    • sfdx force:source:manifest:create -> sf project generate manifest
    • sfdx sgd:source:delta -> sf sgd:source:delta
    • sfdx force:org:create -> sf org create sandbox | sf org create scratch
    • sfdx force:org:list -> sf org list
    • sfdx force:org:delete -> sf org delete scratch
    • sfdx config:get -> sf config get
    • sfdx config:set -> sf config set
    • sfdx auth:web:login -> sf org login web
    • sfdx auth:jwt:grant -> sf org login jwt
    • sfdx auth:sfdxurl:store -> sf org login sfdx-url
    • sfdx org:login:device -> sf org login device
    • sfdx force:data:record:get -> sf data get record
    • sfdx force:data:record:update -> sf data update record
    • sfdx force:data:soql:query -> sf data query
    • sfdx force:data:bulk:delete -> sf data delete bulk
    • sfdx alias:list -> sf alias list
    • sfdx alias:set -> sf alias set
    • sfdx force:apex:test:run -> sf apex run test
    • sfdx force:apex:execute -> sf apex run
    • sfdx force:package:create -> sf package create
    • sfdx force:package:version:create -> sf package version create
    • sfdx force:package:version:delete -> sf package version delete
    • sfdx force:package:version:list -> sf package version list
    • sfdx force:package:version:promote -> sf package version promote
    • sfdx force:package:installed:list -> sf package installed
    • sfdx force:package:install -> sf package install
    • sfdx force:user:password:generate -> sf org generate password
    • sfdx force:user:permset:assign -> sf org assign permset
    • sfdx hardis:_ -> sf hardis:_
  • New wrappers commands for SF Cli deployment commands
    • sf hardis project deploy validate -> Wraps sf project deploy validate
    • sf hardis project deploy quick -> Wraps sf project deploy quick
    • sf hardis project deploy start -> Wraps sf project deploy start

New Features / Enhancements

  • hardis:project:deploy:smart
    • New feature useSmartDeploymentTests: Improve performances by not running test classes when delta deployment contain only non impacting metadatas, and target org is not production
    • Rename command hardis:project:deploy:source:dx into hardis:project:deploy:smart (previous command alias remains, no need to update your pipelines !)
  • commandsPreDeploy and commandsPostDeploy
    • New option context for a command, defining when it is run and when it is not: all (default), check-deployment-only or process-deployment-only
    • New option runOnlyOnceByOrg: If set to true, the command will be run only one time per org. A record of SfdxHardisTrace__c is stored to make that possible (it needs to be existing in target org)
  • New commands
    • hardis:project:deploy:simulate to validate the deployment of a single metadata (used by VsCode extension)
    • hardis:org:diagnose:releaseupdates to check for org Release Updates from Monitoring or locally
    • hardis:misc:purge-references to partially automate the cleaning of related dependencies when you need to delete a field, or change its type (for example from master detail to lookup)
    • hardis:project:clean:sensitive-metadatas to mask sensitive metadatas from git repo (ex: Certificate content)
  • hardis:work:save and hardis:project:deploy:sources:dx: Improve runtime performances thanks to internalization of sfdx-essentials commands
  • hardis:work:new
    • Allow to add labels in property availableTargetBranches, using a comma. For examples, - integration,Choose this branch if you are on the BUILD side of the project !
    • Add current default org in the choices when prompting which org to use
  • hardis:project:new
    • Initialize autoCleanTypes with destructivechanges, flowPositions and minimizeProfiles
    • Initialize package-no-overwrite.xml with Certificate metadata. (certificates must be uploaded manually)
  • hardis:org:files:export: Improve display with spinner
  • hardis:org:purge:flow: If FlowInterview records are preventing Flow Versions to be deleted, prompt user to delete Flow Interviews before trying again to delete Flow Versions
  • hardis:project:generate:gitdelta: Add option to generate package.xml related to a single commit
  • hardis:org:data:delete: Check for property "runnableInProduction" in export.json before running deletion in production org.
  • hardis:org:diagnose:audittrail: Add new filtered actions
    • Customer Portal: createdcustomersuccessuser
  • Authentication: do not use alias MY_ORG anymore + do not update local user config if no values to replace.
  • When selecting an org, make sure it is still connected. If not, open browser so the user can authenticate again.
  • Update sfdx-hardis Grafana Dashboards to import in your Grafana Cloud
    • SF Instance name
    • Next platform upgrade
    • Release Updates to check
    • Installed packages
    • Org licenses
  • AI Deployment assistant
    • Add error Change Matching Rule
  • Git Providers
    • On Pull Requests / Merge Requests comments, add hyperlinks to errors documentation URL

Fixes

  • Avoid error when removing obsolete flows (workaround using SF CLI if tooling api connection fails). Fixes #662
  • Improve Slack/Teams notifications display
  • Display explicit error message in case a password is required to install a managed package.

Documentation

  • Reorganize README content
    • Add link to Dreamforce 24 session
  • Deployment assistant: Improve documentation by adding examples of errors, and a standalone page for each tip
  • Factorize the definition of DOC_ROOT_URL https://sfdx-hardis.cloudity.com

Deprecations

  • Deprecate wrapper commands matching sfdx commands that will be removed. All replaced by sf hardis deploy start

    • sfdx hardis:source:push
    • sfdx hardis:source:deploy
    • sfdx hardis:mdapi:retrieve
    • sfdx hardis:mdapi:deploy
  • Deprecate hardis:deploy:sources:metadata as nobody uses metadata format anymore

Removals

  • Replace puppeteer by puppeteer-core: it means that if you use a command requiring puppeteer, please make sure to have a Chrome available in your environment (already integrated within the Docker image)
  • Get rid of sfdx-essentials plugin dependency by internalizing its used commands

    • sf hardis:packagexml:append
    • sf hardis:packagexml:remove
    • sf hardis:project:clean:filter-xml-content
  • Remove npm dependencies (some of them not maintained anymore)

    • @adobe/node-fetch-retry
    • @amplitude/node
    • @keyv/redis
    • @oclif/command
    • @oclif/config
    • @oclif/errors
    • @salesforce/command
    • @salesforce/ts-types
    • find-package-json
    • node-fetch
  • Remove not used keyValueStores to keep only Salesforce one

[4.53.0] 2024-08-20

[4.52.0] 2024-08-02

  • Minimum Node version is now 20
  • hardis:work:save : Improve performances when cleaning project files
  • Update Pipelines to add NOTIF_EMAIL_ADDRESS where it was missing
  • Remove MS_TEAMS_WEBHOOK_URL from all pipelines as MsTeamsProvider is deprecated (use EmailProvider instead)
  • Remove some useless code in EmailProvider
  • Replace glob-promise by glob package

[4.51.0] 2024-08-01

  • Deprecate Microsoft Teams Web Hooks notifications
  • Handle bug when a branch .sfdx-hardis.yml config file is empty
  • Upgrade default API version to 61
  • Additional log when generating manifest package.xml from org
  • Add error tip: Network issue (ECONNABORTED, ECONNRESET)

[4.50.1] 2024-07-29

  • Fix report file name of hardis:org:monitor:limits
  • Fix crash when GitProvider has been wrongly configured, and display information message

[4.50.0] 2024-07-29

  • Add message in case of deployment check passing thanks to testCoverageNotBlocking: true
  • hardis:org:diagnose:legacyapi : Fix display error declared in bug #652
  • Run legacy api detection daily with monitoring, as logs remain only 24h

[4.49.1] 2024-07-27

  • Fix 4.49.0 (deployment error handler bug)

[4.49.0] 2024-07-27

  • New command hardis:org:diagnose:instanceupgrade to get information about Org, its Salesforce instance and its next Platform Upgrade date. Sends notifications to Grafana if activated.
  • Refactor Monitoring checks documentation
  • hardis:project:deploy:sources:dx: After a failed Quick Deploy, use run with NoTestRun to improve perfs as we had previously succeeded to simulate the deployment

[4.48.1] 2024-07-26

[4.48.0] 2024-07-26

[4.47.0] 2024-07-22

  • Update emojis in prompts to make them more visible
  • Replace sfdx force:org:open by sf org open

[4.46.0] 2024-07-18

  • Allow hardis:project:deploy:source:dx notifications to work if the deployment is performed before the Pull Request is merged (see Exotic Use Case)
    • Activate such mode with variable SFDX_HARDIS_DEPLOY_BEFORE_MERGE
  • Add link to Conga Article
  • Add Conga article in README list of articles

[4.45.0] 2024-07-14

  • New command hardis:org:files:import to import files exported using hardis:org:files:export
  • Template management for SFDMU & files import/export
  • Update JSON schema to add v60 in autoCleanTypes

[4.44.3] 2024-07-12

  • Set GITLAB_API_REJECT_UNAUTHORIZED=false to avoid SSH rejections from Gitlab API

[4.44.2] 2024-07-09

  • New config skipCodeCoverage, to use only in branch scoped config to not check for code coverage (Use with caution because won't work when deploying to production !)

[4.44.1] 2024-07-08

  • QuickFix testlevel default value

[4.44.0] 2024-07-08

  • New JSON schema properties, to use ONLY on branch scoped config and with caution !
    • testLevel, to override the test level, with RunRepositoryTests for example
    • runtests, to override the list of tests to run, with ^(?!FLI|MyPrefix).* for example
    • testCoverageNotBlocking , to make code coverage not blocking on a branch
  • Take in account testCoverageNotBlocking in deployment checks and PR summaries

[4.43.0] 2024-07-06

  • hardis:work:save : Update prompt messages
  • Remove direct URL to target org in case of deployment failure
  • AI Deployment Assistant: Fix identification of error messages
  • Add deployment tip "Condition missing reference"

[4.42.0] 2024-07-02

  • hardis:project:deploy:sources:dx : If testlevel=RunRepositoryTests, option runtests can contain a regular expression to keep only class names matching it. If not set, it will run all test classes found in the repo
  • Reduce size of README
  • Update documentation about Authentication & Security
  • Add missing variables in workflows

[4.41.0] 2024-06-29

  • AI Deployment Assistant: Integrate with OpenAI ChatGPT to find solutions to deployment issues
  • Monitoring: Default 120mn timeout in Azure Workflow
  • Backup: Replace colon in package file name
  • New command hardis:project:fix:profiletabs to add / hide tabs directly in XML when such info is not retrieved by Salesforce CLI

[4.40.2] 2024-06-18

  • hardis:org:diagnose:audittrail: Define new not suspect actions
    • Currency
      • updateddatedexchrate
    • Custom App Licenses
      • addeduserpackagelicense
      • granteduserpackagelicense
    • Manage Users
      • unfrozeuser
    • Mobile Administration
      • assigneduserstomobileconfig
  • hardis:org:monitor:all: Define relevant items as weekly, not daily

[4.40.1] 2024-06-17

  • hardis:project:clean:minimizeprofiles: Allow to skip profiles refactoring using .sfdx-hardis.yml property skipMinimizeProfiles (can be useful for Experience Cloud profiles)

[4.40.0] 2024-06-13

  • Deployment tips: add missingDataCategoryGroup (no DataCategoryGroup named...)
  • handle commandsPreDeploy and commandPostDeploy to run custom command before and after deployments
    • If the commands are not the same depending on the target org, you can define them into config/branches/.sfdx-hardis-BRANCHNAME.yml instead of root config/.sfdx-hardis.yml

Example:

commandsPreDeploy:
  - id: knowledgeUnassign
    label: Remove KnowledgeUser right to the user who has it
    command: sf data update record --sobject User --where "UserPermissionsKnowledgeUser='true'" --values "UserPermissionsKnowledgeUser='false'" --json
  - id: knowledgeAssign
    label: Assign Knowledge user to the deployment user
    command: sf data update record --sobject User --where "Username='deploy.github@myclient.com'" --values "UserPermissionsKnowledgeUser='true'" --json
commandsPostDeploy:
  - id: knowledgeUnassign
    label: Remove KnowledgeUser right to the user who has it
    command: sf data update record --sobject User --where "UserPermissionsKnowledgeUser='true'" --values "UserPermissionsKnowledgeUser='false'" --json
  - id: knowledgeAssign
    label: Assign Knowledge user to the deployment user
    command: sf data update record --sobject User --where "Username='admin.user@myclient.com'" --values "UserPermissionsKnowledgeUser='true'" --json

[4.39.0] 2024-06-13

  • hardis:clean:references: new option v60
    • Remove v61 userPermissions that do not exist in v60

[4.38.2] 2024-06-06

  • Fix npm packages installation for GitHub monitoring to avoid random failures
  • Add _notifKey in Grafana notifications to be able to build unique alerts

[4.38.1] 2024-06-04

  • Add installed packages in monitoring backup logs

[4.38.0] 2024-06-03

  • New command hardis:org:diagnose:licenses to send used licenses to monitoring logs like Grafana
  • hardis:org:diagnose:audittrail: Exclude some Add / Remove users from a Territory events from Suspect Audit Trail actions
  • hardis:org:diagnose:unusedusers: Fix metric name for ActiveUsers

[4.37.5] 2024-05-31

  • hardis:org:purge:flow: Bulkify Flow deletion to improve performances

[4.37.4] 2024-05-28

  • Fix pipeline and instructions for Monitoring using GitHub Actions

[4.37.3] 2024-05-28

  • Revert to previous dashboards version to avoid issues with use of panel
  • Add debug capabilities for advanced cases (call with DEBUG=sfdxhardis)

[4.37.2] 2024-05-27

  • Half-automate the retrieve of default Grafana Dashboards
  • Fix ticketing collection on PR with GitHub integration
  • Fix monitoring bitbucket pipeline so the git pull works

[4.37.1] 2024-05-26

  • Truncate logs sent to Grafana Loki in case they are too big, to avoid they are not taken in account
    • Default truncate size: 500
  • Add flowPositions in .sfdx-hardis.yml JSON Schema
  • Add Grafana Cloud setup tutorial

[4.37.0] 2024-05-21

  • New command hardis:project:clean:flowpositions to replace positions by 0 on AutoLayout Flows, in order to diminish conflicts
    • Can be automated at each hardis:work:save if flowPositions added in .sfdx-hardis.yml autoCleanTypes property

[4.36.0] 2024-05-19

  • Update hardis:org:diagnose:unusedusers so it can also extract active users on a time period, thanks to option --returnactiveusers
  • Add ACTIVE_USERS in weekly monitoring jobs
  • Add JIRA variables to GitHub Workflows

[4.35.2] 2024-05-15

  • Update monitoring default Gitlab, Azure & GitHub Workflows

[4.35.1] 2024-05-14

  • Fix unused users notification identifier

[4.35.0] 2024-05-14

  • New command sfdx hardis:org:diagnose:unusedusers to find users that don't use their license !

[4.34.1] 2024-05-13

  • Notifications org identifier: replace dot by __ to avoid mess with Grafana label filters

[4.34.0] 2024-05-12

  • NotifProvider
    • Updates to also send metrics to Prometheus
    • NOTIFICATIONS_DISABLE is now not applicable to ApiProvider who always sends notifs

[4.33.2] 2024-05-06

  • hardis:org:test:apex : Always send coverageValue, coverageTarget and the list of failing classes to API logs

[4.33.1] 2024-05-05

  • Api logs enhancements:
    • Add severity and severityIcon in all log elements details
    • Add dateTime property (ISO format) in all API logs
  • Remove deprecated way to call MsTeams notifications
  • hardis:org:monitor:limits : Fix bug when some values are not returned

[4.33.0] 2024-05-04

  • New notifications provider: ApiProvider (beta), that allows to send notifications via HTTP/JSON to remote endpoints, like Grafana Loki, but also any custom one
  • New notification severity level: log, to send notifications via ApiProvider even when there is no detected issue
  • Update all existing notifications to add detailed log lines and additional log data
  • hardis:org:diagnose:audittrail: Fix lastndays not taken in account in some contexts
  • Complete refactoring of hardis:org:test:apex (same behavior but much organized code)
  • Notifications: Display success logs in blue
  • New monitoring command: sfdx hardis:org:monitor:limits to alert in case org limits are over 50% or 75% usage
  • Fix gitlab-ci-config.yml: More restrictive regex for deployment branches

[4.32.2] 2024-05-01

  • Fix GitHub Actions check deploy workflow

[4.32.1] 2024-04-30

  • hardis:work:new : Replace all non alphanumeric characters in new git branch name

[4.32.0] 2024-04-24

  • Remove useless close WebSocket issue display

[4.31.2] 2024-04-10

  • QuickFix Monitoring setup

[4.31.1] 2024-04-10

  • Fix json output (remove other console logs that are not supposed to be here)

[4.31.0] 2024-04-10

  • Add native Jenkins integration with Jenkinsfile for CI/CD Pipeline
  • Update default pipelines to add JIRA variables
  • Better handle of Jira API issues

[4.30.0] 2024-04-02

  • Fix default package-no-overwrite.xml (typos on NamesCredential & RemoteSiteSetting)
  • Add links to FAQ in documentation
  • Add two new PMD rules for quality pmd-ruleset-high.xml and pmd-ruleset-medium.xml

[4.29.0] 2024-03-25

  • Handle manifest/preDestructiveChanges.xml to delete items before deployments if necessary
  • Update documentation about integrations
  • Upgrade dependencies

[4.28.4] 2024-03-11

  • Allow to override default scratch org duration using .sfdx-hardis.yml property scratchOrgDuration

[4.28.3] 2024-03-05

  • Audit trail check: Ignore change phone number events

[4.28.2] 2024-02-27

  • Fix wrong upgrade version notification
  • Update PMD bypassing rules doc

[4.28.1] 2024-02-26

  • Fix issue when using email notifications with multiple recipients

[4.28.0] 2024-02-21

  • Minimum Node.js version is now v18
  • New notifications channel: EmailProvider (use variable NOTIF_EMAIL_ADDRESS that can contain a comma-separated list of e-mail addresses)
  • Update existing call to notifications to add attached files when Email notif channel is active
  • Audit trail suspect actions: add the number of occurences for each suspect action found
  • Add more not suspect actions: dkimRotationPreparationSuccessful,createdReportJob,deletedReportJob,DeleteSandbox
  • Get tickets info: also check in ticket ids in branch name
  • Remove force config restDeploy=true
  • Rename Provided by sfdx-hardis into Powered by sfdx-hardis

[4.27.1] 2024-02-10

  • Skip post-deployment notifications if nothing was deployed in delta mode
  • Simplify JIRA post deployment error output

[4.27.0] 2024-02-09

  • Skip legacy notifications if NotifProvider has been used
  • Allow to send warning, error and critical notifications to secondary Slack or Teams channel, using variables SLACK_CHANNEL_ID_ERRORS_WARNINGS or MS_TEAMS_WEBHOOK_URL_ERRORS_WARNINGS

[4.26.3] 2024-02-02

  • Add bash to sfdx-hardis docker image

[4.26.2] 2024-02-01

  • Display warning message when failed to upload connected app
  • Update documentation about how to work on a dev sandbox / scratch org

[4.26.1] 2024-01-31

[4.26.0] 2024-01-27

  • Detect JIRA tickets even if there is only their identifiers in commits / PR text (see Documentation)
  • Fix PR comment ticket URL when detail has not been found on server
  • Monitoring: run non-critical commands only weekly by default (on saturdays)

[4.25.1] 2024-01-18

  • Fix Microsoft Teams notifications formatting

[4.25.0] 2024-01-15

  • Integration with Azure Boards (Work Items) ticketing system
    • Enrich MR/PR comments by adding work items references and links
    • Enrich notifications comments by adding work items references and links
    • Post a comment and a tag on Azure Work Items when they are deployed in a major org
  • Enhance JIRA integration by posting labels once an issue is deployed in a major org

[4.24.1] 2024-01-11

  • Improve display of Microsoft Teams notifications

[4.24.0] 2024-01-09

  • Add generic ticketing provider, that can identify any ticket references using:
    • GENERIC_TICKETING_PROVIDER_REGEX (Example for EasyVista: ([R|I][0-9]+-[0-9]+))
    • GENERIC_TICKETING_PROVIDER_URL_BUILDER (Example for EasyVista: https://instance.easyvista.com/index.php?ticket={REF})

[4.23.3] 2023-12-28

  • hardis:org:purge:flow: Ignore managed flows - Fixes #532
  • hardis:work:new prevent parenthesis in branch name - Fixes #481

[4.23.2] 2023-12-25

  • Catch errors when a JIRA comment has not been posted
  • Simplify package-no-overwrite.xml management logs

[4.23.1] 2023-12-25

  • Handle case when tickets have no content

[4.23.0] 2023-12-25

  • Use jira-client package instead of jira.js to be compliant not only with JIRA Cloud, but also with Jira on-premise
  • Improve delta logs

[4.22.0] 2023-12-24

  • Add more info in pull requests comments
    • Commits summary
    • Jira tickets
    • Manual Actions
  • Integration with JIRA
    • Collect tickets info JIRA server
    • Post comment on tickets once they are deployed

[4.21.6] 2023-12-22

  • New task: Ask confirmation before updating selected sandbox
  • Deployment tips
    • Visibility is not allowed for type
  • Audit trail, ignore more events
    • Holidays: holiday_insert
    • loginasgrantedtopartnerbt

[4.21.5] 2023-12-14

  • hardis:org:diagnose:audittrail
    • Display user name in logs & notifications
    • Add new excluded actions: changedemail, changedsenderemail, queueMembership, enableSIQUserNonEAC

[4.21.4] 2023-12-12

  • Fix the output column in the metadata status report to distinguish between inactive flows and validation rules identified in the source

[4.21.3] 2023-12-08

  • Add more variables in default azure-pipelines.yml monitoring
  • Fix output file name of inactive metadatas audit

[4.21.2] 2023-12-08

  • Downgrade base docker image to alpine:3.18

[4.21.1] 2023-12-08

  • Update Azure Pipelines workflows to add more variables (+ error message giving this list of variables)
  • Fix notifs from Azure when spaces in url
  • Fix monitoring job on Azure
  • Add link to troubleshooting page if backup fails
  • Handle notification message when there is no apex in the project
  • Do not write report log when there are no differences during monitoring backup step
  • Do not try to post PR comments if not in check deploy job
  • Check unused licenses: fix crash when no permission set group assignments
  • Fix URL to Azure Pull Requests
  • Fix display name of PR author on Azure

[4.21.0] 2023-12-06

  • hardis:lint:access: Add feature in access command to verify if an object permission exist twice or more in the same permission set
  • hardis:org:monitor:backup: Allow to exclude more metadata types using env variable MONITORING_BACKUP_SKIP_METADATA_TYPES (example: `MONITORING_BACKUP_SKIP_METADATA_TYPES=CustomLabel,StaticResource,Translation`)
  • When prompt for login, Suggest custom login URL as first choice by default
  • CICD: Update default gitlab-ci-config.yml
  • Configure Org CI Auth: Do not prevent to use main or master as production branch

[4.20.1] 2023-12-04

  • Handle errors while calling monitoring commands
  • Increase jsforce Bulk API Timeout (60 seconds)
  • Set default Bulk Query retries to 3 attempts

[4.20.0] 2023-12-04

  • Add feature in metadatastatus command to verify if a validation rule is inactive in the source
  • hardis:lint:metadatastatus
    • Check inactive validation rules
    • Add js documentation
  • Monitoring: Fix crash when a package name contains a slash

[4.19.1] 2023-12-03

  • Output CSV mirror XLS files reports in a xls folder for easier browsing
  • hardis:org:diagnose:unusedlicenses
    • Add more Profile & Permission Set Licenses relationships
    • Handle special cases where license is not stored on the permission set, like Sales User !

[4.19.0] 2023-12-02

  • New command sfdx hardis:org:diagnose:unusedlicenses to detect unused Permission Set Licenses (that you pay for anyway !)

[4.18.3] 2023-11-29

  • Improve test cases notification
  • Enhance monitoring documentation with more descriptions and screenshots

[4.18.2] 2023-11-29

  • hardis:work:save enhancements
    • Display more output during cleaning jobs
    • Keep userPermissions in Profiles when they are defined to false

[4.18.1] 2023-11-29

  • Improve backup notifications display

[4.18.0] 2023-11-29

  • Delta deployments is no more beta but Generally available
  • Org Monitoring is no more beta but Generally available
  • Generate CSV reports also in XLSX format for easier opening

[4.17.1] 2023-11-28

  • Generate CSV output for hardis:org:monitor:backup
  • Refactor git detection of created/updated/deleted files

[4.17.0] 2023-11-28

  • hardis:org:backup: Monitor installed packages
  • hardis:org:diagnose:audittrail: Add more ignored events
    • Email Administration: dkimRotationSuccessful
    • Manage Users: PermSetGroupAssign
    • Manage Users: PermSetGroupUnassign
  • Complete factorization of notification related methods
  • Do not remove applicationVisibilities and recordTypeVisibilities from Profiles if they are defined to false (allow to hide applications)

[4.16.1] 2023-11-27

  • Core: Factorize CSV generation

[4.16.0] 2023-11-27

  • Allow to run commands but disable notifications, using NOTIFICATIONS_DISABLE env var or notificationsDisable .sfdx-hardis.yml property.
  • Update JSON schema to add notificationsDisable and monitoringDisable properties

[4.15.1] 2023-11-26

  • Improve notifs display with hardis:lint:access

[4.15.0] 2023-11-24

  • Allow to disable not monitoring checks using monitoringDisable config file property, or MONITORING_DISABLE env var
  • Add new feature to identify custom fields without description
    • hardis:lint:missingattributes : New command to identify custom field without description
  • Add new feature to identify custom metadata (flows) inactive in project
    • hardis:lint:metadatastatus : New command to identify custom metadata (Labels and custom permissions) not used in source code
  • Rework generate csv file : generateReportPath and generateCsvFile
  • Update monitoring and slack documentation
  • Fix slack, teams & Azure notifications

[4.14.0] 2023-11-23

  • Add new feature to identify custom metadata (Labels and custom permissions) not used in source code
  • hardis:lint:unusedmetadata : New command to identify custom metadata (Labels and custom permissions) not used in source code
  • Add two function getNotificationButtons and getBranchMarkdown in notifUtils.ts class to factorize code
  • Video explaining how to setup sfdx-hardis monitoring
  • Improve notifications display of lists

[4.13.4] 2023-11-22

  • Upgrade ms-teams-webhook library so it works again !
  • hardis:org:diagnose:audittrail: Add changedmanager to not suspect setup actions

[4.13.2] 2023-11-21

  • hardis:lint:access: Do not display empty metadata types in notification.
  • hardis:work:new: Improve prompt messages when asked if you want to refresh your sandbox

[4.13.1] 2023-11-21

  • hardis:lint:access
    • Exclude custom settings, custom metadata and data cloud from fields access check
  • hardis:org:diagnose:audittrail
    • Add changedUserEmailVerifiedStatusUnverified and useremailchangesent to not suspect setup actions
  • Output info in case Ms Teams notification failed to be sent

[4.13.0] 2023-11-19

  • Monitoring
    • Display package.xml content in logs when backup failed
    • Update default package-skip-items.xml
    • Call hardis:lint:access by default
    • Handle empty sections
  • hardis:org:diagnose:audittrail enhancements:
    • Add PerSetUnassign in not suspect monitored actions in Setup Audit Trail
    • Allow to append more allowed Setup Audit Trail sections & actions using .sfdx-hardis.yml property monitoringAllowedSectionsActions
  • hardis:lint:access enhancements:
    • Exclude required fields and MasterDetails, that can not be defined on Permission Sets
    • Output report file
    • Send slack notification
    • Add it by default in the monitoring commands
  • Doc
    • Update contributing infos (use sf plugins link)
  • hardis:files:export : Make the command compliant with Email attachments

[4.12.2] 2023-11-15

  • Add user prompts for setup audit trail monitoring in interactive mode

[4.12.1] 2023-11-15

  • Allow to exclude more usernames from monitoring using .sfdx-hardis.yml property monitoringExcludeUsernames

[4.12.0] 2023-11-14

  • New command sfdx hardis:org:diagnose:audittrail to detect suspect actions in major orgs
    • Run by default in org monitoring
  • Fix notifications bulletpoints
  • Fix Gitlab provider token collections when in monitoring mode

[4.11.0] 2023-11-14

  • If QuickDeploy failed, by default do not use delta for a deployment after a merge between a minor and a major branch
  • Allow to tweak delta deployments configuration (but it's really better to use default opinionated default config !)

[4.10.3] 2023-11-12

  • Allow to configure monitoring on deployment repositories (Fix #477)
  • Forbid to configure CI authentication on main or master branch
  • Do not send legacy API notifications when there are no issues (Fix #478)
  • Upgrade dependencies

[4.10.2] 2023-11-07

  • If you want to force the use full deployment on a delta project Pull Request/ Merge Request, add nodelta in your latest commit title or text.
  • Display FULL / DELTA / Quick Deploy info at the bottom of the logs.
  • sfdx hardis:org:retrieve:packageconfig: Do not replace Ids when updating the .sfdx-hardis.yml list of packages using packages listed from an org

[4.10.1] 2023-11-06

  • Improve delta display in logs
  • Display Quick Deploy icon in slack notifications
  • Update Azure Pipelines default pipelines for delta deployments compliance
  • Update slack integration documentation
  • Add tutorials for authentication configuration on CI/CD servers

[4.10.O] 2023-11-04

[4.9.2] 2023-10-31

  • Improve GitHub monitoring Workflow
  • Enhance monitoring documentation

[4.9.1] 2023-10-31

  • New deployment error tips:
    • Invalid custom summary formula definition
  • Add artifacts config on bitbucket-pipelines.yml
  • Add more comments in Monitoring workflows

[4.9.0] 2023-10-30

  • Refactor Monitoring configuration and execution (beta)
    • If you already have a monitoring v1 repository, deprecate it and create a new one with the new monitoring setup and pipelines
    • Send slack notifications
      • Latest updates detected in org
      • Failing apex tests, or insufficient code coverage
      • Deprecated API calls detected
    • Full setup documentation
      • GitHub Actions
      • Gitlab CI
      • Azure Pipelines
      • Bitbucket Pipelines
    • Totally rewritten command sfdx hardis:org:configure:monitoring
    • New command sfdx hardis:org:monitor:backup
    • New command sfdx hardis:org:monitor:all
  • Simplify sfdx hardis:project:configure:auth (Configure Org CI Authentication)
  • Disable auto-update for .gitignore & .forceignore
  • Improve documentation related to pull and commit

[4.8.1] 2023-10-28

  • Catch "Cannot start the OAuth redirect server on port 1717" and give instructions to user to kill the process

[4.8.0] 2023-10-25

  • Allow to use Device login for Code Builder compatibility
  • New option to clear cache if an authenticated org does not appear in the choices

[4.7.0] 2023-10-24

  • hardis:org:files:export: New configuration available to export files: outputFileNameFormat, with available values:
    • title (default)
    • title_id
    • id_title
    • id

[4.6.6] 2023-10-20

  • Fix crash when converting orgCoverage to string

[4.6.5] 2023-10-17

[4.6.4] 2023-09-28

  • hardis:work:save : Fix issue when there is an empty commit because of pre-commit hooks

[4.6.3] 2023-09-27

[4.6.2] 2023-09-26

  • Fix return code for wrapper commands force:source:deploy, force:source:push and force:mdapi:deploy
  • Fix --skipauth not taken in account with @salesforce/cli
  • Fixed PR coverage to use float over string

[4.6.1] 2023-09-26

  • Fix auth issue with force:source & force:mdapi wrapper sfdx-hardis commands

[4.6.0] 2023-09-20

  • Native BitBucket CI/CD Pipeline for PR deployment checks and deployments to major orgs after merge

    • PR comments are not implemented yet but BitBucket can already be used for production
  • hardis:project:deploy:dx enhancements:

    • Added new option --testlevel RunRepositoryTests which will dynamically detect all GIT repository test classes and runs the deployment with found tests. This will speed up the validation/deployment on cases where GIT repository module contains subset of all tests found in the org
    • Added --runtests support in order to pass certain APEX test classes when --testlevel RunSpecifiedTests is used

[4.5.1] 2023-09-11

  • GitHub Integration: Fix Quick Deploy on Pull Requests

[4.5.0] 2023-09-11

  • GitHub Integration: Implement automated comments & Quick Deploy on Pull Requests

[4.4.0] 2023-09-10

  • Make sfdx-hardis CI/CD Pipelines natively compliant with GitHub Actions , by @legetz
  • Create sfdx project: Change defaut first major branch name to integration (it was previously develop)
  • Update default API version to 58.0
  • Fix bug when user email is input the first time

[4.3.2] 2023-09-08

  • Updates new task, commit & save task documentation & screenshots

[4.3.1] 2023-09-07

  • Improve message when deploying metadata to org from local sfdx-hardis
  • Improve documentation to handle merge requests and display links at the end of hardis:work:save

[4.3.0] 2023-09-05

[4.2.5] 2023-09-05

[4.2.4] 2023-09-05

[4.2.3] 2023-09-04

  • Fix issues with Org monitoring when there are issues with Legacy API

[4.2.2] 2023-09-01

  • Fix upgrade warning message that should not appear when there is no upgrade to perform (detected by @mamasse19)

[4.2.1] 2023-08-30

  • Fix issue in sfdx commands wrapping following the use of @salesforce/cli
  • Config auth: phrases in bold when needing to relaunch the same command after org selection

[4.2.0] 2023-08-30

  • Simplify UX of hardis:project:configure:auth
  • Factorize prompting of email
  • Expire sfdx-hardis connected app token after 3h
  • Update documentation to add workaround in case there is a crash when retrieving all sources when initializing a DX project from an existing org
  • Add output to explain how to not use QuickDeploy if not wanted
  • Update Quick Deploy documentation

[4.1.2] 2023-08-24

  • When there is a crash in force📦installed:list , do not crash but return empty array and display an error message

[4.1.1] 2023-08-23

  • Improve error message when Git Provider not available
  • Update default azure-pipelines-deployment.yml to add mandatory variables for QuickDeploy
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
CI_SFDX_HARDIS_AZURE_TOKEN: $(System.AccessToken)
SYSTEM_COLLECTIONURI: $(System.CollectionUri)
BUILD_REPOSITORY_ID: $(Build.Repository.ID)

[4.1.0] 2023-08-22

  • Manage QuickDeploy when available (disable by defining env var SFDX_HARDIS_QUICK_DEPLOY=false)

[4.0.1] 2023-08-18

BREAKING CHANGE: If you are not using sfdx-hardis docker images, you need to manually update your CI/CD pipelines scripts using sfdx-hardis (gitlab-ci.yml, azure-pipelines.yml...) to:

  • replace sfdx-cli by @salesforce/cli
  • Add sf plugins install @salesforce/plugin-packaging just after npm install @salesforce/cli --global

Other upgrades

  • Upgrade CI/CD scripts and sfdx-hardis docker images from sfdx-cli to @salesforce/cli (sfdx commands remain called in background), and add @salesforce/plugin-packaging by default
  • Now also release sfdx-hardis images on GitHub Packages (ghcr.io)
  • Internal CI refactorization

[3.19.4] 2023-07-18

  • Add confirmation before resetting a git branch from VsCode command "Reset selected list of items to merge" (from an original idea of @derroman)

[3.19.3] 2023-07-10

  • Allow to disable red colors for force:source:deploy output using env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false

[3.19.2] 2023-07-06

  • Add packaging in online doc menu

[3.19.1] 2023-07-05

  • Add Hotfix management (BUILD vs RUN) in CI/CD documentation
  • Add Packaging & package version instructions in documentation

[3.19.0] 2023-07-03

  • Monitoring: Do not exclude custom fields on managed objects -ex: Remove Ns__Object__c.Ns__Field__c, but keep Ns__Object__c.Field__c

[3.18.1] 2023-06-13

  • QuickFix hardis:work:save when branch has not been created on the computer

[3.18.0] 2023-06-07

[3.17.0] 2022-05-30

  • New command hardis:org:generate:packagexmlfull to generate the full package.xml of a selected Salesforce org

[3.16.1] 2022-05-29

  • Also remove standard fields when running hardis:project:clean:standarditems
  • New Deployment tips
    • Wrong api Version of a Metadata
    • Unknown user
  • Upgrade to MegaLinter v7

[3.16.0] 2022-05-24

  • New ENV variables to override default wait on retrieve/deploy/test commands
    • SFDX_RETRIEVE_WAIT_MINUTES
    • SFDX_DEPLOY_WAIT_MINUTES
    • SFDX_TEST_WAIT_MINUTES
  • Update default .forceignore content

[3.15.0] 2022-05-11

  • Allow to define property availableProjects so when user clicks on New task (hardis:work:new), he/she is asked to select a project, that will be used to build the new git branch name
  • When creating new task, store the target branch so it is not prompted again when waiting to save/publish the task.

[3.14.2] 2022-05-03

  • More explicit text to ask user if he/she wants to update its selected sandbox while creating a new task
  • Do not ask to change default target branch if there are multiple available branches

[3.14.1] 2022-04-19

  • Allow to override the default deployment wait time (60) using variable SFDX_DEPLOY_WAIT_MINUTES
  • Update JSON schema to add customOrgColors

[3.14.0] 2022-04-14

  • Fix breaking change of sfdx-git-delta (many thanks @scolladon !)
  • Deploy tips
    • Invalid report type
    • Missing report
    • Update missing email template message
  • Add more space between error lines in PR/MR comments
  • Upgrade xml2js dependency
  • Update call to MegaLinter in Azure integrations

[3.13.1] 2022-04-12

  • Fix missing sfdx-git-delta in Docker image

[3.13.0] 2022-04-06

  • Change defaut package install mode to AdminsOnly
  • When minimizing Profiles, do not remove the personAccountDefault=true elements
  • Add new deploy tip: Error parsing file

[3.12.3] 2022-04-04

  • Do not add EmailTemplate and Flows as separate items in deploymentPlan, as metadata API now can handle their deployment with the rest of the sources
  • Add new deployTip: Missing multi-currency field
  • Update label when creating a new task using an existing sandbox

[3.12.2] 2022-03-30

  • New deployment error tips
    • SortOrder must be in sequential order from 1. (Duplicate Rules issue)
    • Invalid field:ACCOUNT.NAME in related list:RelatedContactAccountRelationList
  • Add more matchers for duplicate detector

[3.12.1] 2022-03-29

  • Fix false positive error in deployment job when there is no related Pull/Merge request

[3.12.0] 2022-03-23

[3.11.1] 2022-03-20

  • Better fix for root path issues (internal error)

[3.11.0] 2022-03-20

  • Fix root path issues (internal error)

[3.10.2] 2022-03-16

  • Fix sandbox check when calling hardis:source:push

[3.10.1] 2022-03-15

  • Quick fix Gitlab integration when there is no MR associated to a deployment

[3.10.0] 2022-03-15

  • Post a Gitlab Merge Request note when checking a deployment (beta)
    • Deployment errors with resolution tips
    • Failing test classes
    • Code coverage
  • Do not remove then restore lookup filters when source:push on a source-tracked sandbox
  • Catch and display errors when caused by internet connection issue

[3.9.2] 2022-03-09

  • Update deploy tips for error Unknown user permission: SendExternalEmailAvailable

[3.9.1] 2022-03-08

  • Improve logs for false positive after package installation failure
  • Remove useless and scary log after a successful login :)
  • Remove npm cache from Docker image

[3.9.0] 2022-03-08

  • New task with source tracked sandbox:
    • Do not allow to select a major org for dev or config
    • Open SF org if selected from the already connected list
    • Init packages only if defined in config
    • Enhance labels
  • Save task: Notify that once the merge request is merged, you must create a new task that will create a new branch
  • Improve login error messages
  • Use latest version of MegaLinter

[3.8.0] 2022-03-03

  • Manage deprecation of force:mdapi:legacy:deploy, replaced by force:mdapi:deploy
  • Update default packageDeployOnce.xml when creating a new project (related to Overwrite management)
  • Update CI/CD documentation
    • Initialize orgs
  • Update labels of prompts when creating a new sfdx-hardis project

[3.7.1] 2022-02-27

[3.7.0] 2022-02-27

[3.6.0] 2022-02-23

  • Add sfdx sources to monitoring for better readability
  • Change example of email addresses for prompts
  • Update CI/CD recommendations in documentation

[3.5.0] 2022-02-22

  • Update default overwrite config (packageDeployOnce.xml)
  • Setup CI: Define default Azure pipelines YML files
  • Fix notification logs for Azure Pipelines

[3.4.0] 2022-02-21

[3.3.2] 2022-02-17

  • Fix default monitoring for Azure pipelines
  • Update CI documentation (Azure)

[3.3.1] 2022-02-16

  • Fix check of newer package installed

[3.3.0] 2022-02-14

  • Compliance of monitoring setup with Azure Pipelines
  • hardis:org:retrieve:source:metadata enhancements
    • new option --includemanaged, disabled by default, to avoid having too many items to retrieve during monitoring job
    • allow to force monitoring additional tasks using env var SFDX_HARDIS_MONITORING set to "true"

[3.2.0] 2022-02-10

  • Fix issue when logging to a new org during command hardis:source:retrieve
  • Implement check of code coverage when calling sfdx hardis:project:deploy:sources:dx --check
    • 75% minimum by default, overridable in property apexTestsMinCoverageOrgWide in .sfdx-hardis.yml, or using env var APEX_TESTS_MIN_COVERAGE_ORG_WIDE
  • Add --checkcoverage option to wrapper command hardis:source:deploy
    • Example: sfdx hardis:source:deploy -x manifest/package.xml --wait 60 --ignorewarnings --testlevel RunLocalTests --postdestructivechanges ./manifest/destructiveChanges.xml --targetusername nicolas.vuillamy@cloudity.com --checkonly --checkcoverage --verbose --coverageformatters json-summary

[3.1.0] 2022-02-07

  • Reset local sfdx tracking when reusing a sandbox for a new task

[3.0.0] 2022-02-07

  • Breaking change: SFDX_HARDIS_DEPLOY_IGNORE_SPLIT_PACKAGES is now "true" by default. If you want to apply the deploymentPlan in .sfdx-hardis, you need to define variable SFDX_HARDIS_DEPLOY_IGNORE_SPLIT_PACKAGES="false"

[2.100.0] 2022-02-07

  • hardis:work:new:: When creating a new task and using a source-tracked sandbox, ask user to push sources, assign permission sets and load data to initialize it.
  • Add explicit error message when scratch org creation is caused by a limit reach
  • Update default API version to 56.0
  • Improve labels when prompting to select an org
  • Update CI/CD documentation

[2.99.1] 2022-01-31

  • Fix hardis:project:clean:hiddenitems when multiple files in the same folder match the same glob pattern
  • Update documentation, fix typos and dead links

[2.99.0] 2022-01-30

  • Replace prompts library by inquirer, because prompts is buggy
  • Dockerfile: Workaround for https://github.com/forcedotcom/salesforcedx-apex/issues/213 (force:apex:test:run with code coverage crashing on some Gitlab runners with Invalid time value)
  • Allow to override the proposed branch names when calling hardis:work:new, using property branchPrefixChoices
  • hardis:project:clean:hiddenitems: Also clean LWC with hidden content
  • Add yarn in dockerfile

[2.98.1] 2022-01-23

[2.98.0] 2022-01-23

  • Documentation: Add CI/CD user guide and release manager guide, available at https://sfdx-hardis.cloudity.com/salesforce-ci-cd-home/
  • New .sfdx-hardis.yml config property allowedOrgTypes, allowing to define the type(s) or org that can be used for implementation: (sandbox and/or scratch)

[2.97.3] 2022-11-30

  • QuickFix System.debug removal

[2.97.2] 2022-11-30

  • QuickFix

[2.97.1] 2022-11-30

  • QuickFix hardis:lint:access

[2.97.0] 2022-11-30

  • New command hardis:lint:access to analyze of items in sources are not present within profiles and/or permission sets

[2.96.1] 2022-11-17

  • Fix error when assigning already existing PS
  • Update default CI config

[2.96.0] 2022-11-09

  • Replace sfdx force:package:install with sfdx force:package:beta:install
  • Do not cause deployment to fail when a deploying an older managed package version
    • Instead, deployment will assume the newer version meets the requirement
  • hardis:scratch:create : Avoid error in case of already existing assignment of PermissionSet SfdxHardisDeferSharingRecalc
  • Update Node.js minimum version to 16.x

[2.95.2] 2022-10-19

  • Replace use of sfpowerkit by default command sfdx force:source:manifest:create
  • Manage cache for listing orgs
  • Update hardis📦version:create to allow to
    • install it later on an org
    • immediately delete it
  • New command hardis:project:metadata:findduplicates to detect when git messed during an automated merging of conflicts
  • Factorize check of sfdx project existence
  • Fix default gitlab-ci default pipeline
  • Replace supportsDevhubUsername by requiresDevhubUsername in command classes when necessary
  • Add parameters skipauth and websocket on sfdx hardis:project:metadata:duplicate
  • Add missing parameter skipauth on sfdx hardis:package:install

[2.94.3] 2022-09-15

  • Automate SSL certificate generation + force:source:deploy replaced by force:source:legacy:deploy

[2.94.2] 2022-09-09

[2.94.1] 2022-09-01

  • Lock sfpowerkit dependency to 4.2.13 to avoid error caused by deprecation of sfpowerkit:org:build:manifest

[2.94.0] 2022-08-31

  • Update documentation to initialize scratch org
  • Update JSON schema to add scratchOrgInitApexScripts
  • Fix execution of scripts defined in scratchOrgInitApexScripts

[2.93.0] 2022-08-02

  • Fix handling of new sfdx error format so we can again identify deployment tips
  • New deployment tips:
    • Cannot update a field to a Summary from something else

[2.92.0] 2022-07-29

  • New command hardis:org:retrieve:source:analytics to retrieve all analytics (CRM Analytics/TCRM) sources
  • New deployment tips (Wave analytics)
  • Fix writePackageXml method when there is not an existing file

[2.91.0] 2022-07-15

  • Fix issue when force:source command wrappers arguments contain spaces (#269))
  • Upgrade MegaLinter to v6
  • Upgrade yarn dependencies

[2.90.0] 2022-06-24

  • Events to open generated files when called from VsCode SFDX Hardis
  • New deployTips

[2.89.3] 2022-06-21

  • Fix exported file extension (#266)

[2.89.2] 2022-06-17

  • Build full manifest using sfpowerkit excluding ManagedContentTypeBundle because it is not managed by retrieve

[2.89.1] 2022-06-16

  • Auto-update gitlab-ci.yml only if variable AUTO_UPDATE_GITLAB_CI_YML is set

[2.89.0] 2022-06-12

  • hardis📦mergexml: New command to merge package.Xml files

[2.88.0] 2022-06-11

  • hardis:project:clean:systemdebug: New command to comment or remove all System.debug from apex and triggers

[2.87.5] 2022-05-18

  • toml2csv: Allow hardcoded values for concat
  • Refactor internal CI to use 7.148.3 as recommended version

[2.87.4] 2022-05-18

  • Fix configure org CI
  • Hide auth info from console logs
  • Fix Bulk Update job not closed

[2.87.3] 2022-05-12

  • Auto-update .gitlab-ci.yml if a newest version exists

[2.87.2] 2022-05-11

  • Refactor report directory management

[2.87.1] 2022-05-11

  • Fix monitoring default pipeline

[2.87.0] 2022-05-08

  • New command hardis:project:clean:xml allowing to automate the manual cleaning in the XML files using glob pattern and xPath
  • Reorganize work:save command code + add auto mode
  • Call Save command from Retrofit command to update package.xml files and make sure sources have been cleaned

[2.86.1] 2022-05-06

  • hardis:work:new : Propose to reuse current scratch org when it is not in the local list
  • hardis:work:save : Propose to push git branch on server when it is still untracked

[2.86.0] 2022-05-03

  • New wrapper command: sfdx hardis:source:retrieve
  • Quickfix toml2csv

[2.85.2] 2022-05-02

  • Fix toml2csv error log
  • Deployment tips
    • Allow deployment with pending Apex Jobs
    • Update Can not find folder

[2.85.1] 2022-04-27

  • Enhance sfdx hardis:org:retrieve:sources:retrofit command + JSON schema updates

[2.85.0] 2022-04-27

  • Enhance sfdx hardis:org:retrieve:sources:retrofit command
  • Ad deployment tip: Invalid field in related list

[2.84.0] 2022-04-27

  • Update deployTips: improve unknown custom field message
  • New command sfdx hardis:doc:extract:permsetgroups to generate permission set groups documentation

[2.83.6] 2022-04-26

  • Fix hardis:work:save who sometimes forgot to ask to push commits

[2.83.5] 2022-04-24

  • Update deployment tips

[2.83.0] 2022-04-20

  • New deployment tips:
    • Not valid sharing model
  • Improve purge flows for manual users
  • Improve badwords detector
  • Open scratch org when reusing one
  • Hide prompt result when it contains sensitive information

[2.82.2] 2022-04-19

  • New deployTip: Can not change type due to existing data
  • Do not replace ListView Everything by Mine when we are just simulating deployment

[2.82.1] 2022-04-16

  • QuickFix platform compatibility for sfdx hardis:org:fix:listviewmine

[2.82.0] 2022-04-16

  • New command sfdx hardis:org:fix:listviewmine as a workaround to force:source:deploy not allowing ListView with scope Mine

[2.81.0] 2022-04-15

  • New property autoRetrieveWhenPull to always retrieve some sources when calling hardis:source:pull (useful when sfdx tracking forgets some updates)

[2.80.0] 2022-04-15

  • Simplify and document more hardis:work:new , hardis:work:pull and hardis:work:save
  • Open org in browser when fetched from scratch org pool
  • More deploymentTips
  • Add customPlugins definition in json schema

[2.79.0] 2022-04-10

  • New property extends in .sfdx-hardis.yml, to allow local config file to extend from remote file
  • Add customCommands definition in json schema

[2.78.4] 2022-04-09

  • Update documentation

[2.78.3] 2022-04-08

  • Add a retrofit command to retrieve changes made directly in an org

[2.78.2] 2022-04-08

  • Fix legacy API command display (#225)

[2.78.1] 2022-04-07

  • Fix CI & remove docker image with sfdx-cli@stable as it does not exists anymore

[2.78.0] 2022-04-07

  • New parameter --skipauth on all hardis commands, to allow the auth check when a default username is required (allows advanced users to improve performances)
  • Set user email when fetching a scratch org from scratch org pool

[2.77.2] 2022-04-07

  • Fix bug when subtracting a package.xml from another

[2.77.1] 2022-04-07

  • Fix error in packageDeployOnce.xml document (sfdx hardis:project:deploy:sources:dx)

[2.77.0] 2022-04-05

  • Generate deployment tips documentation
  • hardis:org:user:activateinvalid : new --profiles argument
  • Update MsTeams WebHooks ENV variables
    • MS_TEAMS_WEBHOOK_URL_CRITICAL
    • MS_TEAMS_WEBHOOK_URL_SEVERE
    • MS_TEAMS_WEBHOOK_URL_WARNING
    • MS_TEAMS_WEBHOOK_URL_INFO
  • Allow to install packages during deployment check using INSTALL_PACKAGES_DURING_CHECK_DEPLOY=true env variable
  • Enhance prompt org labels

[2.76.2] 2022-04-04

  • Improve activate invalid users commands (allow to select by profile(s))

[2.76.1] 2022-04-04

  • Improve activate invalid users commands

[2.76.0] 2022-04-03

  • New command sfdx hardis:org:user:activateinvalid to activate invalid emails in sandbox
  • Fix CI org authentication in case the default username is not the org that we want to configure
  • Bypass error with force:source:legacy:pull / push
  • hardis:work:save : Propose to manually commit files
  • Fix hardis:org:select alias & user config
  • Colorize command lines in logs
  • Enhance new task with sandbox (not fully stable yet)
  • New deployTips
    • Please choose a different name

[2.75.0] 2022-03-28

  • Property availableTargetBranches can be defined in .sfdx-hardis.yml to list the possible target branches for merge requests
  • fix hardis:work:save to propose a git push when the current branch is ahead of origin branch
  • New deployTips
    • XML item appears more than once

[2.74.2] 2022-03-26

  • Update legacy API detection labels

[2.74.1] 2022-03-25

  • Manage crash when retrieving metadatas from CI jobs

[2.74.0] 2022-03-24

  • Enhance hardis:work:save to request if the files has already been staged and committed
  • Deploy manifest and destructive change in the same sfdx force:source:deploy call thanks to new argument postdestructivechanges
  • More deployTips
  • Improve MsTeams notifications management

[2.73.0] 2022-03-21

  • Improve tips about how to fix deployments directly within error messages
  • Wrapper commands to display tips in error logs
    • force:source:deploy can be wrapped using hardis:source:deploy
    • force:source:push can be wrapped using hardis:source:push
    • force:mdapi:deploy can be wrapped using hardis:mdapi:deploy

[2.72.0] 2022-03-21

  • Include tips about how to fix deployments directly within error messages

[2.71.2] 2022-03-17

  • Update JSON schema for customCommands (used by VsCode SFDX Hardis)
  • New property for scratch org pool config: maxScratchOrgsNumberToCreateOnce (max number of scratch orgs to create during one CI job)

[2.71.0] 2022-03-15

  • New command hardis:org:data:delete to manage delete data workspaces of sfdmu
  • New command hardis:scratch:pool:reset to delete all scratch orgs from a scratch orgs pool (like when a new project-scratch-def is delivered)

[2.70.0] 2022-03-10

  • hardis:org:apex:test : allow command to succeed when no tests are present in the project, useful for new environments initialization

[2.69.0] 2022-03-02

  • Scratch org pool: add history (fetch,auth) on ActiveScratchOrg devhub record

[2.68.6] 2022-02-22

  • remove DEPLOY PROGRESS noisy lines from logs

[2.68.5] 2022-02-18

  • Update mkdocs
  • fix commit of files with spaces

[2.68.4] 2022-02-18

  • hardis📦install
    • Add -k, --installationkey CLI param and prompts user for it if not supplied

[2.68.3] 2022-02-18

  • Fix hardis📦version:promote --auto

[2.68.2] 2022-02-15

  • Fix minimize profiles command

[2.68.1] 2022-02-02

  • Allow property autoRemoveUserPermissions in .sfdx-hardis.yml to clean profiles
  • toml2csv:
    • Add concatComposite option for column
    • Add recordType option for column

[2.68.0] 2022-01-31

  • Do not create log files in the current directory if it is empty
  • More deployTips
  • Clean MDAPI output logs from progression lines
  • Add listViewMine in cleaning references
  • toml2csv updates

[2.67.1] 2022-01-20

  • Enhance documentation for hardis:scratch:pool:create command
  • Fixes and enhancements on toml2csv command

[2.67.0] 2022-01-18

  • hardis:misc:toml2csv enhancements (rename and copy files)
  • fix minimizing of profiles
  • new command hardis:project:clean:listview

[2.66.2] 2022-01-13

  • hardis:misc:toml2csv enhancements

[2.66.1] 2022-01-11

  • minimizeProfiles: do not remove userPermissions if profile is default Admin profile

[2.66.0] 2022-01-07

  • Check deployment with metadata project

[2.65.0] 2022-01-05

  • Fix contribution install by upgrading dependencies
  • Use soqlQuery method everywhere
  • Set devhub alias when available

[2.64.1] 2021-12-29

  • Update default apiVersion to 53.0
  • Option to not remove empty types when subtracting package.xml

[2.64.0] 2021-12-24

  • New command hardis:clean:minimizeprofiles
  • New deployTip duplicate-value-platform-action-id-list
  • Apply packageDeployOnce.xml and packageDeployOnChange.xml in all contexts
  • Package.xml mixing: fix wildcard <members>*</members> management
  • List metadatas of target org: complete with what sfpowerkit commands does not return (ListView,CustomLabel)

[2.63.0] 2021-12-21

  • New event message refreshPlugins (used by VsCodeSFDX Hardis)
  • Display Error message when unable to delete a temporary directory

[2.62.0] 2021-12-14

  • Fix hardis:work:save crash when rebuilding deploymentPlan
  • Fix XML indentation (#51). Can also be overridden by using env variable SFDX_XML_INDENT (ex: SFDX_INDENT=' ')

[2.61.0] 2021-12-02

  • Use same XML indentation than Salesforce (#51) (requires also upgrade of sfdx-essentials, using sfdx plugins:install sfdx-essentials)

[2.60.3] 2021-11-08

  • Fix hardis:source:pull when there are errors

[2.60.2] 2021-11-06

  • Allow to input URL to use to login

[2.60.1] 2021-11-05

  • Fix hardis:scratch:pool:view when DevHub authentication is expired

[2.60.0] 2021-11-03

  • Deployment failure: Tuning of error message + display of direct link to Deployment Status page in console logs
  • When not in CI, prompt for the org to use to simulate deployments

[2.59.0] 2021-11-03

  • (ALPHA,not really usable yet) Allow to use sandboxes for new task (create from production org, or clone from other sandbox)
  • Fixes about scratch org initialization and JWT auth configuration

[2.58.3] 2021-10-23

  • hardis:org:files:export: Fix file paths in logs

[2.58.2] 2021-10-18

  • org:user:freeze : Prevent to freeze all profiles and current user profile

[2.58.1] 2021-10-18

  • org:retrieve:sources:metadata : Manage locally defined remove-items-package.xml (that can handle wildcard members)

[2.58.0] 2021-10-16

  • org:retrieve:sources:metadata : Run apex tests and legacy api check if we are in CI and in a repository named with monitoring
  • Teams notifications for apex tests and legacy api failure

[2.57.2] 2021-10-13

  • hardis:org:files:export
    • Add file extension when missing
    • replace .snote by .txt
    • replace special characters in parent folder name and file name

[2.57.1] 2021-10-12

  • Retry when BULK API Query returns a timeout
  • hardis:org:files:export
    • Use node-fetch-retry for direct downloads (retry up to 30 seconds by default)
    • New argument --startchunknumber to start files extraction from a chunk position

[2.57.0] 2021-10-11

  • Make hardis:org:user:freeze and hardis:org:user:unfreeze can now handle large volume of users, using Bulk API

[2.56.0] 2021-10-10

  • Update auto-generated documentation to add a commands.md + its link in the menu

[2.55.3] 2021-10-05

  • When not in CI, disable auto-update of .gitignore and .forceignore files because of a prompt library issue. To enable it, define AUTO_UPDATE env variable to "true"

[2.55.2] 2021-10-03

[2.55.1] 2021-10-01

  • SFDX_HARDIS_DEBUG_ENV. If set to true, display env vars at startup

[2.55.0] 2021-10-01

  • Manage env var SFDX_HARDIS_DEPLOY_IGNORE_SPLIT_PACKAGES. If "true", package.xmls are not split with deploymentPlan

[2.54.0] 2021-09-27

  • Allow to override force:org:create waiting time using SCRATCH_ORG_WAIT en variable (default: 15mn)
  • hardis:org:select : new parameter --scratch to allow to list only scratch orgs related to current Dev Hub
  • hardis:org:retrieve:sources:dx2 : New parameter --template to use default package.xml files (ex: wave)
  • Scratch org pool: automatically delete too old ready-to-use scratch orgs
  • Deploy Tips
    • Wave deployment error

[2.53.1] 2021-09-14

  • Update Object deployed when configuring scratch org pool (replace Html by LongTextArea)

[2.53.0] 2021-09-14

  • Additional docker images, to use when stable and latest sfdx-cli versions arr broken
    • hardisgroupcom/sfdx-hardis:latest-sfdx-recommended
    • hardisgroupcom/sfdx-hardis:beta-sfdx-recommended
    • hardisgroupcom/sfdx-hardis:alpha-sfdx-recommended

[2.52.0] 2021-09-14

  • New command hardis:project:fix:v53flexipages to fix v53.0 broken ascending compatibility
  • New command hardis:project:audit:duplicatefiles to detect doubling files in wrong sfdx folders

[2.51.6] 2021-09-10

  • Take in account parameter --ignore-whitespace of sfdx-git-delta for packageOnChange.xml

[2.51.5] 2021-09-10

  • hardis:org:diagnose:legacyapi: Provide additional report with unique list of ips, hostnames (when available) , and number of calls
  • Fix hardis📦version:promote

[2.51.4] 2021-09-03

  • hardis:org:diagnose:legacyapi: Allow to override default output reportfile with --outputfile argument

[2.51.3] 2021-09-02

  • Improve authentication log + less cases when launching again the same command can be necessary
  • if you define forceRestDeploy: true in config, restDeploy: false won't be set automatically anymore

[2.51.2] 2021-08-31

  • Quick fixes hardis:doc:plugin:generate
    • Fix crash when there are no license & changelog

[2.51.1] 2021-08-31

  • Quick fixes hardis:doc:plugin:generate
    • Handle when command.title or command.description is empty
    • Add # Commands to the README.md truncate markers
  • Fix hardis:org:retrieve:sources:dx
    • Empty temp directories at the beginning of the command
    • Add ForecastingType in the list of ignored metadatas for conversion to sfdx sources

[2.51.0] 2021-08-31

  • Update hardis:doc:plugin:generate so main README part is displayed on doc index.md

[2.50.0] 2021-08-30

  • New commands to freeze users before deployment then unfreeze users after deployment
    • sfdx hardis:org:user:freeze
    • sfdx hardis:org:user:unfreeze

[2.49.1] 2021-08-30

  • QuickFix scratch org auth during CI

[2.49.0] 2021-08-30

  • Manage scratch org pools to enhance performances
    • Initialize configuration with hardis:scratch:pool:configure
    • Fetch a new scratch org from the pool when requesting creation of a new scratch org

[2.48.1] 2021-08-27

  • QuickFix hardis:org:files:export

[2.48.0] 2021-08-27

  • New command hardis:org:files:export to download all files (ContentVersion) attached to records (ex: Opportunity)
  • Generate text log file in hardis-report/commands when sfdx-hardis is not run from CI
  • hardis:org:diagnose:legacyapi : simpler logs

[2.47.3] 2021-08-23

  • hardis:org:diagnose:legacyapi: Add more summary and statistics

[2.47.2] 2021-08-23

  • Fix hardis:org:diagnose:legacyapi (display raw logs when CSV builder is crashing) , using papaparse instead of objects-to-csv package

[2.47.1] 2021-08-19

  • Use --permissivediff to call sfdx-git-delta if the argument is available
  • Manage env vars SKIP_PACKAGE_DEPLOY_ON_CHANGE and SKIP_PACKAGE_DEPLOY_ONCE . If set to true, related packageDeployOnChange.xml and packageDeployOnce.xml are ignored
  • Define locally method to remove package.xml from another, to improve performances

[2.47.0] 2021-08-19

  • New feature: use packageDeployOnChange.xml, to skip deployment of items that has not been updated since last update
  • Create docker images with sfdx-cli@stable version
    • alpha-sfdx-stable
    • beta-sfdx-stable
    • latest-sfdx-stable

[2.46.0] 2021-08-16

  • Allow to run git delta command on local updates
  • Update labels of hardis:data commands
  • New technical command: hardis:work:ws , to call VsCode Extension refresh from CLI

[2.45.0] 2021-08-15

  • Refactor hardis:org:diagnose:legacyapi with jsforce to handle more log entries
  • Do not display git branch -v in logs

[2.44.0] 2021-08-14

[2.43.1] 2021-07-23

  • Update deployTips
  • Update json schema

[2.43.0] 2021-07-22

  • Better split of elements during hardis:work:save
  • Display elapsed time for long running commands

[2.42.2] 2021-07-20

  • Use relative path for sfdmu data import/export

[2.42.1] 2021-07-19

  • Fix data import & export commands when spaces in folder names

[2.42.0] 2021-07-12

  • New command sfdx hardis:project:lint
  • Update .sfdx-hardis.yml configuration JsonSchema

[2.41.2] 2021-07-12

  • QuickFix case when title is not set (use first line of description)

[2.41.1] 2021-07-12

  • Quickfix default mkdocs.yml

[2.41.0] 2021-07-12

  • Add JSON Schema for .sfdx-hardis.yml configuration files
  • Automatic SFDX Plugin documentation generation for any SFDX Plugin

[2.40.0] 2021-07-08

  • hardis:scratch:create: Initialize data using SFDMU, if defined in .sfdx-hardis.json dataPackages property with importInScratchOrgs: true
    • Example
dataPackages:
  - dataPath: scripts/data/LightningSchedulerConfig
    importInScratchOrgs: true
  • Propose to update or not default target git branch
  • List target git branches if defined in .sfdx-hardis.json availableTargetBranches property
  • hardis:scratch:delete: Propose only scratch orgs related to currently selected Dev Hub
  • New command hardis:org:configure:data to initialize a SFDMU project, sfdx-hardis flavored
  • Display data package label & description, from SFDMU folder config.json properties sfdxHardisLabel and sfdxHardisDescription
  • hardis:org:data:import & hardis:org:data:import: Allow to select current org or another when running data import/export commands
  • Display Dev Hub username when listing orgs for selection

[2.31.1] 2021-07-02

  • hardis:scratch:delete : Display instanceUrl & last usage of scratch orgs displayed before deletion

[2.31.0] 2021-07-02

  • New command hardis:scratch:delete to delete scratch orgs locally referenced.

[2.30.1] 2021-06-30

  • hardis:org:connect : Propose user to open org in browser if not in CI

[2.30.0] 2021-06-30

  • Update hardis:org:retrieve:packageconfig so it allows to select an org, and to update sfdx-hardis configuration

[2.29.0] 2021-06-29

  • New command hardis:org:retrieve:sources:dx2 to assist call to force:source:retrieve using a package.xml file
  • Improve hardis:project:generate:gitdelta by allowing to select commits from their description
  • Use magenta to display config file updates

[2.28.0] 2021-06-23

  • CI: Check Docker image security with trivy
  • Avoid git error when development branch is updated

[2.27.1] 2021-06-21

  • Fix CountryCode when updating scratch org user. Default FR - France, can be updated with config defaultCountry and defaultCountryCode in .sfdx-hardis.yml

[2.27.0] 2021-06-20

  • Clean Lookup filters before force:source:push, then restore them and push again
  • Manage gitRootFolderPrefix config property, in case the root of git repository is at a parent level than sfdx project root
  • Allow to override separate deployments using config property separateDeploymentsConfig
  • Set git config core.quotepath to false to manage special characters in git files / folders
  • Run sfdx git delta at the root of the git repository
  • Rename DeferSharingCalc permission set into SfdxHardisDeferSharingCalc
  • New Deployment tips
  • Contributing documentation

[2.26.4] 2021-06-18

  • Do not write user config when current folder is empty

[2.26.1] 2021-06-17

  • Take in account testLevel from .sfdx-hardis.yml in deployments

[2.26.0] 2021-06-16

  • New command hardis:project:generate:gitdelta to generate the package.xml calculated between two commits
  • New command hardis:org:connect to connect to an org without selecting it (can be used to refresh expired token)
  • Propose choice to to skip .gitignore & .forceignore files auto-update
  • Define triggerNotification on Command class to trigger MsTeams notifs
  • Update org type selection message

[2.25.3] 2021-06-14

  • Fix bug when selecting an org from outside a SFDX project folder

[2.25.2] 2021-06-14

  • Refresh VsCode Sfdx Hardis UI when creating / loading a SFDX Project

[2.25.1] 2021-06-13

  • Check if folder is a git repo before updating git config

[2.25.0] 2021-06-12

  • New parameter keepmetadatatypes for hardis:org:retrieve:sources:dx
  • Check dependencies
    • Improve performances
    • Check application dependencies (git,openssl)

[2.24.0] 2021-06-10

  • New command hardis:org:purge:apexlog to purge all Apex Logs of selected org

[2.23.0] 2021-06-07

  • Manage installation key for unlocked packages installation
  • Deployment: manage --canmodify SFDMU argument (define sfdmuCanDeploy in sfdx-hardis branch config file)

[2.22.0] 2021-06-03

  • New command hardis:project:clean:orgmissingitems : Remove elements that are not existing in target org (only in ReportType for now)
  • hardis:project:clean:references : Remove cleaned items from package.xml files
  • Externalization of method to select an org (+ reorder of list of displayed orgs)

[2.21.0] 2021-06-02

  • hardis:project:clean:references: Improve performances for removing files
  • hardis:scratch:create : Shorten scratch org auto-generated name
  • Authenticate to an org: Request user to set alias if not provided
  • Update default gitlab-ci.yml
  • New method promptProfiles

[2.20.3] 2021-05-26

  • Set prompt UI timeout to 2h instead of 5mn

[2.20.2] 2021-05-25

  • Fix call to sfdmu (add --noprompt)

[2.20.1] 2021-05-23

  • Fix scratch org listing

[2.20.0] 2021-05-21

  • hardis:work:save : Prompt user to pull from scratch org or not before saving
  • Do not update package.json anymore
  • hardis:scratch:create : Fix reuse scratch org prompt

[2.19.0] 2021-05-20

  • Detect when auth token is expired
  • More deploy tips
  • Clean ProductRequest items

[2.18.0] 2021-05-18

  • New commands

    • hardis:org:retrieve:packageconfig: Retrieves .sfdx-hardis.yml property installedPackaged from an existing org
    • hardis:project:clean:emptyitems: Delete empty items from SFD project
    • hardis:project:clean:hiddenitems: Delete hidden items (from managed packages) from SFDX project
  • Update default values for JWT connected app creation
  • Manage --targetusername to be taken in account for all sfdx hardis commands
  • More deployment tips
  • hardis:project:clean:manageditems: New --namespace argument
  • org:retrieve:source:dx : Do not erase .gitignore, .forceignore , README.md and project-scratch-def is already existing locally
  • Remove shape temp folder to avoid a force:org:create bug

[2.17.3] 2021-05-18

  • Fix .gitignore automatic update constraint

[2.17.2] 2021-05-10

  • Default init scratch org using push and not deploy
  • QuickFix mergeRequest links local storage

[2.17.0] 2021-05-10

  • New command hardis:project:convert:profilestopermsets to convert all profiles into permission sets
  • hardis:scratch:create : Fix permission set auto assignment when creating a scratch org (use property initPermissionSets in .sfdx-hardis.yml)

[2.16.1] 2021-05-09

  • hardis:work:save : Fix storage in config file of Merge Request info
  • Update deploy tips

[2.16.0] 2021-05-08

  • hardis:project:clean:manageditems : Clean SFDX project from managed classes
  • hardis:project:clean:retrievefolders: Clean/Complete SFDX project with missing folders (dashboard,email,reports)
  • hardis:project:clean:standarditems : Clean SFDX project from objects with no custom within
  • More deployment error tips
  • New parameter websocket for all commands
  • Indicating in logs when deployment is a simulation

[2.15.1] 2021-05-02

  • QuickFix hardis:work:save

[2.15.0] 2021-04-30

  • hardis:project:clean:references : New cleaning module dashboards removing reference to users in Dashboards sources

[2.14.0] 2021-04-29

  • Manage manifest/packageDeployOnce.xml : all its items that are already present in target org will not be deployed again

[2.13.4] 2021-04-26

  • New deploy tips
  • Do not update local files when calling configure commands
  • hardis:work:save : Fix branch update issue

[2.13.3] 2021-04-23

  • Remove PMD rule :
    • CyclomaticComplexity

[2.13.2] 2021-04-22

  • QuickFix hardis📦version:promote --auto

[2.13.0] 2021-04-21

  • hardis:work:save
    • New parameter --nogit for expert developers who want to manage git operations themselves
    • New parameter --noclean for expert developers who want to manage clean operations themselves
  • Update default Mega-Linter config

[2.12.0] 2021-04-19

  • New variable CI_DEPLOY_QUICK_ACTIONS_DUMMY
    • set to "true" in CI variables when there are QuickActions dependent of Flows that are later in publication plan
    • then set again to "false" and the deployment will pass :)
  • hardis:project:clean:references : now deletes obsolete objects and objectTranslations
  • hardis:work:save : More categories in interactive git add
  • Improve authentication check performances
  • New command hardis:config:get to return all config for project, branch or user
  • New deployment errors tips

[2.11.0] 2021-04-15

  • Delete scratch org when its initialization has failed during CI
  • Clean obsolete object fields and objectTranslations

[2.10.4] 2021-04-15

  • Provide password to user when creating new scratch org
  • Update CI default config to allow to not delete scratch orgs (define CI_DELETE_SCRATCH_ORG: "true" in gitlab-ci-config.yml)
  • New deploy tips: record type not found, picklist value not found

[2.10.3] 2021-04-14

  • Allow advanced user to bypass auth check (set skipAuthCheck:true in config/user/***.sfdx-hardis.yml)
  • Optimize check of force:config:set restDeploy: false
  • hardis📦version:create : Store package installation password in project config + fixes

[2.10.2] 2021-04-14

  • hardis:work:refresh : Make sure the user saved his work (commit) before merging another branch in current branch

[2.10.1] 2021-04-11

  • hardis:org:test:apex : Fix regex to new Apex Test results stdout format

[2.10.0] 2021-04-11

  • hardis:work:save : Automatic generation of split package.xml and deploymentPlan in .sfdx-hardis.yml
  • hardis:work:save : Propose to export data when saving
  • Remove duplicates from .gitignore and .forceignore
  • Add chromium in dockerfile

[2.9.4] 2021-04-09

  • Fix refresh
  • Update project cleaning references

[2.9.3] 2021-04-08

  • hardis:work:refresh : allow to refresh from another branch

[2.9.2] 2021-04-08

  • hardis:work:save : Fix issue when trying to stage & commit ignored files after project cleaning
  • hardis:project:configure:auth Improve error message when unable to upload ConnectedApp on production environment
  • Update default Apex PMD ruleset
  • Use replace and not replaceAll for node14 compatibility

[2.9.1] 2021-04-07

  • Clean git reset before save
  • Clean git stash before new task

[2.9.0] 2021-04-06

  • New command hardis:project:create
  • Refactor project cleaning and allow to use external config files (destructiveChanges-like.xml or json)
  • Fixes
    • hardis:work:save : Create destructiveChanges.xml if not existing
    • hardis:work:save : call forceSourcePull method to propose to update .forceignore if errors are found
    • hardis:project:configure:auth: call mdapi:deploy with RunLocalTests to manage production environments
    • authentication: auth only to devHub if --devhub sent
    • Disable spinner for restDeploy check

[2.8.5] 2021-04-06

  • QuickFix question icon

[2.8.4] 2021-04-06

  • Allow to skip pull before save
  • New deployTip: code coverage items with 0%
  • Fix DevHub auth when credential out of date
  • Use latest sfdx-cli package
  • Init git config only if we are not in CI

[2.8.3] 2021-04-01

  • Fix package creation
  • When using VsCode UI via WebSocket, display selected values in console logs

[2.8.2] 2021-04-01

  • hardis:work:save : reset ongoing merge if existing
  • Fix git reset call

[2.8.0] 2021-03-31

  • Define git user.name and user.email if not set
  • Define VsCode as git merge/diff tool if none is defined
  • Unstash changes (git reset) at the beginning of hardis:work:save
  • Deploy destructive changes after real deployment
  • hardis:project:clean:references now works also to remove references to content of manifest/destructiveChanges.xml
  • hardis:work:save: Clean sfdx project while saving it
  • Factorize temp directory creation

[2.7.2] 2021-03-30

  • Check user is sure to want to reuse an existing scratch org
  • Fix hardis:work:refresh

[2.7.1] 2021-03-29

  • Fix auto-fix of .gitignore and .forceignore
  • Propose to auto-update .force ignore when there is a pull issue

[2.7.0] 2021-03-29

  • Communicate with VsCode SFDX Hardis extension via WebSocket if server is found
  • Send user input prompts to VsCode UI if WebSocket server found
  • Send refreshStatus notifications when context is updated
  • Arrange some messages for better display on UI

[2.6.0] 2021-03-28

  • New command hardis:project:clean:references to clean SFDX project from data.com license references
  • hardis:scratch:create: Load sfdmu workspace scripts/data/ScratchInit if existing in , to initialize scratch org data

[2.5.0] 2021-03-28

  • New command hardis:source:push
  • New command hardis:source:pull
  • Various mini-fixes
  • Move deploymentPlan.json within .sfdx-hardis.json
  • Retry management for execCommand function. ex: retry: {retryDelay: 30,retryStringConstraint: 'some string present in output', retryMaxAttempts: 5}

[2.4.0] 2021-03-27

  • Add sfdmu & sfdx-git-delta in dependencies & Dockerfile
  • Import data with sfdmu
  • Manage data import steps in deploymentPlan.json
  • New command hardis:org:data:export
  • New command hardis:org:data:import

[2.3.0] 2021-03-26

  • hardis:work:save: Do not git add manifest files when they have not been updated
  • Select type of org to connect: enhance label
  • Multi-Select default to 9999 items displayed
  • Display tips about deployment failures when they happen
  • Create scratch org: When DeferSharingCalc in features, suspend and resume sharing calc during force:source:push
  • Allow to define a file manifest/deploymentPlan.json to split the deployment into separate package.xml files

Example:

{
  "packages": [
    {
      "label": "SharingRulesAccount",
      "packageXmlFile": "splits/packageXmlSharingRulesAccount.xml",
      "order": 10,
      "waitAfter": 60
    },
    {
      "label": "SharingRulesVisit__c",
      "packageXmlFile": "splits/packageXmlSharingRulesAccountVisit__c.xml",
      "order": 10
    }
  ]
}

[2.2.1] 2021-03-23

  • QuickFix 2.2.1
  • Use RunLocalTests when deploying ConnectedApp metadata to production org

[2.2.0] 2021-03-23

  • Enhance security by encrypting SSH private key

[2.1.7] 2021-03-22

  • More categories for Interactive Git Add (Aura,LWC, Tech Config)
  • Auto-update .forceignore
  • Fix hardis:org:test:apex

[2.1.6] 2021-03-20

  • Fix org authentication check

[2.1.5] 2021-03-19

  • Unlimited list of items displayed during interactive git add
  • Uniformize prompts to user

[2.1.4] 2021-03-17

  • Deploy with --ignorewarnings

[2.1.3] 2021-03-17

  • Fix hardis:retrieve:sources:dx when not in a DX project
  • Fix deloyment of Connected App in production
  • Display more options by page during interactive git add
  • Sort files to git add by group and manage preselection

[2.1.2] 2021-03-14

  • Improve package installation
    • Allow to install a package not listed in sfdx-hardis
    • Allow to configure automatic installation during deployments, or not
    • Allow to configure automatic installation during scratch org initialisation, or not
  • Reformat strings when no spaces are allowed in a user input

[2.1.1] 2021-03-12

  • Fix hardis:scratch:create when initDataRequests

[2.1.0] 2021-03-10

  • New command hardis:data:tree:export
  • scratch:create: Import init data using .sfdx-hardis.yml initDataRequests property
  • scratch:create: Assign to permission set (or PS groups) using .sfdx-hardis.yml initPermissionSets property

[2.0.0] 2021-03-09

  • New command hardis📦create to create Managed and Unlocked packages
  • Migrate from tslint to eslint
  • Fix dependencies hell
  • Fix hardis:org:purge:flow with new result format (#49)

[1.6.1] 2021-03-09

  • Update sfdx-project.json when installing a package
  • Refresh env & scratch org if same scratch org is reused
  • Update default files for CI & monitoring projects
  • Do not deploy packages from hardis:project:deploy:sources:dx when we are in --check mode !
  • Better output display for hardis:org:test:apex

[1.6.0] - 2021-03-08

  • New package commands
    • hardis📦install
    • hardis📦version:create
    • hardis📦version:list

[1.5.1] - 2021-03-07

  • Use shared Mega-Linter configuration

[1.5.0] 2021-03-05

  • New command hardis:org:select
  • New command hardis:work:resetselection
  • hardis:work:save: Upgrade package.xml and destructiveChanges.xml from git diff
  • Improve console logging of git operations

[1.4.1] 2021-03-03

  • Update default gitlab-ci.yml
  • rename commands:
    • hardis:work:new
    • hardis:work:refresh
    • hardis:work:save
  • cosmetic enhancements

[1.4.0] 2021-02-28

  • New work commands to make easier non technical users to use Hardis CI
    • hardis:work:task:new
    • hardis:work:task:save
    • hardis:work:task:refresh

[1.3.6] 2021-02-26

  • Quick fix hardis:org:configure:monitoring + colors

[1.3.5] 2021-02-26

  • Workaround when --soapdeploy argument is not available

[1.3.4] 2021-02-25

  • Reuse msTeamsWebhookUrl during sfdx:org:configure:monitoring prompts
  • Allow to override CONFIG_BRANCH to get forced .sfdx.hardis.BRANCH.yml

[1.3.3] 2021-02-24

  • Soap option for force:mdapi:deploy

[1.3.2] 2021-02-24

  • Guide user to assign rights to Connected App in sfdx:org:configure:monitoring

[1.3.1] 2021-02-24

  • Manage git clone & push for sfdx:org:configure:monitoring
  • Manage upload of connected app metadata for sfdx:org:configure:monitoring

[1.3.0] 2021-02-23

  • 30: Remove use of sfdx-node

  • New command sfdx:project:deploy:sources:metadata
  • Generate .cache folder only when necessary
  • New command sfdx:org:configure:monitoring

[1.2.0] 2021-02-21

  • 24: Change the way of listing installed packages

  • 26: New command sfdx hardis:project:configure:deployments to configure Connected app

  • 27: Check in manifest folder for package.xml

  • Auto-generate alpha version of plugin package and associated docker image when publishing from branch alpha
  • Manage cache storage for CI dependent jobs (cache, artifacts)
    • .cache/sfdx-hardis/.sfdx
    • .sfdx
    • config/user
  • Improve org authentication
  • New command hardis:org:test
    • Test org coverage and fail if < 75%
  • Installed package management
    • Factorize method
    • Install packages during hardis:project:deploy:sources:dx
  • Allow to reuse scratch org if previous creation failed. Force using --forcenew
  • Improve auto-update of local project sfdx-hardis files
  • Improve console logs
  • Allow to store DevHubSfdxClientId in user sfdx-hardis.yml ( in /user folder)

[1.1.3] 2021-02-17

  • Fix cases when directory is not git

[1.1.0] 2021-02-17

  • New command hardis:project:deploy:sources:dx (alpha)
  • New command hardis:project:audit:apiversion

[1.0.1] 2021-02-15

  • Fix auth:login to avoid DevHub auth when not necessary

[1.0.0] 2021-02-15

  • New command hardis:scratch:create
  • Advanced project initialization using --shape argument for sfdx hardis:org:retrieve:sources:dx
  • Automatic generation of .sfdx-hardis*.yml configuration files
  • Automatic update of project package.json to add sfdx-hardis utilities

[0.5.10] 2021-02-12

  • Allow purges to fail without making sfdx command fail

[0.5.5] 2021-02-10

  • Check if installed sfdx-hardis is the latest version, else display a message to advise the user to upgrade to latest

[0.5.4] 2021-02-09

  • Fixes:
    • hardis:org:purge:flow: Do not crash in case the Flow is not deletable

[0.5.2] 2021-02-07

  • Fixes:
    • --no-prompt argument is ignored

[0.5.1] 2021-02-04

  • Fixes:
    • Add more items to metadatas not convertible to sfdx sources
    • Issue when using --sandbox argument

[0.5.0] 2021-02-03

  • New command hardis:project:audit:callincallout: Audit sfdx project (or metadatas) sources to list all CallIns and CallOuts from Apex / Triggers code parsing
  • New command hardis:project:audit:remotesites: Audit sfdx project (or metadatas) sources to list all remote site settings of an org

[0.4.1] 2021-02-01

  • Fix: Manage Hooks only from hardis namespace commands

[0.4.0] 2021-02-01

  • Send MS Teams notifications if set environment variable MS_TEAMS_WEBHOOK_URL or msTeamsWebhookUrl in .sfdx-hardis.yml

[0.3.1] 2021-01-31

  • Always regenerate full package.xml before retrieving metadatas

[0.3.0] 2021-01-31

  • Build and upload nvuillam/sfdx-hardis docker image when releasing a new version
  • New command force:auth:login + manage login using JWT for CI

[0.2.0] 2021-01-31

  • New command sfdx hardis:org:retrieve:sources:metadata : Retrieve all metadata from an org

[0.1.1] 2021-01-31

  • New command sfdx hardis:org:retrieve:sources:dx : Create SFDX project from remote org

[0.0.1] 2021-01-26

  • New command sfdx hardis:org:purge:flow : Purge Obsolete flow versions to avoid the 50 max versions limit