Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

sfdx-hardis

hardisgroupcom20.3kAGPL-3.05.44.0TypeScript support: included

Swiss-army-knife Toolbox for Salesforce. Allows you to define a complete CD/CD Pipeline. Orchestrate base commands and assist users with interactive wizards

force, salesforce, salesforcedx, sf, sf-plugin, sfdx, devops, automation, cicd, sfdx-plugin, cloudity, hardis, deployment, apex, code-quality, gitlab, github, azure, pipeline, trailblazer, metadata, monitoring, ai, openai, grafana

readme

sfdx-hardis by Cloudity Banner

sfdx-hardis

Presented at Dreamforce 23 and [Dreamforce 24!](https://reg.salesforce.com/flow/plus/df24/sessioncatalog/page/catalog/session/1718915808069001Q7HH)

Version Downloads/week Downloads/total Docker Pulls GitHub stars GitHub contributors Mega-Linter Secured with Trivy License PRs Welcome

Toolbox for Salesforce DX, by Cloudity & friends, natively compliant with most platforms and tools.

Native Integrations

It will allow you to:

Please see the full list of commands in Online documentation


Watch sfdx-hardis 2025 new features :)

sfdx-hardis 2025 new features

sfdx-hardis commands are also available with UI in SFDX Hardis Visual Studio Code Extension

VsCode SFDX Hardis


See Dreamforce presentation

See Dreamforce presentation

Installation

With IDE

You can install Visual Studio Code extension VsCode SFDX Hardis

Once installed, click on Hardis Group button in VsCode left bar, and follow the additional installation instructions

Installation tutorial


As SFDX Plugin

Pre-requisites

  • Install Node.js (recommended version)
  • Install Salesforce DX by running npm install @salesforce/cli --global command line

Plugin installation

sf plugins install sfdx-hardis

For advanced use, please also install dependencies

sf plugins install @salesforce/plugin-packaging
sf plugins install sfdmu
sf plugins install sfdx-git-delta
sf plugins install texei-sfdx-plugin

If you are using CI/CD scripts, use echo y | sf plugins install ... to bypass prompt.


Docker

You can use sfdx-hardis docker images to run in CI

See Dockerfile

Usage

sf hardis:<COMMAND> <OPTIONS>

Events

London's Calling '25, London

Auto-generate your SF project Documentation site with open-source and Agentforce

image

Czech Dreamin '25, Prague

Auto-generate your SF project Documentation site with open-source and Agentforce, with Mariia Pyvovarchuk

Czech Dreamin 2025

Trailblazer Admin Group '25, Lyon

Techs for Admins: Afterwork Salesforce Inspector Reloaded & sfdx-hardis, with Thomas Prouvot

Dreamforce 2024, San Francisco

Save the Day by Monitoring Your Org with Open-Source Tools, with Olga Shirikova

Dreamforce 2024 Video

Wir Sind Ohana '24, Berlin

Automate the Monitoring of your Salesforce orgs with open-source tools only!, with Yosra Saidani

Wir Sind Ohana Video

Polish Dreamin '24, Wroclaw, Poland

Easy and complete Salesforce CI/CD with open-source only!, with Wojciech Suwiński

Polish Dreamin 2024

French Touch Dreamin '23, Paris

Automate the Monitoring of your Salesforce orgs with open-source tools only!, with Maxime Guenego

French Touch Dreamin 2023

Dreamforce 2023, San Francisco

Easy Salesforce CI/CD with open-source and clicks only thanks to sfdx-hardis!, with Jean-Pierre Rizzi

Dreamforce 2023 Video

Yeur Dreamin' 2023, Brussels

An easy and complete Salesforce CI/CD release management with open-source only !, with Angélique Picoreau

image

Articles & Videos

Web Articles

Here are some articles about sfdx-hardis

  • English

Conga Deployment Cheat Sheet Questions/Answers Salesforce Developers Podcast sfdx-hardis: A release management tool for open-source Assisted solving of Salesforce deployments errors Handle Salesforce API versions Deprecation like a pro How to mass download notes and attachments files from a Salesforce org How to freeze / unfreeze users during a Salesforce deployment How to detect bad words in Salesforce records using SFDX Data Loader and sfdx-hardis Reactivate all the sandbox users with .invalid emails in 3 clicks Invalid scope:Mine, not allowed ? Deploy your ListViews anyway !

Recorded Conferences

Dreamforce Sessions

  • Dreamforce 2024 - Save the Day by Monitoring Your Org with Open-Source Tools (with Olga Shirikova)

Dreamforce 2024: Save the Day by Monitoring Your Org with Open-Source Tools{target=blank}

  • Dreamforce 2023 - Easy Salesforce CI/CD with open-source and clicks only thanks to sfdx-hardis! (with Jean-Pierre Rizzi)

Dreamforce 2023: Easy Salesforce CI/CD with open-source{target=blank}

Community Events

  • Wir Sind Ohana 2024 - Automate the Monitoring of your Salesforce orgs with open-source tools only! (with Yosra Saidani)

Wir Sind Ohana 2024: Automate Monitoring with Open-Source{target=blank}

Podcasts

  • Apex Hours 2025 - Org monitoring with Grafana + AI generated doc

Apex Hours 2025: Org monitoring with Grafana + AI generated doc{target=blank}

  • Salesforce Way Podcast #102 - Sfdx-hardis with Nicolas Vuillamy

Salesforce Way Podcast: Sfdx-hardis{target=blank}

  • Salesforce Developers Podcast Episode 182: SFDX-Hardis with Nicolas Vuillamy

Salesforce Developers Podcast{target=blank}

sfdx-hardis Usage

Features Overview

  • sfdx-hardis 2025 new features overview

sfdx-hardis 2025 new features{target=blank}

  • SFDX-HARDIS – A demo with Nicolas Vuillamy from Cloudity

SalesforceDevOps.net Demo{target=blank}

Installation & Setup

Installation Tutorial{target=blank}

CI/CD Workflows

Dreamforce demo video: Easy Salesforce CI/CD with sfdx-hardis and open-source only !{target=blank}

Create New Task{target=blank}

Publish Task Tutorial{target=blank}

Merge Conflicts Resolution{target=blank}

Install Packages Tutorial{target=blank}

Configure CI Authentication{target=blank}

Monitoring

Org Monitoring Setup{target=blank}

Integrations

Slack Integration{target=blank}

GitLab Personal Access Token{target=blank}

Documentation

Generate Project Documentation{target=blank}

Cloudflare Doc Hosting Setup{target=blank}

Contributing

Everyone is welcome to contribute to sfdx-hardis (even juniors: we'll assist you !)

  • Install Node.js (recommended version)
  • Install typescript by running npm install typescript --global
  • Install yarn by running npm install yarn --global
  • Install Salesforce DX by running npm install @salesforce/cli --global command line
  • Fork this repo and clone it (or just clone if you are an internal contributor)
  • At the root of the repository:
    • Run yarn to install dependencies
    • Run sf plugins link to link the local sfdx-hardis to SFDX CLI
    • Run tsc --watch to transpile typescript into js everytime you update a TS file
  • Debug commands using NODE_OPTIONS=--inspect-brk sf hardis:somecommand -someparameter somevalue

Dependencies

sfdx-hardis partially relies on the following SFDX Open-Source packages

Contributors

Organization

sfdx-hardis is primarily led by Nicolas Vuillamy & Cloudity, but has many external contributors that we cant thank enough !

Pull Requests Authors

Special Thanks

Commands

Read Online Documentation to see everything you can do with SFDX Hardis :)

changelog

Changelog

[beta] (master)

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

[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

  • Visual flow management, using MermaidJs

  • 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

  • Migrate plugin from SFDX plugin core to SF Cli Plugin core

  • 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

[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 XSLX 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

  • sfdx-hardis & Slack Integration

    • Easy configuration
    • Deployment notifications to a common channel, and also to git branch dedicated channel
  • 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
  • Embed Dreamforce 23 slides in documentation

[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:package: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:package: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:package: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:package:install
    • Add -k, --installationkey CLI param and prompts user for it if not supplied

[2.68.3] 2022-02-18

  • Fix hardis:package: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:package: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:package: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:package: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:package: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:package:install
    • hardis:package:version:create
    • hardis:package: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