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.
Files changed (50) hide show
  1. package/.eslintrc.json +1 -1
  2. package/.github/ISSUE_TEMPLATE/bug.yml +72 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. package/.github/ISSUE_TEMPLATE/task.md +10 -0
  5. package/.github/PULL_REQUEST_TEMPLATE.md +11 -0
  6. package/.github/workflows/npm-publish.yml +33 -0
  7. package/.issuetracker +11 -3
  8. package/.vscode/extensions.json +1 -2
  9. package/.vscode/settings.json +19 -4
  10. package/CHANGELOG.md +98 -0
  11. package/README.md +247 -142
  12. package/boilerplate/config.json +3 -2
  13. package/docs/dist/considerations.md +66 -0
  14. package/docs/dist/documentation.md +5794 -0
  15. package/lib/Deployer.js +4 -1
  16. package/lib/MetadataTypeDefinitions.js +1 -0
  17. package/lib/MetadataTypeInfo.js +1 -0
  18. package/lib/Retriever.js +32 -17
  19. package/lib/cli.js +295 -0
  20. package/lib/index.js +774 -1019
  21. package/lib/metadataTypes/AccountUser.js +389 -0
  22. package/lib/metadataTypes/Asset.js +140 -116
  23. package/lib/metadataTypes/Automation.js +119 -54
  24. package/lib/metadataTypes/DataExtension.js +172 -131
  25. package/lib/metadataTypes/DataExtensionField.js +134 -4
  26. package/lib/metadataTypes/Folder.js +66 -69
  27. package/lib/metadataTypes/ImportFile.js +4 -6
  28. package/lib/metadataTypes/MetadataType.js +168 -80
  29. package/lib/metadataTypes/Query.js +54 -25
  30. package/lib/metadataTypes/Role.js +13 -8
  31. package/lib/metadataTypes/Script.js +43 -24
  32. package/lib/metadataTypes/definitions/AccountUser.definition.js +227 -0
  33. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  34. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -1
  35. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -1
  36. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -1
  37. package/lib/metadataTypes/definitions/Folder.definition.js +1 -1
  38. package/lib/metadataTypes/definitions/ImportFile.definition.js +2 -1
  39. package/lib/metadataTypes/definitions/Script.definition.js +5 -5
  40. package/lib/retrieveChangelog.js +96 -0
  41. package/lib/util/cli.js +4 -6
  42. package/lib/util/init.config.js +3 -0
  43. package/lib/util/init.git.js +2 -1
  44. package/lib/util/util.js +35 -18
  45. package/package.json +20 -24
  46. package/test/util/file.js +51 -0
  47. package/img/README.md/troubleshoot-nodejs-postinstall.jpg +0 -0
  48. package/postinstall.js +0 -41
  49. package/test/deployer.js +0 -16
  50. package/test/util.js +0 -26
@@ -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": ["role", "dataExtension"],
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