diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f626195e8c81340194b4458249ac9b3a4b49c40c..7f134efc10090256988b9caf2f9088fde5daeb97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,9 +15,10 @@ variables: OSDU_GCP_SERVICE: partition OSDU_GCP_VENDOR: gcp OSDU_GCP_APPLICATION_NAME: os-partition - OSDU_GCP_ENV_VARS: AUTHORIZE_API=$OSDU_GCP_AUTHORIZE_API,GOOGLE_CLOUD_PROJECT=$OSDU_GCP_PROJECT,GOOGLE_AUDIENCES=$GOOGLE_AUDIENCE,PARTITION_ADMIN_ACCOUNT=$OSDU_GCP_SERVICE_ACCOUNT + OSDU_GCP_ENV_VARS: AUTHORIZE_API=$OSDU_GCP_ENTITLEMENTS_V2_URL,GOOGLE_CLOUD_PROJECT=$OSDU_GCP_PROJECT,GOOGLE_AUDIENCES=$GOOGLE_AUDIENCE,PARTITION_ADMIN_ACCOUNT=$OSDU_GCP_SERVICE_ACCOUNT MAVEN_PROJECTS: "-pl partition-core,provider/partition-gcp" OSDU_GCP_TEST_SUBDIR: testing/$OSDU_GCP_SERVICE-test-$OSDU_GCP_VENDOR + OSDU_GCP_HELM_PACKAGE_CHARTS: "devops/gcp/deploy devops/gcp/configmap" include: - project: "osdu/platform/ci-cd-pipelines" @@ -44,6 +45,9 @@ include: - project: "osdu/platform/ci-cd-pipelines" file: "cloud-providers/osdu-gcp-cloudrun.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "publishing/pages.yml" + osdu-gcp-test: variables: CLIENT_TENANT: osdu diff --git a/NOTICE b/NOTICE index b7a1139ba8bfb825feba588cee59cd6462592b87..0a6988ad06a4055f9980256b3d8395bcba55e315 100644 --- a/NOTICE +++ b/NOTICE @@ -15,7 +15,7 @@ Apache-1.1 The following software have components provided under the terms of this license: - Apache Commons CLI (from http://commons.apache.org/proper/commons-cli/) -- Cobertura code coverage (from http://cobertura.sourceforge.net) +- Cobertura (from http://cobertura.sourceforge.net) - Plexus :: Default Container (from ) - Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils) - oro (from ) @@ -27,29 +27,25 @@ The following software have components provided under the terms of this license: - AMQP 1.0 JMS Spring Boot AutoConfiguration (from https://repo1.maven.org/maven2/org/amqphub/spring/amqp-10-jms-spring-boot-autoconfigure) - AMQP 1.0 JMS Spring Boot Starter (from https://repo1.maven.org/maven2/org/amqphub/spring/amqp-10-jms-spring-boot-starter) -- ASM Analysis (from ) -- ASM Commons (from ) - ASM Core (from ) - ASM Core (from ) - ASM Core (from ) -- ASM Tree (from ) -- ASM Util (from ) - ASM based accessors helper used by json-smart (from ) - ASM based accessors helper used by json-smart (from ) - AWS Event Stream (from https://github.com/awslabs/aws-eventstream-java) - AWS Java SDK :: AWS Core (from https://aws.amazon.com/sdkforjava) -- AWS Java SDK :: Annotations (from ) +- AWS Java SDK :: Annotations (from https://repo1.maven.org/maven2/software/amazon/awssdk/annotations) - AWS Java SDK :: Auth (from https://aws.amazon.com/sdkforjava) - AWS Java SDK :: Core :: Protocols :: AWS Json Protocol (from https://aws.amazon.com/sdkforjava) - AWS Java SDK :: Core :: Protocols :: Protocol Core (from https://aws.amazon.com/sdkforjava) -- AWS Java SDK :: HTTP Client Interface (from ) -- AWS Java SDK :: HTTP Clients :: Apache (from ) -- AWS Java SDK :: HTTP Clients :: Netty Non-Blocking I/O (from ) +- AWS Java SDK :: HTTP Client Interface (from https://repo1.maven.org/maven2/software/amazon/awssdk/http-client-spi) +- AWS Java SDK :: HTTP Clients :: Apache (from https://repo1.maven.org/maven2/software/amazon/awssdk/apache-client) +- AWS Java SDK :: HTTP Clients :: Netty Non-Blocking I/O (from https://repo1.maven.org/maven2/software/amazon/awssdk/netty-nio-client) - AWS Java SDK :: Profiles (from https://aws.amazon.com/sdkforjava) -- AWS Java SDK :: Regions (from ) +- AWS Java SDK :: Regions (from https://repo1.maven.org/maven2/software/amazon/awssdk/regions) - AWS Java SDK :: SDK Core (from https://aws.amazon.com/sdkforjava) - AWS Java SDK :: Services :: AWS Simple Systems Management (SSM) (from https://aws.amazon.com/sdkforjava) -- AWS Java SDK :: Utilities (from ) +- AWS Java SDK :: Utilities (from https://repo1.maven.org/maven2/software/amazon/awssdk/utils) - AWS Java SDK for AWS Amplify (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS App Mesh (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS AppSync (from https://aws.amazon.com/sdkforjava) @@ -308,14 +304,14 @@ The following software have components provided under the terms of this license: - AWS Java SDK for the Amazon EC2 Container Service (from https://aws.amazon.com/sdkforjava) - AWS SDK for Java - Core (from https://aws.amazon.com/sdkforjava) - AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava) -- Adapter: RxJava (from ) +- Adapter: RxJava (from https://repo1.maven.org/maven2/com/squareup/retrofit2/adapter-rxjava) - Apache Ant + JUnit (from http://ant.apache.org/) - Apache Ant Core (from http://ant.apache.org/) - Apache Ant Launcher (from http://ant.apache.org/) - Apache Commons BeanUtils (from http://commons.apache.org/proper/commons-beanutils/) - Apache Commons CLI (from http://commons.apache.org/proper/commons-cli/) -- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) -- Apache Commons Collections (from http://commons.apache.org/proper/commons-collections/) +- Apache Commons Codec (from https://commons.apache.org/proper/commons-codec/) +- Apache Commons Collections (from https://commons.apache.org/proper/commons-collections/) - Apache Commons Lang (from http://commons.apache.org/proper/commons-lang/) - Apache Commons Logging (from http://commons.apache.org/proper/commons-logging/) - Apache Commons Validator (from http://commons.apache.org/proper/commons-validator/) @@ -323,10 +319,10 @@ The following software have components provided under the terms of this license: - Apache HttpClient (from http://hc.apache.org/httpcomponents-client) - Apache HttpClient Cache (from http://hc.apache.org/httpcomponents-client) - Apache HttpCore (from http://hc.apache.org/httpcomponents-core-ga) -- Apache Log4j API (from ) -- Apache Log4j Core (from ) -- Apache Log4j JUL Adapter (from ) -- Apache Log4j SLF4J Binding (from ) +- Apache Log4j API (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api) +- Apache Log4j Core (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core) +- Apache Log4j JUL Adapter (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-jul) +- Apache Log4j SLF4J Binding (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl) - Apache Log4j to SLF4J Adapter (from ) - Apache Maven Invoker (from ) - Apache Maven Reporting Implementation (from ) @@ -338,24 +334,24 @@ The following software have components provided under the terms of this license: - Apache Maven Wagon :: Providers :: SSH External Provider (from ) - Apache Maven Wagon :: Providers :: SSH Provider (from ) - Apache Velocity (from http://velocity.apache.org/engine/devel/) -- AssertJ fluent assertions (from ) -- AssertJ fluent assertions (from ) -- Asynchronous Http Client (from ) -- Asynchronous Http Client Netty Utils (from ) +- AssertJ fluent assertions (from https://repo1.maven.org/maven2/org/assertj/assertj-core) +- AssertJ fluent assertions (from https://repo1.maven.org/maven2/org/assertj/assertj-core) +- Asynchronous Http Client (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client) +- Asynchronous Http Client Netty Utils (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client-netty-utils) - Azure Spring Boot Starter for Azure AD Spring Security Integration (from https://github.com/Azure/azure-sdk-for-java) - Bean Validation API (from http://beanvalidation.org) - Brave Instrumentation: Http Adapters (from ) - Brave instrumentation for Reactor Netty HTTP (from https://github.com/reactor/reactor-netty) -- Byte Buddy (without dependencies) (from ) -- Byte Buddy Java agent (from ) +- Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy) +- Byte Buddy Java agent (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent) - ClassMate (from http://github.com/cowtowncoder/java-classmate) -- Cloud Storage JSON API v1-rev58-1.21.0 (from ) +- Cloud Storage JSON API v1-rev20181109-1.28.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage) - CloudWatch Metrics for AWS Java SDK (from https://aws.amazon.com/sdkforjava) -- Cobertura code coverage (from http://cobertura.sourceforge.net) +- Cobertura (from http://cobertura.sourceforge.net) +- Collections (from https://repo1.maven.org/maven2/commons-collections/commons-collections) - Commons Digester (from http://commons.apache.org/digester/) -- Commons IO (from http://commons.apache.org/io/) - Commons Lang (from http://commons.apache.org/lang/) -- Converter: Jackson (from ) +- Converter: Jackson (from https://repo1.maven.org/maven2/com/squareup/retrofit2/converter-jackson) - Core functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty) - Doxia :: APT Module (from ) - Doxia :: Core (from ) @@ -367,28 +363,29 @@ The following software have components provided under the terms of this license: - Doxia :: XHTML Module (from ) - Expression Language 3.0 (from https://projects.eclipse.org/projects/ee4j.el) - FindBugs-jsr305 (from http://findbugs.sourceforge.net/) -- Google APIs Client Library for Java (from ) -- Google App Engine extensions to the Google HTTP Client Library for Java. (from ) -- Google Cloud Core (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-core) -- Google Cloud Core HTTP (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-core-http) -- Google Cloud Core gRPC (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-core-grpc) +- Google APIs Client Library for Java (from https://repo1.maven.org/maven2/com/google/api-client/google-api-client) +- Google App Engine extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-appengine) +- Google Cloud Common Protos for Java (from https://github.com/googleapis/common-protos-java) +- Google Cloud Core (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core) +- Google Cloud Core HTTP (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-http) +- Google Cloud Core gRPC (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc) - Google Cloud Datastore (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-datastore) -- Google Cloud Key Management Service (KMS) API v1-rev22-1.23.0 (from ) +- Google Cloud Key Management Service (KMS) API v1-rev9-1.22.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-cloudkms) - Google Cloud Logging (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-logging) -- Google Cloud Pub/Sub (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-pubsub) -- Google Cloud Storage (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-storage) -- Google HTTP Client Library for Java (from https://github.com/google/google-http-java-client.git) -- Google OAuth Client Library for Java (from ) +- Google Cloud Pub/Sub (from https://github.com/googleapis/java-pubsub) +- Google Cloud Storage (from https://github.com/googleapis/java-storage) +- Google HTTP Client Library for Java (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client) +- Google OAuth Client Library for Java (from https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client) - Gson (from https://github.com/google/gson) -- Guava InternalFutureFailureAccess and InternalFutures (from ) -- Guava ListenableFuture only (from ) -- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- Guava InternalFutureFailureAccess and InternalFutures (from https://repo1.maven.org/maven2/com/google/guava/failureaccess) +- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava) - HTTP functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty) - Hibernate Validator Engine (from ) - IBM COS Java SDK for Amazon S3 (from https://github.com/ibm/ibm-cos-sdk-java) - IBM COS Java SDK for COS KMS (from https://github.com/ibm/ibm-cos-sdk-java) - IBM COS SDK For Java (from https://github.com/ibm/ibm-cos-sdk-java) - IBM COS SDK for Java - Core (from https://github.com/ibm/ibm-cos-sdk-java) +- IO (from http://jakarta.apache.org/commons/${pom.artifactId.substring(8)}/) - Identity and Access Management (IAM) API v1-rev247-1.23.0 (from ) - IntelliJ IDEA Annotations (from http://www.jetbrains.org) - IntelliJ IDEA Annotations (from http://www.jetbrains.org) @@ -397,27 +394,27 @@ The following software have components provided under the terms of this license: - JCIP Annotations under Apache License (from http://stephenc.github.com/jcip-annotations) - JDOM (from http://www.jdom.org) - JMES Path Query library (from https://aws.amazon.com/sdkforjava) -- JSON Small and Fast Parser (from http://www.minidev.net/) -- JSON Small and Fast Parser (from http://www.minidev.net/) +- JSON Small and Fast Parser (from https://repo1.maven.org/maven2/net/minidev/json-smart) +- JSON Small and Fast Parser (from https://repo1.maven.org/maven2/net/minidev/json-smart) - JSON Web Token support for the JVM (from https://github.com/jwtk/jjwt.git) - JSON library from Android SDK (from http://developer.android.com/sdk) - JSONassert (from https://github.com/skyscreamer/JSONassert) - Jackson (from http://jackson.codehaus.org) -- Jackson 2 extensions to the Google HTTP Client Library for Java. (from https://github.com/google/google-http-java-client.git/google-http-client-jackson2) +- Jackson 2 extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2) - Jackson dataformat: CBOR (from http://github.com/FasterXML/jackson-dataformats-binary) -- Jackson datatype: JSR310 (from http://wiki.fasterxml.com/JacksonModuleJSR310) -- Jackson extensions to the Google HTTP Client Library for Java. (from ) +- Jackson datatype: JSR310 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310) +- Jackson datatype: jdk8 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8) +- Jackson extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson) +- Jackson module: Afterburner (from https://github.com/FasterXML/jackson-modules-base) +- Jackson module: JAXB-annotations (from http://github.com/FasterXML/jackson-module-jaxb-annotations) - Jackson-annotations (from http://github.com/FasterXML/jackson) - Jackson-annotations (from http://github.com/FasterXML/jackson) -- Jackson-core (from https://github.com/FasterXML/jackson-core) -- Jackson-core (from https://github.com/FasterXML/jackson-core) +- Jackson-core (from http://wiki.fasterxml.com/JacksonHome) +- Jackson-core (from http://wiki.fasterxml.com/JacksonHome) - Jackson-dataformat-XML (from http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding) -- Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson) +- Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson-dataformats-text) - Jackson-datatype-Joda (from http://wiki.fasterxml.com/JacksonModuleJoda) -- Jackson-datatype-jdk8 (from ) -- Jackson-module-Afterburner (from http://wiki.fasterxml.com/JacksonHome) -- Jackson-module-JAXB-annotations (from http://wiki.fasterxml.com/JacksonJAXBAnnotations) -- Jackson-module-parameter-names (from ) +- Jackson-module-parameter-names (from https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names) - Jakarta Bean Validation API (from https://beanvalidation.org) - Java Libraries for Amazon Simple WorkFlow (from https://aws.amazon.com/sdkforjava) - Java Native Access (from https://github.com/java-native-access/jna) @@ -425,11 +422,11 @@ The following software have components provided under the terms of this license: - Java UUID Generator (from http://wiki.fasterxml.com/JugHome) - Javassist (from http://www.javassist.org/) - Javassist (from http://www.javassist.org/) -- Jetty Server (from ) -- Jetty Utilities (from ) -- Joda-Time (from http://www.joda.org/joda-time/) -- Joda-Time (from http://www.joda.org/joda-time/) -- Joda-Time (from http://www.joda.org/joda-time/) +- Jetty Server (from https://repo1.maven.org/maven2/org/mortbay/jetty/jetty) +- Jetty Utilities (from https://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util) +- Joda-Time (from https://www.joda.org/joda-time/) +- Joda-Time (from https://www.joda.org/joda-time/) +- Joda-Time (from https://www.joda.org/joda-time/) - Json Path (from https://github.com/jayway/JsonPath) - KeePassJava2 :: All (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2) - KeePassJava2 :: DOM (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2-dom) @@ -446,26 +443,28 @@ The following software have components provided under the terms of this license: - Keycloak Spring Boot 2 Integration (from ) - Keycloak Spring Boot Adapter Core (from ) - Keycloak Spring Security Integration (from ) +- Kotlin Stdlib (from https://kotlinlang.org/) +- Kotlin Stdlib Common (from https://kotlinlang.org/) - Logback Contrib :: JSON :: Classic (from ) - Logback Contrib :: JSON :: Core (from ) - Logback Contrib :: Jackson (from ) -- MapStruct Core (from ) -- Maven Artifact (from ) +- MapStruct Core (from http://mapstruct.org/mapstruct/) +- Maven Artifact (from https://repo1.maven.org/maven2/org/apache/maven/maven-artifact) - Maven Artifact Manager (from ) -- Maven Core (from https://git-wip-us.apache.org/repos/asf/maven.git/maven-core) +- Maven Core (from https://repo1.maven.org/maven2/org/apache/maven/maven-core) - Maven Error Diagnostics (from ) -- Maven Model (from https://git-wip-us.apache.org/repos/asf/maven.git/maven-model) +- Maven Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-model) - Maven Monitor (from ) -- Maven Plugin API (from https://git-wip-us.apache.org/repos/asf/maven.git/maven-plugin-api) +- Maven Plugin API (from https://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api) - Maven Plugin Descriptor Model (from ) - Maven Plugin Parameter Documenter API (from ) - Maven Plugin Registry Model (from ) - Maven Profile Model (from ) - Maven Project (from ) - Maven Reporting API (from ) -- Maven Repository Metadata Model (from ) -- Maven Settings (from ) -- Metrics Core (from https://github.com/dropwizard/metrics) +- Maven Repository Metadata Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata) +- Maven Settings (from https://repo1.maven.org/maven2/org/apache/maven/maven-settings) +- Metrics Core (from https://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-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) @@ -475,59 +474,52 @@ The following software have components provided under the terms of this license: - Microsoft Azure SDK for Key Vault (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure Storage Client SDK (from https://github.com/Azure/azure-storage-java) -- Mockito (from http://mockito.org) -- Mockito (from http://mockito.org) - Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/) -- Netty Reactive Streams HTTP support (from ) -- Netty Reactive Streams Implementation (from ) -- Netty Reactive Streams Implementation (from ) -- Netty/Buffer (from http://netty.io/) -- Netty/Codec (from ) -- Netty/Codec/DNS (from ) -- Netty/Codec/HTTP (from ) -- Netty/Codec/HTTP2 (from ) -- Netty/Codec/Socks (from ) -- Netty/Common (from ) -- Netty/Handler (from ) -- Netty/Handler/Proxy (from ) -- Netty/Resolver (from ) -- Netty/Resolver/DNS (from ) -- Netty/TomcatNative [BoringSSL - Static] (from ) -- Netty/Transport (from http://netty.io/) -- Netty/Transport/Native/Unix/Common (from ) +- Netty Reactive Streams HTTP support (from https://repo1.maven.org/maven2/com/typesafe/netty/netty-reactive-streams-http) +- Netty Reactive Streams Implementation (from https://repo1.maven.org/maven2/com/typesafe/netty/netty-reactive-streams) +- Netty/Buffer (from https://repo1.maven.org/maven2/io/netty/netty-buffer) +- Netty/Codec (from https://repo1.maven.org/maven2/io/netty/netty-codec) +- Netty/Codec/DNS (from https://repo1.maven.org/maven2/io/netty/netty-codec-dns) +- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http) +- Netty/Codec/HTTP2 (from https://repo1.maven.org/maven2/io/netty/netty-codec-http2) +- Netty/Codec/Socks (from https://repo1.maven.org/maven2/io/netty/netty-codec-socks) +- 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/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/TomcatNative [BoringSSL - Static] (from https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static) +- Netty/Transport (from https://repo1.maven.org/maven2/io/netty/netty-transport) +- Netty/Transport/Native/Unix/Common (from https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common) - Nimbus Content Type (from https://bitbucket.org/connect2id/nimbus-content-type) - Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt) - Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags) -- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor) +- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor-core) - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions) - Objenesis (from http://objenesis.org) -- OkHttp (from ) -- OkHttp Logging Interceptor (from ) -- OkHttp URLConnection (from ) -- Okio (from ) +- OkHttp (from https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp) +- OkHttp Logging Interceptor (from https://repo1.maven.org/maven2/com/squareup/okhttp3/logging-interceptor) +- OkHttp URLConnection (from https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp-urlconnection) +- Okio (from https://github.com/square/okio/) - OpenCensus (from https://github.com/census-instrumentation/opencensus-java) - OpenCensus (from https://github.com/census-instrumentation/opencensus-java) - OpenCensus (from https://github.com/census-instrumentation/opencensus-java) - PWDB :: Database (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/database) - Plexus :: Default Container (from ) - Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils) -- Plexus Default Interactivity Handler (from ) -- Plexus I18N Component (from ) - Plexus Velocity Component (from ) - PowerMock (from http://www.powermock.org) - PowerMock (from http://www.powermock.org) -- Protocol Buffer extensions to the Google HTTP Client Library for Java. (from ) +- 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) - QpidJMS Client (from ) - Reactive Streams Netty driver (from https://github.com/reactor/reactor-netty) -- Retrofit (from ) +- Retrofit (from https://repo1.maven.org/maven2/com/squareup/retrofit2/retrofit) - Servlet Specification 2.5 API (from ) -- SnakeYAML (from http://www.snakeyaml.org) -- Spring AOP (from https://github.com/spring-projects/spring-framework) -- Spring Beans (from https://github.com/spring-projects/spring-framework) +- SnakeYAML (from http://code.google.com/p/snakeyaml/) - Spring Boot (from http://projects.spring.io/spring-boot/) - Spring Boot Actuator (from http://projects.spring.io/spring-boot/) - Spring Boot Actuator AutoConfigure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-actuator-autoconfigure) -- Spring Boot Actuator Starter (from http://projects.spring.io/spring-boot/) - Spring Boot AutoConfigure (from http://projects.spring.io/spring-boot/) - Spring Boot Dependencies (from http://projects.spring.io/spring-boot/) - Spring Boot Json Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-json) @@ -536,12 +528,8 @@ The following software have components provided under the terms of this license: - Spring Boot Reactor Netty Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-reactor-netty) - Spring Boot Security Starter (from http://projects.spring.io/spring-boot/) - Spring Boot Starter (from http://projects.spring.io/spring-boot/) -- Spring Boot Test (from http://projects.spring.io/spring-boot/) - Spring Boot Test Auto-Configure (from http://projects.spring.io/spring-boot/) - Spring Boot Test Starter (from http://projects.spring.io/spring-boot/) -- Spring Boot Tomcat Starter (from http://projects.spring.io/spring-boot/) -- Spring Boot Validation Starter (from http://projects.spring.io/spring-boot/) -- Spring Boot Web Starter (from http://projects.spring.io/spring-boot/) - Spring Boot WebFlux Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-webflux) - Spring Cloud GCP Autoconfigure Module (from ) - Spring Cloud GCP Core Module (from ) @@ -549,20 +537,22 @@ The following software have components provided under the terms of this license: - Spring Cloud GCP Datastore Starter (from https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-gcp-starter-data-datastore) - Spring Cloud GCP Support Starter (from ) - Spring Commons Logging Bridge (from https://github.com/spring-projects/spring-framework) -- Spring Context (from https://github.com/spring-projects/spring-framework) -- Spring Core (from https://github.com/spring-projects/spring-framework) -- Spring Data Core (from ) -- Spring Data Core (from ) +- Spring Data Core (from https://repo1.maven.org/maven2/org/springframework/data/spring-data-commons) +- Spring Data Core (from https://repo1.maven.org/maven2/org/springframework/data/spring-data-commons) - Spring Expression Language (SpEL) (from https://github.com/spring-projects/spring-framework) +- Spring Framework: AOP (from http://www.springframework.org) +- Spring Framework: Context (from http://www.springframework.org) +- Spring Framework: WebMVC (from http://www.springframework.org) - Spring JMS (from https://github.com/spring-projects/spring-framework) - Spring Messaging (from https://github.com/spring-projects/spring-framework) - Spring Plugin - Core (from ) -- Spring Plugin - Metadata Extension (from ) +- Spring Plugin - Metadata Extension (from https://repo1.maven.org/maven2/org/springframework/plugin/spring-plugin-metadata) - Spring TestContext Framework (from https://github.com/spring-projects/spring-framework) - Spring Transaction (from https://github.com/spring-projects/spring-framework) -- Spring Web (from https://github.com/spring-projects/spring-framework) -- Spring Web MVC (from https://github.com/spring-projects/spring-framework) - Spring WebFlux (from https://github.com/spring-projects/spring-framework) +- Spring beans (from https://repo1.maven.org/maven2/org/springframework/spring-beans) +- Spring core (from https://repo1.maven.org/maven2/org/springframework/spring-core) +- Spring web (from https://repo1.maven.org/maven2/org/springframework/spring-web) - Woodstox (from https://github.com/FasterXML/woodstox) - Xerces2-j (from https://xerces.apache.org/xerces2-j/) - Zipkin Reporter Brave (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter-brave) @@ -573,12 +563,8 @@ The following software have components provided under the terms of this license: - brave (from ) - com.google.api.grpc:grpc-google-cloud-pubsub-v1 (from https://github.com/googleapis/googleapis) - com.google.api.grpc:proto-google-cloud-logging-v2 (from https://github.com/googleapis/googleapis) -- com.google.api.grpc:proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/googleapis) -- com.google.api.grpc:proto-google-common-protos (from https://github.com/googleapis/googleapis) -- com.google.api.grpc:proto-google-iam-v1 (from https://github.com/googleapis/googleapis) -- commons-collections (from ) - datastore-v1-proto-client (from ) -- error-prone annotations (from ) +- error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations) - io.grpc:grpc-alts (from https://github.com/grpc/grpc-java) - io.grpc:grpc-api (from https://github.com/grpc/grpc-java) - io.grpc:grpc-auth (from https://github.com/grpc/grpc-java) @@ -591,22 +577,21 @@ The following software have components provided under the terms of this license: - io.grpc:grpc-stub (from https://github.com/grpc/grpc-java) - ion-java (from https://github.com/amznlabs/ion-java/) - ion-java (from https://github.com/amznlabs/ion-java/) -- jackson-databind (from http://github.com/FasterXML/jackson) -- jackson-databind (from http://github.com/FasterXML/jackson) +- jackson-databind (from http://wiki.fasterxml.com/JacksonHome) +- jackson-databind (from http://wiki.fasterxml.com/JacksonHome) - java-cloudant (from https://cloudant.com) - java-cloudant (from https://cloudant.com) - javatuples (from http://www.javatuples.org) - javax.inject (from http://code.google.com/p/atinject/) - jose4j (from https://bitbucket.org/b_c/jose4j/) -- kotlin-stdlib (from ) - lettuce (from http://github.com/mp911de/lettuce/wiki) - micrometer-core (from https://github.com/micrometer-metrics/micrometer) - micrometer-registry-azure-monitor (from https://github.com/micrometer-metrics/micrometer) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) - org.apiguardian:apiguardian-api (from https://github.com/apiguardian-team/apiguardian) -- org.jetbrains.kotlin:kotlin-stdlib-common (from https://kotlinlang.org/) - org.opentest4j:opentest4j (from https://github.com/ota4j-team/opentest4j) - org.xmlunit:xmlunit-core (from http://www.xmlunit.org/) -- oro (from ) - powermock-api-support (from ) - powermock-api-support (from ) - powermock-core (from http://www.powermock.org) @@ -618,17 +603,23 @@ The following software have components provided under the terms of this license: - powermock-reflect (from ) - powermock-reflect (from ) - proto-google-cloud-datastore-v1 (from https://github.com/googleapis/api-client-staging) -- proton-j (from ) +- proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/java-pubsub/proto-google-cloud-pubsub-v1) +- proto-google-iam-v1 (from https://github.com/googleapis/api-client-staging) - rxjava (from https://github.com/ReactiveX/RxJava) - spring-boot-container-bundle (from ) +- spring-boot-starter-actuator (from https://spring.io/projects/spring-boot) +- spring-boot-starter-tomcat (from https://spring.io/projects/spring-boot) +- spring-boot-starter-validation (from https://spring.io/projects/spring-boot) +- spring-boot-starter-web (from https://spring.io/projects/spring-boot) +- spring-boot-test (from https://spring.io/projects/spring-boot) - spring-security-config (from http://spring.io/spring-security) -- spring-security-core (from http://spring.io/spring-security) +- spring-security-core (from https://spring.io/spring-security) - spring-security-oauth2-client (from http://spring.io/spring-security) - spring-security-oauth2-core (from http://spring.io/spring-security) - spring-security-oauth2-jose (from http://spring.io/spring-security) - spring-security-oauth2-resource-server (from http://spring.io/spring-security) - spring-security-test (from http://spring.io/spring-security) -- spring-security-web (from http://spring.io/spring-security) +- spring-security-web (from https://spring.io/spring-security) - springfox-core (from https://github.com/springfox/springfox) - springfox-schema (from https://github.com/springfox/springfox) - springfox-spi (from https://github.com/springfox/springfox) @@ -636,11 +627,11 @@ The following software have components provided under the terms of this license: - springfox-swagger-common (from https://github.com/springfox/springfox) - springfox-swagger-ui (from https://github.com/springfox/springfox) - springfox-swagger2 (from https://github.com/springfox/springfox) -- swagger-annotations (from ) +- swagger-annotations (from https://repo1.maven.org/maven2/io/swagger/swagger-annotations) - swagger-jaxrs (from ) - swagger-models (from ) - tomcat-embed-core (from http://tomcat.apache.org/) -- tomcat-embed-websocket (from http://tomcat.apache.org/) +- tomcat-embed-websocket (from https://tomcat.apache.org/) - xml-apis (from ) ======================================================================== @@ -648,17 +639,18 @@ BSD-2-Clause ======================================================================== The following software have components provided under the terms of this license: -- API Common (from https://github.com/googleapis) +- API Common (from https://github.com/googleapis/api-common-java) - Apache Commons CLI (from http://commons.apache.org/proper/commons-cli/) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) - Hamcrest (from http://hamcrest.org/JavaHamcrest/) - Hamcrest Core (from http://hamcrest.org/) - HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) -- Plexus :: Default Container (from ) - Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils) +- Reflections (from http://github.com/ronmamo/reflections) - Stax2 API (from http://github.com/FasterXML/stax2-api) +- ThreeTen backport (from https://www.threeten.org/threetenbp) - jaxen (from http://jaxen.codehaus.org/) ======================================================================== @@ -666,7 +658,7 @@ BSD-3-Clause ======================================================================== The following software have components provided under the terms of this license: -- API Common (from https://github.com/googleapis) +- API Common (from https://github.com/googleapis/api-common-java) - ASM Analysis (from ) - ASM Commons (from ) - ASM Core (from ) @@ -674,32 +666,30 @@ The following software have components provided under the terms of this license: - ASM Core (from ) - ASM Tree (from ) - ASM Util (from ) -- Apache Commons Codec (from http://commons.apache.org/proper/commons-codec/) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) -- GAX (Google Api eXtensions) (from https://github.com/googleapis) -- Google APIs Client Library for Java (from ) -- Google Auth Library for Java - Credentials (from ) -- Google Auth Library for Java - OAuth2 HTTP (from ) +- Apache Commons Codec (from https://commons.apache.org/proper/commons-codec/) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) +- GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java) +- Google APIs Client Library for Java (from https://repo1.maven.org/maven2/com/google/api-client/google-api-client) +- Google Auth Library for Java - Credentials (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials) +- Google Auth Library for Java - OAuth2 HTTP (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http) - Hamcrest (from http://hamcrest.org/JavaHamcrest/) - Hamcrest Core (from http://hamcrest.org/) - HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) -- JDOM (from http://www.jdom.org) - JSch (from http://www.jcraft.com/jsch/) -- JavaBeans Activation Framework (from ) +- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/jakarta.activation) - JavaBeans Activation Framework API jar (from ) - 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) -- Netty/Codec/HTTP (from ) +- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http) - Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils) -- Protocol Buffer Java API (from https://developers.google.com/protocol-buffers/) -- Protocol Buffers [Util] (from ) +- Protocol Buffers [Core] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java) +- Protocol Buffers [Util] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util) - Reflections (from http://github.com/ronmamo/reflections) -- SnakeYAML (from http://www.snakeyaml.org) -- Spring Core (from https://github.com/spring-projects/spring-framework) -- Stax2 API (from http://github.com/FasterXML/stax2-api) +- SnakeYAML (from http://code.google.com/p/snakeyaml/) +- Spring core (from https://repo1.maven.org/maven2/org/springframework/spring-core) - ThreeTen backport (from https://www.threeten.org/threetenbp) - classworlds (from http://classworlds.codehaus.org/) - jakarta.xml.bind-api (from ) @@ -735,7 +725,6 @@ CDDL-1.0 The following software have components provided under the terms of this license: - Servlet Specification 2.5 API (from ) -- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250) ======================================================================== CDDL-1.1 @@ -743,6 +732,8 @@ CDDL-1.1 The following software have components provided under the terms of this license: - JavaBeans Activation Framework (from ) +- Servlet Specification 2.5 API (from ) +- javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250) - tomcat-embed-core (from http://tomcat.apache.org/) ======================================================================== @@ -752,6 +743,14 @@ The following software have components provided under the terms of this license: - JUnit (from http://junit.org) +======================================================================== +DOC +======================================================================== +The following software have components provided under the terms of this license: + +- JDOM (from http://www.jdom.org) +- Woodstox (from https://github.com/FasterXML/woodstox) + ======================================================================== EPL-1.0 ======================================================================== @@ -759,16 +758,16 @@ The following software have components provided under the terms of this license: - Expression Language 3.0 (from https://projects.eclipse.org/projects/ee4j.el) - JUnit Jupiter (Aggregator) (from https://junit.org/junit5/) -- Logback Classic Module (from ) +- Logback Classic Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-classic) - Logback Contrib :: JSON :: Classic (from ) - Logback Contrib :: JSON :: Core (from ) - Logback Contrib :: Jackson (from ) -- Logback Core Module (from ) +- Logback Core Module (from 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) -- SnakeYAML (from http://www.snakeyaml.org) +- SnakeYAML (from http://code.google.com/p/snakeyaml/) - jakarta.annotation-api (from https://projects.eclipse.org/projects/ee4j.ca) - org.junit.jupiter:junit-jupiter-api (from http://junit.org/junit5/) - org.junit.jupiter:junit-jupiter-engine (from http://junit.org/junit5/) @@ -795,8 +794,8 @@ GPL-2.0-only ======================================================================== The following software have components provided under the terms of this license: +- Cobertura (from http://cobertura.sourceforge.net) - Cobertura Limited Runtime (from http://cobertura.sourceforge.net) -- Cobertura code coverage (from http://cobertura.sourceforge.net) - Commons Lang (from http://commons.apache.org/lang/) - JavaBeans Activation Framework (from ) - Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/) @@ -808,14 +807,14 @@ GPL-2.0-or-later ======================================================================== The following software have components provided under the terms of this license: -- SnakeYAML (from http://www.snakeyaml.org) +- SnakeYAML (from http://code.google.com/p/snakeyaml/) ======================================================================== GPL-2.0-with-classpath-exception ======================================================================== The following software have components provided under the terms of this license: -- Cobertura code coverage (from http://cobertura.sourceforge.net) +- Cobertura (from http://cobertura.sourceforge.net) - Expression Language 3.0 (from https://projects.eclipse.org/projects/ee4j.el) - JavaBeans Activation Framework (from ) - jakarta.annotation-api (from https://projects.eclipse.org/projects/ee4j.ca) @@ -833,6 +832,21 @@ The following software have components provided under the terms of this license: - Project Lombok (from https://projectlombok.org) - jakarta.annotation-api (from https://projects.eclipse.org/projects/ee4j.ca) +======================================================================== +ImageMagick +======================================================================== +The following software have components provided under the terms of this license: + +- Stax2 API (from http://github.com/FasterXML/stax2-api) +- Woodstox (from https://github.com/FasterXML/woodstox) + +======================================================================== +Info-ZIP +======================================================================== +The following software have components provided under the terms of this license: + +- Apache Ant Core (from http://ant.apache.org/) + ======================================================================== JSON ======================================================================== @@ -845,22 +859,21 @@ LGPL-2.1-only ======================================================================== The following software have components provided under the terms of this license: -- Cobertura code coverage (from http://cobertura.sourceforge.net) +- Cobertura (from http://cobertura.sourceforge.net) - Commons Lang (from http://commons.apache.org/lang/) - Java Native Access (from https://github.com/java-native-access/jna) - Java Native Access Platform (from https://github.com/java-native-access/jna) - Javassist (from http://www.javassist.org/) - Javassist (from http://www.javassist.org/) -- Logback Classic Module (from ) +- Logback Classic Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-classic) - Logback Contrib :: JSON :: Classic (from ) - Logback Contrib :: JSON :: Core (from ) - Logback Contrib :: Jackson (from ) -- Logback Core Module (from ) +- Logback Core Module (from 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) -- java-getopt (from ) ======================================================================== LGPL-2.1-or-later @@ -868,15 +881,16 @@ LGPL-2.1-or-later The following software have components provided under the terms of this license: - Javassist (from http://www.javassist.org/) -- SnakeYAML (from http://www.snakeyaml.org) +- Javassist (from http://www.javassist.org/) +- SnakeYAML (from http://code.google.com/p/snakeyaml/) ======================================================================== LGPL-3.0-only ======================================================================== The following software have components provided under the terms of this license: -- Apache Log4j API (from ) -- Apache Log4j Core (from ) +- Apache Log4j API (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api) +- Apache Log4j Core (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core) ======================================================================== MIT @@ -886,7 +900,7 @@ The following software have components provided under the terms of this license: - AWS Java SDK for AWS Lambda (from https://aws.amazon.com/sdkforjava) - AWS Java SDK for AWS License Manager (from https://aws.amazon.com/sdkforjava) - AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava) -- Animal Sniffer Annotations (from ) +- Animal Sniffer Annotations (from https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations) - Azure Java Client Authentication Library for AutoRest (from https://github.com/Azure/autorest-clientruntime-for-java) - Azure Java Client Runtime for ARM (from https://github.com/Azure/autorest-clientruntime-for-java) - Azure Java Client Runtime for AutoRest (from https://github.com/Azure/autorest-clientruntime-for-java) @@ -896,7 +910,6 @@ The following software have components provided under the terms of this license: - Extensions on Apache Proton-J library (from https://github.com/Azure/qpid-proton-j-extensions) - JUL to SLF4J bridge (from http://www.slf4j.org) - Java Client Runtime for AutoRest (from https://github.com/Azure/autorest-clientruntime-for-java) -- Java JWT (from http://www.jwt.io) - 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) @@ -915,10 +928,8 @@ The following software have components provided under the terms of this license: - Microsoft Azure client library for KeyVault Secrets (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure common module for Storage (from https://github.com/Azure/azure-sdk-for-java) - Microsoft Azure internal Avro module for Storage (from https://github.com/Azure/azure-sdk-for-java) -- Mockito (from http://mockito.org) -- Mockito (from http://mockito.org) -- Netty/Codec/HTTP (from ) -- Netty/Common (from ) +- Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http) +- Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common) - Plexus :: Default Container (from ) - Plexus Default Interactivity Handler (from ) - Project Lombok (from https://projectlombok.org) @@ -930,18 +941,21 @@ The following software have components provided under the terms of this license: - adal4j (from https://github.com/AzureAD/azure-activedirectory-library-for-java) - azure-documentdb (from https://azure.microsoft.com/en-us/services/cosmos-db/) - documentdb-bulkexecutor (from http://azure.microsoft.com/en-us/services/documentdb/) +- java jwt (from http://www.jwt.io) - micrometer-core (from https://github.com/micrometer-metrics/micrometer) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) - mockito-junit-jupiter (from https://github.com/mockito/mockito) - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java) - msal4j-persistence-extension (from https://github.com/AzureAD/microsoft-authentication-extensions-for-java) -- spring-security-core (from http://spring.io/spring-security) +- spring-security-core (from https://spring.io/spring-security) ======================================================================== MPL-1.1 ======================================================================== The following software have components provided under the terms of this license: -- Cobertura code coverage (from http://cobertura.sourceforge.net) +- Cobertura (from http://cobertura.sourceforge.net) - Javassist (from http://www.javassist.org/) - Javassist (from http://www.javassist.org/) @@ -952,14 +966,14 @@ The following software have components provided under the terms of this license: - Javassist (from http://www.javassist.org/) - Javassist (from http://www.javassist.org/) -- OkHttp (from ) +- OkHttp (from https://repo1.maven.org/maven2/com/squareup/okhttp3/okhttp) ======================================================================== PHP-3.01 ======================================================================== The following software have components provided under the terms of this license: -- JavaBeans Activation Framework (from ) +- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/jakarta.activation) - JavaBeans Activation Framework API jar (from ) - jakarta.xml.bind-api (from ) @@ -968,20 +982,15 @@ Public-Domain ======================================================================== The following software have components provided under the terms of this license: -- JTidy (from http://jtidy.sourceforge.net) -- Joda-Time (from http://www.joda.org/joda-time/) -- Joda-Time (from http://www.joda.org/joda-time/) -- Joda-Time (from http://www.joda.org/joda-time/) -- LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) - Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils) - Spongy Castle (from http://rtyley.github.io/spongycastle/) ======================================================================== -SISSL-1.2 +SAX-PD ======================================================================== The following software have components provided under the terms of this license: -- Servlet Specification 2.5 API (from ) +- Apache Ant Core (from http://ant.apache.org/) ======================================================================== SPL-1.0 @@ -989,12 +998,14 @@ SPL-1.0 The following software have components provided under the terms of this license: - Checker Qual (from https://checkerframework.org) +- Servlet Specification 2.5 API (from ) ======================================================================== W3C ======================================================================== The following software have components provided under the terms of this license: +- Apache Ant Core (from http://ant.apache.org/) - JTidy (from http://jtidy.sourceforge.net) - Xerces2-j (from https://xerces.apache.org/xerces2-j/) - xml-apis (from ) @@ -1013,11 +1024,15 @@ The following software have components provided under the terms of this license: - AWS Java SDK :: SDK Core (from https://aws.amazon.com/sdkforjava) - AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava) -- Asynchronous Http Client (from ) +- Asynchronous Http Client (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client) - Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (from http://www.bouncycastle.org/java.html) - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html) -- Guava: Google Core Libraries for Java (from https://github.com/google/guava.git) +- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava) - HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/) +- JTidy (from http://jtidy.sourceforge.net) +- Joda-Time (from https://www.joda.org/joda-time/) +- Joda-Time (from https://www.joda.org/joda-time/) +- Joda-Time (from https://www.joda.org/joda-time/) - Keycloak Common (from ) - LatencyUtils (from http://latencyutils.github.io/LatencyUtils/) - Microsoft Application Insights Java SDK Core (from https://github.com/Microsoft/ApplicationInsights-Java) @@ -1027,7 +1042,7 @@ The following software have components provided under the terms of this license: - Project Lombok (from https://projectlombok.org) - Project Lombok (from https://projectlombok.org) - Project Lombok (from https://projectlombok.org) -- Spring Web (from https://github.com/spring-projects/spring-framework) +- Spring web (from https://repo1.maven.org/maven2/org/springframework/spring-web) - azure-documentdb (from https://azure.microsoft.com/en-us/services/cosmos-db/) - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java) - reactive-streams (from http://www.reactive-streams.org/) @@ -1040,13 +1055,14 @@ The following software have components provided under the terms of this license: - Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (from http://www.bouncycastle.org/java.html) - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html) -- Byte Buddy (without dependencies) (from ) +- Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy) - Checker Qual (from https://checkerframework.org) +- JSON in Java (from https://github.com/douglascrockford/JSON-java) +- JTidy (from http://jtidy.sourceforge.net) - JUnit (from http://junit.org) - JUnit Jupiter (Aggregator) (from https://junit.org/junit5/) -- JavaBeans Activation Framework (from ) +- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/jakarta.activation) - JavaBeans Activation Framework API jar (from ) -- Servlet Specification 2.5 API (from ) - Spongy Castle (from http://rtyley.github.io/spongycastle/) - jakarta.xml.bind-api (from ) - org.junit.jupiter:junit-jupiter-api (from http://junit.org/junit5/) diff --git a/devops/azure/chart/templates/deployment.yaml b/devops/azure/chart/templates/deployment.yaml index eccbf52b861bb32a6ce9aa92829ad1c2a3fe225b..9cad45fe5b65d9b340320ab9eeb71f67e861b595 100644 --- a/devops/azure/chart/templates/deployment.yaml +++ b/devops/azure/chart/templates/deployment.yaml @@ -41,15 +41,16 @@ spec: imagePullPolicy: Always ports: - containerPort: 80 - resources: - requests: - cpu: "100m" - limits: - cpu: "300m" readinessProbe: httpGet: - path: /api/partition/v1/swagger-ui.html - port: 80 + path: /actuator/health + port: 8081 + livenessProbe: + httpGet: + path: /actuator/health + port: 8081 + initialDelaySeconds: 250 + periodSeconds: 10 volumeMounts: - name: azure-keyvault mountPath: "/mnt/azure-keyvault" diff --git a/devops/azure/release.yaml b/devops/azure/release.yaml index b45c367aa116803839ec5b7d3aec78f6f36aee23..b0d07c9e19a5ebbb45f23e2e116aade86f0c8fa0 100644 --- a/devops/azure/release.yaml +++ b/devops/azure/release.yaml @@ -74,8 +74,14 @@ spec: - containerPort: 80 readinessProbe: httpGet: - path: /api/partition/v1/swagger-ui.html - port: 80 + path: /actuator/health + port: 8081 + livenessProbe: + httpGet: + path: /actuator/health + port: 8081 + initialDelaySeconds: 250 + periodSeconds: 10 volumeMounts: - name: azure-keyvault mountPath: "/mnt/azure-keyvault" diff --git a/devops/gcp/configmap/Chart.yaml b/devops/gcp/configmap/Chart.yaml new file mode 100644 index 0000000000000000000000000000000000000000..75d7fdd9463f1d1b460f5c8aa94aa9d701edd34c --- /dev/null +++ b/devops/gcp/configmap/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +name: gcp-partition-configmap +description: A Helm chart for Kubernetes +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 1.16.0 diff --git a/devops/gcp/configmap/templates/partition-variables.yml b/devops/gcp/configmap/templates/partition-variables.yml new file mode 100644 index 0000000000000000000000000000000000000000..1eb6ac1529946a67954f510d980ae080ebfe7011 --- /dev/null +++ b/devops/gcp/configmap/templates/partition-variables.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + app: "{{ .Values.conf.app_name }}" + name: "{{ .Values.conf.configmap }}" + namespace: "{{ .Release.Namespace }}" +data: + GOOGLE_CLOUD_PROJECT: "{{ .Values.data.google_cloud_project }}" + PARTITION_ADMIN_ACCOUNT: "{{ .Values.data.partition_admin_account }}" + GOOGLE_AUDIENCES: "{{ .Values.data.google_audiences }}" + KEY_RING: "{{ .Values.data.key_ring }}" + KMS_KEY: "{{ .Values.data.kms_key }}" + LOG_LEVEL: "{{ .Values.data.log_level }}" diff --git a/devops/gcp/configmap/values.yaml b/devops/gcp/configmap/values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fa714ddfa01e409a97b5138c1872a2619535c401 --- /dev/null +++ b/devops/gcp/configmap/values.yaml @@ -0,0 +1,11 @@ +data: + google_cloud_project: "" + partition_admin_account: "" + google_audiences: "" + key_ring: "" + kms_key: "" + log_level: "" + +conf: + configmap: "partition-config" + app_name: "partition" diff --git a/devops/gcp/deploy/Chart.yaml b/devops/gcp/deploy/Chart.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8db1c028981b97515fa192f90f0dcb87ea893e8b --- /dev/null +++ b/devops/gcp/deploy/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +name: gcp-partition-deploy +description: A Helm chart for Kubernetes +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: 1.16.0 diff --git a/devops/gcp/deploy/templates/partition-deploy.yml b/devops/gcp/deploy/templates/partition-deploy.yml new file mode 100644 index 0000000000000000000000000000000000000000..b46afd8a92cb439e9fabfb65b77ecabb40c1eb76 --- /dev/null +++ b/devops/gcp/deploy/templates/partition-deploy.yml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Values.conf.app_name }}" + namespace: "{{ .Release.Namespace }}" +spec: + replicas: 1 + selector: + matchLabels: + app: "{{ .Values.conf.app_name }}" + template: + metadata: + labels: + app: "{{ .Values.conf.app_name }}" + annotations: + rollme: {{ randAlphaNum 5 | quote }} + spec: + containers: + - image: "{{ .Values.data.image }}" + imagePullPolicy: Always + name: "{{ .Values.conf.app_name }}" + env: + - name: "ACCEPT_HTTP" + value: "true" + envFrom: + - configMapRef: + name: "{{ .Values.conf.configmap }}" + securityContext: + allowPrivilegeEscalation: false + runAsUser: 0 + ports: + - containerPort: 8080 + resources: + requests: + cpu: "{{ .Values.data.requests_cpu }}" + memory: "{{ .Values.data.requests_memory }}" + limits: + cpu: "{{ .Values.data.limits_cpu }}" + memory: "{{ .Values.data.limits_memory }}" + serviceAccountName: "{{ .Values.data.serviceAccountName }}" diff --git a/devops/gcp/deploy/templates/partition-service.yml b/devops/gcp/deploy/templates/partition-service.yml new file mode 100644 index 0000000000000000000000000000000000000000..d03488ae7021338d1b4689eae7baa2472481d650 --- /dev/null +++ b/devops/gcp/deploy/templates/partition-service.yml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: "{{ .Values.conf.app_name }}" + namespace: "{{ .Release.Namespace }}" + annotations: + cloud.google.com/neg: '{"ingress": true}' +spec: + ports: + - port: 80 + targetPort: 8080 + protocol: TCP + name: http + selector: + app: "{{ .Values.conf.app_name }}" diff --git a/devops/gcp/deploy/templates/partition-virtual-service.yml b/devops/gcp/deploy/templates/partition-virtual-service.yml new file mode 100644 index 0000000000000000000000000000000000000000..13c21ddf1f4a77208f3b8850a9f540fc4ac35a36 --- /dev/null +++ b/devops/gcp/deploy/templates/partition-virtual-service.yml @@ -0,0 +1,19 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: "{{ .Values.conf.app_name }}" + namespace: "{{ .Release.Namespace }}" +spec: + hosts: + - "*" + gateways: + - service-gateway + http: + - match: + - uri: + prefix: "/api/partition" + route: + - destination: + port: + number: 80 + host: "{{ .Values.conf.app_name }}.{{ .Release.Namespace }}.svc.cluster.local" diff --git a/devops/gcp/deploy/values.yaml b/devops/gcp/deploy/values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eb04941e60824f8e7f8a06343c1639d6a5df60f9 --- /dev/null +++ b/devops/gcp/deploy/values.yaml @@ -0,0 +1,15 @@ +# Default values for partition-deploy. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +data: + requests_cpu: "0.25" + requests_memory: "128M" + limits_cpu: "1" + limits_memory: "1G" + serviceAccountName: "" + image: "" + +conf: + configmap: "partition-config" + app_name: "partition" diff --git a/docs/api/partition_openapi.yaml b/docs/api/partition_openapi.yaml index 13c47a88a266b4ac63d06d5b407bd1346c58fb63..df9712e0b20e57538718224d6cc82cf75b29a713 100644 --- a/docs/api/partition_openapi.yaml +++ b/docs/api/partition_openapi.yaml @@ -16,7 +16,7 @@ tags: - name: health-check description: Health Check paths: - /_ah/liveness_check: + /actuator/health: get: tags: - health-check @@ -40,7 +40,7 @@ paths: security: - JWT: - global - /_ah/readiness_check: + /actuator/health: get: tags: - health-check diff --git a/docs/tutorial/Partition.md b/docs/tutorial/Partition.md index 516bd50b0c34fb8aff9404ad6bbef5b61c40326d..d3bad4589a346fd08ca19d17455f9e4ab9e6b453 100644 --- a/docs/tutorial/Partition.md +++ b/docs/tutorial/Partition.md @@ -18,13 +18,13 @@ Partition service is responsible for creating and retrieving the partition speci ## Health Check <a name="checking-service-health"></a> An endpoint to check if service is up and running. ``` -GET api/partition/v1/_ah/liveness_check +GET api/partition/v1/actuator/health ``` <details><summary>curl</summary> ``` curl --request GET \ - --url 'https://<base_url>/api/partition/v1/_ah/liveness_check' + --url 'https://<base_url>/api/partition/v1/actuator/health' ``` </details> diff --git a/docs/tutorial/gcp/Partition.md b/docs/tutorial/gcp/Partition.md new file mode 100644 index 0000000000000000000000000000000000000000..3aa26159acf0fcdae1a96ef04f4c7a4732296f4d --- /dev/null +++ b/docs/tutorial/gcp/Partition.md @@ -0,0 +1,220 @@ +## Partition Service + +## Table of Contents <a name="TOC"></a> +* [Introduction](#introduction) +* [Checking Service Health](#checking-service-health) +* [Partition API access](#partition-api-access) +* [APIs](#apis) + * [Get partition details](#get-partition) + * [Create a new partition](#create-partition) + * [Update an existing partition](#update-partition) + * [Delete an existing partition](#delete-partition) + * [List of partitions](#list-partition) + + +## Introduction <a name="introduction"></a> +Partition service is responsible for creating and retrieving the partition specific properties (secret and non-secret) on behalf of other services. + +## Health Check <a name="checking-service-health"></a> +An endpoint to check if service is up and running. +``` +GET api/partition/v1/_ah/liveness_check +``` +<details><summary>curl</summary> + +``` +curl --request GET \ + --url 'https://<base_url>/api/partition/v1/_ah/liveness_check' +``` +</details> + +## Partition API access <a name="partition-api-access"></a> +As Partition service APIs are mostly consumed by other services, API access is limited to service accounts only. + +## APIs <a name="apis"></a> +### Get partition details<a name="get-partition"></a> +Consuming services can use this API to get details of a partition. Partition details consists of a set of key-value pairs of properties. + +``` +GET api/partition/v1/partitions/{partitionId} +``` +<details><summary>curl</summary> + +``` +curl --request GET \ + --url 'https://<base_url>/api/partition/v1/partitions/osdu' \ + --header 'Authorization: Bearer <JWT>' \ + --header 'Content-Type: application/json' +``` +</details> + +A sample output is shown below. +<details><summary>Sample response</summary> + +``` +{ + "projectId": { + "sensitive": false, + "value": "osdu" + }, + "serviceAccount": { + "sensitive": false, + "value": ".iam.gserviceaccount.com" + }, + "complianceRuleSet": { + "sensitive": false, + "value": "shared" + }, + "dataPartitionId": { + "sensitive": false, + "value": "osdu" + }, + "name": { + "sensitive": false, + "value": "osdu" + }, + "policy-service-enabled": { + "sensitive": false, + "value": "false" + }, + "bucket": { + "sensitive": false, + "value": "bucketName" + }, + "crmAccountID": { + "sensitive": false, + "value": ["osdu","osdu"] + } +} +``` + +</details> + +[Back to Table of Contents](#TOC) + +### Create a new partition<a name="create-partition"></a> +This api can be used to create a new partition. A plausible use case would be partition provisioning infrastructure script. +The default namespace value of Cloud Datastore is `partition`. +``` +POST api/partition/v1/partitions/{partitionId} +``` +<details><summary>curl</summary> + +``` +curl --request POST \ + --url 'https://<base_url>/api/partition/v1/partitions/mypartition' \ + --header 'Authorization: Bearer <JWT>' \ + --header 'Content-Type: application/json' \ + --data-raw '{ + "properties": { + "projectId": { + "sensitive": false, + "value": "mypartition" + }, + "serviceAccount": { + "sensitive": false, + "value": ".iam.gserviceaccount.com" + }, + "complianceRuleSet": { + "sensitive": false, + "value": "shared" + }, + "dataPartitionId": { + "sensitive": false, + "value": "mypartition" + }, + "name": { + "sensitive": false, + "value": "mypartition" + }, + "policy-service-enabled": { + "sensitive": false, + "value": "false" + }, + "bucket": { + "sensitive": false, + "value": "bucketName" + }, + "crmAccountID": { + "sensitive": false, + "value": ["mypartition","mypartition"] + } + } + }' +``` +</details> + +[Back to Table of Contents](#TOC) + +### Update an existing partition<a name="update-partition"></a> +This api is used to update the properties of an existing partition. With this api, we can modify existing properties or add new ones. Deletion of properties can not be achieved, we'll have to delete the partition and re-create it for the same effect. +``` +PATCH api/partition/v1/partitions/{partitionId} +``` +<details><summary>curl</summary> + +``` +curl --request PATCH \ + --url 'https://<base_url>/api/partition/v1/partitions/mypartition' \ + --header 'Authorization: Bearer <JWT>' \ + --header 'Content-Type: application/json' \ + --data-raw '{ + "properties": { + "bucket": { + "value": "bucket-update-value" + }, + "new-key": { + "sensitive": true, + "value": "new-value" + } + } + }' +``` +</details> + +### Delete an existing partition<a name="delete-partition"></a> +This api is used to delete an existing partition. A plausible use case would be partition teardown infrastructure script. +``` +DELETE api/partition/v1/partitions/{partitionId} +``` +<details><summary>curl</summary> + +``` +curl --request DELETE \ + --url 'https://<base_url>/api/partition/v1/partitions/mypartition' \ + --header 'Authorization: Bearer <JWT>' \ + --header 'Content-Type: application/json' +``` +</details> + + +### List partitions <a name="list-partition"></a> +Consuming services can use this API to list all partitions Id. +``` +GET api/partition/v1/partitions +``` +<details><summary>curl</summary> + +``` +curl --request GET \ + --url 'https://<base_url>/api/partition/v1/partitions' \ + --header 'Authorization: Bearer <JWT>' \ + --header 'Content-Type: application/json' +``` +</details> + +A sample output is shown below. +<details><summary>Sample response</summary> + +``` +[ + "default-dev", + "opendes", + "osdu", + "mypartition" +] +``` + +</details> + +[Back to Table of Contents](#TOC) \ No newline at end of file diff --git a/partition-core/pom.xml b/partition-core/pom.xml index a685b5d85edb6bd72db40d5da0967f054a2c7a5f..4a4945f105a0b9928e09631d7b713de293dd74fa 100644 --- a/partition-core/pom.xml +++ b/partition-core/pom.xml @@ -23,7 +23,7 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>partition</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> @@ -56,6 +56,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> diff --git a/partition-core/src/main/java/org/opengroup/osdu/partition/api/HealthCheck.java b/partition-core/src/main/java/org/opengroup/osdu/partition/api/HealthCheck.java deleted file mode 100644 index f76c6b02c59495e6604bc605a095b3add06bd543..0000000000000000000000000000000000000000 --- a/partition-core/src/main/java/org/opengroup/osdu/partition/api/HealthCheck.java +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2017-2020, Schlumberger -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.opengroup.osdu.partition.api; - -import java.util.Collections; -import org.opengroup.osdu.partition.logging.AuditLogger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping(path= "/_ah", produces = "application/json") -public class HealthCheck { - - @Autowired - private AuditLogger auditLogger; - - @GetMapping("/liveness_check") - public ResponseEntity<String> livenessCheck() { - ResponseEntity responseEntity = new ResponseEntity<>("Partition service is alive", HttpStatus.OK); - this.auditLogger.readServiceLivenessSuccess(Collections.singletonList(responseEntity.toString())); - return responseEntity; - } - - @GetMapping("/readiness_check") - public ResponseEntity<String> readinessCheck() { - return new ResponseEntity<>("Partition service is ready", HttpStatus.OK); - } -} diff --git a/partition-core/src/test/java/org/opengroup/osdu/partition/api/HealthCheckTest.java b/partition-core/src/test/java/org/opengroup/osdu/partition/api/HealthCheckTest.java deleted file mode 100644 index f21eaf8b7bb4fb81cd88cb9e48e5ed268ee16719..0000000000000000000000000000000000000000 --- a/partition-core/src/test/java/org/opengroup/osdu/partition/api/HealthCheckTest.java +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2017-2020, Schlumberger -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.opengroup.osdu.partition.api; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.opengroup.osdu.partition.logging.AuditLogger; -import org.springframework.http.HttpStatus; - -@RunWith(MockitoJUnitRunner.class) -public class HealthCheckTest { - - @Mock - private AuditLogger auditLogger; - - @InjectMocks - private HealthCheck sut; - - @Test - public void should_returnHttp200_when_checkLiveness() { - assertEquals(HttpStatus.OK, this.sut.livenessCheck().getStatusCode()); - } - - @Test - public void should_returnHttp200_when_checkReadiness() { - assertEquals(HttpStatus.OK, this.sut.readinessCheck().getStatusCode()); - } -} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 13bff63218c9b21cf920b78a13fed09e645519e3..5b8cb91d9bdd8fa7cdc246b35f528357cb421851 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.opengroup.osdu</groupId> <artifactId>partition</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <description>Partition Service</description> <properties> @@ -26,7 +26,7 @@ <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <os-core-common.version>0.9.0-rc7</os-core-common.version> + <os-core-common.version>0.10.0</os-core-common.version> <org.springframework.boot.version>2.4.5</org.springframework.boot.version> </properties> diff --git a/provider/partition-aws/build-aws/buildspec.yaml b/provider/partition-aws/build-aws/buildspec.yaml index 788ce1a98c96e425fe1b8275dea51bb18a061a34..459686629f930b4dc925b45616db2cfb55678a30 100644 --- a/provider/partition-aws/build-aws/buildspec.yaml +++ b/provider/partition-aws/build-aws/buildspec.yaml @@ -21,6 +21,11 @@ env: secrets-manager: DOCKER_USERNAME: /osdu/devops/docker_credentials:username DOCKER_PASSWORD: /osdu/devops/docker_credentials:password + SONAR_USERNAME: /osdu/devops/sonar_credentials:username + SONAR_PASSWORD: /osdu/devops/sonar_credentials:password + + parameter-store: + SONAR_URL: /osdu/devops/sonar_url phases: install: @@ -58,7 +63,7 @@ phases: - printenv - echo "Building primary service assemblies..." - - mvn -B test install -pl partition-core,provider/partition-aws -Ddeployment.environment=prod + - mvn -B test install sonar:sonar -pl .,partition-core,provider/partition-aws -Ddeployment.environment=prod -Dsonar.login=${SONAR_USERNAME} -Dsonar.password=${SONAR_PASSWORD} -Dsonar.branch.name=${BRANCH_NAME} - echo "Building integration testing assemblies and gathering artifacts..." - ./testing/partition-test-aws/build-aws/prepare-dist.sh @@ -78,6 +83,9 @@ phases: python provider/partition-aws/build-aws/build-info.py --branch ${CODEBUILD_SOURCE_VERSION} --commit ${CODEBUILD_RESOLVED_SOURCE_VERSION} \ --buildid ${CODEBUILD_BUILD_ID} --buildnumber ${CODEBUILD_BUILD_NUMBER} --reponame ${REPO_NAME} --outdir ${OUTPUT_DIR} \ --artifact ${ECR_IMAGE} + post_build: + commands: + - cp provider/partition-aws/target/dependency-check-report.html ${OUTPUT_DIR} reports: SurefireReports: # CodeBuild will create a report group called "SurefireReports". files: #Store all of the files diff --git a/provider/partition-aws/maven/settings.xml b/provider/partition-aws/maven/settings.xml index 3dbde15f47c27d083537fa2f0b280f97f9aa54b5..3bd1cd4aa7ed183241e62e75d2b7f1a3f5ebc7aa 100644 --- a/provider/partition-aws/maven/settings.xml +++ b/provider/partition-aws/maven/settings.xml @@ -1,18 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright © 2020 Amazon Web Services - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.​ +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. --> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" @@ -53,6 +54,17 @@ <azure.devops.token>no-default</azure.devops.token> </properties> </profile> + <profile> + <id>sonar</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <properties> + <sonar.host.url> + ${env.SONAR_URL} + </sonar.host.url> + </properties> + </profile> </profiles> <servers> @@ -63,15 +75,14 @@ </server> </servers> - <!-- CodeArtifact doesn't support external repos yet that aren't Maven Central. ETA Q4 2020. --> - <!-- <mirrors> --> - <!-- <mirror> --> - <!-- <id>aws-osdu-dev-maven</id> --> - <!-- <name>aws-osdu-dev-maven</name> --> - <!-- <url>https://osdu-dev-888733619319.d.codeartifact.us-east-1.amazonaws.com/maven/osdu-maven/</url> --> - <!-- <mirrorOf>*,!gitlab-os-core-common-maven</mirrorOf> --> - <!-- </mirror> --> - <!-- </mirrors> --> + <mirrors> + <mirror> + <id>aws-osdu-dev-maven</id> + <name>aws-osdu-dev-maven</name> + <url>https://osdu-dev-${AWS_ACCOUNT_ID}.d.codeartifact.us-east-1.amazonaws.com/maven/osdu-maven/</url> + <mirrorOf>central,!gitlab-os-core-common-maven,!gitlab-os-core-lib-aws-maven</mirrorOf> + </mirror> + </mirrors> <activeProfiles> <activeProfile>credentialsConfiguration</activeProfile> diff --git a/provider/partition-aws/pom.xml b/provider/partition-aws/pom.xml index 429e74dcb7dd3ee6dab00ea142f11daac4eacafc..9f7a1df9e0a28a20c50bb91d2ef54c70f6f57bd2 100644 --- a/provider/partition-aws/pom.xml +++ b/provider/partition-aws/pom.xml @@ -21,7 +21,7 @@ <parent> <artifactId>partition</artifactId> <groupId>org.opengroup.osdu</groupId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -57,7 +57,7 @@ <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.9.1-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opengroup.osdu</groupId> @@ -93,10 +93,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-client</artifactId> @@ -184,6 +180,18 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.owasp</groupId> + <artifactId>dependency-check-maven</artifactId> + <version>6.2.2</version> + <executions> + <execution> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/cache/GroupCache.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/cache/GroupCache.java new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/provider/partition-aws/src/main/resources/application.properties b/provider/partition-aws/src/main/resources/application.properties index 11826b704e4d38ee04062371b1b7607be0e5ba4f..940168884e787b905bf16ac240d71ea1b9336af6 100644 --- a/provider/partition-aws/src/main/resources/application.properties +++ b/provider/partition-aws/src/main/resources/application.properties @@ -41,4 +41,6 @@ server.ssl.key-store-type=PKCS12 server.ssl.key-store=${SSL_KEY_STORE_PATH:/certs/osduonaws.p12} server.ssl.key-alias=${SSL_KEY_ALIAS:osduonaws} server.ssl.key-password=${SSL_KEY_PASSWORD:} -server.ssl.key-store-password=${SSL_KEY_STORE_PASSWORD:} \ No newline at end of file +server.ssl.key-store-password=${SSL_KEY_STORE_PASSWORD:} + +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration diff --git a/provider/partition-azure/README.md b/provider/partition-azure/README.md index e5753d1cbbbcb839d11efba13c10e6e67e301837..8ec2ef3e4ac35ec0dee5c637f9023d55a9c42055 100644 --- a/provider/partition-azure/README.md +++ b/provider/partition-azure/README.md @@ -107,7 +107,7 @@ $ (cd testing/partition-test-core/ && mvn clean install) $ (cd testing/partition-test-azure/ && mvn clean test) ``` -A liveness check can also be performed at `http://localhost:8080/api/partition/v1/_ah/liveness_check`. Other apis can be found on the swagger page +A liveness check can also be performed at `http://localhost:8080/api/partition/v1/actuator/health`. Other apis can be found on the swagger page ## Debugging diff --git a/provider/partition-azure/devops/stages.yml b/provider/partition-azure/devops/stages.yml index 8ea1600127379a49d207d091d45dbf958167f77e..f8f8b205a6e1e76b4c44762f98cddde9e7efff8c 100644 --- a/provider/partition-azure/devops/stages.yml +++ b/provider/partition-azure/devops/stages.yml @@ -151,7 +151,7 @@ stages: attempt_counter=0 max_attempts=60 # NOTE that the PARTITION_BASE_URL already has a '/' at the end of it - until [ $(curl -s -o /dev/null -w "%{http_code}" $(PARTITION_BASE_URL)api/partition/v1/_ah/liveness_check) -eq 200 ]; do + until [ $(curl -s -o /dev/null -w "%{http_code}" $(PARTITION_BASE_URL)api/partition/v1/actuator/health) -eq 200 ]; do if [ ${attempt_counter} -eq ${max_attempts} ];then echo "Service is not available, please check the deployment" exit 1 diff --git a/provider/partition-azure/pom.xml b/provider/partition-azure/pom.xml index 8fe88fbc9c60622f8d8405e87fa3596a570593f5..51f79fe5b288ade9e27fd33d96908d08dc9d415b 100644 --- a/provider/partition-azure/pom.xml +++ b/provider/partition-azure/pom.xml @@ -4,7 +4,7 @@ <parent> <artifactId>partition</artifactId> <groupId>org.opengroup.osdu</groupId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -14,7 +14,7 @@ <packaging>jar</packaging> <properties> - <osdu.corelibazure.version>0.9.0-rc3</osdu.corelibazure.version> + <osdu.corelibazure.version>0.10.0</osdu.corelibazure.version> <junit.version>4.12</junit.version> <mockito.version>2.25.0</mockito.version> <powermock.version>2.0.2</powermock.version> diff --git a/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/di/RedisConfig.java b/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/di/RedisConfig.java index 5aa7bc6ea5318b45f563c637f79b15285b321014..75163aacf807903e9656c3888abe7c0b1389b3e8 100644 --- a/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/di/RedisConfig.java +++ b/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/di/RedisConfig.java @@ -1,6 +1,8 @@ package org.opengroup.osdu.partition.provider.azure.di; import com.azure.security.keyvault.secrets.SecretClient; +import com.lambdaworks.redis.ClientOptions; +import com.lambdaworks.redis.SocketOptions; import org.opengroup.osdu.azure.KeyVaultFacade; import org.opengroup.osdu.core.common.cache.RedisCache; import org.opengroup.osdu.partition.model.PartitionInfo; @@ -11,6 +13,7 @@ import org.springframework.context.annotation.Configuration; import javax.inject.Named; import java.util.List; +import java.util.concurrent.TimeUnit; @Configuration public class RedisConfig { @@ -40,14 +43,23 @@ public class RedisConfig { @Value("${redis.database}") private int database; + @Value("${redis.connection.timeout}") + private long timeout; + @Bean public RedisCache<String, PartitionInfo> partitionServiceCache(@Named("REDIS_HOST") String host, @Named("REDIS_PASSWORD") String password) { - return new RedisCache<>(host, port, password, expiration, database, String.class, PartitionInfo.class); + ClientOptions clientOptions = ClientOptions.builder() + .socketOptions(SocketOptions.builder().connectTimeout(timeout, TimeUnit.SECONDS).build()) + .build(); + return new RedisCache<>(host, port, password, expiration, database, clientOptions, String.class, PartitionInfo.class); } @Bean public RedisCache<String, List<String>> partitionListCache(@Named("REDIS_HOST") String host, @Named("REDIS_PASSWORD") String password) { - return new RedisCache(host, port, password, expiration, database, String.class, List.class); + ClientOptions clientOptions = ClientOptions.builder() + .socketOptions(SocketOptions.builder().connectTimeout(timeout, TimeUnit.SECONDS).build()) + .build(); + return new RedisCache(host, port, password, expiration, database, clientOptions, String.class, List.class); } } @@ -65,14 +77,23 @@ public class RedisConfig { @Value("${redis.database}") private int database; + @Value("${redis.connection.timeout}") + private long timeout; + @Bean public RedisCache<String, PartitionInfo> partitionServiceCache(@Named("REDIS_HOST") String host) { - return new RedisCache<>(host, port, expiration, database, String.class, PartitionInfo.class); + ClientOptions clientOptions = ClientOptions.builder() + .socketOptions(SocketOptions.builder().connectTimeout(timeout, TimeUnit.SECONDS).build()) + .build(); + return new RedisCache<>(host, port, expiration, database, clientOptions, String.class, PartitionInfo.class); } @Bean public RedisCache<String, List<String>> partitionListCache(@Named("REDIS_HOST") String host) { - return new RedisCache(host, port, expiration, database, String.class, List.class); + ClientOptions clientOptions = ClientOptions.builder() + .socketOptions(SocketOptions.builder().connectTimeout(timeout, TimeUnit.SECONDS).build()) + .build(); + return new RedisCache(host, port, expiration, database, clientOptions, String.class, List.class); } } diff --git a/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/security/AADSecurityConfig.java b/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/security/AADSecurityConfig.java index 427dccaa90a29451ba5f61d3cf72f852a3acc2c4..ba916caea6eb66b0e9bb2dd4789825cf8393dbe4 100644 --- a/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/security/AADSecurityConfig.java +++ b/provider/partition-azure/src/main/java/org/opengroup/osdu/partition/provider/azure/security/AADSecurityConfig.java @@ -40,7 +40,7 @@ public class AADSecurityConfig extends WebSecurityConfigurerAdapter { .and() .authorizeRequests() .antMatchers("/", "/index.html", - "/_ah/*", + "/actuator/*", "/api-docs", "/configuration/ui", "/swagger-resources/**", diff --git a/provider/partition-azure/src/main/resources/application.properties b/provider/partition-azure/src/main/resources/application.properties index 7a5e78c5826ea56743c8f8aed744d91668905ebd..7da879f59be16d728b121d0226f59f795cc03381 100644 --- a/provider/partition-azure/src/main/resources/application.properties +++ b/provider/partition-azure/src/main/resources/application.properties @@ -4,11 +4,11 @@ logging.level.org.springframework.web=${partition_spring_logging_level:INFO} JAVA_OPTS=-Dserver.port=80 server.port=8080 springfox.documentation.swagger.v2.path=/api-docs -PARTITION_API= #logging configuration logging.transaction.enabled=true logging.slf4jlogger.enabled=true +logging.mdccontext.enabled=true # AAD properties azure.activedirectory.app-resource-id=${aad_client_id} @@ -33,4 +33,13 @@ cache.maxSize=1000 redis.port=6380 redis.expiration=3600 redis.ssl.enabled=true +redis.connection.timeout=15 redis.database=${REDIS_DATABASE} + +# health check +management.health.azure-key-vault.enabled=false +management.server.port=8081 + +azure.cryptography.enabled=false +azure.eventgrid.topic.enabled=false +azure.eventgrid.manager.enabled=false diff --git a/provider/partition-gcp/README.md b/provider/partition-gcp/README.md index a60430b2d842c1d4057cb6b98ce85262d8dd074c..8c50e5fa221c4e7aa1f149f453be98851a5cdc43 100644 --- a/provider/partition-gcp/README.md +++ b/provider/partition-gcp/README.md @@ -24,6 +24,9 @@ In order to run the service locally or remotely, you will need to have the follo | `GOOGLE_AUDIENCES` | ex `*****.apps.googleusercontent.com` | Client ID for getting access to cloud resources | yes | https://console.cloud.google.com/apis/credentials | | `PARTITION_ADMIN_ACCOUNT` | ex `admin@domen.iam.gserviceaccount.com` | Partition Admin account email | no | - | | `GOOGLE_APPLICATION_CREDENTIALS` | ex `/path/to/directory/service-key.json` | Service account credentials, you only need this if running locally | yes | https://console.cloud.google.com/iam-admin/serviceaccounts | +| `KEY_RING` | ex `csqp` | A key ring holds keys in a specific Google Cloud location and permit us to manage access control on groups of keys | yes | https://cloud.google.com/kms/docs/resource-hierarchy#key_rings | +| `KMS_KEY` | ex `partitionService` | A key exists on one key ring linked to a specific location. | yes | https://cloud.google.com/kms/docs/resource-hierarchy#key_rings | + ### Run Locally Check that maven is installed: @@ -140,23 +143,23 @@ Partition Service is compatible with App Engine Flexible Environment and Cloud R #### Cloud KMS Setup -Enable cloud KMS on master project +Enable cloud KMS on master project. Create king ring and key in the ***master project*** ```bash gcloud services enable cloudkms.googleapis.com export KEYRING_NAME="csqp" - export CRYPTOKEY_NAME="searchService" + export CRYPTOKEY_NAME="partionService" gcloud kms keyrings create $KEYRING_NAME --location global gcloud kms keys create $CRYPTOKEY_NAME --location global \ --keyring $KEYRING_NAME \ --purpose encryption ``` -Add **Cloud KMS CryptoKey Encrypter/Decrypter** role to the **App Engine default service account** of the master project through IAM - Role tab +Add **Cloud KMS CryptoKey Encrypter/Decrypter** role to the used **service account** by Partition Service of the ***master project*** through IAM - Role tab. -Add "Cloud KMS Encrypt/Decrypt" role to the "App Engine default service account" of ***master project*** +Add "Cloud KMS Encrypt/Decrypt" role to the used **service account** by Partition Service of the ***master project*** through IAM - Role tab. ## Licence Copyright © Google LLC @@ -172,4 +175,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file +limitations under the License. diff --git a/provider/partition-gcp/pom.xml b/provider/partition-gcp/pom.xml index 9d0b516b0c78fff8666d4c3a41c590d969341790..a5836540da905bacda9ff69bea3827e52b49444e 100644 --- a/provider/partition-gcp/pom.xml +++ b/provider/partition-gcp/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>partition</artifactId> <groupId>org.opengroup.osdu</groupId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -42,10 +42,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-client</artifactId> diff --git a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java index 212720936e824ba023cc101e090978c211afbf78..0eb1809166e251e6c78c5036b8621bbc2fb14148 100644 --- a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java +++ b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java @@ -39,47 +39,50 @@ import org.springframework.web.context.annotation.RequestScope; @RequiredArgsConstructor public class AuthorizationService implements IAuthorizationService { - private final PropertiesConfiguration configuration; + private final PropertiesConfiguration configuration; - private final DpsHeaders headers; + private final DpsHeaders headers; - @Override - public boolean isDomainAdminServiceAccount() { - if (Objects.isNull(headers.getAuthorization()) || headers.getAuthorization().isEmpty()) { - throw AppException.createUnauthorized("No JWT token. Access is Forbidden"); - } - try { - GoogleIdTokenVerifier verifier = - new GoogleIdTokenVerifier.Builder( - GoogleNetHttpTransport.newTrustedTransport(), - JacksonFactory.getDefaultInstance()) - .setAudience(Collections.singleton(configuration.getGoogleAudiences())) - .build(); + @Override + public boolean isDomainAdminServiceAccount() { + if (Objects.isNull(headers.getAuthorization()) || headers.getAuthorization().isEmpty()) { + throw AppException.createUnauthorized("No JWT token. Access is Forbidden"); + } + String email = null; + try { + GoogleIdTokenVerifier verifier = + new GoogleIdTokenVerifier.Builder( + GoogleNetHttpTransport.newTrustedTransport(), + JacksonFactory.getDefaultInstance()) + .setAudience(Collections.singleton(configuration.getGoogleAudiences())) + .build(); - String authorization = headers.getAuthorization().replace("Bearer ", ""); - GoogleIdToken googleIdToken = verifier.verify(authorization); - if (Objects.isNull(googleIdToken)) { - log.warn("Not valid token provided"); - throw AppException.createUnauthorized("Unauthorized. The JWT token could not be validated"); - } - String email = googleIdToken.getPayload().getEmail(); - String partitionAdminAccount = configuration.getPartitionAdminAccount(); - if (Objects.nonNull(partitionAdminAccount) && !partitionAdminAccount.isEmpty()) { - if (email.equals(partitionAdminAccount)) { - return true; - } else { - throw AppException.createUnauthorized("Unauthorized. The user is not Service Principal"); - } - } else { - if (StringUtils.endsWithIgnoreCase(email, "gserviceaccount.com")) { - return true; - } else { - throw AppException.createUnauthorized("Unauthorized. The user is not Service Principal"); - } - } - } catch (Exception e) { - log.warn("Not valid or expired token provided"); - throw AppException.createUnauthorized("Unauthorized. The JWT token could not be validated"); + String authorization = headers.getAuthorization().replace("Bearer ", ""); + GoogleIdToken googleIdToken = verifier.verify(authorization); + if (Objects.isNull(googleIdToken)) { + log.warn("Not valid token provided"); + throw AppException.createUnauthorized("Unauthorized. The JWT token could not be validated"); + } + email = googleIdToken.getPayload().getEmail(); + String partitionAdminAccount = configuration.getPartitionAdminAccount(); + if (Objects.nonNull(partitionAdminAccount) && !partitionAdminAccount.isEmpty()) { + if (email.equals(partitionAdminAccount)) { + return true; + } else { + throw AppException + .createUnauthorized(String.format("Unauthorized. The user %s is untrusted.", email)); + } + } else { + if (StringUtils.endsWithIgnoreCase(email, "gserviceaccount.com")) { + return true; + } else { + throw AppException.createUnauthorized( + String.format("Unauthorized. The user %s is not Service Principal", email)); } + } + } catch (Exception ex) { + log.warn(String.format("User %s is not unauthorized. %s.", email, ex)); + throw AppException.createUnauthorized("Unauthorized. The JWT token could not be validated"); } + } } diff --git a/provider/partition-gcp/src/main/resources/application.properties b/provider/partition-gcp/src/main/resources/application.properties index 3bb3b7343933e9414aee898abbd4834773f5308a..aea6a99cf6f88c4b3d89973ed394abd449395f61 100644 --- a/provider/partition-gcp/src/main/resources/application.properties +++ b/provider/partition-gcp/src/main/resources/application.properties @@ -5,7 +5,7 @@ server.servlet.contextPath=/api/partition/v1 server.port=8080 springfox.documentation.swagger.v2.path=/api-docs authorize-api=https://os-entitlements-gcp-jvmvia5dea-uc.a.run.app/entitlements/v1 -spring.cloud.gcp.datastore.namespace=partitiontest +spring.cloud.gcp.datastore.namespace=partition #ACCEPT_HTTP=true cache-expiration=1 @@ -23,3 +23,5 @@ partition-admin-account=admin@domen.iam.gserviceaccount.com #logging configuration logging.level.org.springframework.web=${LOG_LEVEL:DEBUG} +management.endpoint.health.show-details=always +management.health.diskspace.enabled=false \ No newline at end of file diff --git a/provider/partition-ibm/pom.xml b/provider/partition-ibm/pom.xml index c58d1b2d25becbb8af7d351317e43b100cd59333..ac87c614eb444dfe34041a7128ee93b5018de620 100644 --- a/provider/partition-ibm/pom.xml +++ b/provider/partition-ibm/pom.xml @@ -9,7 +9,7 @@ <parent> <artifactId>partition</artifactId> <groupId>org.opengroup.osdu</groupId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -41,10 +41,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-actuator</artifactId> - </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-client</artifactId> diff --git a/provider/partition-ibm/src/main/resources/application.properties b/provider/partition-ibm/src/main/resources/application.properties index 59435cdad0effbce72555aa61219cea468c88adf..cd94f42510f955f18220975ac63b507de37940d7 100644 --- a/provider/partition-ibm/src/main/resources/application.properties +++ b/provider/partition-ibm/src/main/resources/application.properties @@ -15,7 +15,7 @@ cache.provider=vm cache.expiration=1 cache.maxSize=1000 -ibm.health-check-uri=/api/partition/v1/_ah/liveness_check,/api/partition/v1/_ah/readiness_check +ibm.health-check-uri=/api/partition/v1/actuator/health,/api/partition/v1/actuator/health excluded.uris.for.partition-filter=/api/partition/v1/partitions #Database Configuration diff --git a/testing/partition-test-aws/pom.xml b/testing/partition-test-aws/pom.xml index 0704314b0e809934c820f3dced7de6e7476ef799..dbf4216496b43ca9b430ae830de2b753ae5a4452 100644 --- a/testing/partition-test-aws/pom.xml +++ b/testing/partition-test-aws/pom.xml @@ -19,14 +19,14 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-aws</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -65,13 +65,13 @@ <dependency> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-core</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.9.1-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/testing/partition-test-azure/pom.xml b/testing/partition-test-azure/pom.xml index f325fb6b4b5411050ad5042ccd00f5cbe62464fb..e8924dbd8bc6188bed71bc7376501ab56d809a7d 100644 --- a/testing/partition-test-azure/pom.xml +++ b/testing/partition-test-azure/pom.xml @@ -20,13 +20,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-azure</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -65,7 +65,7 @@ <dependency> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-core</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/testing/partition-test-core/pom.xml b/testing/partition-test-core/pom.xml index f686341d7b49dd8fddafca37b357cedfd28a350d..e0a4aa236524e797c4345de4cf0c55800224ab78 100644 --- a/testing/partition-test-core/pom.xml +++ b/testing/partition-test-core/pom.xml @@ -20,13 +20,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-core</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> diff --git a/testing/partition-test-gcp/pom.xml b/testing/partition-test-gcp/pom.xml index d74f1867b8dcbd9f3a23f86f46d3064e2d946aff..a0111c8f524326f6357d9c3937e66236e268e894 100644 --- a/testing/partition-test-gcp/pom.xml +++ b/testing/partition-test-gcp/pom.xml @@ -6,13 +6,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-gcp</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-core</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/testing/partition-test-ibm/pom.xml b/testing/partition-test-ibm/pom.xml index dec1eeab657ece22f3ed772874ada1fd5a067d45..70ea3a03beaea06a96563cc3efeb8a3a82cf250c 100644 --- a/testing/partition-test-ibm/pom.xml +++ b/testing/partition-test-ibm/pom.xml @@ -6,13 +6,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-ibm</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -58,7 +58,7 @@ <dependency> <groupId>org.opengroup.osdu.partition</groupId> <artifactId>partition-test-core</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/testing/pom.xml b/testing/pom.xml index 7c9b07ba8a9dd9fe3321effdc2e775ebf01958ea..6d504655c04fc2e2dad88f3ca0055e97d29055b6 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -18,7 +18,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.opengroup.osdu</groupId> <artifactId>os-partition-testing</artifactId> - <version>0.9.0-SNAPSHOT</version> + <version>0.11.0-SNAPSHOT</version> <description>Root partition test project</description> <packaging>pom</packaging>