embulk-input-marketo_extended 0.6.18
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.
- checksums.yaml +7 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +37 -0
- data/.gitignore +14 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +170 -0
- data/LICENSE.txt +21 -0
- data/README.md +213 -0
- data/build.gradle +103 -0
- data/config/checkstyle/checkstyle.xml +128 -0
- data/config/checkstyle/default.xml +108 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/gradlew +169 -0
- data/gradlew.bat +84 -0
- data/lib/embulk/input/marketo.rb +3 -0
- data/settings.gradle +1 -0
- data/src/main/java/org/embulk/input/marketo/CsvTokenizer.java +700 -0
- data/src/main/java/org/embulk/input/marketo/MarketoInputPlugin.java +15 -0
- data/src/main/java/org/embulk/input/marketo/MarketoInputPluginDelegate.java +100 -0
- data/src/main/java/org/embulk/input/marketo/MarketoService.java +38 -0
- data/src/main/java/org/embulk/input/marketo/MarketoServiceImpl.java +245 -0
- data/src/main/java/org/embulk/input/marketo/MarketoUtils.java +212 -0
- data/src/main/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPlugin.java +167 -0
- data/src/main/java/org/embulk/input/marketo/delegate/CampaignInputPlugin.java +48 -0
- data/src/main/java/org/embulk/input/marketo/delegate/CustomObjectInputPlugin.java +75 -0
- data/src/main/java/org/embulk/input/marketo/delegate/CustomObjectResponseMapperBuilder.java +81 -0
- data/src/main/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPlugin.java +66 -0
- data/src/main/java/org/embulk/input/marketo/delegate/LeadServiceResponseMapperBuilder.java +85 -0
- data/src/main/java/org/embulk/input/marketo/delegate/LeadWithListInputPlugin.java +64 -0
- data/src/main/java/org/embulk/input/marketo/delegate/LeadWithProgramInputPlugin.java +60 -0
- data/src/main/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPlugin.java +441 -0
- data/src/main/java/org/embulk/input/marketo/delegate/MarketoBaseInputPluginDelegate.java +92 -0
- data/src/main/java/org/embulk/input/marketo/delegate/ProgramInputPlugin.java +228 -0
- data/src/main/java/org/embulk/input/marketo/exception/MarketoAPIException.java +30 -0
- data/src/main/java/org/embulk/input/marketo/model/BulkExtractRangeHeader.java +26 -0
- data/src/main/java/org/embulk/input/marketo/model/MarketoAccessTokenResponse.java +92 -0
- data/src/main/java/org/embulk/input/marketo/model/MarketoBulkExtractRequest.java +68 -0
- data/src/main/java/org/embulk/input/marketo/model/MarketoError.java +40 -0
- data/src/main/java/org/embulk/input/marketo/model/MarketoField.java +126 -0
- data/src/main/java/org/embulk/input/marketo/model/MarketoResponse.java +82 -0
- data/src/main/java/org/embulk/input/marketo/model/filter/DateRangeFilter.java +40 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoBaseRestClient.java +306 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoInputStreamResponseEntityReader.java +69 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoRESTEndpoint.java +47 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoResponseJetty92EntityReader.java +89 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoRestClient.java +569 -0
- data/src/main/java/org/embulk/input/marketo/rest/RecordPagingIterable.java +180 -0
- data/src/test/java/org/embulk/input/marketo/MarketoServiceImplTest.java +140 -0
- data/src/test/java/org/embulk/input/marketo/MarketoUtilsTest.java +87 -0
- data/src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java +128 -0
- data/src/test/java/org/embulk/input/marketo/delegate/CampaignInputPluginTest.java +73 -0
- data/src/test/java/org/embulk/input/marketo/delegate/CustomObjectInputPluginTest.java +102 -0
- data/src/test/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPluginTest.java +99 -0
- data/src/test/java/org/embulk/input/marketo/delegate/LeadServiceResponseMapperBuilderTest.java +119 -0
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithListInputPluginTest.java +101 -0
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithProgramInputPluginTest.java +103 -0
- data/src/test/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPluginTest.java +169 -0
- data/src/test/java/org/embulk/input/marketo/delegate/ProgramInputPluginTest.java +343 -0
- data/src/test/java/org/embulk/input/marketo/rest/MarketoBaseRestClientTest.java +368 -0
- data/src/test/java/org/embulk/input/marketo/rest/MarketoRestClientTest.java +584 -0
- data/src/test/resources/config/activity_bulk_extract_config.yaml +7 -0
- data/src/test/resources/config/custom_object_config.yaml +8 -0
- data/src/test/resources/config/lead_bulk_extract_config.yaml +8 -0
- data/src/test/resources/config/rest_config.yaml +3 -0
- data/src/test/resources/fixtures/activity_extract1.csv +35 -0
- data/src/test/resources/fixtures/activity_extract2.csv +22 -0
- data/src/test/resources/fixtures/activity_types.json +22 -0
- data/src/test/resources/fixtures/all_program_full.json +53 -0
- data/src/test/resources/fixtures/campaign_response.json +38 -0
- data/src/test/resources/fixtures/campaign_response_full.json +102 -0
- data/src/test/resources/fixtures/custom_object_describe.json +124 -0
- data/src/test/resources/fixtures/custom_object_describe_marketo_fields_full.json +22 -0
- data/src/test/resources/fixtures/custom_object_expected.json +66 -0
- data/src/test/resources/fixtures/custom_object_response.json +24 -0
- data/src/test/resources/fixtures/custom_object_response_full.json +23 -0
- data/src/test/resources/fixtures/lead_by_list.json +33 -0
- data/src/test/resources/fixtures/lead_by_program_response.json +47 -0
- data/src/test/resources/fixtures/lead_describe.json +221 -0
- data/src/test/resources/fixtures/lead_describe_expected.json +66 -0
- data/src/test/resources/fixtures/lead_describe_marketo_fields_full.json +518 -0
- data/src/test/resources/fixtures/lead_extract1.csv +11 -0
- data/src/test/resources/fixtures/lead_response_full.json +2402 -0
- data/src/test/resources/fixtures/lead_with_program_full.json +17 -0
- data/src/test/resources/fixtures/leads_extract2.csv +10 -0
- data/src/test/resources/fixtures/list_reponse_full.json +191 -0
- data/src/test/resources/fixtures/lists_response.json +31 -0
- data/src/test/resources/fixtures/program_response.json +71 -0
- metadata +171 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 12599394a20752769173478de83e784ad9789281
|
4
|
+
data.tar.gz: 92e3492011dfcc74354acc6c0a4cb070e62c2b21
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7e902baac51f0a1fb9fafab08e540bb5acbaa7be69948204b3272b32cb187da3aef3d9572492a965fe692c8e99b7860a66b002c640db5661c4ebb590bae1b1b7
|
7
|
+
data.tar.gz: 368d67fa4e00d86cc94bbbdec1a23a68d197cfa91afe28c6bcdea77a54cd14ca261855eae0f0ca255932bcf47a63c7abf5dfc46274e59ab8f38f65b3949da5e5
|
@@ -0,0 +1,37 @@
|
|
1
|
+
### Are all connections created by the plugin secure?
|
2
|
+
|
3
|
+
- [ ] Does it opt secure communication standard? Such as HTTPS, SSH, SFTP, SMTP STARTTLS. If not check with CISO to decide we can deploy the plugin.
|
4
|
+
- [ ] Does support both authentication and encryption appropriately? Such as: "just encrypting without authentication" that is insecure.
|
5
|
+
|
6
|
+
### Does the plugin connect only to its expected external site which the customer explicitly set in their config file?
|
7
|
+
|
8
|
+
- [ ] Does NOT connect unexpected external site and our internal endpoints? Such as: “v3/job/:id/set_started” callback endpoint.
|
9
|
+
|
10
|
+
### Does NOT the plugin persist any customers' private information? Identify the private information beforehand.
|
11
|
+
|
12
|
+
- [ ] Does NOT include them in (temporary) files?
|
13
|
+
- [ ] Does NOT include them in log messages and exception messages?
|
14
|
+
|
15
|
+
### What kind of environments does the plugin interact with?
|
16
|
+
|
17
|
+
- [ ] Does NOT execute any shell command?
|
18
|
+
- [ ] Does NOT read any files on the running instance? Such as: "/etc/passwords". It’s ok to read temporary files that the plugin wrote.
|
19
|
+
- [ ] Does use to create temporary files by spi.TempFileSpace utility to avoid the conflict of the file names.
|
20
|
+
- [ ] Does NOT get environment variables or JVM system properties at runtime? Such as AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in environment variables
|
21
|
+
|
22
|
+
### Does NOT the plugin use insecure libraries?
|
23
|
+
|
24
|
+
- [ ] Line up all depending library so that we can identify the impact of security incident of those library if any.
|
25
|
+
- [ ] Check libraries usage of the plugin; all security check list must apply to the library usages. Such as "Are all connections created by the library secure?"
|
26
|
+
|
27
|
+
### Does NOT the plugin source code repository contain kinds of credentials
|
28
|
+
|
29
|
+
- [ ] API keys
|
30
|
+
- [ ] Passwords
|
31
|
+
|
32
|
+
### Make sure to free up all resources allocated during Embulk transaction “committing” or “rolling back”or before.
|
33
|
+
|
34
|
+
- [ ] Network (connections, pooled connections)
|
35
|
+
- [ ] Memory (cache in static variables)
|
36
|
+
- [ ] File (temporary files)
|
37
|
+
- [ ] CPU (threads, processes)
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
## 0.6.18 - 2020-01-06
|
2
|
+
* [enhancement] Support Marketo Partner API Key [#98](https://github.com/treasure-data/embulk-input-marketo/pull/98)
|
3
|
+
|
4
|
+
## 0.6.17 - 2019-12-03
|
5
|
+
* [hotfix] Fixed issue issue actTypeIds is required [#97](https://github.com/treasure-data/embulk-input-marketo/pull/97)
|
6
|
+
|
7
|
+
## 0.6.16 - 2019-12-03
|
8
|
+
* [enhancement] Added support for ActivityTypeIds filter PR [#96](https://github.com/treasure-data/embulk-input-marketo/pull/96)
|
9
|
+
|
10
|
+
## 0.6.15 - 2019-09-20
|
11
|
+
* [enhancement] Raise RuntimeException for temp file error [#94](https://github.com/treasure-data/embulk-input-marketo/pull/94)
|
12
|
+
|
13
|
+
## 0.6.14 - 2019-08-19
|
14
|
+
* [enhancement] Improve exception handling [#93](https://github.com/treasure-data/embulk-input-marketo/pull/93)
|
15
|
+
|
16
|
+
## 0.6.13 - 2019-01-21
|
17
|
+
* [enhance] Add more error code to retry [#91](https://github.com/treasure-data/embulk-input-marketo/pull/91)
|
18
|
+
|
19
|
+
## 0.6.12 - 2018-11-09
|
20
|
+
* [enhance] Implement Custom Object [#90](https://github.com/treasure-data/embulk-input-marketo/pull/90)
|
21
|
+
|
22
|
+
## 0.6.11 - 2018-09-10
|
23
|
+
* [enhance] Implement Assets Programs [#89](https://github.com/treasure-data/embulk-input-marketo/pull/89)
|
24
|
+
|
25
|
+
## 0.6.10 - 2018-05-28
|
26
|
+
* [fixed] Add included column option [#87](https://github.com/treasure-data/embulk-input-marketo/pull/87)
|
27
|
+
|
28
|
+
## 0.6.9 - 2018-04-16
|
29
|
+
* [fixed] Fix wrapped TimeoutException not retry [#85](https://github.com/treasure-data/embulk-input-marketo/pull/85)
|
30
|
+
* [enhance] Make read_timeout configurable [#85](https://github.com/treasure-data/embulk-input-marketo/pull/85)
|
31
|
+
|
32
|
+
## 0.6.8 - 2018-04-12
|
33
|
+
* [fixed] Fix incorrect incorrect retry logic [#84](https://github.com/treasure-data/embulk-input-marketo/pull/84)
|
34
|
+
|
35
|
+
## 0.6.7 - 2018-02-26
|
36
|
+
* [fixed] Remove de-duplication logic [#83](https://github.com/treasure-data/embulk-input-marketo/pull/83)
|
37
|
+
|
38
|
+
## 0.6.6 - 2018-01-30
|
39
|
+
* [fixed] Fix JettyRetryHelper not closed [#82](https://github.com/treasure-data/embulk-input-marketo/pull/82)
|
40
|
+
## 0.6.5 - 2017-12-19 [fixed] Fix infinite loop when import non bulk extract targets [#80](https://github.com/treasure-data/embulk-input-marketo/pull/80) ## 0.6.4 - 2017-12-13 [fixed] Fix incorrect job timeout calculation [#78](https://github.com/treasure-data/embulk-input-marketo/pull/78)
|
41
|
+
* [enhance] Disable incremental import by updatedAt [#77](https://github.com/treasure-data/embulk-input-marketo/pull/77)
|
42
|
+
* [enhance] Add log for exported file size [#76](https://github.com/treasure-data/embulk-input-marketo/pull/76)
|
43
|
+
|
44
|
+
|
45
|
+
## 0.6.3 - 2017-11-13
|
46
|
+
* [enhance] Ignore records with timestamp smaller or equal to latest_fetch_time [#74](https://github.com/treasure-data/embulk-input-marketo/pull/74)
|
47
|
+
|
48
|
+
## 0.6.2 - 2017-10-16
|
49
|
+
* [fixed] NullPointerException when building config diff [#73](https://github.com/treasure-data/embulk-input-marketo/pull/73)
|
50
|
+
|
51
|
+
## 0.6.1 - 2017-10-12
|
52
|
+
* [fixed] OutOfMemeory when run Lead by list, Lead by program [#69](https://github.com/treasure-data/embulk-input-marketo/pull/69)
|
53
|
+
* [fixed] SOAP only field cause NullPointerException [#69](https://github.com/treasure-data/embulk-input-marketo/pull/69)
|
54
|
+
* [enhancement] Implement file download resume in Bulk extract [#69](https://github.com/treasure-data/embulk-input-marketo/pull/69)
|
55
|
+
|
56
|
+
## 0.6.0 - 2017-10-10
|
57
|
+
* [major] Migrate to Java by embulk-base-restclient [#66](https://github.com/treasure-data/embulk-input-marketo/pull/66)
|
58
|
+
* [major] Migrate to REST API [#66](https://github.com/treasure-data/embulk-input-marketo/pull/66)
|
59
|
+
* [major] Add 3 more target, Campaign, Lead by list and Lead by program [#66](https://github.com/treasure-data/embulk-input-marketo/pull/66)
|
60
|
+
* [major] Support Marketo bulk extract API for lead and activity targets [#66](https://github.com/treasure-data/embulk-input-marketo/pull/66)
|
61
|
+
* [major] Support incremental ingestion for lead and activity targets [#66](https://github.com/treasure-data/embulk-input-marketo/pull/66)
|
62
|
+
|
63
|
+
## 0.5.6 - 2016-12-14
|
64
|
+
* [maintenance] Enable tcp keepalive [#64](https://github.com/treasure-data/embulk-input-marketo/pull/64)
|
65
|
+
|
66
|
+
## 0.5.6 - 2016-12-14
|
67
|
+
* [maintenance] Enable tcp keepalive [#64](https://github.com/treasure-data/embulk-input-marketo/pull/64)
|
68
|
+
|
69
|
+
## 0.5.5 - 2016-11-24
|
70
|
+
* [fixed] Generate config_diff even if no records found [#62](https://github.com/treasure-data/embulk-input-marketo/pull/62)
|
71
|
+
* [maintenance] Fix to use CodeClimate 0.x [#63](https://github.com/treasure-data/embulk-input-marketo/pull/63)
|
72
|
+
|
73
|
+
## 0.5.4 - 2016-10-26
|
74
|
+
* [enhancement] Validate wsdl_url and endpoint_url are the valid form [#61](https://github.com/treasure-data/embulk-input-marketo/pull/61)
|
75
|
+
* [enhancement] Minor readme change [#58](https://github.com/treasure-data/embulk-input-marketo/pull/58)
|
76
|
+
* [fixed] Fix error when retrying on guess/preview [#59](https://github.com/treasure-data/embulk-input-marketo/pull/59)
|
77
|
+
* [enhancement] Try newer date at first on preview to avoid miss hit [#60](https://github.com/treasure-data/embulk-input-marketo/pull/60)
|
78
|
+
|
79
|
+
## 0.5.3 - 2016-07-01
|
80
|
+
|
81
|
+
* [enhancement] make concurrent limit exceeded error retryable [#56](https://github.com/treasure-data/embulk-input-marketo/pull/56)
|
82
|
+
* [maintenance] Gathering test coverage on CI [#55](https://github.com/treasure-data/embulk-input-marketo/pull/55)
|
83
|
+
|
84
|
+
## 0.5.2 - 2016-04-27
|
85
|
+
* [enhancement] Make debug easier [#54](https://github.com/treasure-data/embulk-input-marketo/pull/54)
|
86
|
+
* [fixed] Recognize empty string as nil value [#53](https://github.com/treasure-data/embulk-input-marketo/pull/53)
|
87
|
+
|
88
|
+
## 0.5.1 - 2016-04-06
|
89
|
+
|
90
|
+
* [maintenance] Relax dependency version
|
91
|
+
|
92
|
+
## 0.5.0 - 2016-04-06
|
93
|
+
|
94
|
+
This version drops old Embulk supports. Embulk 0.8 or later is required since this version.
|
95
|
+
|
96
|
+
* [enhancement] Add tests for Embulk 0.8 and drop support old Embulk [#52](https://github.com/treasure-data/embulk-input-marketo/pull/52)
|
97
|
+
* [maintenance] Refactor lead and activity [#51](https://github.com/treasure-data/embulk-input-marketo/pull/51)
|
98
|
+
* [maintenance] Refactor retry [#50](https://github.com/treasure-data/embulk-input-marketo/pull/50)
|
99
|
+
|
100
|
+
## 0.4.0 - 2015-10-30
|
101
|
+
|
102
|
+
This version drops scheduled execution with marketo/lead.
|
103
|
+
|
104
|
+
* [enhancement] Append processed time column [#49](https://github.com/treasure-data/embulk-input-marketo/pull/49)
|
105
|
+
* [enhancement] Exponential backoff retry [#48](https://github.com/treasure-data/embulk-input-marketo/pull/48)
|
106
|
+
* [fixed] Fix preview didn't stop after fetched if multiple ranges have [#45](https://github.com/treasure-data/embulk-input-marketo/pull/45)
|
107
|
+
* [enhancement] activity_log: Use from..from+30m range for guess [#47](https://github.com/treasure-data/embulk-input-marketo/pull/47)
|
108
|
+
* [enhancement] Unsupport scheduled execution for lead [#46](https://github.com/treasure-data/embulk-input-marketo/pull/46) [#41](https://github.com/treasure-data/embulk-input-marketo/pull/41) [Reported by @muga. Thanks!]
|
109
|
+
|
110
|
+
## 0.3.2 - 2015-10-13
|
111
|
+
|
112
|
+
* [fixed] Prevent memoize in class [#44](https://github.com/treasure-data/embulk-input-marketo/pull/44)
|
113
|
+
|
114
|
+
## 0.3.1 - 2015-10-06
|
115
|
+
|
116
|
+
* [enhancement] Supports embulk.0.7 [#43](https://github.com/treasure-data/embulk-input-marketo/pull/43)
|
117
|
+
* [maintenance] Refactor [#40](https://github.com/treasure-data/embulk-input-marketo/pull/40)
|
118
|
+
|
119
|
+
## 0.3.0 - 2015-09-30
|
120
|
+
|
121
|
+
This version breaks backword compatibility of marketo/activity_log. Please check README.md to modify your config.
|
122
|
+
|
123
|
+
* [enhancement] Also activity_log uses from_datetime/to_datetime same as lead [#39](https://github.com/treasure-data/embulk-input-marketo/pull/39)
|
124
|
+
|
125
|
+
## 0.2.5 - 2015-09-28
|
126
|
+
|
127
|
+
* [fixed] lead: Fix the bug when `from_datetime` and `to_datetime` are same [#37](https://github.com/treasure-data/embulk-input-marketo/pull/37)
|
128
|
+
|
129
|
+
## 0.2.4 - 2015-09-17
|
130
|
+
|
131
|
+
* [enhancement] Retry to call API until 5 times when Timeout [#36](https://github.com/treasure-data/embulk-input-marketo/pull/36) [[Reported by @muga](https://github.com/treasure-data/embulk-input-marketo/issues/34). Thanks!]
|
132
|
+
|
133
|
+
## 0.2.3 - 2015-09-14
|
134
|
+
|
135
|
+
* [enhancement] Catch config error [#33](https://github.com/treasure-data/embulk-input-marketo/pull/33)
|
136
|
+
* [enhancement] Concurrent worker [#31](https://github.com/treasure-data/embulk-input-marketo/pull/31)
|
137
|
+
|
138
|
+
## 0.2.2 - 2015-09-08
|
139
|
+
|
140
|
+
* [fixed] Fix handling for activity_date_time [#32](https://github.com/treasure-data/embulk-input-marketo/pull/32)
|
141
|
+
|
142
|
+
## 0.2.1 - 2015-09-01
|
143
|
+
|
144
|
+
* [fixed] activity_log: Avoid to cast values unexpectedly [#29](https://github.com/treasure-data/embulk-input-marketo/pull/29)
|
145
|
+
* [maintenance] Add a minor comment [#28](https://github.com/treasure-data/embulk-input-marketo/pull/28) [Requested by @muga. Thanks!!]
|
146
|
+
* [maintenance] Fix minor issues [#27](https://github.com/treasure-data/embulk-input-marketo/pull/27) [[Reviewed by @muga.](https://github.com/treasure-data/embulk-input-marketo/pull/25#issuecomment-135570967) Thanks!!]
|
147
|
+
|
148
|
+
## 0.2.0 - 2015-08-27
|
149
|
+
|
150
|
+
This version breaks backword compatibility of marketo/lead. Please check README.md to modify your config.
|
151
|
+
|
152
|
+
* [enhancement] Avoid timeout for marketo/lead input [#25](https://github.com/treasure-data/embulk-input-marketo/pull/25)
|
153
|
+
* [fixed] Fix timestamp column [#24](https://github.com/treasure-data/embulk-input-marketo/pull/24)
|
154
|
+
* [enhancement] Raise ConfigError if unretryable error occured [#23](https://github.com/treasure-data/embulk-input-marketo/pull/23)
|
155
|
+
* [fixed] Fix the bug that the default value for wsdl is broken [#22](https://github.com/treasure-data/embulk-input-marketo/pull/22)
|
156
|
+
|
157
|
+
## 0.1.1 - 2015-08-19
|
158
|
+
|
159
|
+
* [enhanement] Support scheduled execution [#20](https://github.com/treasure-data/embulk-input-marketo/pull/20) [[Reported by @muga](https://github.com/treasure-data/embulk-input-marketo/issues/18). Thanks!]
|
160
|
+
* [maintenance] Use everyleaf-embulk_helper [#19](https://github.com/treasure-data/embulk-input-marketo/pull/19)
|
161
|
+
|
162
|
+
## 0.1.0 - 2015-07-15
|
163
|
+
|
164
|
+
We implemented activity_log plugin for marketo, so config generated from 0.0.1 should be modified. Please check README.md to do it.
|
165
|
+
|
166
|
+
* [enhancement] Implement activity_log plugin [#13](https://github.com/treasure-data/embulk-input-marketo/pull/13) [#14](https://github.com/treasure-data/embulk-input-marketo/pull/14) [#15](https://github.com/treasure-data/embulk-input-marketo/pull/15)
|
167
|
+
|
168
|
+
## 0.0.1 - 2015-07-06
|
169
|
+
|
170
|
+
The first release!!
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
MIT License
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
a copy of this software and associated documentation files (the
|
6
|
+
"Software"), to deal in the Software without restriction, including
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be
|
13
|
+
included in all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,213 @@
|
|
1
|
+
[](https://travis-ci.org/treasure-data/embulk-input-marketo)
|
2
|
+
[](https://codeclimate.com/github/treasure-data/embulk-input-marketo)
|
3
|
+
[](https://codeclimate.com/github/treasure-data/embulk-input-marketo/coverage)
|
4
|
+
[](http://badge.fury.io/rb/embulk-input-marketo)
|
5
|
+
|
6
|
+
# Marketo input plugin for Embulk
|
7
|
+
|
8
|
+
embulk-input-marketo is the gem preparing Embulk input plugins for [Marketo](http://www.marketo.com/).
|
9
|
+
|
10
|
+
- Lead(lead)
|
11
|
+
- Activity log(activity)
|
12
|
+
- Lead by list(all_lead_with_list_id)
|
13
|
+
- Lead by program(all_lead_with_program_id)
|
14
|
+
- Campaign(campaign)
|
15
|
+
- Assets Programs (program)
|
16
|
+
|
17
|
+
This plugin uses Marketo REST API.
|
18
|
+
|
19
|
+
## Overview
|
20
|
+
|
21
|
+
Required Embulk version >= 0.8.33 (since 0.6.0).
|
22
|
+
|
23
|
+
* **Plugin type**: input
|
24
|
+
* **Resume supported**: no
|
25
|
+
* **Cleanup supported**: no
|
26
|
+
* **Guess supported**: no
|
27
|
+
|
28
|
+
## Install
|
29
|
+
|
30
|
+
```
|
31
|
+
$ embulk gem install embulk-input-marketo
|
32
|
+
```
|
33
|
+
|
34
|
+
## Configuration
|
35
|
+
|
36
|
+
### API
|
37
|
+
|
38
|
+
Below parameters are shown in "Admin" > "Web Services" page in Marketo.
|
39
|
+
|
40
|
+
### Base configuration parameter
|
41
|
+
|
42
|
+
All target have this configuration parameters
|
43
|
+
|
44
|
+
| name | required | default value | description |
|
45
|
+
|----------------------------------|----------|---------------|----------------------------------------------------------------------------------------------------------------------------------|
|
46
|
+
| **target** | true | | Marketo targets |
|
47
|
+
| **account_id** | true | | Marketo Muchkin id |
|
48
|
+
| **client_id** | true | | Marketo REST client id |
|
49
|
+
| **client_secret** | true | | Marketo REST client secret |
|
50
|
+
| **marketo_limit_interval_milis** | false | 20 | Marketo have limitation of 100 calls per 20 second. If REST API calls are failed they will wait this amount of time before retry |
|
51
|
+
| **batch_size** | false | 300 | Token paging batch size. Some REST API support batch |
|
52
|
+
| **max_return** | false | 200 | Max return for Endpoint that use offset paging |
|
53
|
+
| **partner_api_key** | false | | Set Marketo Partner API Key see: http://developers.marketo.com/support/Marketo_LaunchPoint_Technology_Partner_API_Key.pdf |
|
54
|
+
|
55
|
+
### Bulk extract target configuration parameter (Lead and Activity)
|
56
|
+
|
57
|
+
All bulk extract target use this configuration parameter
|
58
|
+
|
59
|
+
| name | required | default value | description |
|
60
|
+
|-----------------------------|----------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
|
61
|
+
| **from_date** | true | | Import data since this date. Example: 2017-10-11T06:43:24+00:00 |
|
62
|
+
| **fetch_days** | false | 1 | Amount of days to fetch since from_date |
|
63
|
+
| **polling_interval_second** | false | 60 | Amount of time to wait between pooling job status in second |
|
64
|
+
| **bulk_job_timeout_second** | false | 3600 | Amount of time to wait for bulk job to complete in second |
|
65
|
+
| **incremental** | false | true | If incremental is set to true, next run will have from_date set to the previous to_date(calculated by from_date + fetch_days) |
|
66
|
+
| **incremental_column** | false | createdAt | Column use to filter from_date and to_date |
|
67
|
+
|
68
|
+
### Lead
|
69
|
+
|
70
|
+
Lead target extract all Marketo leads, it use Marketo bulk extract feature. Configuration include bulk extract configuration.
|
71
|
+
|
72
|
+
`target: lead`
|
73
|
+
|
74
|
+
Configuration:
|
75
|
+
|
76
|
+
| name | required | default value | description |
|
77
|
+
|---------------------|----------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
78
|
+
| **use_updated_at** | false | false | Support filter with `updateAt` column, but not all Marketo Account have the feature to filter by updatedAt, updatedAt don't support incremental ingestion |
|
79
|
+
| **included_fields** | false | null | List of lead fields to included in export request sent to Marketo, can be used to reduce the size of BulkExtract file |
|
80
|
+
|
81
|
+
Schema type: Dynamic via describe lead endpoint.
|
82
|
+
|
83
|
+
Incremental support: yes
|
84
|
+
|
85
|
+
Range ingestion: yes
|
86
|
+
|
87
|
+
### Activity
|
88
|
+
|
89
|
+
Activity target extract all Marketo activity log. Configuration include all bulk extract configuration
|
90
|
+
|
91
|
+
`target: activity`
|
92
|
+
|
93
|
+
Schema type: Static schema
|
94
|
+
|
95
|
+
Incremental support: yes
|
96
|
+
|
97
|
+
Range ingestion: yes
|
98
|
+
|
99
|
+
Filter by specific activity type ids: yes. See [#95](https://github.com/treasure-data/embulk-input-marketo/issues/95)
|
100
|
+
|
101
|
+
### Campaign
|
102
|
+
|
103
|
+
Campaign extract all campaign data from Marketo
|
104
|
+
|
105
|
+
`target: campaign`
|
106
|
+
|
107
|
+
Schema type: Static schema
|
108
|
+
|
109
|
+
Incremental support: no
|
110
|
+
|
111
|
+
Range ingestion: no
|
112
|
+
|
113
|
+
### Lead by list
|
114
|
+
|
115
|
+
Extract all Lead data including lead's list id
|
116
|
+
|
117
|
+
`target: all_lead_with_list_id`
|
118
|
+
|
119
|
+
Configuration:
|
120
|
+
|
121
|
+
| name | required | default value | description |
|
122
|
+
|---------------------|----------|---------------|-----------------------------------------------------------------------------------------------------------------|
|
123
|
+
| **included_fields** | false | null | List of lead fields to included in export request sent to Marketo, can be used to reduce request, response size |
|
124
|
+
|
125
|
+
Schema type: Dynamic via describe leads. Schema will have 1 addition column name listId that contain the id of the list the lead belong to
|
126
|
+
|
127
|
+
Incremental support: no
|
128
|
+
|
129
|
+
Range ingestion: no
|
130
|
+
|
131
|
+
### Lead by program
|
132
|
+
|
133
|
+
Extract all Lead data including lead's program id
|
134
|
+
|
135
|
+
`target: all_lead_with_program_id`
|
136
|
+
|
137
|
+
Configuration:
|
138
|
+
|
139
|
+
| name | required | default value | description |
|
140
|
+
|---------------------|----------|---------------|-----------------------------------------------------------------------------------------------------------------|
|
141
|
+
| **included_fields** | false | null | List of lead fields to included in export request sent to Marketo, can be used to reduce request, response size |
|
142
|
+
|
143
|
+
Schema type: Dynamic via describe leads. Schema will have 1 addition column name listId that contain the id of the list the lead belong to
|
144
|
+
|
145
|
+
Incremental support: no
|
146
|
+
|
147
|
+
Range ingestion: no
|
148
|
+
|
149
|
+
### Assets programs
|
150
|
+
|
151
|
+
Get Assets Programs by Query Tag type, Date range or all if no query by specified.
|
152
|
+
|
153
|
+
`target: program`
|
154
|
+
|
155
|
+
Configuration:
|
156
|
+
|
157
|
+
| name | required | default value | description |
|
158
|
+
|-----------------------------|----------|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
159
|
+
| **query_by** | false | null | Get assets programs by query, supported values `date_range`, `tag_type` leave unset to fetch all programs |
|
160
|
+
| **earliest_updated_at** | false | null | Required if query by `date_range` is selected. Exclude programs prior to this date. Must be valid ISO-8601 string |
|
161
|
+
| **latest_updated_at** | false | null | Required if query by `date_range` is selected. Exclude programs after this date. Must be valid ISO-8601 string |
|
162
|
+
| **filter_type** | false | null | Optional value send with query by `date_range` is selected to filter out the result from Marketo. Supported values `id`, `programId`, `folderId`, `workspace`|
|
163
|
+
| **filter_values** | false | null | Set the values associated with `filter_type` |
|
164
|
+
| **tag_type** | false | null | Required if query by `tag_type` is selected. Type of program tag |
|
165
|
+
| **tag_value** | false | null | Required if query by `tag_type` is selected. Value of the tag |
|
166
|
+
| **report_duration** | false | null | Amount of milliseconds to fetch from `earliest_updated_at`. If `incremental = true` this value will automatically calculated for the first run by `latest_updated_at` - `earliest_updated_at` |
|
167
|
+
| **incremental** | false | true | If incremental is set to true, next run will have `earliest_updated_at` set to the previous `latest_updated_at` + `report_duration`. Incremental import only support by query `date_range` |
|
168
|
+
|
169
|
+
Schema type: Static schema
|
170
|
+
|
171
|
+
Incremental support: yes (Query by `date_range` only)
|
172
|
+
|
173
|
+
Range ingestion: yes
|
174
|
+
|
175
|
+
## Example
|
176
|
+
|
177
|
+
For lead, you have `partial-config.yml` like below:
|
178
|
+
|
179
|
+
```yaml
|
180
|
+
in:
|
181
|
+
type: marketo
|
182
|
+
target: lead
|
183
|
+
account_id: ACCOUNT_ID
|
184
|
+
client_id: CLIENT_ID
|
185
|
+
client_secret: CLIENT_SECRET
|
186
|
+
from_date: 2017-09-01
|
187
|
+
fetch_days: 1
|
188
|
+
out:
|
189
|
+
type: stdout
|
190
|
+
```
|
191
|
+
|
192
|
+
You can run `embulk guess partial-config.yml -o lead-config.yml` and got `lead-config.yml`. `lead-config.yml` includes a schema for Lead.
|
193
|
+
|
194
|
+
Next, you can run `embulk preview lead-config.yml` for preview and `embulk run lead-config.yml` for run.
|
195
|
+
|
196
|
+
Example of Assets Programs config
|
197
|
+
```yaml
|
198
|
+
in:
|
199
|
+
account_id: ACCOUNT_ID
|
200
|
+
client_id: CLIENT_ID
|
201
|
+
client_secret: CLIENT_SECRET
|
202
|
+
target: program
|
203
|
+
type: marketo
|
204
|
+
query_by: date_range
|
205
|
+
filter_type: folderId
|
206
|
+
filter_values:
|
207
|
+
- 2598
|
208
|
+
- 1001
|
209
|
+
earliest_updated_at: 2018-08-20T00:00:00.000Z
|
210
|
+
latest_updated_at: 2018-08-31T00:00:00.000Z
|
211
|
+
incremental: true
|
212
|
+
```
|
213
|
+
|