v7.1.0 - Journeys
Features
- #1409 deploy
--noUpdate
flag that limits deploy to create-only, preventing accidental updates by @JoernBerkefeld in #1427 - #1148 new method
publish journey
by @JoernBerkefeld in #1435 - #1433 the methods
execute
,schedule
,pause
andpublish
now support the--metadata
option to more easily specify what to target by @JoernBerkefeld in #1436 - #68 + #1444 + #1443 auto-create deployment package with
buildTemplate --dependencies
by @JoernBerkefeld in #1441, #1452, #1469 - #1442 allow specifying multiple values behind
--metadata
by @JoernBerkefeld in #1445 - #1459 allow including
PreHeader
in create/update oftriggeredSend
and resolve triggeredSend key injourneys
by @JoernBerkefeld in #1464 - #1460: Add
describeSoap
method to support contributors by @JoernBerkefeld in #1465 - #1463: allow version tracking for
/template/ folder
by @JoernBerkefeld in #1466 - #1471 make
deploy --noMidSuffix
the default (removing the option) and adddeploy --autoMidSuffix
instead by @JoernBerkefeld in #1477 - #1478 support salesforce data entry events for
journeys
by @JoernBerkefeld in #1489
Bugfixes
- #1448 regression-fix: retrieve attempting to save
assets
multiple times by @JoernBerkefeld in #1449 - #1487 fix "asset folder not found": prefer picking local folder over shared folder during
asset
deployment by @JoernBerkefeld in #1488 - #1475 fix "asset folder not found": ensure we get local
asset
folders from parent for individually shared assets by @JoernBerkefeld in #1476 - #1473 fix
buildDefinition
does not rename single extracted code files by @JoernBerkefeld in #1486
Chores
- #1438 upgrade inquirer calls to new decentralized v9 format by @JoernBerkefeld in #1439
- #1446 disable compact folders in standard VSCode config for compatibility with mcdev VSCode Extension by @JoernBerkefeld in #1451
- #1470 improve folder caching to boost speed by @JoernBerkefeld in #1480
Dependencies
- Bump @eslint/js from 9.6.0 to 9.7.0 by @dependabot in #1455
- Bump @types/node from 20.14.9 to 20.14.10 by @dependabot in #1429
- Bump eslint from 9.6.0 to 9.7.0 by @dependabot in #1454
- Bump eslint-plugin-jsdoc from 48.5.2 to 48.8.3 by @dependabot in #1456 and #1484
- Bump eslint-plugin-prettier from 5.1.2 to 5.2.1 by @dependabot in #1481
- Bump inquirer from 9.2.6 to 10.0.1 by @dependabot in #1437
- Bump mocha from 10.6.0 to 10.7.0 by @dependabot in #1482
- Bump p-limit from 5.0.0 to 6.1.0 by @dependabot in #1430
- Bump prettier from 3.3.2 to 3.3.3 by @dependabot in #1458
- Bump prettier-plugin-sql from 0.18.0 to 0.18.1 by @dependabot in #1431
- Bump semver from 7.6.0 to 7.6.3 by @dependabot in #1483
- Bump winston from 3.13.0 to 3.13.1 by @dependabot in #1457
devtools/pull/1476
Full Changelog: v7.0.4...v7.1.0
Details
Templating Commands
build
CHANGES |
---|
Now supports --dependencies and --retrieve . |
Command: mcdev build <--fromBu> <--toBu> <--fromMarket> <--toMarket> <--metadata> [--bulk] [--dependencies] [--retrieve]
build with --dependencies (and with --retrieve):
These two parameters are passed through to buildTemplate. Please see buildTemplate's documentation for details. The resulting list of types & keys of whatever buildTemplate will create are then handed over to buildDefinition(Bulk), making this a powerful solution.
buildTemplate
CHANGES |
---|
Now supports --dependencies and --retrieve . |
Command: mcdev buildTemplate <business unit> [type] [key] [market] [--metadata] [--market] [--dependencies] [--retrieve]
buildTemplate with --dependencies:
Using the --dependencies option you turn on the most powerful templating feature that allows you to find all related other metadata items across all types. This includes other items linked via r__ field
("r" means "relationship") in their JSON and assets loaded via AMPscript or SSJS using the functions ContentBlockByKey, ContentBlockByName and ContentBlockById
. The logic works recursively, finding dependencies of dependencies on all levels.
Example:
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependencies
buildTemplate with --retrieve:
When running buildTemplate you are solely using whats saved locally on your computer. If you want to get a fresh version from the server first, you can of course run mcdev retrieve
yourself - or you include the --retrieve
option here.
If used together with --dependencies
, this will download all metadata types for the selected BU. If used without --dependencies
option it will only retrieve the types you specified as part of your buildTemplate
command.
Example:
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --retrieve
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependencies --retrieve
Standard Commands
deploy
CHANGES |
---|
Now supports --noUpdate , --publish and --skipStatusCheck |
Command: mcdev deploy [business unit] [metadata type] [metadata key] [--metadata] [--fromRetrieve] [--refresh] [--keySuffix] [--noMidSuffix] [--changeKeyValue=yourNewKey] [--changeKeyField=otherFieldInJson] [--execute] [--schedule] [--fixShared] [--noUpdate] [--publish] [--skipStatusCheck]
deploy with --noUpdate
If you want to ensure that your deployment does not override existing metadata but instead is limited to creating new elements, then add the --noUpdate
option to your call.
mcdev deploy cred/bu --noUpdate
deploy with --publish (and --skipStatusCheck)
By adding the --publish flag, you tell deploy
to run mcdev publish
for supported types as a post-deployment step. See publish
method for more details
mcdev deploy cred/bu journey --publish
mcdev deploy cred/bu journey --publish --skipStatusCheck
publish
CHANGES |
---|
New command |
Command: mcdev publish <business unit> [metadata type] [metadata key] [--like] [--skipStatusCheck] [--metadata]
You can publish a draft journey using this command. This is the same as clicking on Publish in the web interface. If you don't care about the publishing result, you can skip that check (it might be useful in CI/CD environments). Generally, we recommend against using—-skipStatusCheck because it happens often that something is blocking the publishing, and without that check, you would not know about the problem.
mcdev publish cred/bu journey myJourneyKey
mcdev publish cred/bu journey id:myJourneyId
mcdev publish cred/bu -m journey:myJourneyKey -m journey:id:myJourneyId
mcdev publish cred/bu journey myJourneyKey --skipStatusCheck
execute
CHANGES |
---|
Now supports --metadata . |
Command: mcdev execute <business unit> [type] [key] [--like] [--schedule] [--metadata]
Example:
mcdev execute MyProject/DEV -m automation:key1 -m automation:key2 -m query:keyA
mcdev execute MyProject/DEV -m automation:key1 automation:key2 query:keyB
pause
CHANGES |
---|
Now supports --metadata . |
Command: mcdev pause <business unit> [type] [key] [--like] [--metadata]
Example:
mcdev pause MyProject/DEV -m automation:key1 -m automation:key2
mcdev pause MyProject/DEV -m automation:key1 automation:key2
schedule
CHANGES |
---|
Now supports --metadata . |
Command: mcdev schedule <business unit> [type] [key] [--like] [--metadata]
Example:
mcdev schedule MyProject/DEV -m automation:key1 -m automation:key2
mcdev schedule MyProject/DEV -m automation:key1 automation:key2
Admin Commands
describeSoap
CHANGES |
---|
New command |
Command: mcdev describeSoap [soap object]
Alias: mcdev describe
, mcdev soap
This is mainly aimed at contributors to get a quick overview on available fields for the various SOAP Web Service API Objects. While there is a (not always correct) overview on possible SOAP operations per object, there is no good page that shows which fields can be retrieved or deployed.
Example:
mcdev soap DataFolder
Response:
Name DataType IsUpdatable IsRetrievable MaxLength IsRequired
-------------------------- ------------- ----------- ------------- --------- ----------
ID Int32 true true true
Client.ID Int32 true true true
ParentFolder.ID Int32 true true false
ParentFolder.CustomerKey String true true 36 false
ParentFolder.ObjectID Guid true true false
ParentFolder.Name String true true 100 false
ParentFolder.Description String true true 200 false
ParentFolder.ContentType String true true 50 false
ParentFolder.IsActive Boolean false true false
ParentFolder.IsEditable Boolean false true false
ParentFolder.AllowChildren Boolean false true false
Name String true true 100 true
Description String true true 200 true
ContentType String true true 50 true
IsActive Boolean true true false
IsEditable Boolean true true false
AllowChildren Boolean true true false
CreatedDate DateTime true true true
ModifiedDate DateTime true true true
Client.ModifiedBy Int32 true true true
ObjectID String true true false
CustomerKey String true true 36 false
Client.EnterpriseID Int64 true true false
Client.CreatedBy Int32 true true false
ParentFolder DataFolder true false
Client ClientID true false
PartnerKey String true false
PartnerProperties APIProperty[] true false
Owner Owner true false
CorrelationID String true false
ObjectState String true false
IsPlatformObject Boolean true false