Note: Can be used with sfdx plugins:install sfdx-hardis@beta
and docker image hardisgroupcom/sfdx-hardis@beta
- hardis:org:monitor:backup: New mode --full, much slower than default filtered one, but that can retrieve ALL metadatas of an org
- Fix hardis:org:diagnose:unused-apex-classes: Use .cls file, not cls-meta.xml file to get creation date from git
- New monitoring command hardis:org:diagnose:unused-connected-apps to detect Connected Apps that are not used anymore and might be disabled or deleted.
- 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)
- In case a prompt is requested during CI and makes a command fail, display the content of the prompt
- 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
- MegaLinter config: disable APPLY_FIXES by default
- Upgrade npm dependencies
- 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
- 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
- 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.
- 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
- 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
- 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
- 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)
- Fix hardis:org:fix:listviewmine: Use chrome-launcher to find chrome executable to use with puppeteer-core
- Remove keyv dependency
- Change default
.mega-linter.yml
config - Display number of package.xml items before or after retrieving them
- Doc: Update youtube preview images
- Fix doubling -d option in hardis:scratch:create
- 2 hardis commands: rename
-d
into something else when the short option was available twice on the same command
- 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)
- 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
- hardis:project:deploy:smart : Fix parsing of error strings
- hardis:project:deploy:smart : Fix markdown display on PR summary
- Fix link to tip doc from Pull Request / Merge Request comments
- Fixing small issues with creating scratch org and scratch org pool
- 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
- hardis:org:monitoring:backup : fix issue when metadata type is unknown
- Allow to purge flows & flow interviews using
--no-prompt
option - Fix duplicate
-f
short option by replacingdelete-flow-interviews
short by-w
- 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
- 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
- Add --ignore-conflicts to smartDeploy
- Always use
project deploy start --dry-run
for deployment validation, until commandproject deploy validate
works with --ignore-warnings & NoTestRun
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 :)
-
Migrate plugin from SFDX plugin core to SF Cli Plugin core
- Convert commands code from SfdxCommand base to SfCommand base
- Migrate internal Bulk Api calls from Bulk API v1 to Bulk API v2
- Upgrade all npm dependencies to their latest version (more secured)
-
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
-> Wrapssf project deploy validate
sf hardis project deploy quick
-> Wrapssf project deploy quick
sf hardis project deploy start
-> Wrapssf project deploy start
- 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
- Allow to add labels in property
- 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
- Add error
- Git Providers
- On Pull Requests / Merge Requests comments, add hyperlinks to errors documentation URL
- 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.
- 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
-
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
-
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
- Upgrade workflows to Node 20 (fixes #668)
- Simplify login prompts messages (fixes #667)
- Upgrade to MegaLinter v8 (own workflows + template workflows)
- Update monitoring commands documentation
- Upgrade npm dependencies
- axios
- inquirer
- moment
- open
- ora
- @supercharge/promise-pool
- remove strip-ansi dependency to build local function
- 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
- Deprecate Microsoft Teams Web Hooks notifications
- Must be replaced by Email Notifications using the Ms Teams Channel email.
- 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)
- Fix report file name of hardis:org:monitor:limits
- Fix crash when GitProvider has been wrongly configured, and display information message
- 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
- Fix 4.49.0 (deployment error handler bug)
- 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
- hardis:project:deploy:sources:dx: Fix issue with testCoverageNotBlocking
- hardis:project:deploy:sources:dx: Allow new mode for running test during deployments: RunRepositoryTestsExceptSeeAllData (
⚠️ Use with caution !)
- Update emojis in prompts to make them more visible
- Replace
sfdx force:org:open
bysf org open
- 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
- 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
- Set GITLAB_API_REJECT_UNAUTHORIZED=false to avoid SSH rejections from Gitlab API
- 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 !)
- QuickFix testlevel default value
- New JSON schema properties, to use ONLY on branch scoped config and with caution !
testLevel
, to override the test level, withRunRepositoryTests
for exampleruntests
, to override the list of tests to run, with^(?!FLI|MyPrefix).*
for exampletestCoverageNotBlocking
, to make code coverage not blocking on a branch
- Take in account
testCoverageNotBlocking
in deployment checks and PR summaries
- 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"
- 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
- 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
- hardis:org:diagnose:audittrail: Define new not suspect actions
- Currency
- updateddatedexchrate
- Custom App Licenses
- addeduserpackagelicense
- granteduserpackagelicense
- Manage Users
- unfrozeuser
- Mobile Administration
- assigneduserstomobileconfig
- Currency
- hardis:org:monitor:all: Define relevant items as weekly, not daily
- hardis:project:clean:minimizeprofiles: Allow to skip profiles refactoring using .sfdx-hardis.yml property skipMinimizeProfiles (can be useful for Experience Cloud profiles)
- 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='[email protected]'" --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='[email protected]'" --values "UserPermissionsKnowledgeUser='true'" --json
- hardis:clean:references: new option v60
- Remove v61 userPermissions that do not exist in v60
- Fix npm packages installation for GitHub monitoring to avoid random failures
- Add _notifKey in Grafana notifications to be able to build unique alerts
- Add installed packages in monitoring backup logs
- 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
- hardis:org:purge:flow: Bulkify Flow deletion to improve performances
- Fix pipeline and instructions for Monitoring using GitHub Actions
- Revert to previous dashboards version to avoid issues with use of panel
- Add debug capabilities for advanced cases (call with DEBUG=sfdxhardis)
- 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
- 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
- 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
- Can be automated at each hardis:work:save if
- 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
- Update monitoring default Gitlab, Azure & GitHub Workflows
- Fix unused users notification identifier
- New command sfdx hardis:org:diagnose:unusedusers to find users that don't use their license !
- Notifications org identifier: replace dot by __ to avoid mess with Grafana label filters
- NotifProvider
- Updates to also send metrics to Prometheus
- NOTIFICATIONS_DISABLE is now not applicable to ApiProvider who always sends notifs
- hardis:org:test:apex : Always send coverageValue, coverageTarget and the list of failing classes to API logs
- 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
- 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
- Fix GitHub Actions check deploy workflow
- hardis:work:new : Replace all non alphanumeric characters in new git branch name
-
Enhance BitBucket Integration, by @Alainbates in #584
- Deployment status in Pull Request comments
- Quick Deploy to enhance performance
-
Remove useless close WebSocket issue display
- QuickFix Monitoring setup
- Fix json output (remove other console logs that are not supposed to be here)
- Add native Jenkins integration with Jenkinsfile for CI/CD Pipeline
- Update default pipelines to add JIRA variables
- Better handle of Jira API issues
- 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
- Handle manifest/preDestructiveChanges.xml to delete items before deployments if necessary
- Update documentation about integrations
- Upgrade dependencies
- Allow to override default scratch org duration using .sfdx-hardis.yml property scratchOrgDuration
- Audit trail check: Ignore change phone number events
- Fix wrong upgrade version notification
- Update PMD bypassing rules doc
- Fix issue when using email notifications with multiple recipients
- 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
- Skip post-deployment notifications if nothing was deployed in delta mode
- Simplify JIRA post deployment error output
- 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
- Add bash to sfdx-hardis docker image
- Display warning message when failed to upload connected app
- Update documentation about how to work on a dev sandbox / scratch org
- Update Contributor User Guide
- Empty predefined list of packages to install
- 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)
- Fix Microsoft Teams notifications formatting
- 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
- Improve display of Microsoft Teams notifications
- 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}
)
- GENERIC_TICKETING_PROVIDER_REGEX (Example for EasyVista:
- hardis:org:purge:flow: Ignore managed flows - Fixes #532
- hardis:work:new prevent parenthesis in branch name - Fixes #481
- Catch errors when a JIRA comment has not been posted
- Simplify package-no-overwrite.xml management logs
- Handle case when tickets have no content
- 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
- 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
- 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
- hardis:org:diagnose:audittrail
- Display user name in logs & notifications
- Add new excluded actions: changedemail, changedsenderemail, queueMembership, enableSIQUserNonEAC
- Fix the output column in the metadata status report to distinguish between inactive flows and validation rules identified in the source
- Add more variables in default azure-pipelines.yml monitoring
- Fix output file name of inactive metadatas audit
- Downgrade base docker image to alpine:3.18
- 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
- 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
- Handle errors while calling monitoring commands
- Increase jsforce Bulk API Timeout (60 seconds)
- Set default Bulk Query retries to 3 attempts
- 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
- 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 !
- New command sfdx hardis:org:diagnose:unusedlicenses to detect unused Permission Set Licenses (that you pay for anyway !)
- Improve test cases notification
- Enhance monitoring documentation with more descriptions and screenshots
- hardis:work:save enhancements
- Display more output during cleaning jobs
- Keep userPermissions in Profiles when they are defined to
false
- Improve backup notifications display
- 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
- Generate CSV output for hardis:org:monitor:backup
- Refactor git detection of created/updated/deleted files
- 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)
- Core: Factorize CSV generation
- Allow to run commands but disable notifications, using NOTIFICATIONS_DISABLE env var or notificationsDisable .sfdx-hardis.yml property.
- Update JSON schema to add
notificationsDisable
andmonitoringDisable
properties
- Improve notifs display with hardis:lint:access
- 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
- 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
- Upgrade ms-teams-webhook library so it works again !
- hardis:org:diagnose:audittrail: Add changedmanager to not suspect setup actions
- 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
- 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
- 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
)
- Update contributing infos (use
- hardis:files:export : Make the command compliant with Email attachments
- Add user prompts for setup audit trail monitoring in interactive mode
- Allow to exclude more usernames from monitoring using .sfdx-hardis.yml property monitoringExcludeUsernames
- 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
- 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 !)
- 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
- 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
- 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
- Allow to deploy in delta during PR checks between minor and major branches
- To activate it, define
useDeltaDeployment: true
in.sfdx-hardis.yml
, or set env variable USE_DELTA_DEPLOYMENT with valuetrue
- Make sure your GitHub, Gitlab, Azure or Bitbucket yaml workflows are up to date
- To activate it, define
- Overwrite management: Rename packageDeployOnce.xml into package-no-overwrite.xml (compatibility with packageDeployOnce.xml file name is kept)
- Improve GitHub monitoring Workflow
- Enhance monitoring documentation
- New deployment error tips:
- Invalid custom summary formula definition
- Add artifacts config on bitbucket-pipelines.yml
- Add more comments in Monitoring workflows
- 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
- Catch "Cannot start the OAuth redirect server on port 1717" and give instructions to user to kill the process
- Allow to use Device login for Code Builder compatibility
- New option to clear cache if an authenticated org does not appear in the choices
- hardis:org:files:export: New configuration available to export files: outputFileNameFormat, with available values:
- title (default)
- title_id
- id_title
- id
- Fix crash when converting orgCoverage to string
- Do not use direct call to jsforce dependency to avoid crash ! ( related to forcedotcom/cli#2508 (comment) )
- Update documentation
- Update comparative table in doc
- hardis:work:save : Fix issue when there is an empty commit because of pre-commit hooks
- Add installation video tutorial: https://www.youtube.com/watch?v=LA8m-t7CjHA
- 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
- Fix auth issue with force:source & force:mdapi wrapper sfdx-hardis commands
-
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
- GitHub Integration: Fix Quick Deploy on Pull Requests
- GitHub Integration: Implement automated comments & Quick Deploy on Pull Requests
- 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 previouslydevelop
) - Update default API version to 58.0
- Fix bug when user email is input the first time
- Updates new task, commit & save task documentation & screenshots
- 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
- Back to normal since forcedotcom/cli#2445 is fixed
- Downgrade to sfdx-cli until forcedotcom/cli#2445 is solved.
- Downgrade @salesforce/plugin-deploy-retrieve to v1.17.6 as workaround for SF cli bug forcedotcom/cli#2445
- Fix issues with Org monitoring when there are issues with Legacy API
- Fix upgrade warning message that should not appear when there is no upgrade to perform (detected by @mamasse19)
- 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
- 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
- When there is a crash in force:package:installed:list , do not crash but return empty array and display an error message
- 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)
- Manage QuickDeploy when available (disable by defining env var
SFDX_HARDIS_QUICK_DEPLOY=false
)
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 afternpm 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
- Secure releases with GitHub Actions permissions & environments
- Switch to official docker build & push action
- Upgrade MegaLinter
- Upgrade npm dependencies
- Add confirmation before resetting a git branch from VsCode command "Reset selected list of items to merge" (from an original idea of @derroman)
- Allow to disable red colors for force:source:deploy output using env variable SFDX_HARDIS_DEPLOY_ERR_COLORS=false
- Add packaging in online doc menu
- Add Hotfix management (BUILD vs RUN) in CI/CD documentation
- Add Packaging & package version instructions in documentation
- Monitoring: Do not exclude custom fields on managed objects
-ex: Remove
Ns__Object__c.Ns__Field__c
, but keepNs__Object__c.Field__c
- QuickFix hardis:work:save when branch has not been created on the computer
- Clean entitlement items, by @yamioliva in #381
- New command hardis:org:generate:packagexmlfull to generate the full package.xml of a selected Salesforce org
- 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
- 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
- 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.
- 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
- Allow to override the default deployment wait time (60) using variable SFDX_DEPLOY_WAIT_MINUTES
- Update JSON schema to add customOrgColors
- 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
- Fix missing sfdx-git-delta in Docker image
- Change defaut package install mode to AdminsOnly
- When minimizing Profiles, do not remove the personAccountDefault=true elements
- Add new deploy tip: Error parsing file
- 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
- 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
- Fix false positive error in deployment job when there is no related Pull/Merge request
- Integration with Azure Pipelines Pull Request threads
- hardis:work:new: Allow to select no org even of sandbox or scratch is forced on the project using config property allowedOrgTypes
- Doc: rename User Guide into Contributor Guide
- Better fix for root path issues (internal error)
- Fix root path issues (internal error)
- Fix sandbox check when calling hardis:source:push
- Quick fix Gitlab integration when there is no MR associated to a deployment
- 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
- Update deploy tips for error Unknown user permission: SendExternalEmailAvailable
- Improve logs for false positive after package installation failure
- Remove useless and scary log after a successful login :)
- Remove npm cache from Docker image
- 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
- 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
- Use tooling API to retrieve ApexLogs for deletion, by @thvd in #321
- Add demo video about configuring authentication between CI and Salesforce orgs
- Update CI/CD documentation
- Update branding
- Add sfdx sources to monitoring for better readability
- Change example of email addresses for prompts
- Update CI/CD recommendations in documentation
- Update default overwrite config (
packageDeployOnce.xml
) - Setup CI: Define default Azure pipelines YML files
- Fix notification logs for Azure Pipelines
- Move documentation to https://sfdx-hardis.cloudity.com
- Fix default monitoring for Azure pipelines
- Update CI documentation (Azure)
- Fix check of newer package installed
- 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"
- 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 [email protected] --checkonly --checkcoverage --verbose --coverageformatters json-summary
- Example:
- Reset local sfdx tracking when reusing a sandbox for a new task
- 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"
- 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
- Fix
hardis:project:clean:hiddenitems
when multiple files in the same folder match the same glob pattern - Update documentation, fix typos and dead links
- Replace prompts library by inquirer, because prompts is buggy
- Dockerfile: Workaround for forcedotcom/salesforcedx-apex#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
- Fix hardis:org:purge:flow when flow prompt selection is
all
- 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)
- QuickFix System.debug removal
- QuickFix
- QuickFix hardis:lint:access
- New command hardis:lint:access to analyze of items in sources are not present within profiles and/or permission sets
- Fix error when assigning already existing PS
- Update default CI config
- Replace
sfdx force:package:install
withsfdx 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
- 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
andwebsocket
onsfdx hardis:project:metadata:duplicate
- Add missing parameter
skipauth
onsfdx hardis:package:install
- Automate SSL certificate generation + force:source:deploy replaced by force:source:legacy:deploy
- hardis:project:clean:minimizeprofiles: Do not strip tabVisibilities from Profiles
- Lock sfpowerkit dependency to 4.2.13 to avoid error caused by deprecation of sfpowerkit:org:build:manifest
- Update documentation to initialize scratch org
- Update JSON schema to add
scratchOrgInitApexScripts
- Fix execution of scripts defined in
scratchOrgInitApexScripts
- 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
- 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
- Fix issue when force:source command wrappers arguments contain spaces (#269))
- Upgrade MegaLinter to v6
- Upgrade yarn dependencies
- Events to open generated files when called from VsCode SFDX Hardis
- New deployTips
- Fix exported file extension (#266)
- Build full manifest using sfpowerkit excluding
ManagedContentTypeBundle
because it is not managed by retrieve
- Auto-update gitlab-ci.yml only if variable
AUTO_UPDATE_GITLAB_CI_YML
is set
- hardis:package:mergexml: New command to merge package.Xml files
- hardis:project:clean:systemdebug: New command to comment or remove all System.debug from apex and triggers
- toml2csv: Allow
hardcoded
values for concat - Refactor internal CI to use 7.148.3 as recommended version
- Fix configure org CI
- Hide auth info from console logs
- Fix Bulk Update job not closed
- Auto-update
.gitlab-ci.yml
if a newest version exists
- Refactor report directory management
- Fix monitoring default pipeline
- 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
- 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
- New wrapper command: sfdx hardis:source:retrieve
- Quickfix toml2csv
- Fix toml2csv error log
- Deployment tips
- Allow deployment with pending Apex Jobs
- Update Can not find folder
- Enhance sfdx hardis:org:retrieve:sources:retrofit command + JSON schema updates
- Enhance sfdx hardis:org:retrieve:sources:retrofit command
- Ad deployment tip: Invalid field in related list
- Update deployTips: improve unknown custom field message
- New command sfdx hardis:doc:extract:permsetgroups to generate permission set groups documentation
- Fix hardis:work:save who sometimes forgot to ask to push commits
- Update deployment tips
- 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
- New deployTip: Can not change type due to existing data
- Do not replace ListView Everything by Mine when we are just simulating deployment
- QuickFix platform compatibility for
sfdx hardis:org:fix:listviewmine
- New command
sfdx hardis:org:fix:listviewmine
as a workaround to force:source:deploy not allowing ListView with scope Mine
- New property
autoRetrieveWhenPull
to always retrieve some sources when calling hardis:source:pull (useful when sfdx tracking forgets some updates)
- 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
- New property
extends
in.sfdx-hardis.yml
, to allow local config file to extend from remote file - Add
customCommands
definition in json schema
- Update documentation
- Add a retrofit command to retrieve changes made directly in an org
- Fix legacy API command display (#225)
- Fix CI & remove docker image with sfdx-cli@stable as it does not exists anymore
- 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
- Fix bug when subtracting a package.xml from another
- Fix error in packageDeployOnce.xml document (sfdx hardis:project:deploy:sources:dx)
- 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
- Improve activate invalid users commands (allow to select by profile(s))
- Improve activate invalid users commands
- 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
- 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
- Update legacy API detection labels
- Manage crash when retrieving metadatas from CI jobs
- 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
- 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
- Include tips about how to fix deployments directly within error messages
- 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)
- 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)
- hardis:org:apex:test : allow command to succeed when no tests are present in the project, useful for new environments initialization
- Scratch org pool: add history (fetch,auth) on ActiveScratchOrg devhub record
- remove
DEPLOY PROGRESS
noisy lines from logs
- Update mkdocs
- fix commit of files with spaces
- hardis:package:install
- Add -k, --installationkey CLI param and prompts user for it if not supplied
- Fix hardis:package:version:promote --auto
- Fix minimize profiles command
- Allow property autoRemoveUserPermissions in .sfdx-hardis.yml to clean profiles
- toml2csv:
- Add concatComposite option for column
- Add recordType option for column
- 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
- Enhance documentation for hardis:scratch:pool:create command
- Fixes and enhancements on toml2csv command
- hardis:misc:toml2csv enhancements (rename and copy files)
- fix minimizing of profiles
- new command hardis:project:clean:listview
- hardis:misc:toml2csv enhancements
- minimizeProfiles: do not remove userPermissions if profile is default Admin profile
- Check deployment with metadata project
- Fix contribution install by upgrading dependencies
- Use soqlQuery method everywhere
- Set devhub alias when available
- Update default apiVersion to 53.0
- Option to not remove empty types when subtracting package.xml
- 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)
- New event message refreshPlugins (used by VsCodeSFDX Hardis)
- Display Error message when unable to delete a temporary directory
- 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=' '
)
- Use same XML indentation than Salesforce (#51) (requires also upgrade of sfdx-essentials, using
sfdx plugins:install sfdx-essentials
)
- Fix hardis:source:pull when there are errors
- Allow to input URL to use to login
- Fix hardis:scratch:pool:view when DevHub authentication is expired
- 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
- (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
- hardis:org:files:export: Fix file paths in logs
- org:user:freeze : Prevent to freeze all profiles and current user profile
- org:retrieve:sources:metadata : Manage locally defined
remove-items-package.xml
(that can handle wildcard members)
- 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
- hardis:org:files:export
- Add file extension when missing
- replace .snote by .txt
- replace special characters in parent folder name and file name
- 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
- Make hardis:org:user:freeze and hardis:org:user:unfreeze can now handle large volume of users, using Bulk API
- Update auto-generated documentation to add a commands.md + its link in the menu
- 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"
- Fix link to https://nicolas.vuillamy.fr/handle-salesforce-api-versions-deprecation-like-a-pro-335065f52238
- SFDX_HARDIS_DEBUG_ENV. If set to true, display env vars at startup
- Manage env var SFDX_HARDIS_DEPLOY_IGNORE_SPLIT_PACKAGES. If "true", package.xmls are not split with deploymentPlan
- 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
- Update Object deployed when configuring scratch org pool (replace Html by LongTextArea)
- 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
- 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
- Take in account parameter
--ignore-whitespace
of sfdx-git-delta for packageOnChange.xml
- hardis:org:diagnose:legacyapi: Provide additional report with unique list of ips, hostnames (when available) , and number of calls
- Fix hardis:package:version:promote
- hardis:org:diagnose:legacyapi: Allow to override default output reportfile with
--outputfile
argument
- 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
- Quick fixes hardis:doc:plugin:generate
- Fix crash when there are no license & changelog
- 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
- Update hardis:doc:plugin:generate so main README part is displayed on doc index.md
- New commands to freeze users before deployment then unfreeze users after deployment
- sfdx hardis:org:user:freeze
- sfdx hardis:org:user:unfreeze
- QuickFix scratch org auth during CI
- 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
- QuickFix hardis:org:files:export
- 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
- hardis:org:diagnose:legacyapi: Add more summary and statistics
- Fix hardis:org:diagnose:legacyapi (display raw logs when CSV builder is crashing) , using papaparse instead of objects-to-csv package
- 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
- 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
- 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
- Refactor hardis:org:diagnose:legacyapi with jsforce to handle more log entries
- Do not display
git branch -v
in logs
- New command hardis:org:diagnose:legacyapi : Detect use of deprecated API versions in production org
- Update deployTips
- Update json schema
- Better split of elements during hardis:work:save
- Display elapsed time for long running commands
- Use relative path for sfdmu data import/export
- Fix data import & export commands when spaces in folder names
- New command sfdx hardis:project:lint
- Update .sfdx-hardis.yml configuration JsonSchema
- QuickFix case when title is not set (use first line of description)
- Quickfix default mkdocs.yml
- Add JSON Schema for
.sfdx-hardis.yml
configuration files - Automatic SFDX Plugin documentation generation for any SFDX Plugin
- hardis:scratch:create: Initialize data using SFDMU, if defined in .sfdx-hardis.json
dataPackages
property withimportInScratchOrgs: 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
andsfdxHardisDescription
- 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
- hardis:scratch:delete : Display instanceUrl & last usage of scratch orgs displayed before deletion
- New command hardis:scratch:delete to delete scratch orgs locally referenced.
- hardis:org:connect : Propose user to open org in browser if not in CI
- Update hardis:org:retrieve:packageconfig so it allows to select an org, and to update sfdx-hardis configuration
- 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
- CI: Check Docker image security with trivy
- Avoid git error when development branch is updated
- Fix CountryCode when updating scratch org user. Default FR - France, can be updated with config defaultCountry and defaultCountryCode in .sfdx-hardis.yml
- 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
- Do not write user config when current folder is empty
- Take in account testLevel from
.sfdx-hardis.yml
in deployments
- 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
- Fix bug when selecting an org from outside a SFDX project folder
- Refresh VsCode Sfdx Hardis UI when creating / loading a SFDX Project
- Check if folder is a git repo before updating git config
- New parameter keepmetadatatypes for hardis:org:retrieve:sources:dx
- Check dependencies
- Improve performances
- Check application dependencies (git,openssl)
- New command hardis:org:purge:apexlog to purge all Apex Logs of selected org
- Manage installation key for unlocked packages installation
- Deployment: manage --canmodify SFDMU argument (define sfdmuCanDeploy in sfdx-hardis branch config file)
- 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)
- 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
- Set prompt UI timeout to 2h instead of 5mn
- Fix call to sfdmu (add --noprompt)
- Fix scratch org listing
- 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
- Detect when auth token is expired
- More deploy tips
- Clean ProductRequest items
-
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
- Fix .gitignore automatic update constraint
- Default init scratch org using push and not deploy
- QuickFix mergeRequest links local storage
- 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)
- hardis:work:save : Fix storage in config file of Merge Request info
- Update deploy tips
- 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
- QuickFix hardis:work:save
- hardis:project:clean:references : New cleaning module dashboards removing reference to users in Dashboards sources
- Manage manifest/packageDeployOnce.xml : all its items that are already present in target org will not be deployed again
- New deploy tips
- Do not update local files when calling configure commands
- hardis:work:save : Fix branch update issue
- Remove PMD rule :
- CyclomaticComplexity
- QuickFix hardis:package:version:promote --auto
- 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
- 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
- Delete scratch org when its initialization has failed during CI
- Clean obsolete object fields and objectTranslations
- 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
- 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
- hardis:work:refresh : Make sure the user saved his work (commit) before merging another branch in current branch
- hardis:org:test:apex : Fix regex to new Apex Test results stdout format
- 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
- Fix refresh
- Update project cleaning references
- hardis:work:refresh : allow to refresh from another branch
- 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
- Clean git reset before save
- Clean git stash before new task
- 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
- QuickFix question icon
- 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
- Fix package creation
- When using VsCode UI via WebSocket, display selected values in console logs
- hardis:work:save : reset ongoing merge if existing
- Fix git reset call
- 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
- Check user is sure to want to reuse an existing scratch org
- Fix hardis:work:refresh
- Fix auto-fix of .gitignore and .forceignore
- Propose to auto-update .force ignore when there is a pull issue
- 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
- 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
- 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}
- 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
- 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
}
]
}
- QuickFix 2.2.1
- Use RunLocalTests when deploying ConnectedApp metadata to production org
- Enhance security by encrypting SSH private key
- More categories for Interactive Git Add (Aura,LWC, Tech Config)
- Auto-update .forceignore
- Fix
hardis:org:test:apex
- Fix org authentication check
- Unlimited list of items displayed during interactive git add
- Uniformize prompts to user
- Deploy with --ignorewarnings
- 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
- 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
- Fix hardis:scratch:create when initDataRequests
- 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
- 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)
- 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
- New package commands
- hardis:package:install
- hardis:package:version:create
- hardis:package:version:list
- Use shared Mega-Linter configuration
- 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
- Update default gitlab-ci.yml
- rename commands:
- hardis:work:new
- hardis:work:refresh
- hardis:work:save
- cosmetic enhancements
- 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
- Quick fix hardis:org:configure:monitoring + colors
- Workaround when --soapdeploy argument is not available
- Reuse msTeamsWebhookUrl during sfdx:org:configure:monitoring prompts
- Allow to override CONFIG_BRANCH to get forced .sfdx.hardis.BRANCH.yml
- Soap option for force:mdapi:deploy
- Guide user to assign rights to Connected App in sfdx:org:configure:monitoring
- Manage git clone & push for sfdx:org:configure:monitoring
- Manage upload of connected app metadata for sfdx:org:configure:monitoring
- #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
- #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)
- Fix cases when directory is not git
- New command hardis:project:deploy:sources:dx (alpha)
- New command hardis:project:audit:apiversion
- Fix auth:login to avoid DevHub auth when not necessary
- New command hardis:scratch:create
- Advanced project initialization using
--shape
argument forsfdx hardis:org:retrieve:sources:dx
- Automatic generation of .sfdx-hardis*.yml configuration files
- Automatic update of project package.json to add sfdx-hardis utilities
- Allow purges to fail without making sfdx command fail
- Check if installed sfdx-hardis is the latest version, else display a message to advise the user to upgrade to latest
- Fixes:
hardis:org:purge:flow
: Do not crash in case the Flow is not deletable
- Fixes:
--no-prompt
argument is ignored
- Fixes:
- Add more items to metadatas not convertible to sfdx sources
- Issue when using --sandbox argument
- 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
- Fix: Manage Hooks only from hardis namespace commands
- Send MS Teams notifications if set environment variable MS_TEAMS_WEBHOOK_URL or msTeamsWebhookUrl in .sfdx-hardis.yml
- Always regenerate full package.xml before retrieving metadatas
- Build and upload nvuillam/sfdx-hardis docker image when releasing a new version
- New command force:auth:login + manage login using JWT for CI
- New command sfdx hardis:org:retrieve:sources:metadata : Retrieve all metadata from an org
- New command sfdx hardis:org:retrieve:sources:dx : Create SFDX project from remote org
- New command sfdx hardis:org:purge:flow : Purge Obsolete flow versions to avoid the 50 max versions limit