Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
219 commits
Select commit Hold shift + click to select a range
1290f23
Bump testcontainersVersion from 1.17.2 to 1.17.3
dependabot[bot] Jul 1, 2022
4165bf0
Bump aws-java-sdk-sts from 1.12.232 to 1.12.253
dependabot[bot] Jul 1, 2022
69c2666
Bump mockitoVersion from 4.6.0 to 4.6.1
dependabot[bot] Jul 1, 2022
81b82c3
Merge pull request #190 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Jul 3, 2022
e85769b
Merge pull request #191 from aiven/dependabot/gradle/mockitoVersion-4…
ivanyu Jul 3, 2022
4327f34
Bump aws-java-sdk-s3 from 1.12.232 to 1.12.253
dependabot[bot] Jul 3, 2022
b76009a
Merge pull request #188 from aiven/dependabot/gradle/testcontainersVe…
RyanSkraba Jul 4, 2022
d4c64e3
Merge pull request #189 from aiven/dependabot/gradle/com.amazonaws-aw…
RyanSkraba Jul 4, 2022
d126300
Bump avro from 1.11.0 to 1.11.1
dependabot[bot] Aug 1, 2022
7830589
Bump junitVersion from 5.8.2 to 5.9.0
dependabot[bot] Aug 1, 2022
efc2c58
Bump aws-java-sdk-s3 from 1.12.253 to 1.12.273
dependabot[bot] Aug 1, 2022
7fe7a1a
Bump localstack-utils from 0.2.20 to 0.2.21
dependabot[bot] Aug 1, 2022
13443f4
Merge pull request #195 from aiven/dependabot/gradle/junitVersion-5.9.0
AnatolyPopov Aug 2, 2022
6906ff5
Merge pull request #198 from aiven/dependabot/gradle/cloud.localstack…
AnatolyPopov Aug 2, 2022
7f867c7
Merge pull request #194 from aiven/dependabot/gradle/org.apache.avro-…
tvainika Aug 5, 2022
f85dbd9
Merge pull request #196 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Aug 5, 2022
b6b28b4
Bump aws-java-sdk-sts from 1.12.253 to 1.12.276
dependabot[bot] Aug 5, 2022
79f97eb
Merge pull request #199 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Aug 5, 2022
aeb56e4
Bump aws-java-sdk-sts from 1.12.276 to 1.12.295
dependabot[bot] Sep 1, 2022
931738b
Bump logback-classic from 1.2.11 to 1.4.0
dependabot[bot] Sep 1, 2022
003b55c
Bump mockitoVersion from 4.6.1 to 4.7.0
dependabot[bot] Sep 1, 2022
4e3a447
Bump hadoop-mapreduce-client-core from 3.3.3 to 3.3.4
dependabot[bot] Sep 1, 2022
e9dc519
Merge pull request #201 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Sep 2, 2022
46a5557
Merge pull request #204 from aiven/dependabot/gradle/mockitoVersion-4…
tvainika Sep 2, 2022
13f9d14
Bump aws-java-sdk-s3 from 1.12.273 to 1.12.295
dependabot[bot] Sep 2, 2022
9b52c2a
Merge pull request #205 from aiven/dependabot/gradle/org.apache.hadoo…
tvainika Sep 2, 2022
5130e7c
Merge pull request #203 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Sep 2, 2022
ea71e75
Merge pull request #202 from aiven/dependabot/gradle/ch.qos.logback-l…
ivanyu Sep 2, 2022
7f4881c
Bump logback-classic from 1.4.0 to 1.4.1
dependabot[bot] Oct 1, 2022
9537690
Bump aws-java-sdk-sts from 1.12.295 to 1.12.314
dependabot[bot] Oct 1, 2022
dc2fdb3
Bump mockitoVersion from 4.7.0 to 4.8.0
dependabot[bot] Oct 1, 2022
59a7231
Bump junitVersion from 5.9.0 to 5.9.1
dependabot[bot] Oct 1, 2022
024f563
Merge pull request #211 from aiven/dependabot/gradle/mockitoVersion-4…
ivanyu Oct 2, 2022
ccc6e3d
Merge pull request #208 from aiven/dependabot/gradle/ch.qos.logback-l…
ivanyu Oct 2, 2022
8b74195
Merge pull request #212 from aiven/dependabot/gradle/junitVersion-5.9.1
ivanyu Oct 2, 2022
3dccf78
Merge pull request #210 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Oct 2, 2022
d8a06e4
Bump aws-java-sdk-s3 from 1.12.295 to 1.12.314
dependabot[bot] Oct 2, 2022
84c4e8a
Bump testcontainersVersion from 1.17.3 to 1.17.4
dependabot[bot] Oct 2, 2022
021af8c
Merge pull request #209 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Oct 2, 2022
47ce095
Bump zstd-jni from 1.5.2-3 to 1.5.2-4
dependabot[bot] Oct 2, 2022
f9741b3
Merge pull request #213 from aiven/dependabot/gradle/com.github.luben…
ivanyu Oct 2, 2022
c860c48
Merge pull request #214 from aiven/dependabot/gradle/testcontainersVe…
ivanyu Oct 2, 2022
e283e58
Fix integration tests
ivanyu Oct 20, 2022
1949e61
Merge pull request #216 from aiven/ivanyu/fix-integration-tests
jjaakola-aiven Oct 26, 2022
ccfb5aa
Bump mockitoVersion from 4.8.0 to 4.8.1
dependabot[bot] Nov 1, 2022
bb14fad
Bump zstd-jni from 1.5.2-4 to 1.5.2-5
dependabot[bot] Nov 1, 2022
cfe45aa
Bump aws-java-sdk-sts from 1.12.314 to 1.12.332
dependabot[bot] Nov 1, 2022
fbce49a
Bump testcontainersVersion from 1.17.4 to 1.17.5
dependabot[bot] Nov 1, 2022
34f8657
Merge pull request #221 from aiven/dependabot/gradle/testcontainersVe…
ivanyu Nov 2, 2022
49bd375
Merge pull request #217 from aiven/dependabot/gradle/mockitoVersion-4…
ivanyu Nov 2, 2022
5d61da2
Merge pull request #218 from aiven/dependabot/gradle/com.github.luben…
ivanyu Nov 2, 2022
0f33d12
Merge pull request #219 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Nov 2, 2022
a16ce69
Bump aws-java-sdk-s3 from 1.12.314 to 1.12.333
dependabot[bot] Nov 2, 2022
05f6b09
Merge pull request #222 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Nov 2, 2022
a80dd55
Replace deprecated classes with Wrapper#getDistributionUrl() (#223)
AnatolyPopov Nov 10, 2022
8aab14a
Clearing record grouper on exceptions to avoid duplicates
AnatolyPopov Nov 17, 2022
e41e33f
Merge pull request #224 from aiven/anatolii/duplicate-records-fix
ivanyu Nov 17, 2022
55b0cba
Release version 2.12.1
actions-user Nov 23, 2022
c7af233
Bump version to 2.13.0-SNAPSHOT
actions-user Nov 23, 2022
7c60b04
Merge pull request #226 from aiven/release-2.12.1
ivanyu Nov 23, 2022
d20a11b
Bump aws-java-sdk-s3 from 1.12.333 to 1.12.353
dependabot[bot] Dec 1, 2022
626a00e
Bump testcontainersVersion from 1.17.5 to 1.17.6
dependabot[bot] Dec 1, 2022
c207262
Bump mockitoVersion from 4.8.1 to 4.9.0
dependabot[bot] Dec 1, 2022
fdfe689
Bump logback-classic from 1.4.1 to 1.4.5
dependabot[bot] Dec 1, 2022
5255c11
Merge pull request #230 from aiven/dependabot/gradle/testcontainersVe…
AnatolyPopov Dec 1, 2022
5cc4e81
Merge pull request #231 from aiven/dependabot/gradle/mockitoVersion-4…
AnatolyPopov Dec 1, 2022
1f52314
Merge pull request #232 from aiven/dependabot/gradle/ch.qos.logback-l…
AnatolyPopov Dec 1, 2022
bf7768a
Merge pull request #229 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Dec 2, 2022
7a6f1fe
Bump aws-java-sdk-sts from 1.12.332 to 1.12.356
dependabot[bot] Dec 2, 2022
894d0ad
Merge pull request #233 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Dec 2, 2022
3be8e37
Bump mockitoVersion from 4.9.0 to 4.11.0
dependabot[bot] Jan 1, 2023
e82d1ba
Bump aws-java-sdk-sts from 1.12.356 to 1.12.376
dependabot[bot] Jan 1, 2023
8da4f18
Bump localstack-utils from 0.2.21 to 0.2.22
dependabot[bot] Jan 1, 2023
09a0d2c
Merge pull request #237 from aiven/dependabot/gradle/cloud.localstack…
AnatolyPopov Jan 2, 2023
a30a646
Merge pull request #236 from aiven/dependabot/gradle/com.amazonaws-aw…
AnatolyPopov Jan 2, 2023
cc3ee6e
Merge pull request #235 from aiven/dependabot/gradle/mockitoVersion-4…
AnatolyPopov Jan 2, 2023
a47f060
Bump aws-java-sdk-s3 from 1.12.353 to 1.12.376
dependabot[bot] Jan 2, 2023
7e74b9c
Merge pull request #234 from aiven/dependabot/gradle/com.amazonaws-aw…
ivanyu Jan 2, 2023
a6c00d5
Bump mockitoVersion from 4.11.0 to 5.1.1
dependabot[bot] Feb 1, 2023
652c003
Bump com.amazonaws:aws-java-sdk-sts from 1.12.376 to 1.12.397
dependabot[bot] Feb 1, 2023
d0434a0
Bump junitVersion from 5.9.1 to 5.9.2
dependabot[bot] Feb 1, 2023
0fce363
Bump org.assertj:assertj-core from 3.23.1 to 3.24.2
dependabot[bot] Feb 1, 2023
106c529
Merge pull request #238 from aiven/dependabot/gradle/mockitoVersion-5…
tvainika Feb 2, 2023
f2face8
Merge pull request #239 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Feb 2, 2023
df189df
Merge pull request #240 from aiven/dependabot/gradle/junitVersion-5.9.2
tvainika Feb 2, 2023
02c923f
Merge pull request #241 from aiven/dependabot/gradle/org.assertj-asse…
tvainika Feb 2, 2023
53299e5
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.376 to 1.12.398
dependabot[bot] Feb 2, 2023
6a41691
Merge pull request #243 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Feb 2, 2023
c0a70df
Bump com.amazonaws:aws-java-sdk-sts from 1.12.397 to 1.12.417
dependabot[bot] Mar 1, 2023
fb49c8a
Bump com.github.luben:zstd-jni from 1.5.2-5 to 1.5.4-2
dependabot[bot] Mar 1, 2023
16b18db
Merge pull request #245 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Mar 2, 2023
bfeca8a
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.398 to 1.12.418
dependabot[bot] Mar 2, 2023
b02aa08
Merge pull request #248 from aiven/dependabot/gradle/com.github.luben…
tvainika Mar 2, 2023
890a450
Bump org.xerial.snappy:snappy-java from 1.1.8.4 to 1.1.9.1
dependabot[bot] Mar 2, 2023
a064794
Merge pull request #247 from aiven/dependabot/gradle/org.xerial.snapp…
tvainika Mar 2, 2023
391fb17
Merge pull request #249 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika Mar 2, 2023
ef79fbf
Add instruction to clean up commits before PRs are merged
C0urante Mar 6, 2023
bf03a4d
Merge pull request #250 from aiven/contributing-squash
RyanSkraba Mar 8, 2023
ed53be0
Bump cloud.localstack:localstack-utils from 0.2.22 to 0.2.23
dependabot[bot] Apr 1, 2023
02817c5
Bump org.apache.hadoop:hadoop-mapreduce-client-core from 3.3.4 to 3.3.5
dependabot[bot] Apr 1, 2023
ce537bc
Bump mockitoVersion from 5.1.1 to 5.2.0
dependabot[bot] Apr 1, 2023
587c991
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.418 to 1.12.440
dependabot[bot] Apr 1, 2023
e749e27
Merge pull request #255 from aiven/dependabot/gradle/com.amazonaws-aw…
AnatolyPopov Apr 2, 2023
8a5f79f
Merge pull request #253 from aiven/dependabot/gradle/mockitoVersion-5…
AnatolyPopov Apr 2, 2023
f049ba1
Bump com.amazonaws:aws-java-sdk-sts from 1.12.417 to 1.12.440
dependabot[bot] Apr 2, 2023
af40c2c
Merge pull request #251 from aiven/dependabot/gradle/cloud.localstack…
AnatolyPopov Apr 2, 2023
9a02408
Merge pull request #254 from aiven/dependabot/gradle/com.amazonaws-aw…
AnatolyPopov Apr 2, 2023
d29d5be
Merge pull request #252 from aiven/dependabot/gradle/org.apache.hadoo…
RyanSkraba Apr 3, 2023
63155db
Bump ch.qos.logback:logback-classic from 1.4.5 to 1.4.7
dependabot[bot] May 1, 2023
851c03c
Bump com.amazonaws:aws-java-sdk-sts from 1.12.440 to 1.12.460
dependabot[bot] May 1, 2023
f941af2
Bump testcontainersVersion from 1.17.6 to 1.18.0
dependabot[bot] May 1, 2023
66a76ff
Merge pull request #260 from aiven/dependabot/gradle/testcontainersVe…
AnatolyPopov May 2, 2023
5d85dd8
Merge pull request #259 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika May 3, 2023
59f3dfa
Merge pull request #258 from aiven/dependabot/gradle/ch.qos.logback-l…
tvainika May 3, 2023
cd70649
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.440 to 1.12.461
dependabot[bot] May 3, 2023
2a44919
Bump mockitoVersion from 5.2.0 to 5.3.1
dependabot[bot] May 3, 2023
9bbe9b2
Merge pull request #262 from aiven/dependabot/gradle/com.amazonaws-aw…
tvainika May 3, 2023
ef7a6f8
Merge pull request #257 from aiven/dependabot/gradle/mockitoVersion-5…
tvainika May 3, 2023
812ab87
Bump com.amazonaws:aws-java-sdk-sts from 1.12.460 to 1.12.479
dependabot[bot] Jun 1, 2023
64d409d
Bump junitVersion from 5.9.2 to 5.9.3
dependabot[bot] Jun 1, 2023
1fb5722
Bump com.github.luben:zstd-jni from 1.5.4-2 to 1.5.5-3
dependabot[bot] Jun 1, 2023
96e4f1b
Merge pull request #263 from aiven/dependabot/gradle/com.amazonaws-aw…
AnatolyPopov Jun 1, 2023
5ba683c
Merge pull request #264 from aiven/dependabot/gradle/junitVersion-5.9.3
AnatolyPopov Jun 1, 2023
65608bd
Bump testcontainersVersion from 1.18.0 to 1.18.3
dependabot[bot] Jun 1, 2023
4020a0e
Merge pull request #267 from aiven/dependabot/gradle/com.github.luben…
AnatolyPopov Jun 1, 2023
672d42b
Merge pull request #266 from aiven/dependabot/gradle/testcontainersVe…
tvainika Jun 2, 2023
c11711c
feat: Add Avro Container File output support
jjaakola-aiven May 17, 2023
b792609
Merge pull request #268 from aiven/jjaakola-aiven-add-avro-output
jeqo Jun 6, 2023
820d38f
Release version 2.13.0
actions-user Jun 6, 2023
2f9331a
Bump version to 2.14.0-SNAPSHOT
actions-user Jun 6, 2023
28787e7
Merge pull request #269 from aiven/release-2.13.0
AnatolyPopov Jun 6, 2023
7f00a17
Bump com.github.luben:zstd-jni from 1.5.5-3 to 1.5.5-4
dependabot[bot] Jul 1, 2023
5db64a7
Bump mockitoVersion from 5.3.1 to 5.4.0
dependabot[bot] Jul 1, 2023
6b4c7f7
Bump org.apache.hadoop:hadoop-mapreduce-client-core from 3.3.5 to 3.3.6
dependabot[bot] Jul 1, 2023
163bc82
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.461 to 1.12.500
dependabot[bot] Jul 1, 2023
6d27d7f
Merge pull request #271 from aiven/dependabot/gradle/com.github.luben…
jeqo Jul 2, 2023
1df0629
Bump io.aiven:commons-for-apache-kafka-connect from 0.9.0 to 0.10.0
dependabot[bot] Jul 2, 2023
30681c4
Merge pull request #272 from aiven/dependabot/gradle/mockitoVersion-5…
jeqo Jul 2, 2023
1760627
chore: rm missing javadoc warnings
jeqo Jul 2, 2023
1ff0277
Merge pull request #273 from aiven/dependabot/gradle/io.aiven-commons…
jeqo Jul 2, 2023
8446144
Merge pull request #275 from aiven/dependabot/gradle/com.amazonaws-aw…
jeqo Jul 3, 2023
3bc0662
chore(build): upgrade to commons 0.10.1
jeqo Jul 10, 2023
46d0fd9
fix(build): add integration tests to gh actions
jeqo Jul 7, 2023
ff0a258
fix(test:int): reuse Kafka container to avoid running out of IPs
jeqo Jul 7, 2023
708e412
fix(test:int): switch to testcontainer localstack and create independ…
jeqo Jul 10, 2023
481b784
Merge pull request #277 from aiven/jeqo/build-update-commons
HelenMel Jul 12, 2023
0baa485
Merge pull request #276 from aiven/jeqo/build-update
HelenMel Jul 12, 2023
de84d46
Merge pull request #274 from aiven/dependabot/gradle/org.apache.hadoo…
jeqo Jul 12, 2023
7741d08
chore(deps): bump org.apache.avro:avro from 1.11.1 to 1.11.2
dependabot[bot] Jul 25, 2023
b5d06f6
chore(deps): bump slf4jVersion from 1.7.36 to 2.0.7
dependabot[bot] Jul 25, 2023
70a9770
chore(deps): bump ch.qos.logback:logback-classic from 1.4.7 to 1.4.8
dependabot[bot] Jul 25, 2023
73c0d1d
Merge pull request #283 from Aiven-Open/dependabot/gradle/ch.qos.logb…
ivanyu Jul 26, 2023
930ddb4
Merge pull request #279 from Aiven-Open/dependabot/gradle/org.apache.…
ivanyu Jul 26, 2023
5046573
Merge pull request #281 from Aiven-Open/dependabot/gradle/slf4jVersio…
ivanyu Jul 26, 2023
2068c13
chore(deps): bump junitVersion from 5.9.3 to 5.10.0
dependabot[bot] Jul 26, 2023
73dce9b
Update CodeQL to 2
ivanyu Jul 26, 2023
22161de
Merge pull request #280 from Aiven-Open/dependabot/gradle/junitVersio…
AnatolyPopov Jul 26, 2023
744ca8e
Merge pull request #285 from Aiven-Open/ivanyu/codeql-2
AnatolyPopov Jul 26, 2023
80d44e1
Revert "chore(deps): bump slf4jVersion from 1.7.36 to 2.0.7"
ivanyu Jul 26, 2023
17e6fe4
Merge pull request #286 from Aiven-Open/ivanyu/revent-slf4j-bump
jjaakola-aiven Jul 27, 2023
dc5eeca
chore(deps): bump com.amazonaws:aws-java-sdk-sts
dependabot[bot] Jul 27, 2023
36b7c35
Merge pull request #287 from Aiven-Open/dependabot/gradle/com.amazona…
ivanyu Jul 27, 2023
fd13fca
chore(deps): bump com.amazonaws:aws-java-sdk-sts
dependabot[bot] Aug 1, 2023
5d2909e
Merge pull request #290 from Aiven-Open/dependabot/gradle/com.amazona…
ivanyu Aug 2, 2023
18fcddd
chore(deps): bump com.amazonaws:aws-java-sdk-s3
dependabot[bot] Aug 2, 2023
2befdc7
Merge pull request #295 from Aiven-Open/dependabot/gradle/com.amazona…
ivanyu Aug 2, 2023
d8ecd94
Bump commons-for-apache-kafka-connect to 0.11.0
stephen-harris Aug 28, 2023
b21eaa7
Merge pull request #297 from stephen-harris/feat/add-support-for-KeyA…
jeqo Aug 31, 2023
3a498fa
refactor: use only assertj on tests
jeqo Aug 31, 2023
e3ae27c
chore(deps): bump mockitoVersion from 5.4.0 to 5.5.0
dependabot[bot] Sep 1, 2023
b3a6622
chore(deps): bump com.amazonaws:aws-java-sdk-s3
dependabot[bot] Sep 1, 2023
b068307
chore(deps): bump testcontainersVersion from 1.18.3 to 1.19.0
dependabot[bot] Sep 1, 2023
68dfcda
chore(deps): bump ch.qos.logback:logback-classic from 1.4.8 to 1.4.11
dependabot[bot] Sep 1, 2023
8115b36
Merge pull request #300 from Aiven-Open/dependabot/gradle/mockitoVers…
AnatolyPopov Sep 2, 2023
3aaaa9f
Merge pull request #301 from Aiven-Open/dependabot/gradle/com.amazona…
AnatolyPopov Sep 2, 2023
c8b2d16
Merge pull request #302 from Aiven-Open/dependabot/gradle/testcontain…
AnatolyPopov Sep 2, 2023
6383dde
Merge pull request #304 from Aiven-Open/dependabot/gradle/ch.qos.logb…
AnatolyPopov Sep 2, 2023
6016da5
chore(deps): bump com.amazonaws:aws-java-sdk-sts
dependabot[bot] Sep 2, 2023
d4aec78
Merge pull request #305 from Aiven-Open/dependabot/gradle/com.amazona…
jeqo Sep 4, 2023
d0bb88b
Update codeql-analysis.yml
jeqo Sep 4, 2023
b67ea04
Merge pull request #306 from Aiven-Open/jeqo/fix-codeql
AnatolyPopov Sep 4, 2023
af8b75c
Merge pull request #298 from Aiven-Open/jeqo/refactor-use-assertj-only
AnatolyPopov Sep 4, 2023
220a637
refactor: infer types
jeqo Aug 31, 2023
db043f9
refactor(build): rm maven local from repos
jeqo Aug 31, 2023
cba0008
feat: add validator to bucket name config
jeqo Aug 31, 2023
6166cae
Merge pull request #299 from Aiven-Open/jeqo/bucket-name-validation
AnatolyPopov Sep 5, 2023
24df7f6
fix: add permissions to release workflows
jeqo Sep 5, 2023
71b38e4
Merge pull request #307 from Aiven-Open/jeqo/fix-gh-release-actions
AnatolyPopov Sep 5, 2023
4d3934b
Release version 2.14.0
actions-user Sep 5, 2023
8b0513e
Bump version to 2.15.0-SNAPSHOT
actions-user Sep 5, 2023
4df2cf3
Merge pull request #308 from Aiven-Open/release-2.14.0
jeqo Sep 5, 2023
95c3adb
docs: fix badge
jeqo Sep 13, 2023
78c1fc9
docs: move multi-part uploads and retry to configuration section
jeqo Sep 13, 2023
14fc1d0
docs: add toc
jeqo Sep 13, 2023
c9066da
docs: quote note
jeqo Sep 13, 2023
1a4ea1e
docs: refactor initial sections of how it works
jeqo Sep 13, 2023
bfcf680
docs: refactor record grouping and file name format
jeqo Sep 13, 2023
caa79a2
Fixed log message to say "start" when starting
vedrankolka Sep 14, 2023
b337a2b
fixup! docs: fix typo
jeqo Sep 20, 2023
ab22cae
fixup! docs: add link to file name format
jeqo Sep 20, 2023
f517306
Merge pull request #309 from Aiven-Open/jeqo/docs-record-grouping
jjaakola-aiven Sep 22, 2023
167a795
Update Snappy-Java dependency
jlprat Sep 25, 2023
cc1dfe6
Merge pull request #311 from Aiven-Open/jlprat-patch-1
jeqo Sep 25, 2023
eb78227
chore(deps): bump com.amazonaws:aws-java-sdk-sts
dependabot[bot] Oct 1, 2023
a62f36d
chore(deps): bump org.apache.avro:avro from 1.11.2 to 1.11.3
dependabot[bot] Oct 1, 2023
5b513be
chore(deps): bump org.xerial.snappy:snappy-java
dependabot[bot] Oct 1, 2023
c475293
Merge pull request #312 from Aiven-Open/dependabot/gradle/com.amazona…
tvainika Oct 3, 2023
226deb8
Merge pull request #313 from Aiven-Open/dependabot/gradle/org.apache.…
tvainika Oct 3, 2023
7425bcd
Merge pull request #315 from Aiven-Open/dependabot/gradle/org.xerial.…
tvainika Oct 3, 2023
36ac939
chore(deps): bump com.github.luben:zstd-jni from 1.5.5-4 to 1.5.5-6
dependabot[bot] Oct 3, 2023
67daab3
Merge pull request #316 from Aiven-Open/dependabot/gradle/com.github.…
tvainika Oct 5, 2023
fffc6cc
chore: bump commons to 0.12
jeqo Oct 9, 2023
4d48fd6
chore: update /aiven/ to /aiven-open/ references
jeqo Oct 9, 2023
194ba4a
Merge pull request #310 from vedrankolka/main
jeqo Oct 9, 2023
c5651c3
Merge pull request #317 from Aiven-Open/jeqo/bump-commons-0.12
tvainika Oct 10, 2023
37e1ec2
Release version 2.15.0
actions-user Oct 10, 2023
341ebc4
Bump version to 2.16.0-SNAPSHOT
actions-user Oct 10, 2023
0bd0279
Merge pull request #318 from Aiven-Open/release-2.15.0
tvainika Oct 10, 2023
34b6864
Merge pull request #3 from Aiven-Open/main
AlexeyRaga Oct 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @aiven/team-helpful-husky @aiven/aiven-open-source
* @aiven-open/team-helpful-husky @aiven-open/aiven-open-source
9 changes: 7 additions & 2 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ on:
schedule:
- cron: "42 20 * * 6"

permissions:
actions: read
contents: read
security-events: write

jobs:
analyze:
name: Analyze
Expand All @@ -39,7 +44,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand Down Expand Up @@ -71,4 +76,4 @@ jobs:
run: ./gradlew build

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
5 changes: 5 additions & 0 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ on:
description: "Hash of 'Release version x.y.z' commit"
required: true

permissions:
contents: write
pull-requests: write
issues: write

jobs:
build:
name: Create Release
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/main_push_and_pull_request_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ jobs:
strategy:
matrix:
java-version: [11, 17]
runs-on: [ubuntu-latest, macos-latest, windows-latest]
runs-on: [ubuntu-latest]
name: Build on ${{ matrix.runs-on }} with jdk ${{ matrix.java-version }}
runs-on: ${{ matrix.runs-on }}
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3.5.2
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v2
uses: actions/setup-java@v3.11.0
with:
java-version: ${{ matrix.java-version }}
distribution: "temurin"
cache: gradle
- name: Build with Gradle
run: ./gradlew build
run: ./gradlew build integrationTest
5 changes: 5 additions & 0 deletions .github/workflows/release_pr_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ on:
description: "Snapshot version '0.2.0-SNAPSHOT' (without 'v')"
required: true

permissions:
contents: write
pull-requests: write
issues: write

jobs:
create_release_pr:
name: Create release PR (job)
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ To send us a pull request, please:
4. Commit to your fork using clear commit messages.
5. Send us a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
7. Before merging, clean up the commit history for the PR. Each commit should be self-contained with an informative message, since each commit will be added to the history for this project.

GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
Expand Down
112 changes: 72 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,38 @@
# Aiven's S3 Sink Connector for Apache Kafka

![Pull Request Workflow](https://github.com/aiven/s3-connector-for-apache-kafka/workflows/Pull%20Request%20Workflow/badge.svg)
![Pull Request Workflow](https://github.com/Aiven-Open/s3-connector-for-apache-kafka/actions/workflows/main_push_and_pull_request_workflow.yml/badge.svg)

This is a sink Apache Kafka Connect connector that stores Apache Kafka messages in an AWS S3 bucket.

The connector requires Java 11 or newer for development and production.
**Table of Contents**

- [How it works](#how-it-works)
- [Data Format](#data-format)
- [Usage](#usage)
- [Configuration](#configuration)
- [Development](#development)


## How it works

The connector subscribes to the specified Kafka topics and collects messages coming in them and periodically dumps the collected data to the specified bucket in AWS S3.

### Requirements

The connector requires Java 11 or newer for development and production.

#### Authorization

The connector needs the following permissions to the specified bucket:
* ``s3:GetObject``
* ``s3:PutObject``
* ``s3:AbortMultipartUpload``
* ``s3:ListMultipartUploadParts``
* ``s3:ListBucketMultipartUploads``

In case of ``Access Denied`` error see https://aws.amazon.com/premiumsupport/knowledge-center/s3-troubleshoot-403/
In case of ``Access Denied`` error, see https://aws.amazon.com/premiumsupport/knowledge-center/s3-troubleshoot-403/

### Credentials
#### Authentication

To make the connector work, a user has to specify AWS credentials that allow writing to S3.
There are two ways to specify AWS credentials in this connector:
Expand All @@ -39,6 +53,8 @@ It is also important to specify `aws.sts.role.external.id` for the security reas

### File name format

> File name format is tightly related to [Record Grouping](#record-grouping)

The connector uses the following format for output files (blobs):
`<prefix><filename>`.

Expand Down Expand Up @@ -68,7 +84,7 @@ which value can be `true` or `false` (the default).
For example: `{{topic}}-{{partition}}-{{start_offset:padding=true}}.gz`
will produce file names like `mytopic-1-00000000000000000001.gz`.

To add zero padding to partition number, you need to add additional parameter `padding` in the `partiiton` variable,
To add zero padding to partition number, you need to add additional parameter `padding` in the `partition` variable,
which value can be `true` or `false` (the default).
For example: `{{topic}}-{{partition:padding=true}}-{{start_offset}}.gz`
will produce file names like `mytopic-0000000001-1.gz`.
Expand All @@ -89,6 +105,9 @@ record grouping modes are:
- `topic`, `partition`, `start_offset`, and `timestamp` - grouping by the topic,
partition, and timestamp;
- `key` - grouping by the key.
- `key`, `topic`, `partition` - grouping by the topic, partition, and key.

See record grouping in the next section for more details.

If the file name template is not specified, the default value is
`{{topic}}-{{partition}}-{{start_offset}}` (+ `.gz` when compression is
Expand All @@ -97,9 +116,19 @@ enabled).
### Record grouping

Incoming records are being grouped until flushed.
The connector flushes grouped records in one file per `offset.flush.interval.ms` setting for partitions that have received new messages during this period. The setting defaults to 60 seconds.

Record grouping, similar to Kafka topics, has 2 modes:

- Changelog: Connector groups all records in the order received from a Kafka topic, and stores all of them in a file.
- Compact: Connector groups all records by an identity (e.g. key) and only keeps the latest value stored in a file.

Modes are defined implicitly by the fields used of the [file name template](#file-name-format).

#### Grouping by the topic and partition

*Mode: Changelog*

In this mode, the connector groups records by the topic and partition.
When a file is written, an offset of the first record in it is added to
its name.
Expand Down Expand Up @@ -134,6 +163,8 @@ In this case, there will be two files `topicA-part0-off0` and

#### Grouping by the key

*Mode: Compact*

In this mode, the connector groups records by the Kafka key. It always
puts one record in a file, the latest record that arrived before a flush
for each key. Also, it overwrites files if later new records with the
Expand Down Expand Up @@ -203,8 +234,9 @@ Connector class name, in this case: `io.aiven.kafka.connect.s3.AivenKafkaConnect

### S3 Object Names

S3 connector stores series of files in the specified bucket. Each object is named using pattern `[<aws.s3.prefix>]<topic>-<partition>-<startoffset>[.gz]`. The `.gz` extension is used if gzip compression is used, see `file.compression.type` below.
The connector creates one file per Apache Kafka Connect `offset.flush.interval.ms` setting for partitions that have received new messages during that period. The setting defaults to 60 seconds.
S3 connector stores series of files in the specified bucket.
Each object is named using pattern `[<aws.s3.prefix>]<topic>-<partition>-<startoffset>[.gz]` (see [#file-name-format](File name format section) for more patterns).
The `.gz` extension is used if gzip compression is used, see `file.compression.type` below.

### Data File Format

Expand Down Expand Up @@ -435,40 +467,11 @@ Having `format.output.envelope=false` can produce the following output:
- Connector works just fine with and without Schema Registry
- `format.output.envelope=false` is ignored if the value is not of type `org.apache.avro.Schema.Type.RECORD` or `org.apache.avro.Schema.Type.MAP`.

## S3 multi-part uploads

To configure S3 multi-part uploads buffer size change:
- `aws.s3.part.size.bytes` - The Part Size in
S3 Multi-part Uploads in bytes.
Maximum is `2GB` and default is `5MB`.

## Retry strategy configuration

There are four configuration properties to configure retry strategy exists.

### Apache Kafka connect retry strategy configuration property

- `kafka.retry.backoff.ms` - The retry backoff in milliseconds. This config is used to notify Apache Kafka Connect to retry delivering a message batch or
performing recovery in case of transient exceptions. Maximum value is `24` hours.

### AWS S3 retry strategy configuration properties

- `aws.s3.backoff.delay.ms` - S3 default base sleep time
for non-throttled exceptions in milliseconds.
Default is `100` ms.
- `aws.s3.backoff.max.delay.ms` - S3 maximum back-off
time before retrying a request in milliseconds.
Default is `20 000` ms.
- `aws.s3.backoff.max.retries` - Maximum retry limit
(if the value is greater than 30, there can be
integer overflow issues during delay calculation).
Default is `3`.

## Usage

### Connector Configuration

**Important Note** Since version `2.6` all existing configuration
> **Important Note** Since version `2.6` all existing configuration
is deprecated and will be replaced with new one during a certain transition period (within 2-3 releases)

List of deprecated configuration parameters:
Expand All @@ -484,7 +487,7 @@ List of deprecated configuration parameters:
List of new configuration parameters:
- `aws.access.key.id` - AWS Access Key ID for accessing S3 bucket.
- `aws.secret.access.key` - AWS S3 Secret Access Key.
- `aws.s3.bucket.name` - - Name of an existing bucket for storing the records. Mandatory.
- `aws.s3.bucket.name` - - Name of an existing bucket for storing the records. Mandatory. See bucket name rules: <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html>
- `aws.s3.endpoint` - The endpoint configuration (service endpoint & signing region) to be used for requests.
- `aws.s3.prefix` - [Deprecated] Use `file.name.prefix` and `file.name.template` instead. The prefix that will be added to the file name in the bucket. Can be used for putting output files into a subdirectory.
- `aws.s3.region` - Name of the region for the bucket used for storing the records. Defaults to `us-east-1`.
Expand Down Expand Up @@ -583,13 +586,42 @@ timestamp.timezone=Europe/Berlin
timestamp.source=wallclock
```

### S3 multi-part uploads

To configure S3 multi-part uploads buffer size change:
- `aws.s3.part.size.bytes` - The Part Size in
S3 Multi-part Uploads in bytes.
Maximum is `2GB` and default is `5MB`.

### Retry strategy configuration

There are four configuration properties to configure retry strategy exists.

#### Apache Kafka connect retry strategy configuration property

- `kafka.retry.backoff.ms` - The retry backoff in milliseconds. This config is used to notify Apache Kafka Connect to retry delivering a message batch or
performing recovery in case of transient exceptions. Maximum value is `24` hours.

#### AWS S3 retry strategy configuration properties

- `aws.s3.backoff.delay.ms` - S3 default base sleep time
for non-throttled exceptions in milliseconds.
Default is `100` ms.
- `aws.s3.backoff.max.delay.ms` - S3 maximum back-off
time before retrying a request in milliseconds.
Default is `20 000` ms.
- `aws.s3.backoff.max.retries` - Maximum retry limit
(if the value is greater than 30, there can be
integer overflow issues during delay calculation).
Default is `3`.

## Development

### Developing together with Commons library

This project depends on [Common Module for Apache Kafka Connect](https://github.com/aiven/commons-for-apache-kafka-connect). Normally, an artifact of it published to a globally accessible repository is used. However, if you need to introduce changes to both this connector and Commons library at the same time, you should short-circuit the development loop via locally published artifacts. Please follow this steps:
This project depends on [Common Module for Apache Kafka Connect](https://github.com/aiven-open/commons-for-apache-kafka-connect). Normally, an artifact of it published to a globally accessible repository is used. However, if you need to introduce changes to both this connector and Commons library at the same time, you should short-circuit the development loop via locally published artifacts. Please follow this steps:
1. Checkout the `main` `HEAD` of Commons.
2. Ensure the version [here](https://github.com/aiven/commons-for-apache-kafka-connect/blob/main/gradle.properties) is with `-SNAPSHOT` prefix.
2. Ensure the version [here](https://github.com/aiven-open/commons-for-apache-kafka-connect/blob/main/gradle.properties) is with `-SNAPSHOT` prefix.
3. Make changes to Commons.
4. Publish it locally with `./gradlew publishToMavenLocal`.
5. Change the version in the connector's [`build.gradle`](build.gradle) (`ext.aivenConnectCommonsVersion`) to match the published snapshot version of Commons.
Expand Down
Loading