mcdev 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/.github/ISSUE_TEMPLATE/bug.yml +72 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.github/ISSUE_TEMPLATE/task.md +10 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +11 -0
- package/.github/workflows/npm-publish.yml +33 -0
- package/.issuetracker +11 -3
- package/.vscode/extensions.json +1 -2
- package/.vscode/settings.json +19 -4
- package/CHANGELOG.md +98 -0
- package/README.md +247 -142
- package/boilerplate/config.json +3 -2
- package/docs/dist/considerations.md +66 -0
- package/docs/dist/documentation.md +5794 -0
- package/lib/Deployer.js +4 -1
- package/lib/MetadataTypeDefinitions.js +1 -0
- package/lib/MetadataTypeInfo.js +1 -0
- package/lib/Retriever.js +32 -17
- package/lib/cli.js +295 -0
- package/lib/index.js +774 -1019
- package/lib/metadataTypes/AccountUser.js +389 -0
- package/lib/metadataTypes/Asset.js +140 -116
- package/lib/metadataTypes/Automation.js +119 -54
- package/lib/metadataTypes/DataExtension.js +172 -131
- package/lib/metadataTypes/DataExtensionField.js +134 -4
- package/lib/metadataTypes/Folder.js +66 -69
- package/lib/metadataTypes/ImportFile.js +4 -6
- package/lib/metadataTypes/MetadataType.js +168 -80
- package/lib/metadataTypes/Query.js +54 -25
- package/lib/metadataTypes/Role.js +13 -8
- package/lib/metadataTypes/Script.js +43 -24
- package/lib/metadataTypes/definitions/AccountUser.definition.js +227 -0
- package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
- package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
- package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -1
- package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -1
- package/lib/metadataTypes/definitions/Folder.definition.js +1 -1
- package/lib/metadataTypes/definitions/ImportFile.definition.js +2 -1
- package/lib/metadataTypes/definitions/Script.definition.js +5 -5
- package/lib/retrieveChangelog.js +96 -0
- package/lib/util/cli.js +4 -6
- package/lib/util/init.config.js +3 -0
- package/lib/util/init.git.js +2 -1
- package/lib/util/util.js +35 -18
- package/package.json +20 -24
- package/test/util/file.js +51 -0
- package/img/README.md/troubleshoot-nodejs-postinstall.jpg +0 -0
- package/postinstall.js +0 -41
- package/test/deployer.js +0 -16
- package/test/util.js +0 -26
package/boilerplate/config.json
CHANGED
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"retrieve": "retrieve/",
|
|
34
34
|
"roles": "docs/roles/",
|
|
35
35
|
"template": "template/",
|
|
36
|
-
"templateBuilds": ["retrieve/", "deploy/"]
|
|
36
|
+
"templateBuilds": ["retrieve/", "deploy/"],
|
|
37
|
+
"users": "docs/users/"
|
|
37
38
|
},
|
|
38
39
|
"markets": {
|
|
39
40
|
"DEV-NL": {
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
}
|
|
79
80
|
},
|
|
80
81
|
"metaDataTypes": {
|
|
81
|
-
"documentOnRetrieve": ["
|
|
82
|
+
"documentOnRetrieve": ["accountUser", "dataExtension", "role"],
|
|
82
83
|
"retrieve": []
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Metadata Type findings & considerations
|
|
2
|
+
|
|
3
|
+
## Automation
|
|
4
|
+
|
|
5
|
+
API: SOAP / REST
|
|
6
|
+
|
|
7
|
+
## Campaign
|
|
8
|
+
|
|
9
|
+
API: SOAP
|
|
10
|
+
|
|
11
|
+
Child Metadata:
|
|
12
|
+
|
|
13
|
+
- [CampaignAsset](#CampaignAsset)
|
|
14
|
+
|
|
15
|
+
## CampaignAsset
|
|
16
|
+
|
|
17
|
+
API: SOAP
|
|
18
|
+
|
|
19
|
+
## DataExtension
|
|
20
|
+
|
|
21
|
+
API: SOAP
|
|
22
|
+
|
|
23
|
+
Child Metadata:
|
|
24
|
+
|
|
25
|
+
- [DataExtensionField](#DataExtensionField)
|
|
26
|
+
|
|
27
|
+
Considerations:
|
|
28
|
+
|
|
29
|
+
- **"SendableSubscriberField": { "Name": "\_SubscriberKey" }** is part of a DataExtension while retrieving, but a DataExtension cannot be created/updated with this property. **\_SubscriberKey** must be replaced with **Subscriber Key** before creating/updating
|
|
30
|
+
- The referenced **CategoryID** represents the folder in which the DataExtension is located. these IDs are auto generated and therefore differ between BUs. When a DataExtension is deployed between BUs, the **CategoryID**s must be mapped between source and target
|
|
31
|
+
|
|
32
|
+
## DataExtensionField
|
|
33
|
+
|
|
34
|
+
API: SOAP
|
|
35
|
+
|
|
36
|
+
Considerations:
|
|
37
|
+
|
|
38
|
+
- DataExtensionFields can only be created or updated
|
|
39
|
+
- Instead of using the **CustomerKey** for updates like other metadata types, it uses the **ObjectID** which is auto generated and therefore different in each BU. ObjectIDs must be mapped between source and target if they are deployed between BUs
|
|
40
|
+
- Some properties cannot be updated, but are also not throwing an error when they are part of the request (e.g. **Scale**)
|
|
41
|
+
|
|
42
|
+
## Email
|
|
43
|
+
|
|
44
|
+
API: SOAP
|
|
45
|
+
|
|
46
|
+
## Folder
|
|
47
|
+
|
|
48
|
+
API: SOAP
|
|
49
|
+
|
|
50
|
+
Child Metadata:
|
|
51
|
+
|
|
52
|
+
- [DataExtension](#DataExtension)
|
|
53
|
+
- [Automation](#Automation)
|
|
54
|
+
|
|
55
|
+
Considerations:
|
|
56
|
+
|
|
57
|
+
- Folders are identified by their **ID** instead of their **CustomerKey**, this **ID** is auto generated and therefore different in each BU.
|
|
58
|
+
- **CustomerKey** field can be empty and the **Name** only needs to be unique inside a sub-folder. A unique identifier can be created by building the complete path of a folder (e.g. **/grandparent/parent/folder**). Such a unique identifier can be used to map Folder **ID**s between BUs. This kind of mapping does not support moving folders into other subfolders, because the unique identifier would then change
|
|
59
|
+
|
|
60
|
+
## List
|
|
61
|
+
|
|
62
|
+
API: SOAP
|
|
63
|
+
|
|
64
|
+
## Query
|
|
65
|
+
|
|
66
|
+
API: SOAP
|