embulk-output-kintone 0.4.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +63 -5
- data/build.gradle +1 -0
- data/classpath/commons-csv-1.9.0.jar +0 -0
- data/classpath/embulk-output-kintone-1.1.0.jar +0 -0
- data/classpath/externalsortinginjava-0.6.2.jar +0 -0
- data/classpath/{shadow-kintone-java-client-0.4.1-all.jar → shadow-kintone-java-client-1.1.0-all.jar} +0 -0
- data/src/main/java/org/embulk/output/kintone/KintoneColumnOption.java +6 -2
- data/src/main/java/org/embulk/output/kintone/KintoneColumnType.java +572 -0
- data/src/main/java/org/embulk/output/kintone/KintoneColumnVisitor.java +214 -135
- data/src/main/java/org/embulk/output/kintone/KintoneMode.java +0 -1
- data/src/main/java/org/embulk/output/kintone/KintoneOutputPlugin.java +12 -5
- data/src/main/java/org/embulk/output/kintone/KintonePageOutput.java +180 -160
- data/src/main/java/org/embulk/output/kintone/KintoneSortColumn.java +33 -0
- data/src/main/java/org/embulk/output/kintone/PluginTask.java +35 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/DeserializeApplier.java +19 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/DeserializeException.java +7 -0
- data/src/main/java/org/embulk/output/kintone/deserializer/Deserializer.java +279 -0
- data/src/main/java/org/embulk/output/kintone/reducer/CSVInputColumnVisitor.java +78 -0
- data/src/main/java/org/embulk/output/kintone/reducer/CSVOutputColumnVisitor.java +79 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReduceException.java +11 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReduceType.java +190 -0
- data/src/main/java/org/embulk/output/kintone/reducer/ReducedPageOutput.java +100 -0
- data/src/main/java/org/embulk/output/kintone/reducer/Reducer.java +355 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnOptionBuilder.java +9 -3
- data/src/test/java/org/embulk/output/kintone/KintoneColumnTypeTest.java +194 -0
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorTest.java +703 -61
- data/src/test/java/org/embulk/output/kintone/KintoneColumnVisitorVerifier.java +45 -14
- data/src/test/java/org/embulk/output/kintone/KintonePageOutputVerifier.java +43 -5
- data/src/test/java/org/embulk/output/kintone/TestKintoneOutputPlugin.java +106 -16
- data/src/test/java/org/embulk/output/kintone/TestTaskMode.java +12 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduce.java +46 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduceException.java +50 -0
- data/src/test/java/org/embulk/output/kintone/TestTaskReduceSubtable.java +46 -0
- data/src/test/java/org/embulk/output/kintone/deserializer/DeserializerTest.java +165 -0
- data/src/test/java/org/embulk/output/kintone/reducer/ReduceTypeTest.java +154 -0
- data/src/test/resources/org/embulk/output/kintone/task/config.yml +1 -1
- data/src/test/resources/org/embulk/output/kintone/task/mode/config.yml +110 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/input.csv +7 -7
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/insert_add_records.jsonl +6 -6
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/update_update_records.jsonl +6 -3
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_add_records.jsonl +2 -2
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/upsert_update_records.jsonl +4 -4
- data/src/test/resources/org/embulk/output/kintone/task/mode/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/mode/values_prefer_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/config.yml +171 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/input.csv +7 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/insert_add_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/update_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_add_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/upsert_update_records.jsonl +4 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce/values_prefer_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/config.yml +36 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/derived_columns.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/input.csv +13 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/insert_add_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_exception/update_update_records.jsonl +2 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/config.yml +343 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/derived_columns.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/input.csv +13 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_ignore_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_prefer_nulls_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/insert_add_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/update_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_add_records.jsonl +0 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_ignore_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_prefer_nulls_records.jsonl +3 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/upsert_update_records.jsonl +6 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values_ignore_nulls.json +1 -0
- data/src/test/resources/org/embulk/output/kintone/task/reduce_subtable/values_prefer_nulls.json +1 -0
- metadata +73 -4
- data/classpath/embulk-output-kintone-0.4.1.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38d9d369925e0cab9fa558716b9a939be4b1387e
|
4
|
+
data.tar.gz: f4ae4a741548a48b042e1c4b79bf7e533ded0d31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06d103f7c4036dd458f62955bee9b2b82aa2bb2719cb59f18a2a762bab5c892025b4dd7fb0b41647e0e9cf66e012916f60de1a48c1a6d41414af0447d8affb06
|
7
|
+
data.tar.gz: ee848b7cfb53cc27c731724d32b6d5ffa9fe3336742fc1bbf24bd2b49d07f6f99439b478a0342051810ef94597471caded0f81caaf3aaff78203ce0ff20485d6
|
data/README.md
CHANGED
@@ -8,21 +8,34 @@ kintone output plugin for Embulk stores app records from kintone.
|
|
8
8
|
|
9
9
|
## Configuration
|
10
10
|
|
11
|
-
- **domain**: kintone domain(FQDN) e.g. devfoo.cybozu.com (string, required)
|
11
|
+
- **domain**: kintone domain (FQDN) e.g. devfoo.cybozu.com (string, required)
|
12
12
|
- **username**: kintone username (string, optional)
|
13
13
|
- **password**: kintone password (string, optional)
|
14
14
|
- **token**: kintone app token. Username and password or token must be configured. If all of them are provided, this plugin uses username and password (string, optional)
|
15
15
|
- **app_id**: kintone app id (integer, required)
|
16
|
-
- **basic_auth_username**:
|
17
|
-
- **basic_auth_password**:
|
16
|
+
- **basic_auth_username**: kintone basic auth username Please see kintone basic auth [here](https://jp.cybozu.help/general/en/admin/list_security/list_ip_basic/basic_auth.html) (string, optional)
|
17
|
+
- **basic_auth_password**: kintone basic auth password (string, optional)
|
18
18
|
- **guest_space_id**: kintone app belongs to guest space, guest space id is required. (integer, optional)
|
19
19
|
- **mode**: kintone mode (string, required)
|
20
|
-
- **update_key**:
|
20
|
+
- **update_key**: Column name to set update key (string, required if mode is update or upsert)
|
21
|
+
- **reduce_key**: Key column name to reduce expanded SUBTABLE (string, optional)
|
22
|
+
- **sort_columns**: List of columns for sorting input records (array of objects, optional)
|
23
|
+
- **name**: Column name (string, required)
|
24
|
+
- **order**: Sort order (string `asc` or `desc`, required)
|
25
|
+
- **max_sort_tmp_files**: Maximum number of temporary files for sorting input records (integer, default is `1024`)
|
26
|
+
- **max_sort_memory**: Maximum memory usage for sorting input records (bytes in long, default is the estimated available memory, which is the approximate value of the JVM's current free memory)
|
27
|
+
- **prefer_nulls**: Whether to set fields to null instead of default value of type when column is null (boolean, default is `false`)
|
28
|
+
- **ignore_nulls**: Whether to completely ignore fields when column is null (boolean, default is `false`)
|
21
29
|
- **column_options** advanced: a key-value pairs where key is a column name and value is options for the column.
|
22
30
|
- **field_code**: field code (string, required)
|
23
|
-
- **type**: field type (string, required)
|
31
|
+
- **type**: field type (string, required). See [this page](https://cybozu.dev/ja/kintone/docs/overview/field-types/#field-type-update) for list of available types. However, following types are not yet supported
|
32
|
+
- `USER_SELECT`, `ORGANIZATION_SELECT`, `GROUP_SELECT`, `FILE`
|
24
33
|
- **timezone**: timezone to convert into `date` (string, default is `UTC`)
|
25
34
|
- **val_sep**: Used to specify multiple checkbox values (string, default is `,`)
|
35
|
+
- **sort_columns**: List of columns for sorting rows in SUBTABLE. Available only if type is `SUBTABLE` (array of objects, optional)
|
36
|
+
- **name**: Column name (string, required)
|
37
|
+
- **order**: Sort order (string `asc` or `desc`, required)
|
38
|
+
- **chunk_size**: Maximum number of records to request at once (integer, default is `100`)
|
26
39
|
|
27
40
|
## Example
|
28
41
|
|
@@ -43,6 +56,51 @@ out:
|
|
43
56
|
date_time: {field_code: "datetime", type: "DATETIME"}
|
44
57
|
```
|
45
58
|
|
59
|
+
### For reduce expanded SUBTABLE
|
60
|
+
|
61
|
+
```yaml
|
62
|
+
out:
|
63
|
+
...
|
64
|
+
reduce_key: id
|
65
|
+
column_options:
|
66
|
+
id: {field_code: "id", type: "NUMBER"}
|
67
|
+
...
|
68
|
+
table: {field_code: "table", type: "SUBTABLE", sort_columns: [{name: number, order: asc}, {name: text, order: desc}]}
|
69
|
+
table.number: {field_code: "number_in_table", type: "NUMBER"}
|
70
|
+
table.text: {field_code: "text_in_table", type: "SINGLE_LINE_TEXT"}
|
71
|
+
```
|
72
|
+
|
73
|
+
#### KINTONE
|
74
|
+
|
75
|
+
| Form | Field Code |
|
76
|
+
| ------------------------- | --------------- |
|
77
|
+
| Table's own | table |
|
78
|
+
| NUMBER In Table | number_in_table |
|
79
|
+
| SINGLE_LINE_TEXT In Table | text_in_table |
|
80
|
+
|
81
|
+
#### INPUT CSV
|
82
|
+
|
83
|
+
```csv
|
84
|
+
id,table.number,table.text
|
85
|
+
1,0,test0
|
86
|
+
1,1,test1
|
87
|
+
2,0,test0
|
88
|
+
```
|
89
|
+
|
90
|
+
#### RESULT
|
91
|
+
|
92
|
+
ID:1
|
93
|
+
|
94
|
+
| NUMBER | SINGLE_LINE_TEXT |
|
95
|
+
| ------------- | ---------------- |
|
96
|
+
| 0 | test0 |
|
97
|
+
| 1 | test1 |
|
98
|
+
|
99
|
+
ID:2
|
100
|
+
|
101
|
+
| NUMBER | SINGLE_LINE_TEXT |
|
102
|
+
| ------------- | ---------------- |
|
103
|
+
| 0 | test0 |
|
46
104
|
|
47
105
|
## Build
|
48
106
|
|
data/build.gradle
CHANGED
@@ -28,6 +28,7 @@ targetCompatibility = 1.8
|
|
28
28
|
|
29
29
|
dependencies {
|
30
30
|
compileOnly "org.embulk:embulk-core:0.9.23"
|
31
|
+
implementation "com.google.code.externalsortinginjava:externalsortinginjava:0.6.2"
|
31
32
|
implementation project(path: ":shadow-kintone-java-client", configuration: "shadow")
|
32
33
|
|
33
34
|
testImplementation "junit:junit:4.+"
|
Binary file
|
Binary file
|
Binary file
|
data/classpath/{shadow-kintone-java-client-0.4.1-all.jar → shadow-kintone-java-client-1.1.0-all.jar}
RENAMED
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
package org.embulk.output.kintone;
|
2
2
|
|
3
|
-
import java.util.
|
3
|
+
import java.util.List;
|
4
4
|
import org.embulk.config.Config;
|
5
5
|
import org.embulk.config.ConfigDefault;
|
6
6
|
import org.embulk.config.Task;
|
@@ -14,9 +14,13 @@ public interface KintoneColumnOption extends Task {
|
|
14
14
|
|
15
15
|
@Config("timezone")
|
16
16
|
@ConfigDefault("\"UTC\"")
|
17
|
-
|
17
|
+
String getTimezone();
|
18
18
|
|
19
19
|
@Config("val_sep")
|
20
20
|
@ConfigDefault("\",\"")
|
21
21
|
String getValueSeparator();
|
22
|
+
|
23
|
+
@Config("sort_columns")
|
24
|
+
@ConfigDefault("[]")
|
25
|
+
List<KintoneSortColumn> getSortColumns();
|
22
26
|
}
|