Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: snowplow/snowplow-s3-loader
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.7.0
Choose a base ref
...
head repository: snowplow/snowplow-s3-loader
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 3,215 additions and 2,167 deletions.
  1. +123 −0 .github/workflows/ci.yml
  2. +51 −0 .github/workflows/lacework.yml
  3. +1 −0 .gitignore
  4. +0 −42 .release.yml
  5. +21 −0 .scalafmt.conf
  6. +0 −30 .travis.yml
  7. +136 −1 CHANGELOG
  8. +1 −1 LICENSE-2.0.txt
  9. +13 −58 README.md
  10. +25 −32 build.sbt
  11. +88 −0 config/config.hocon.sample
  12. +0 −124 examples/config.hocon.sample
  13. +17 −16 ...serializers → modules/lzo/src/main/scala/com.snowplowanalytics.s3.loader.lzo}/LzoSerializer.scala
  14. +20 −0 modules/lzo/src/main/scala/com.snowplowanalytics.s3.loader.lzo/Main.scala
  15. +26 −0 modules/lzo/src/main/scala/com.snowplowanalytics.s3.loader.lzo/S3Loader.scala
  16. +20 −28 ...alizers → modules/lzo/src/test/scala/com.snowplowanalytics.s3.loader.lzo}/LzoSerializerSpec.scala
  17. +255 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/Config.scala
  18. +65 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/DynamicPath.scala
  19. +61 −61 ....s3/loader/sinks → modules/main/src/main/scala/com/snowplowanalytics/s3/loader}/KinesisSink.scala
  20. +52 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/Main.scala
  21. +127 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/S3Loader.scala
  22. +14 −22 ...→ modules/main/src/main/scala/com/snowplowanalytics/s3/loader/connector/IdentityTransformer.scala
  23. +283 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/connector/KinesisS3Emitter.scala
  24. +65 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/connector/KinesisS3Pipeline.scala
  25. +151 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/connector/KinesisSourceExecutor.scala
  26. +81 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/monitoring/Monitoring.scala
  27. +198 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/monitoring/SnowplowTracking.scala
  28. +110 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/monitoring/StatsD.scala
  29. +5 −11 ...snowplowanalytics.s3 → modules/main/src/main/scala/com/snowplowanalytics/s3/loader}/package.scala
  30. +53 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/processing/Batch.scala
  31. +91 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/processing/Common.scala
  32. +6 −8 ...s3/loader → modules/main/src/main/scala/com/snowplowanalytics/s3/loader/processing}/RowType.scala
  33. +15 −13 ...3 → modules/main/src/main/scala/com/snowplowanalytics/s3}/loader/serializers/GZipSerializer.scala
  34. +84 −0 modules/main/src/main/scala/com/snowplowanalytics/s3/loader/serializers/ISerializer.scala
  35. +4 −0 modules/main/src/test/resources/config.invalid
  36. +151 −0 modules/main/src/test/scala/com/snowplowanalytics/s3/loader/ConfigSpec.scala
  37. +3 −4 { → modules/main}/src/test/scala/com/snowplowanalytics/s3/loader/DynamicPathSpec.scala
  38. +100 −0 modules/main/src/test/scala/com/snowplowanalytics/s3/loader/connector/KinesisS3EmitterSpec.scala
  39. +311 −0 modules/main/src/test/scala/com/snowplowanalytics/s3/loader/processing/BatchSpec.scala
  40. +176 −0 modules/main/src/test/scala/com/snowplowanalytics/s3/loader/processing/CommonSpec.scala
  41. +15 −19 ...modules/main}/src/test/scala/com/snowplowanalytics/s3/loader/serializers/GZipSerializerSpec.scala
  42. +74 −46 project/BuildSettings.scala
  43. +116 −51 project/Dependencies.scala
  44. +1 −1 project/build.properties
  45. +6 −1 project/plugins.sbt
  46. +0 −92 src/main/scala/com.snowplowanalytics.s3/loader/CredentialsLookup.scala
  47. +0 −56 src/main/scala/com.snowplowanalytics.s3/loader/DynamicPath.scala
  48. +0 −28 src/main/scala/com.snowplowanalytics.s3/loader/FailedRecord.scala
  49. +0 −173 src/main/scala/com.snowplowanalytics.s3/loader/KinesisS3Emitter.scala
  50. +0 −47 src/main/scala/com.snowplowanalytics.s3/loader/KinesisS3Pipeline.scala
  51. +0 −119 src/main/scala/com.snowplowanalytics.s3/loader/KinesisSourceExecutor.scala
  52. +0 −152 src/main/scala/com.snowplowanalytics.s3/loader/NsqSourceExecutor.scala
  53. +0 −196 src/main/scala/com.snowplowanalytics.s3/loader/S3Emitter.scala
  54. +0 −136 src/main/scala/com.snowplowanalytics.s3/loader/S3Loader.scala
  55. +0 −62 src/main/scala/com.snowplowanalytics.s3/loader/SinkApp.scala
  56. +0 −145 src/main/scala/com.snowplowanalytics.s3/loader/SnowplowTracking.scala
  57. +0 −99 src/main/scala/com.snowplowanalytics.s3/loader/model.scala
  58. +0 −61 src/main/scala/com.snowplowanalytics.s3/loader/serializers/ISerializer.scala
  59. +0 −26 src/main/scala/com.snowplowanalytics.s3/loader/sinks/ISink.scala
  60. +0 −47 src/main/scala/com.snowplowanalytics.s3/loader/sinks/NsqSink.scala
  61. +0 −29 src/main/scala/com.snowplowanalytics.s3/loader/utils.scala
  62. +0 −130 src/test/scala/com/snowplowanalytics/s3/loader/KinesisS3EmitterSpec.scala
123 changes: 123 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: CI

on:
push:
tags:
- '*'
branches:
- master
- develop
pull_request:

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt

- name: Install LZO
run: sudo apt-get install -y lzop liblzo2-dev

- name: Run tests
run: |
sbt "project main" test
sbt "project lzo" test
- name: Check formatting
run: sbt scalafmtCheck

publish_docker:
needs: test
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
strategy:
matrix:
app:
- main
- lzo
- distroless
include:
- suffix: ""
- app: lzo
run_snyk: ${{ !contains(github.ref, 'rc') }}
- app: distroless
run_snyk: ${{ !contains(github.ref, 'rc') }}

steps:
- uses: actions/checkout@v2

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt

- name: Install LZO
run: sudo apt-get install -y lzop liblzo2-dev

- name: Login to Docker Hub
run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

- name: Publish to Docker Hub
run: sbt "project ${{ matrix.app }}" docker:publish

- name: Build local image, which is needed to run Snyk
if: matrix.run_snyk
run: sbt "project ${{ matrix.app }}" docker:publishLocal
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/docker@master
if: matrix.run_snyk
with:
image: "snowplow/snowplow-s3-loader:${{ github.ref_name }}-${{ matrix.app }}"
args: "--app-vulns --org=data-processing-new"
command: monitor
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

create_release:
needs: test
if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, 'rc') }}
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: 11
distribution: adopt

- name: Install LZO
run: sudo apt-get install -y lzop liblzo2-dev

- name: Build artifacts
run: |
sbt assembly
- name: Get current version
id: ver
run: |
export PROJECT_VERSION=$(sbt version -Dsbt.log.noformat=true | perl -ne 'print "$1\n" if /info.*(\d+\.\d+\.\d+[^\r\n]*)/' | tail -n 1 | tr -d '\n')
echo "::set-output name=project_version::$PROJECT_VERSION"
- name: Create GitHub release and attach artifacts
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: true
name: Version ${{ steps.ver.outputs.project_version }}
tag_name: ${{ steps.ver.outputs.project_version }}
files: |
modules/main/target/scala-2.13/snowplow-s3-loader-${{ steps.ver.outputs.project_version }}.jar
modules/lzo/target/scala-2.13/snowplow-s3-loader-lzo-${{ steps.ver.outputs.project_version }}.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
51 changes: 51 additions & 0 deletions .github/workflows/lacework.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: lacework

on:
push:
tags:
- '*'

jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: coursier/cache-action@v3
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 11
- name: Get current version
id: ver
run: echo "::set-output name=tag::${GITHUB_REF#refs/tags/}"

- name: Install lacework scanner
run: |
sudo apt-get update
sudo apt-get -y install curl
curl -L https://github.com/lacework/lacework-vulnerability-scanner/releases/latest/download/lw-scanner-linux-amd64 -o lw-scanner
chmod +x lw-scanner
- name: Build docker images
run: sbt docker:publishLocal

- name: Scan snowplow-s3-loader focal
env:
LW_ACCESS_TOKEN: ${{ secrets.LW_ACCESS_TOKEN }}
LW_ACCOUNT_NAME: ${{ secrets.LW_ACCOUNT_NAME }}
LW_SCANNER_SAVE_RESULTS: ${{ !contains(steps.version.outputs.tag, 'rc') }}
run: ./lw-scanner image evaluate snowplow/snowplow-s3-loader ${{ steps.ver.outputs.tag }} --build-id ${{ github.run_id }} --no-pull

- name: Scan snowplow-s3-loader distroless
env:
LW_ACCESS_TOKEN: ${{ secrets.LW_ACCESS_TOKEN }}
LW_ACCOUNT_NAME: ${{ secrets.LW_ACCOUNT_NAME }}
LW_SCANNER_SAVE_RESULTS: ${{ !contains(steps.version.outputs.tag, 'rc') }}
run: ./lw-scanner image evaluate snowplow/snowplow-s3-loader ${{ steps.ver.outputs.tag }}-distroless --build-id ${{ github.run_id }} --no-pull

- name: Scan snowplow-s3-loader lzo
env:
LW_ACCESS_TOKEN: ${{ secrets.LW_ACCESS_TOKEN }}
LW_ACCOUNT_NAME: ${{ secrets.LW_ACCOUNT_NAME }}
LW_SCANNER_SAVE_RESULTS: ${{ !contains(steps.version.outputs.tag, 'rc') }}
run: ./lw-scanner image evaluate snowplow/snowplow-s3-loader ${{ steps.ver.outputs.tag }}-lzo --build-id ${{ github.run_id }} --no-pull
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
*.log

# sbt specific
.bsp/
dist/*
target/
lib_managed/
42 changes: 0 additions & 42 deletions .release.yml

This file was deleted.

21 changes: 21 additions & 0 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version = "2.7.5"
style = default
align.openParenDefnSite = true
align.openParenCallSite = true
align.arrowEnumeratorGenerator = true
maxColumn = 140
docstrings = JavaDoc
optIn.breakChainOnFirstMethodDot = true
spaces.afterKeywordBeforeParen = true
danglingParentheses.defnSite = false
danglingParentheses.callSite = false
continuationIndent.callSite = 2
continuationIndent.defnSite = 2
verticalMultiline.atDefnSite = false
importSelectors = noBinPack
rewrite.rules = [
AsciiSortImports,
RedundantBraces,
RedundantParens,
PreferCurlyFors
]
30 changes: 0 additions & 30 deletions .travis.yml

This file was deleted.

Loading