diff --git a/.gitlab/merge_request_templates/default.md b/.gitlab/merge_request_templates/default.md index 30b5728265169035761fddd28062b2664024c71d..9dc78d75601ea9e1f76dce570a0f4093c9498cc0 100644 --- a/.gitlab/merge_request_templates/default.md +++ b/.gitlab/merge_request_templates/default.md @@ -10,7 +10,7 @@ ## Does this introduce a change in the cloud provider implementation, if so which cloud? - [ ] AWS - [ ] Azure -- [ ] GCP +- [ ] Google Cloud - [ ] IBM ## Does this introduce a breaking change? diff --git a/NOTICE b/NOTICE index aa386cd540b35872d6b91772967dc174c2916aca..79730ec5a16164bc5801cdccf2ae1b49cedbf27a 100644 --- a/NOTICE +++ b/NOTICE @@ -33,6 +33,7 @@ The following software have components provided under the terms of this license: - Microsoft Application Insights Log4j 2 Appender (from https://github.com/Microsoft/ApplicationInsights-Java) - Proton-J (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j) - QpidJMS Client (from https://repo1.maven.org/maven2/org/apache/qpid/qpid-jms-client) +- tomcat-embed-el (from http://tomcat.apache.org/, https://tomcat.apache.org/) ======================================================================== Apache-2.0 @@ -179,6 +180,8 @@ The following software have components provided under the terms of this license: - KeePassJava2 :: Simple (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2-simple) - Kotlin Stdlib (from https://kotlinlang.org/, https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib) - Kotlin Stdlib Common (from https://kotlinlang.org/) +- Kotlin Stdlib Jdk7 (from https://kotlinlang.org/) +- Kotlin Stdlib Jdk8 (from https://kotlinlang.org/) - LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) - Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core) - MapStruct Core (from http://mapstruct.org/mapstruct/, https://repo1.maven.org/maven2/org/mapstruct/mapstruct) @@ -203,6 +206,7 @@ The following software have components provided under the terms of this license: - Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common) - Netty/Handler (from https://repo1.maven.org/maven2/io/netty/netty-handler) - Netty/Handler/Proxy (from https://repo1.maven.org/maven2/io/netty/netty-handler-proxy) +- Netty/Incubator/Codec/Classes/Quic (from https://repo1.maven.org/maven2/io/netty/incubator/netty-incubator-codec-classes-quic) - Netty/Resolver (from https://repo1.maven.org/maven2/io/netty/netty-resolver) - Netty/Resolver/DNS (from https://repo1.maven.org/maven2/io/netty/netty-resolver-dns) - Netty/Resolver/DNS/Classes/MacOS (from https://repo1.maven.org/maven2/io/netty/netty-resolver-dns-classes-macos) @@ -227,8 +231,12 @@ The following software have components provided under the terms of this license: - PowerMock (from http://www.powermock.org, https://repo1.maven.org/maven2/org/powermock/powermock-api-mockito) - Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient) - Prometheus Java Simpleclient Common (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_common) +- Prometheus Java Span Context Supplier - Common (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_common) +- Prometheus Java Span Context Supplier - OpenTelemetry (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel) +- Prometheus Java Span Context Supplier - OpenTelemetry Agent (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel_agent) - Protocol Buffer extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-protobuf) - Proton-J (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j) +- QUIC functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty) - QpidJMS Client (from https://repo1.maven.org/maven2/org/apache/qpid/qpid-jms-client) - RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com) - Reactive Streams Netty driver (from https://github.com/reactor/reactor-netty) @@ -537,6 +545,7 @@ The following software have components provided under the terms of this license: - Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core) - Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson) - Logback Core Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-core) +- Microsoft Application Insights Java SDK Core (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Java SDK Spring Boot starter (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Java SDK Web Module (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Log4j 2 Appender (from https://github.com/Microsoft/ApplicationInsights-Java) @@ -650,8 +659,6 @@ The following software have components provided under the terms of this license: ======================================================================== JSON ======================================================================== -The following software have components provided under the terms of this license: - - JSON in Java (from https://github.com/douglascrockford/JSON-java) ======================================================================== @@ -667,6 +674,7 @@ The following software have components provided under the terms of this license: - Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core) - Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson) - Logback Core Module (from http://logback.qos.ch, https://repo1.maven.org/maven2/ch/qos/logback/logback-core) +- Microsoft Application Insights Java SDK Core (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Java SDK Spring Boot starter (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Java SDK Web Module (from https://github.com/Microsoft/ApplicationInsights-Java) - Microsoft Application Insights Log4j 2 Appender (from https://github.com/Microsoft/ApplicationInsights-Java) @@ -828,12 +836,17 @@ The following software have components provided under the terms of this license: - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html, https://www.bouncycastle.org/java.html) - Guava: Google Core Libraries for Java (from http://code.google.com/p/guava-libraries, https://github.com/google/guava, https://repo1.maven.org/maven2/com/google/guava/guava) - HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) +- JBoss Logging 3 (from http://www.jboss.org) +- JSON in Java (from https://github.com/douglascrockford/JSON-java) - LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) - PostgreSQL JDBC Driver - Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient) - RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com) - Undertow Core (from https://repo1.maven.org/maven2/io/undertow/undertow-core) +- Undertow Servlet (from https://repo1.maven.org/maven2/io/undertow/undertow-servlet) - Undertow WebSockets JSR356 implementations (from https://repo1.maven.org/maven2/io/undertow/undertow-websockets-jsr) +- XNIO API (from http://www.jboss.org/xnio) +- XNIO NIO Implementation (from https://repo1.maven.org/maven2/org/jboss/xnio/xnio-nio) - reactive-streams (from http://www.reactive-streams.org/) ======================================================================== diff --git a/devops/gcp/configmap/README.md b/devops/gcp/configmap/README.md index ce6bc6d029113e3223ba015cbe99f1663f94a295..a50bb76e12c8c28c07a0350fffb0dee46a5120b7 100644 --- a/devops/gcp/configmap/README.md +++ b/devops/gcp/configmap/README.md @@ -32,16 +32,16 @@ First you need to set variables in **values.yaml** file using any code editor. S **logLevel** | logging level | string | INFO | yes **springProfilesActive** | active spring profile | string | gcp | yes -### GCP variables +### Google Cloud variables | Name | Description | Type | Default |Required | |------|-------------|------|---------|---------| **entitlementsHost** | entitlements service host address | string | `http://entitlements` | yes **registerHost** | register service host address | string | `http://register` | yes **partitionHost** | partition service host address | string | `http://partition` | yes -**googleAudiences** | your GCP client ID | string | - | yes +**googleAudiences** | your Google Cloud client ID | string | - | yes -> googleAudiences: If you are connected to GCP console with `gcloud auth application-default login --no-browser` from your terminal, you can get your client_id using the command: +> googleAudiences: If you are connected to Google Cloud console with `gcloud auth application-default login --no-browser` from your terminal, you can get your client_id using the command: ```console cat ~/.config/gcloud/application_default_credentials.json | grep client_id diff --git a/notification-core/pom.xml b/notification-core/pom.xml index 0b8a21b3df947604321fab0dc5ff04d5201a4a45..a5cd1b8c43629c5f1f2ab13ab334c8eab5a1977a 100644 --- a/notification-core/pom.xml +++ b/notification-core/pom.xml @@ -37,15 +37,23 @@ <maven.compiler.source>${java.version}</maven.compiler.source> <springfox-version>2.7.0</springfox-version> <netty.version>4.1.70.Final</netty.version> - <undertow.version>2.1.7.Final</undertow.version> + <undertow.version>2.2.19.Final</undertow.version> <woodstox-core.version>5.3.0</woodstox-core.version> <log4j.version>2.17.1</log4j.version> - <jackson-databind.version>2.13.2.2</jackson-databind.version> - <jackson.version>2.13.2</jackson.version> + <os-core-common.version>0.18.0-rc3</os-core-common.version> + <google-oauth-client.version>1.33.3</google-oauth-client.version> + <google-api-client.version>1.33.2</google-api-client.version> </properties> <dependencyManagement> <dependencies> + <dependency> + <groupId>org.opengroup.osdu</groupId> + <artifactId>os-core-common</artifactId> + <version>${os-core-common.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> <dependency> <groupId>com.fasterxml.woodstox</groupId> <artifactId>woodstox-core</artifactId> @@ -66,21 +74,6 @@ <version>1.18.8</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>com.google.http-client</groupId> - <artifactId>google-http-client</artifactId> - <version>1.30.1</version> - </dependency> - <dependency> - <groupId>com.google.oauth-client</groupId> - <artifactId>google-oauth-client</artifactId> - <version>1.30.1</version> - </dependency> - <dependency> - <groupId>com.google.api-client</groupId> - <artifactId>google-api-client</artifactId> - <version>1.30.2</version> - </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> @@ -101,11 +94,6 @@ <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency> - <dependency> - <groupId>com.google.apis</groupId> - <artifactId>google-api-services-iam</artifactId> - <version>v1-rev289-1.25.0</version> - </dependency> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> @@ -171,7 +159,6 @@ <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> - <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> @@ -179,6 +166,12 @@ <version>2.9.1</version> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>2.10.0</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> @@ -265,11 +258,6 @@ <classifier>linux-x86_64</classifier> <type>jar</type> </dependency> - <dependency> - <groupId>com.google.oauth-client</groupId> - <artifactId>google-oauth-client</artifactId> - <version>1.31.5</version> - </dependency> <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-core</artifactId> @@ -289,17 +277,14 @@ <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> - <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>${jackson-databind.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - <version>${jackson.version}</version> </dependency> </dependencies> <build> diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/api/GlobalErrorController.java b/notification-core/src/main/java/org/opengroup/osdu/notification/api/GlobalErrorController.java index 8a7d173d776bd16395a638a9dc58d6fc234248e9..3af29b979609c7c2487f4dbeead3bde7a0030c24 100644 --- a/notification-core/src/main/java/org/opengroup/osdu/notification/api/GlobalErrorController.java +++ b/notification-core/src/main/java/org/opengroup/osdu/notification/api/GlobalErrorController.java @@ -74,7 +74,6 @@ public class GlobalErrorController implements ErrorController { statusCode, HttpStatus.resolve(statusCode).getReasonPhrase(), err); } - @Override public String getErrorPath() { return "/error"; } diff --git a/pom.xml b/pom.xml index 768d0bf2307475b53cb91050c84a3857493453e1..5275d5ad57da83d77d22b84f1b6ba7f7cdee1a93 100644 --- a/pom.xml +++ b/pom.xml @@ -69,17 +69,17 @@ <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> - <version>2.12.3</version> + <version>2.13.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.12.3</version> + <version>2.13.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - <version>2.12.3</version> + <version>2.13.4</version> </dependency> <dependency> diff --git a/provider/notification-azure/pom.xml b/provider/notification-azure/pom.xml index 6130324858489dd7920bb01436e218e0557fe97d..00195ca872ff0b2fc51c15f32bca258ab8faa91d 100644 --- a/provider/notification-azure/pom.xml +++ b/provider/notification-azure/pom.xml @@ -39,20 +39,19 @@ <springframework.version>4.3.0.RELEASE</springframework.version> <reactor.netty.version>0.11.0.RELEASE</reactor.netty.version> <reactor.core.version>3.3.0.RELEASE</reactor.core.version> - <osdu.corelibazure.version>0.16.0-rc5</osdu.corelibazure.version> + <osdu.corelibazure.version>0.18.0-rc3</osdu.corelibazure.version> <osdu.oscorecommon.version>0.14.0</osdu.oscorecommon.version> <junit.version>5.6.0</junit.version> <jjwt.version>3.8.1</jjwt.version> <mockito.version>2.23.0</mockito.version> <spring-boot.version>2.1.18.RELEASE</spring-boot.version> - <jackson.version>2.11.4</jackson.version> <reactor-core.version>3.4.6</reactor-core.version> <reactor-netty.version>1.0.7</reactor-netty.version> <oauth2-oidc-sdk.version>6.0</oauth2-oidc-sdk.version> <woodstox-core.version>5.3.0</woodstox-core.version> - <jackson-databind.version>2.13.2.2</jackson-databind.version> - <jackson.version>2.13.2</jackson.version> <spring-webmvc.version>5.3.22</spring-webmvc.version> + <os-core-common.version>0.18.0-rc3</os-core-common.version> + <undertow.version>2.2.19.Final</undertow.version> </properties> <dependencyManagement> @@ -100,6 +99,21 @@ <artifactId>spring-boot-starter-webflux</artifactId> <version>2.5.12</version> </dependency> + <dependency> + <groupId>io.undertow</groupId> + <artifactId>undertow-core</artifactId> + <version>${undertow.version}</version> + </dependency> + <dependency> + <groupId>io.undertow</groupId> + <artifactId>undertow-servlet</artifactId> + <version>${undertow.version}</version> + </dependency> + <dependency> + <groupId>io.undertow</groupId> + <artifactId>undertow-websockets-jsr</artifactId> + <version>${undertow.version}</version> + </dependency> </dependencies> </dependencyManagement> @@ -140,19 +154,16 @@ <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> - <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> - <version>${jackson.version}</version> </dependency> <dependency> @@ -170,12 +181,10 @@ <dependency> <groupId>io.projectreactor.netty</groupId> <artifactId>reactor-netty</artifactId> - <version>${reactor-netty.version}</version> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> - <version>${reactor-core.version}</version> </dependency> <dependency> <groupId>com.nimbusds</groupId> @@ -221,20 +230,9 @@ </dependency> <!-- Jackson Dependencies --> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - <version>${jackson.version}</version> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>${jackson-databind.version}</version> - </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> - <version>${jackson.version}</version> </dependency> </dependencies> diff --git a/provider/notification-azure/src/main/resources/application.properties b/provider/notification-azure/src/main/resources/application.properties index 124dca63c069e1f9d05538f5e8cc708dd8d45bb5..6e77d23fde6050097442fe3425d55ef85995abf2 100644 --- a/provider/notification-azure/src/main/resources/application.properties +++ b/provider/notification-azure/src/main/resources/application.properties @@ -86,6 +86,9 @@ azure.eventGridToServiceBus.enabled=${event_grid_to_service_bus_enabled} requestScope.enabled=${event_grid_enabled} management.server.port=8081 +management.health.azure-key-vault.enabled=false management.endpoints.web.exposure.include=${web_exposure_endpoints:health,info} management.metrics.enable.all=${enable_metrics:false} + +spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER \ No newline at end of file diff --git a/provider/notification-gcp/README.md b/provider/notification-gcp/README.md index 710b48b07d013376f8a782b1095578e19118d039..8e437e00d5e0868d60d4f70e14b9a8ec41102c78 100644 --- a/provider/notification-gcp/README.md +++ b/provider/notification-gcp/README.md @@ -38,8 +38,8 @@ In the current version, the OQM mapper is equipped with 2 drivers to the message ### Anthos Service Configuration: [Anthos service configuration ](docs/anthos/README.md) -### GCP Service Configuration: -[Gcp service configuration ](docs/gcp/README.md) +### Google Cloud Service Configuration: +[Google Cloud service configuration ](docs/gcp/README.md) ## Run service @@ -118,8 +118,8 @@ cd provider/notification-gcp/ && mvn spring-boot:run -Dspring-boot.run.profiles= #### Anthos: [Anthos Testing](docs/anthos/README.md) -#### GCP: -[Gcp Testing](docs/gcp/README.md) +#### Google Cloud: +[Google Cloud Testing](docs/gcp/README.md) ## Tutorial diff --git a/provider/notification-gcp/docs/gcp/README.md b/provider/notification-gcp/docs/gcp/README.md index a0151f2ad91f21e687e43461ff5c47c874db401d..c1418d03c5faeabc520b20546823e40bb99f00d1 100644 --- a/provider/notification-gcp/docs/gcp/README.md +++ b/provider/notification-gcp/docs/gcp/README.md @@ -1,4 +1,4 @@ -# Service Configuration for GCP +# Service Configuration for Google Cloud ## Table of Contents <a name="TOC"></a> * [Environment variables](#Environment-variables) diff --git a/provider/notification-ibm/pom.xml b/provider/notification-ibm/pom.xml index 95b0cde211ad32daec86d31f5a92013f027e0e2f..c24b042d41c3ba1ee02eb4143f25c955ae0ad279 100644 --- a/provider/notification-ibm/pom.xml +++ b/provider/notification-ibm/pom.xml @@ -38,6 +38,18 @@ <jackson.version>2.13.2</jackson.version> </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>2.5.6</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> <!-- <dependency> <groupId>org.opengroup.osdu</groupId> @@ -128,19 +140,13 @@ <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> - <version>5.3.8.RELEASE</version> - <exclusions> - <exclusion> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-core</artifactId> - </exclusion> - </exclusions> + <version>5.7.3</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-config</artifactId> + <version>5.7.3</version> </dependency> - <dependency> - <groupId>org.springframework.security</groupId> - <artifactId>spring-security-core</artifactId> - <version>5.7.3</version> - </dependency> <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-core</artifactId> diff --git a/provider/notification-ibm/src/main/java/org/opengroup/osdu/notification/provider/ibm/util/IBMServiceAccountValidatorImpl.java b/provider/notification-ibm/src/main/java/org/opengroup/osdu/notification/provider/ibm/util/IBMServiceAccountValidatorImpl.java index 47ad624e24f03010fa1ee32fec5d4fd678d6e580..dcdd7aedef56bee5f1abb32fcf27bb33d8d05ba0 100644 --- a/provider/notification-ibm/src/main/java/org/opengroup/osdu/notification/provider/ibm/util/IBMServiceAccountValidatorImpl.java +++ b/provider/notification-ibm/src/main/java/org/opengroup/osdu/notification/provider/ibm/util/IBMServiceAccountValidatorImpl.java @@ -4,13 +4,7 @@ package org.opengroup.osdu.notification.provider.ibm.util; -import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken; -import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier; -import com.google.api.client.http.javanet.NetHttpTransport; -import com.google.api.client.json.jackson2.JacksonFactory; -import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; import org.opengroup.osdu.notification.provider.interfaces.IServiceAccountValidator; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service diff --git a/testing/README.md b/testing/README.md index 20c3a69c83cb6ad6f341768a4a9b27578255c9cf..bc7897ee432b9f3792abf2f67c9a3eb51003d5fd 100644 --- a/testing/README.md +++ b/testing/README.md @@ -41,5 +41,5 @@ Notification integration tests are refactored so that the business logic for int * Integration tests are refactored into two pieces: Core and Provider. Core contains business logic for tests and is a dependency for executing the tests from provider module. To build the core module, simply navigate to `notification-test-core` directory and run `mvn clean install`. This will build the core module * Next, to execute the integration tests, navigate to the provider module and execute `mvn test` -### GCP -Instructions for running the GCP integration tests can be found [here](../provider/notification-gcp/README.md). \ No newline at end of file +### Google Cloud +Instructions for running the GC integration tests can be found [here](../provider/notification-gcp/README.md). \ No newline at end of file