diff --git a/docs/aws/sbom.json b/docs/aws/sbom.json index e02bbf5f5..304723225 100644 --- a/docs/aws/sbom.json +++ b/docs/aws/sbom.json @@ -1,10 +1,10 @@ { "bomFormat" : "CycloneDX", "specVersion" : "1.5", - "serialNumber" : "urn:uuid:04d17ffb-7c8c-39c0-ac9f-110da0a6fbde", + "serialNumber" : "urn:uuid:c0b002ce-cbd6-3584-9a9c-2c36a495f051", "version" : 1, "metadata" : { - "timestamp" : "2026-06-18T18:28:17Z", + "timestamp" : "2026-06-18T20:33:09Z", "lifecycles" : [ { "phase" : "build" @@ -59,9 +59,9 @@ "component" : { "group" : "co.worklytics.psoxy", "name" : "psoxy-aws", - "version" : "0.6.6", + "version" : "0.6.7", "licenses" : [ ], - "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.6?type=jar", + "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.7?type=jar", "externalReferences" : [ { "type" : "distribution-intake", @@ -69,7 +69,7 @@ } ], "type" : "library", - "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.6?type=jar" + "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.7?type=jar" }, "properties" : [ { @@ -86,40 +86,40 @@ { "group" : "co.worklytics.psoxy", "name" : "psoxy-core", - "version" : "0.6.6", + "version" : "0.6.7", "scope" : "required", "hashes" : [ { "alg" : "MD5", - "content" : "6354851ecef5541ffee800a87e945875" + "content" : "ae15ffadf9d616bf94cd1d26f1d0ebae" }, { "alg" : "SHA-1", - "content" : "bcf790c49ed33bdb1a36d4cfef49b13c61dce7e4" + "content" : "ed84425ba12cd006dfa32e7fe7c6c2df77e82480" }, { "alg" : "SHA-256", - "content" : "b5cf492919eaa982d95c6e4848a3e1e7649f28f2c45869f98ac0acc93fe3814b" + "content" : "ce4ac70c874c1def889b8f6d9530de68534488c869c916a2136322158dfb3c53" }, { "alg" : "SHA-512", - "content" : "7d16243f1f920475c1d75b400002d868fddfbdebf9b080ea8e3f6c3c36253b279a8bea7f3ffefb188222ed626d34cbf99575970fe98ec293c720c96a4e924d89" + "content" : "9b6cf00abd5184d215595e14ce5c419e1c62d08cd199f0d61d5298e6e67e79ae2212ba1b163616b25866c70a2418e50ded024646e49b2c601cf38afaab62da75" }, { "alg" : "SHA-384", - "content" : "78226094335202889ef2faf96c9444bb7d2c0ce417eb2500d2c730548bfcfa3a6099ca0bb9fd23f6b645a08905e8ee43" + "content" : "2f03a8e7e72cf0e9684bc02001a52c69995ce0e33ddd8d9a2b668788230d34d1bc040a921dcb26a414189997eb7e2019" }, { "alg" : "SHA3-384", - "content" : "480cc356ba982e35240c2c0209049fe5d3bf9e82982b7663412ef454ab1063265db8a875cfee6832b75c683ec644af00" + "content" : "088d91f39969b753c773beb8c531db2653a2bc6c5af376927a4900d00e3e4e5d5c3e3a1bdc730245909a7a5d84136911" }, { "alg" : "SHA3-256", - "content" : "b0f31e47b7b6400e00f9fd4b827ec48ff9d26e48479a21ba90f91cd341a46996" + "content" : "cce16d6add62664eebaf557e3d4ab776fc5f1d9f31eaed93784b1d6a64d014f2" }, { "alg" : "SHA3-512", - "content" : "21e9b664483a864d0015e0b09035686c003534a168320b1b0eceff20c0c77dfd0ac1479707fbe960bad8ef71d0bea2695ff5e76a4546660c4ce39328c9ba6875" + "content" : "e47b21fe694f4c58af5e69367008b3291e7cce26b80e18ab6c815a290695d1f005d41b110906229c1720b37696fdcdd6f67603437e0a81fca51cf5a8e767f78c" } ], "licenses" : [ @@ -130,47 +130,47 @@ } } ], - "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "type" : "library", - "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar" + "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar" }, { "group" : "com.avaulta.gateway", "name" : "gateway-core", - "version" : "0.6.6", + "version" : "0.6.7", "scope" : "required", "hashes" : [ { "alg" : "MD5", - "content" : "5761afbecd3f4a0347e52c005c2a1c53" + "content" : "b678a62c58ddabcb94400ace4b00cb08" }, { "alg" : "SHA-1", - "content" : "1430f70ebcdb96933a1b9e3d024275b2a5da2be5" + "content" : "071007081001ee46577e1d361ea79484cde99c03" }, { "alg" : "SHA-256", - "content" : "bb1802066c21112d66b9e8339588da97aac032a1e4a9ef69303e8d08499f94f7" + "content" : "5df8f62ff1fda284545d82f5981e54599e259efd77e7550f974265832936664e" }, { "alg" : "SHA-512", - "content" : "3b977bbdfe053c841feb1e4170185bbd43618fdbe84ebe88bd8415e0b017f4dd0c320540eb62cc00e6b2a28788d38f5935c74e2e01663ce8c2a0ed12fcac66c6" + "content" : "894a17df76bf838f4a33ca2a8b0a338602279f7229ffeccc89847c01e9257b37658cc9f0dfc92da7ccbeb9b75c1cbf3a040dfa77d03ae286aad2b978a893c147" }, { "alg" : "SHA-384", - "content" : "6f8e74717126d333c18d38d698aa3f7043be87fa539428abeedc90851782848a65294b05f883111a591b855022465e3b" + "content" : "4645eb1b1fdf88834d325e8332616d19bdbaa53fe3b36451356d4b66f345c3d8c6a3da17a60eafc40b6290c629457b96" }, { "alg" : "SHA3-384", - "content" : "2ea2a14d387b89a6bd6bb1e59a2943695562ae326137a0fd9642299c0f008dc3a31ad46954ef84ba07a69afb656875a6" + "content" : "0d40b19f28846d61c515940f26075293ffc02c93484df28e56bc8686032ba36c0a2790b16b84d598eb7d2a503beab0e2" }, { "alg" : "SHA3-256", - "content" : "0ed7c4b5cb3adffc86c07b4b6c565b025e5c0d87e2f36b4a957a2f4a02a8ba26" + "content" : "40fe8d51af9cd2a79a48fef70190863a598296e007209c4d37b62508a6a518bb" }, { "alg" : "SHA3-512", - "content" : "a3ec68bdd1937d69281f6bdb382dd46371cc49ddcc24ef900cdd3a556eb49e4a9a5c696830708b4be3b75cc69bc0d29ec5f1650a2e5985e4db14fd6dc8fd1f60" + "content" : "9628af58f490390cf83f3dfc7da3a5868f582d28a5cb18cb3ee389f4f2e20c9b73390f0ae33483bf0d9b671a14efe9f431896f18c32bb0776ec0917c1a3660cc" } ], "licenses" : [ @@ -181,9 +181,9 @@ } } ], - "purl" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "purl" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "type" : "library", - "bom-ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar" + "bom-ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar" }, { "publisher" : "The Apache Software Foundation", @@ -10157,9 +10157,9 @@ ], "dependencies" : [ { - "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.6?type=jar", + "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-aws@0.6.7?type=jar", "dependsOn" : [ - "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "pkg:maven/org.projectlombok/lombok@1.18.42?type=jar", "pkg:maven/com.google.dagger/dagger-compiler@2.40.5?type=jar", "pkg:maven/com.google.dagger/dagger@2.40.5?type=jar", @@ -10179,9 +10179,9 @@ ] }, { - "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "dependsOn" : [ - "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "pkg:maven/org.apache.commons/commons-lang3@3.19.0?type=jar", "pkg:maven/org.apache.commons/commons-csv@1.14.1?type=jar", "pkg:maven/commons-io/commons-io@2.18.0?type=jar", @@ -10206,7 +10206,7 @@ ] }, { - "ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "dependsOn" : [ "pkg:maven/org.apache.commons/commons-lang3@3.19.0?type=jar", "pkg:maven/org.apache.commons/commons-csv@1.14.1?type=jar", diff --git a/docs/gcp/sbom.json b/docs/gcp/sbom.json index 51e4112cf..0e8184602 100644 --- a/docs/gcp/sbom.json +++ b/docs/gcp/sbom.json @@ -1,10 +1,10 @@ { "bomFormat" : "CycloneDX", "specVersion" : "1.5", - "serialNumber" : "urn:uuid:c05f478f-e25e-3ca5-b754-23273b8f4267", + "serialNumber" : "urn:uuid:9059d82b-181e-35e7-b147-52818670473e", "version" : 1, "metadata" : { - "timestamp" : "2026-06-18T18:28:44Z", + "timestamp" : "2026-06-18T20:33:38Z", "lifecycles" : [ { "phase" : "build" @@ -59,9 +59,9 @@ "component" : { "group" : "co.worklytics.psoxy", "name" : "psoxy-gcp", - "version" : "0.6.6", + "version" : "0.6.7", "licenses" : [ ], - "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.6?type=jar", + "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.7?type=jar", "externalReferences" : [ { "type" : "distribution-intake", @@ -69,7 +69,7 @@ } ], "type" : "library", - "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.6?type=jar" + "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.7?type=jar" }, "properties" : [ { @@ -86,40 +86,40 @@ { "group" : "co.worklytics.psoxy", "name" : "psoxy-core", - "version" : "0.6.6", + "version" : "0.6.7", "scope" : "required", "hashes" : [ { "alg" : "MD5", - "content" : "87eddc8e5f702c1d998d1acdde344e74" + "content" : "589e347a5c964d92c3327edc6e467e8a" }, { "alg" : "SHA-1", - "content" : "3f2032603ef48fb9120d307918bd46620530ecc2" + "content" : "0c63f65d15dd5d0bbb1e39441f851e553e488665" }, { "alg" : "SHA-256", - "content" : "c7be10b9ead4a542f4c2c326d74efb413f941c527511864ea41e868b1a9c5880" + "content" : "f01951f5e1e762dfe6899a5fb485f08bd321317144b7ac679ca35541bda7bb7d" }, { "alg" : "SHA-512", - "content" : "43fcdc7676cc91ae1ed38b4b88b4d82612bfa60cf1583bdbb82a1a1638fb1354a78c131386a8f240a022f8a7a9f14e34b686bea7e1462a6329c8dce741992815" + "content" : "01521663016052e45ab49fabecfac0505271d71635c20066bc9de1ca21f6181db4f00f7ab08d4b9f279a0a23eebca86ada511b19c400f589302fe203047d68a6" }, { "alg" : "SHA-384", - "content" : "4fe58a6da8ba4c00d4dd08ef302e890cedd03975a7c431175968c6812cc6e84feb32c1f88e6dc546af10a1c70213a9e6" + "content" : "ce33788bc5a6b0577f3bbf85af51f3ed381348379bd3acc70034c3b109596c7dd106590ab5aec6aeebd8b11ddbf2d48b" }, { "alg" : "SHA3-384", - "content" : "50a2178426c532494f967aba1441d7412a6e0faa5fe539fd5c577ffc114ff589373855b4db3d69f28d18a704241d8eca" + "content" : "242e94e9791c7091b0beec07223d3044ca6ccddc9f33feb38acc57ea690d85cbe173e60dc4bc0291aa05e6a1a54c5476" }, { "alg" : "SHA3-256", - "content" : "5a6ef60a278035c6f92212058fe8b9ee6c87b4adc27ef9739e3b5b35c399150e" + "content" : "78e9c667a5f97362330ebdacca30a37fc9f71f23346c7020e3729ce2df833fb6" }, { "alg" : "SHA3-512", - "content" : "a9b6b25f67523199f6f0bed8931ed3b3c6ee461762d5a371ef8684ac6798a19b3877d6fe3537636cac80dfdfe0b1500fc74504d1f882685fabccb6252c197128" + "content" : "e8602c8a86ba570ee6ae071f0937c2ff723d205c1f0577d03860fbf767b90fd2d4df4626121dbfd189175108bd5b3c896213922fd76fdf5f01cff95390c142b7" } ], "licenses" : [ @@ -130,47 +130,47 @@ } } ], - "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "purl" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "type" : "library", - "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar" + "bom-ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar" }, { "group" : "com.avaulta.gateway", "name" : "gateway-core", - "version" : "0.6.6", + "version" : "0.6.7", "scope" : "required", "hashes" : [ { "alg" : "MD5", - "content" : "3695b96697effac61ec4284edd27087e" + "content" : "2e37ecad31aac9d35e5724720f96f714" }, { "alg" : "SHA-1", - "content" : "868705aed1f6306c1cb47a5845f0f744feaf053d" + "content" : "f0ad56a84a942e22c12174a95ded48d447edfef4" }, { "alg" : "SHA-256", - "content" : "c3ca35438db7144a36ead65d6c05abf45a611bdc7a39fedc6bed4d904a3c8eba" + "content" : "f3e0120ce65d230229f7c4a247886a57282677644b8366180f6202b1912f2c16" }, { "alg" : "SHA-512", - "content" : "d0fc39ac5c829b9850f341f762061e56e351be3336e543542b4f00cdb2785302a37abd3d80c289d33f0c8f8ba94ea4e9d703b1d1401f11302fe95f2a72e1b827" + "content" : "71394a4b145be6c4abe5701c1ae106babae710bab46c822790aca383ab10b90363b11f6a25cf0bf3c55ca4b683938ca8a4f7f6d0446641a7364b2cb2c711c207" }, { "alg" : "SHA-384", - "content" : "2d5f32b9f2c8327ece89422d831d2a61adeeba825b98d8c5822c5585fcf61bd0df041f0e8298920ae50382f17a159d6f" + "content" : "f2b3c0d033dacc606724a7b4ef19c823b1df69eb2531c8b676f274ffadd7e20de59ba6386cccf0f970477aed282ddbba" }, { "alg" : "SHA3-384", - "content" : "e32df957913151cc9afe2f9c58f0fdd16150a78f9475060bf1bb7ee2008cabb59f41069d727c5fca24b0071d524b1498" + "content" : "091607171f7e74894a0d325904d9c8d96eee07e4891707347dfd1f3e2664701003762a5f54c9a258f864ca9ca7664162" }, { "alg" : "SHA3-256", - "content" : "537955bb8865270fc345fe5f9e9c90c440fa04c5f9934c88cc907b8eec410312" + "content" : "42417f0eed9dff2a217ada5726818b1a65489a81e8745e9e864db70b1a1088af" }, { "alg" : "SHA3-512", - "content" : "2a0a3b1d740ef1d0c381ce58e0b0325f7bdc0d08250075cc6a6a833389c84b5333d97af249cd763f9567c49e22b34bb9dd36a4b2b79060e7b9df0f35f7524bed" + "content" : "c23a910cc8fd5956215b76aadc9101cacb222545188e681403cc5ca66a7840f3742f1180c3e046dcbe2a86d957a957966da988f73cb427eae7be60843516d3bf" } ], "licenses" : [ @@ -181,9 +181,9 @@ } } ], - "purl" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "purl" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "type" : "library", - "bom-ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar" + "bom-ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar" }, { "publisher" : "FasterXML", @@ -10589,9 +10589,9 @@ ], "dependencies" : [ { - "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.6?type=jar", + "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-gcp@0.6.7?type=jar", "dependsOn" : [ - "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "pkg:maven/org.projectlombok/lombok@1.18.42?type=jar", "pkg:maven/com.google.dagger/dagger@2.40.5?type=jar", "pkg:maven/com.google.dagger/dagger-compiler@2.40.5?type=jar", @@ -10604,9 +10604,9 @@ ] }, { - "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.6?type=jar", + "ref" : "pkg:maven/co.worklytics.psoxy/psoxy-core@0.6.7?type=jar", "dependsOn" : [ - "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "pkg:maven/org.apache.commons/commons-lang3@3.19.0?type=jar", "pkg:maven/org.apache.commons/commons-csv@1.14.1?type=jar", "pkg:maven/commons-io/commons-io@2.18.0?type=jar", @@ -10631,7 +10631,7 @@ ] }, { - "ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.6?type=jar", + "ref" : "pkg:maven/com.avaulta.gateway/gateway-core@0.6.7?type=jar", "dependsOn" : [ "pkg:maven/org.apache.commons/commons-lang3@3.19.0?type=jar", "pkg:maven/org.apache.commons/commons-csv@1.14.1?type=jar", diff --git a/infra/examples-dev/aws/google-workspace.tf b/infra/examples-dev/aws/google-workspace.tf index dd1b8ac79..e842285ea 100644 --- a/infra/examples-dev/aws/google-workspace.tf +++ b/infra/examples-dev/aws/google-workspace.tf @@ -8,7 +8,7 @@ provider "google" { module "worklytics_connectors_google_workspace" { source = "../../modules/worklytics-connectors-google-workspace" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-google-workspace?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-google-workspace?ref=rc-v0.6.7" google_workspace_connector_settings = var.google_workspace_connector_settings diff --git a/infra/examples-dev/aws/main.tf b/infra/examples-dev/aws/main.tf index 9534f5b9a..f4cbc3cec 100644 --- a/infra/examples-dev/aws/main.tf +++ b/infra/examples-dev/aws/main.tf @@ -21,7 +21,7 @@ terraform { # general cases module "worklytics_connectors" { source = "../../modules/worklytics-connectors" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors?ref=rc-v0.6.7" enabled_connectors = var.enabled_connectors connector_settings = var.connector_settings @@ -121,7 +121,7 @@ locals { module "psoxy" { source = "../../modules/aws-host" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-host?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-host?ref=rc-v0.6.7" environment_name = var.environment_name aws_account_id = var.aws_account_id @@ -200,7 +200,7 @@ module "connection_in_worklytics" { for_each = local.all_instances source = "../../modules/worklytics-proxy-connection-aws" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-proxy-connection-aws?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-proxy-connection-aws?ref=rc-v0.6.7" proxy_instance_id = each.key worklytics_host = var.worklytics_host diff --git a/infra/examples-dev/aws/msft-365.tf b/infra/examples-dev/aws/msft-365.tf index 6250de2c1..6dc91dd48 100644 --- a/infra/examples-dev/aws/msft-365.tf +++ b/infra/examples-dev/aws/msft-365.tf @@ -2,7 +2,7 @@ module "worklytics_connectors_msft_365" { source = "../../modules/worklytics-connectors-msft-365" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-msft-365?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-msft-365?ref=rc-v0.6.7" msft_365_connector_settings = var.msft_365_connector_settings @@ -52,7 +52,7 @@ module "cognito_identity_pool" { count = local.msft_365_enabled ? 1 : 0 # only provision identity pool if MSFT-365 connectors are enabled source = "../../modules/aws-cognito-pool" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-cognito-pool?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-cognito-pool?ref=rc-v0.6.7" developer_provider_name = local.developer_provider_name name = "${local.env_qualifier}-azure-ad-federation" @@ -75,7 +75,7 @@ module "cognito_identity" { count = local.msft_365_enabled ? 1 : 0 # only provision identity pool if MSFT-365 connectors are enabled source = "../../modules/aws-cognito-identity-cli" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-cognito-identity-cli?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/aws-cognito-identity-cli?ref=rc-v0.6.7" aws_region = data.aws_region.current.region @@ -113,7 +113,7 @@ module "msft_connection_auth_federation" { for_each = local.provision_entraid_apps ? local.enabled_to_entraid_object : local.shared_to_entraid_object source = "../../modules/azuread-federated-credentials" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/azuread-federated-credentials?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/azuread-federated-credentials?ref=rc-v0.6.7" application_id = each.value.connector_id display_name = "${local.env_qualifier}AccessFromAWS" diff --git a/infra/examples-dev/gcp/google-workspace.tf b/infra/examples-dev/gcp/google-workspace.tf index dd1b8ac79..e842285ea 100644 --- a/infra/examples-dev/gcp/google-workspace.tf +++ b/infra/examples-dev/gcp/google-workspace.tf @@ -8,7 +8,7 @@ provider "google" { module "worklytics_connectors_google_workspace" { source = "../../modules/worklytics-connectors-google-workspace" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-google-workspace?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-google-workspace?ref=rc-v0.6.7" google_workspace_connector_settings = var.google_workspace_connector_settings diff --git a/infra/examples-dev/gcp/main.tf b/infra/examples-dev/gcp/main.tf index 7015635a6..114cefbd9 100644 --- a/infra/examples-dev/gcp/main.tf +++ b/infra/examples-dev/gcp/main.tf @@ -30,7 +30,7 @@ locals { # call this 'generic_source_connectors'? module "worklytics_connectors" { source = "../../modules/worklytics-connectors" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors?ref=rc-v0.6.7" base_dir = var.psoxy_base_dir enabled_connectors = var.enabled_connectors @@ -104,7 +104,7 @@ locals { module "psoxy" { source = "../../modules/gcp-host" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/gcp-host?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/gcp-host?ref=rc-v0.6.7" gcp_project_id = var.gcp_project_id environment_name = var.environment_name @@ -168,7 +168,7 @@ module "connection_in_worklytics" { for_each = local.all_instances source = "../../modules/worklytics-proxy-connection-generic" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-proxy-connection-generic?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-proxy-connection-generic?ref=rc-v0.6.7" host_platform_id = local.host_platform_id proxy_instance_id = each.key diff --git a/infra/examples-dev/gcp/msft-365.tf b/infra/examples-dev/gcp/msft-365.tf index 305e21915..fbe96b5fa 100644 --- a/infra/examples-dev/gcp/msft-365.tf +++ b/infra/examples-dev/gcp/msft-365.tf @@ -2,7 +2,7 @@ module "worklytics_connectors_msft_365" { source = "../../modules/worklytics-connectors-msft-365" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-msft-365?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/worklytics-connectors-msft-365?ref=rc-v0.6.7" msft_365_connector_settings = var.msft_365_connector_settings @@ -37,7 +37,7 @@ module "msft-connection-auth-federation" { for_each = module.worklytics_connectors_msft_365.enabled_api_connectors source = "../../modules/azuread-federated-credentials" - # source = "git::https://github.com/worklytics/psoxy//infra/modules/azuread-federated-credentials?ref=v0.6.6" + # source = "git::https://github.com/worklytics/psoxy//infra/modules/azuread-federated-credentials?ref=rc-v0.6.7" application_id = each.value.connector.id display_name = "GcpFederation" diff --git a/infra/modules/aws-host/main.tf b/infra/modules/aws-host/main.tf index a9470b59c..888401a90 100644 --- a/infra/modules/aws-host/main.tf +++ b/infra/modules/aws-host/main.tf @@ -493,7 +493,6 @@ locals { caller_has_configured_output_buckets = ( length(var.bulk_connectors) > 0 || length(var.webhook_collectors) > 0 || - length(var.lookup_table_builders) > 0 || length([for k, v in var.api_connectors : k if try(v.enable_async_processing, false)]) > 0 || length([for k, v in local.sanitized_side_outputs : k if v != null]) > 0 ) @@ -503,7 +502,6 @@ locals { [for k, v in module.webhook_collectors : v.output_sanitized_bucket_id], [for k, v in module.api_connector : v.async_output_bucket_id if try(v.async_output_bucket_id, null) != null], [for k, v in module.api_connector : v.side_output_sanitized_bucket_id if try(v.side_output_sanitized_bucket_id, null) != null], - [for k, v in module.lookup_output : v.output_bucket], ))) caller_output_bucket_read_resources = flatten([ diff --git a/infra/modules/aws-proxy-bulk/provision_testing_infra.tftest.hcl b/infra/modules/aws-proxy-bulk/provision_testing_infra.tftest.hcl index 3d44417c8..0d8961c67 100644 --- a/infra/modules/aws-proxy-bulk/provision_testing_infra.tftest.hcl +++ b/infra/modules/aws-proxy-bulk/provision_testing_infra.tftest.hcl @@ -1,14 +1,14 @@ # Plan succeeds with testing IAM/bucket policies enabled and disabled. variables { - environment_name = "test" - instance_id = "hris" - aws_account_id = "123456789012" - path_to_function_zip = "../aws-proxy-lambda/tests/deployment.zip" - function_zip_hash = "dummy-hash-for-test" - path_to_instance_ssm_parameters = "PSOXY_TEST_HRIS_" - provision_iam_policy_for_testing = false - aws_principal_arn_when_testing = null + environment_name = "test" + instance_id = "hris" + aws_account_id = "123456789012" + path_to_function_zip = "../aws-proxy-lambda/tests/deployment.zip" + function_zip_hash = "dummy-hash-for-test" + path_to_instance_ssm_parameters = "PSOXY_TEST_HRIS_" + provision_iam_policy_for_testing = false + aws_principal_arn_when_testing = null aws_write_role_to_assume_when_testing = null } diff --git a/infra/modules/gcp-proxy-api/main.tf b/infra/modules/gcp-proxy-api/main.tf index 941982c9a..4befc1b6c 100644 --- a/infra/modules/gcp-proxy-api/main.tf +++ b/infra/modules/gcp-proxy-api/main.tf @@ -291,7 +291,7 @@ resource "google_cloudfunctions2_function" "function" { iterator = secret_environment_variable content { - key = secret_environment_variable.key + key = secret_environment_variable.key # project_id string (not number) avoids apply-time drift: number comes from data.google_project project_id = var.gcp_project.project_id secret = secret_environment_variable.value.secret_id diff --git a/infra/modules/gcp-proxy-bulk/main.tf b/infra/modules/gcp-proxy-bulk/main.tf index 469f21288..34338cd33 100644 --- a/infra/modules/gcp-proxy-bulk/main.tf +++ b/infra/modules/gcp-proxy-bulk/main.tf @@ -251,7 +251,7 @@ resource "google_cloudfunctions2_function" "function" { iterator = secret_environment_variable content { - key = secret_environment_variable.key + key = secret_environment_variable.key # project_id string (not number) avoids apply-time drift: number comes from data.google_project project_id = var.gcp_project.project_id secret = secret_environment_variable.value.secret_id diff --git a/infra/modules/gcp-webhook-collector/ip_lock_conditions.tftest.hcl b/infra/modules/gcp-webhook-collector/ip_lock_conditions.tftest.hcl index bbc3ad1fe..d7193c665 100644 --- a/infra/modules/gcp-webhook-collector/ip_lock_conditions.tftest.hcl +++ b/infra/modules/gcp-webhook-collector/ip_lock_conditions.tftest.hcl @@ -23,7 +23,7 @@ variables { provision_auth_key = { rotation_days = 30 } - example_identity = "test-user@example.com" + example_identity = "test-user@example.com" allowed_webhook_ip_blocks = ["10.0.0.0/16"] } diff --git a/infra/modules/gcp-webhook-collector/main.tf b/infra/modules/gcp-webhook-collector/main.tf index 0e31555d2..fbf1c3a8a 100644 --- a/infra/modules/gcp-webhook-collector/main.tf +++ b/infra/modules/gcp-webhook-collector/main.tf @@ -367,7 +367,7 @@ resource "google_cloudfunctions2_function" "function" { iterator = secret_environment_variable content { - key = secret_environment_variable.key + key = secret_environment_variable.key # project_id string (not number) avoids apply-time drift: number comes from data.google_project project_id = var.gcp_project.project_id secret = secret_environment_variable.value.secret_id diff --git a/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConfigProperty.java b/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConfigProperty.java index bd46c2861..58f225c90 100644 --- a/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConfigProperty.java +++ b/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConfigProperty.java @@ -142,12 +142,11 @@ public enum ProxyConfigProperty implements ConfigService.ConfigProperty { /** * Whether the proxy should follow HTTP redirects (3xx responses) when calling source APIs. * - * OPTIONAL; defaults to {@code true} (redirects are followed), matching the default behavior - * of the underlying HTTP client. + * OPTIONAL. When unset, redirects are followed in synchronous processing and disabled in + * async processing so the proxy can intercept 3xx responses and fetch from the Location URL + * manually (required for connectors such as ChatGPT Enterprise and Slack Analytics). * - * Set to {@code FALSE} for connectors whose APIs issue redirects that must not be - * automatically followed — e.g. ChatGPT Enterprise, which uses async processing and relies - * on the proxy intercepting 3xx responses to fetch data from the Location URL manually. + * Set explicitly to override that default for a connector instance. * * Accepted values: {@code true} / {@code false} (case-insensitive). */ diff --git a/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConstants.java b/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConstants.java index 257b14496..5e83ea1d2 100644 --- a/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConstants.java +++ b/java/core/src/main/java/co/worklytics/psoxy/gateway/ProxyConstants.java @@ -22,7 +22,7 @@ public class ProxyConstants { /** * Version of the Java source code. Used to identify the version of the proxy. */ - public static final String JAVA_SOURCE_CODE_VERSION = "v0.6.6"; + public static final String JAVA_SOURCE_CODE_VERSION = "rc-v0.6.7"; /** * a random UUID used to salt the hash of the salt. Purpose of this is to invalidate any non-purpose built rainbow table solution. diff --git a/java/core/src/main/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandler.java b/java/core/src/main/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandler.java index c1b638d29..44db61b5b 100644 --- a/java/core/src/main/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandler.java +++ b/java/core/src/main/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandler.java @@ -379,7 +379,7 @@ public HttpEventResponse handle(HttpEventRequest requestToProxy, // setup request boolean followRedirects = config.getConfigPropertyAsOptional(ProxyConfigProperty.FOLLOW_REDIRECTS) .map(Boolean::parseBoolean) - .orElse(true); + .orElse(!processingContext.getAsync()); requestToSourceApi .setThrowExceptionOnExecuteError(false) diff --git a/java/core/src/test/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandlerTest.java b/java/core/src/test/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandlerTest.java index 476fae358..40dcf42b8 100644 --- a/java/core/src/test/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandlerTest.java +++ b/java/core/src/test/java/co/worklytics/psoxy/gateway/impl/ApiDataRequestHandlerTest.java @@ -834,6 +834,62 @@ void isRedirectFamily() { assertFalse(handler.isRedirectFamily(400)); } + @Test + @SneakyThrows + void asyncModeDisablesRedirectFollowingByDefault() { + setup("gmail", "google.apis.com"); + + ApiDataRequestHandler spy = spy(handler); + + HttpEventRequest request = MockModules.provideMock(HttpEventRequest.class); + when(request.getHeader(ControlHeader.PSEUDONYM_IMPLEMENTATION.getHttpHeader())) + .thenReturn(Optional.empty()); + when(request.getHttpMethod()).thenReturn("GET"); + when(request.getPath()).thenReturn("/admin/directory/v1/users"); + when(request.getQuery()).thenReturn(Optional.empty()); + + HttpRequest[] captured = new HttpRequest[1]; + MockHttpTransport transport = new MockHttpTransport(); + HttpRequestFactory requestFactory = spy(transport.createRequestFactory()); + doAnswer(invocation -> { + HttpRequest built = (HttpRequest) invocation.callRealMethod(); + captured[0] = built; + return built; + }).when(requestFactory).buildRequest(anyString(), any(GenericUrl.class), any()); + doReturn(requestFactory).when(spy).getRequestFactory(any()); + + MockHttpTransport contentTransport = new MockHttpTransport() { + @Override + public LowLevelHttpRequest buildRequest(String method, String url) throws IOException { + return new MockLowLevelHttpRequest() { + @Override + public LowLevelHttpResponse execute() throws IOException { + MockLowLevelHttpResponse response = new MockLowLevelHttpResponse(); + response.setStatusCode(200); + response.setContentType(Json.MEDIA_TYPE); + response.setContent("[]"); + return response; + } + }; + } + }; + when(spy.httpTransportFactory.create()).thenReturn(contentTransport); + + RESTApiSanitizerImpl sanitizer = mock(RESTApiSanitizerImpl.class); + when(sanitizer.isAllowed(anyString(), any(), anyString(), any())).thenReturn(true); + spy.sanitizer = sanitizer; + + spy.handle(request, ApiDataRequestHandler.ProcessingContext.builder() + .async(true) + .requestId("r") + .asyncOutputLocation("gs://bucket/output.json") + .requestReceivedAt(clock.instant()) + .build()); + + assertNotNull(captured[0]); + assertFalse(captured[0].getFollowRedirects()); + } + @Test @SneakyThrows void handleShouldFollowRedirectManuallyInAsyncMode() { diff --git a/java/pom.xml b/java/pom.xml index 987ed9ef3..de6f32e92 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -10,7 +10,7 @@ pom - 0.6.6 + 0.6.7 UTF-8 1.18.42 2.40.5 diff --git a/tools/init-tfvars.sh b/tools/init-tfvars.sh index 2d85ad783..7028b95a7 100755 --- a/tools/init-tfvars.sh +++ b/tools/init-tfvars.sh @@ -7,7 +7,7 @@ PSOXY_BASE_DIR=$2 DEPLOYMENT_ENV=${3:-"local"} HOST_PLATFORM=${4:-"aws"} -SCRIPT_VERSION="v0.6.6" +SCRIPT_VERSION="rc-v0.6.7" if [ -z "$PSOXY_BASE_DIR" ]; then printf "Usage: init-tfvars.sh [DEPLOYMENT_ENV]\n"