Skip to content

Commit

Permalink
Do not allow requests with too large payload
Browse files Browse the repository at this point in the history
  • Loading branch information
spenes authored and AlexBenny committed Jan 23, 2025
1 parent 577e3a6 commit 446103b
Show file tree
Hide file tree
Showing 51 changed files with 185 additions and 114 deletions.
6 changes: 3 additions & 3 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

_Version 1.1, November, 2024_

This Snowplow Limited Use License Agreement, Version 1.0 (the “Agreement”) sets forth the terms on which Snowplow Analytics, Ltd. (“Snowplow”) makes available certain software (the “Software”). BY INSTALLING, DOWNLOADING, ACCESSING, OR USING ANY OF THE SOFTWARE, YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE. IF YOU ARE RECEIVING THE SOFTWARE ON BEHALF OF A LEGAL ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE THE ACTUAL AUTHORITY TO AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT ON BEHALF OF SUCH ENTITY. “Licensee” means you, an individual, or the entity on whose behalf you are receiving the Software.
This Snowplow Limited Use License Agreement, Version 1.1 (the “Agreement”) sets forth the terms on which Snowplow Analytics, Ltd. (“Snowplow”) makes available certain software (the “Software”). BY INSTALLING, DOWNLOADING, ACCESSING, OR USING ANY OF THE SOFTWARE, YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE. IF YOU ARE RECEIVING THE SOFTWARE ON BEHALF OF A LEGAL ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE THE ACTUAL AUTHORITY TO AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT ON BEHALF OF SUCH ENTITY. “Licensee” means you, an individual, or the entity on whose behalf you are receiving the Software.

## 1. LICENSE GRANT AND CONDITIONS

Expand All @@ -24,8 +24,8 @@ This Snowplow Limited Use License Agreement, Version 1.0 (the “Agreement”) s

```
This software is made available by Snowplow Analytics, Ltd.,
under the terms of the Snowplow Limited Use License Agreement, Version 1.0
located at https://docs.snowplow.io/limited-use-license-1.0
under the terms of the Snowplow Limited Use License Agreement, Version 1.1
located at https://docs.snowplow.io/limited-use-license-1.1
BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
```
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ Licensed under the [Snowplow Limited Use License Agreement][license]. _(If you a
[roadmap]: https://github.com/snowplow/snowplow/projects/7
[contributing]: https://docs.snowplow.io/docs/contributing/

[license]: https://docs.snowplow.io/limited-use-license-1.0
[license]: https://docs.snowplow.io/limited-use-license-1.1
[license-image]: https://img.shields.io/badge/license-Snowplow--Limited--Use-blue.svg?style=flat
[faq]: https://docs.snowplow.io/docs/contributing/limited-use-license-faq/
6 changes: 3 additions & 3 deletions project/BuildSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ object BuildSettings {
)

lazy val licenseSettings = Seq(
licenses += ("Snowplow Limited Use License Agreement", url("https://docs.snowplow.io/limited-use-license-1.0")),
licenses += ("Snowplow Limited Use License Agreement", url("https://docs.snowplow.io/limited-use-license-1.1")),
headerLicense := Some(HeaderLicense.Custom(
"""|Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
|
|This software is made available by Snowplow Analytics, Ltd.,
|under the terms of the Snowplow Limited Use License Agreement, Version 1.0
|located at https://docs.snowplow.io/limited-use-license-1.0
|under the terms of the Snowplow Limited Use License Agreement, Version 1.1
|located at https://docs.snowplow.io/limited-use-license-1.1
|BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
|OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
|""".stripMargin
Expand Down
5 changes: 3 additions & 2 deletions src/main/resources/application.conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
#
# This software is made available by Snowplow Analytics, Ltd.,
# under the terms of the Snowplow Limited Use License Agreement, Version 1.0
# located at https://docs.snowplow.io/limited-use-license-1.0
# under the terms of the Snowplow Limited Use License Agreement, Version 1.1
# located at https://docs.snowplow.io/limited-use-license-1.1
# BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
# OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.

Expand All @@ -24,6 +24,7 @@
"enable": false
"maxAge": "365 days"
}
"maxPayloadSize": 100000
}

"database" {
Expand Down
7 changes: 4 additions & 3 deletions src/main/scala/com/snowplowanalytics/iglu/server/Config.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down Expand Up @@ -220,7 +220,8 @@ object Config {
idleTimeout: Option[FiniteDuration],
maxConnections: Option[Int],
threadPool: ThreadPool,
hsts: Config.Hsts
hsts: Config.Hsts,
maxPayloadSize: Long
)

implicit val httpConfigCirceEncoder: Encoder[Http] =
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/com/snowplowanalytics/iglu/server/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
26 changes: 20 additions & 6 deletions src/main/scala/com/snowplowanalytics/iglu/server/Server.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand All @@ -15,6 +15,7 @@ import java.util.UUID
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext
import cats.data.Kleisli
import cats.syntax.all._
import cats.effect.{Blocker, ContextShift, ExitCase, ExitCode, IO, Resource, Sync, Timer}
import cats.effect.concurrent.Ref
import io.circe.syntax._
Expand All @@ -26,7 +27,7 @@ import org.http4s.headers.{`Content-Type`, `Strict-Transport-Security`}
import org.http4s.client.blaze.BlazeClientBuilder
import org.http4s.server.Router
import org.http4s.server.blaze.BlazeServerBuilder
import org.http4s.server.middleware.{AutoSlash, CORS, HSTS, Logger}
import org.http4s.server.middleware.{AutoSlash, CORS, EntityLimiter, HSTS, Logger}
import org.http4s.syntax.string._
import org.http4s.server.{defaults => Http4sDefaults}
import org.http4s.util.{CaseInsensitiveString => CIString}
Expand Down Expand Up @@ -65,6 +66,12 @@ object Server {
.withBodyStream(Utils.toBytes(IgluResponse.EndpointNotFound: IgluResponse))
.withContentType(`Content-Type`(MediaType.application.json))

val PayloadTooLarge: Response[IO] =
Response[IO]()
.withStatus(Status.PayloadTooLarge)
.withBodyStream(Utils.toBytes(IgluResponse.PayloadTooLarge: IgluResponse))
.withContentType(`Content-Type`(MediaType.application.json))

def addSwagger(storage: Storage[IO], superKey: Option[UUID], config: Config.Swagger)(
service: (String, RoutesConstructor)
) = {
Expand Down Expand Up @@ -93,19 +100,25 @@ object Server {
swaggerConfig: Config.Swagger,
blocker: Blocker,
isHealthy: IO[Boolean],
hsts: Config.Hsts
hsts: Config.Hsts,
maxPayloadSize: Long
)(implicit cs: ContextShift[IO]): HttpApp[IO] = {
val serverRoutes =
httpRoutes(storage, superKey, debug, patchesAllowed, webhook, cache, swaggerConfig, blocker, isHealthy)
val server = Kleisli[IO, Request[IO], Response[IO]](req => Router(serverRoutes: _*).run(req).getOrElse(NotFound))
hstsMiddleware(hsts)(server)
entityLimiter(maxPayloadSize)(hstsMiddleware(hsts)(server))
}

def hstsMiddleware(hsts: Config.Hsts): HttpApp[IO] => HttpApp[IO] =
if (hsts.enable)
HSTS(_, `Strict-Transport-Security`.unsafeFromDuration(hsts.maxAge))
else identity

def entityLimiter(maxPayloadSize: Long): HttpApp[IO] => HttpApp[IO] =
EntityLimiter(_, maxPayloadSize).recover {
case _: EntityLimiter.EntityTooLarge => PayloadTooLarge
}

def httpRoutes(
storage: Storage[IO],
superKey: Option[UUID],
Expand Down Expand Up @@ -185,7 +198,8 @@ object Server {
config.swagger,
blocker,
isHealthy,
config.repoServer.hsts
config.repoServer.hsts,
config.repoServer.maxPayloadSize
)
)
.withIdleTimeout(config.repoServer.idleTimeout.getOrElse(Http4sDefaults.IdleTimeout))
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/com/snowplowanalytics/iglu/server/Utils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down Expand Up @@ -38,11 +38,13 @@ object IgluResponse {
val DataInvalidationMessage = "The data for a field instance is invalid against its schema"
val NotFoundEndpoint = "The endpoint does not exist"
val NonSequentialSchemaVersion = "The schema version is not sequential"
val PayloadTooLargeError = "The payload is too large"

case object SchemaNotFound extends IgluResponse
case object SchemaNonSequential extends IgluResponse
case object EndpointNotFound extends IgluResponse
case object InvalidSchema extends IgluResponse
case object PayloadTooLarge extends IgluResponse
case class SchemaMismatch(uriSchemaKey: SchemaKey, payloadSchemaKey: SchemaKey) extends IgluResponse
case class SchemaUploaded(updated: Boolean, location: SchemaKey) extends IgluResponse

Expand Down Expand Up @@ -94,6 +96,8 @@ object IgluResponse {
)
case InvalidSchema =>
Json.fromFields(List("message" -> Json.fromString(DecodeError)))
case PayloadTooLarge =>
Json.fromFields(List("message" -> Json.fromString(PayloadTooLargeError)))
case SchemaNonSequential =>
Json.fromFields(List("message" -> Json.fromString(NonSequentialSchemaVersion)))
case SchemaValidationReport(report) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) 2014-present Snowplow Analytics Ltd. All rights reserved.
*
* This software is made available by Snowplow Analytics, Ltd.,
* under the terms of the Snowplow Limited Use License Agreement, Version 1.0
* located at https://docs.snowplow.io/limited-use-license-1.0
* under the terms of the Snowplow Limited Use License Agreement, Version 1.1
* located at https://docs.snowplow.io/limited-use-license-1.1
* BY INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY PORTION
* OF THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.
*/
Expand Down
Loading

0 comments on commit 446103b

Please sign in to comment.