Skip to content

v0.5.12#1045

Merged
eschultink merged 15 commits intomainfrom
rc-v0.5.12
Nov 12, 2025
Merged

v0.5.12#1045
eschultink merged 15 commits intomainfrom
rc-v0.5.12

Conversation

@eschultink
Copy link
Member

@eschultink eschultink commented Nov 11, 2025

v0.5.12 back to main

Test Plan

AWS

cd infra/examples-dev/aws
./apply
./test-all.sh

Confirm everything worked:

  • Microsoft API connector
  • Google Workspace API connector
  • Token-based API connector
  • API connector with async
  • Webhook collector
  • Bulk connector

GCP

cd infra/examples-dev/gcp
./apply
./test-all.sh

Confirm everything worked:

  • Microsoft API connector
  • Google Workspace API connector
  • Token-based API connector
  • API connector with async
  • Webhook collector
  • Bulk connector

Next steps, after that's merged to main:

  1. publish the release: ./tools/release/publish.sh v0.5.12

Note

Release v0.5.12 with webhook collector enhancements (path prefix, AWS provisioned concurrency), robust network-timeout handling, OAuth token version-aware retrieval, updated docs/tooling, and dependency bumps.

  • Core/Runtime:
    • Add ErrorCauses.NETWORK_EGRESS_BLOCKED and map socket timeouts to 502 with guidance; surface in test tool.
    • Replace WebhookCollectorModeConfigProperty with WebhookCollectorModeConfig; wire through runtime and tests; pre-warm JWKS key cache on AWS/GCP startup.
    • Extend SecretStore with getAvailableVersions; implement for AWS SSM/Secrets Manager and GCP Secret Manager; add caching/composite passthroughs.
    • OAuth refresh: proactively refresh in strategy, load shared access token from secret versions (choose latest by expiry/version), make AccessTokenDto.expirationDate nullable Long.
  • Webhook Collectors (AWS/GCP):
    • New output_path_prefix for batched outputs; include in WEBHOOK_BATCH_OUTPUT.
    • AWS: optional keep_warm_instances + Lambda provisioned concurrency; expose provisioned_concurrency output.
  • Infra/Terraform:
    • Plumb new webhook settings (output_path_prefix, keep_warm_instances), update variables and modules (aws-host, aws-webhook-collector, gcp-host, gcp-webhook-collector).
    • Update examples to v0.5.12.
  • Docs & Samples:
    • GCP VPC doc to beta with clearer setup/IAM notes and examples; add bulk reprocessing guidance (replay-gcs-writes.sh).
    • Add Gmail example with empty Cc; sanitizer returns empty string for empty email headers. Salesforce: allow POST on .../composite.
  • Build/Release/Deps:
    • Revamp build script (reactor build), SBOM generation, publish scripts (git tag/branch validation, overwrite prompts, Maven publish to GitHub Packages).
    • Bump version to 0.5.12 and update dependencies (e.g., commons-codec, httpclient5, Google Cloud BOM).

Written by Cursor Bugbot for commit 1a56a8b. This will update automatically on new commits. Configure here.

dependabot bot and others added 14 commits October 28, 2025 18:17
Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.4.1 to 5.4.3.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.4.3/RELEASE_NOTES.txt)
- [Commits](apache/httpcomponents-client@rel/v5.4.1...rel/v5.4.3)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: 5.4.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…y-core/org.apache.httpcomponents.client5-httpclient5-5.4.3

bump apache httpclient5 from 5.4.1 to 5.4.3
* Update rules

* Support example with POST
* apache commons codec to 1.19.0

* more dep updates
* add logic to keep lambdas warm

* fix style

* init public keys in mem for webhook collectors on start-up
* aws replace tool

* add documentation
* improve webhook collector mode configuration

* support webhook output prefix

* fix style

* fix path stuff

* fix missed rename

* fix various test issues
* deal with empty header case more correctly; that's quite clearly a bug

* add test of empty CC case
* improve GCP vpc docs + conditions

* fix style, unrelated

* improve error feedback on network connectivity issues

* doc that GCP VPC needs external connectivity via router/nat for non-google sources

* move validation up to dop

* try to skip compile in tests

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* interface to secret store to get multiple versions of things

* refactor how token refreshin works, so potentially more proactive / better re-use

* pick most recent token based on expirationDate

* cr feedback

* fix refactor

* remove stray bracket

* Update java/core/src/main/java/co/worklytics/psoxy/gateway/impl/oauth/OAuthRefreshTokenSourceAuthStrategy.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update java/core/src/main/java/co/worklytics/psoxy/gateway/impl/CompositeConfigService.java

Co-authored-by: aperez-worklytics <75276364+aperez-worklytics@users.noreply.github.com>

* drop sort on lastAccessDate; only date-level granularity, so why bother

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: aperez-worklytics <75276364+aperez-worklytics@users.noreply.github.com>
* expose more outputs relevant to gcp-hosted deployments

* gcp min perms to host

* expose gcp network roles, for completenes

* doc gcp vpc roles

* doc that Project IAM Admin is required

* fix docs

* Update infra/modules/psoxy-constants/main.tf

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update infra/modules/psoxy-constants/outputs.tf

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/gcp/vpc.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the final PR Bugbot will review for you during this billing cycle

Your free Bugbot reviews will reset on December 10

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

if (accessToken == null) {
return true;
}
Instant expiresAt = accessToken.getExpirationTime().toInstant();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Tokens Crash with Null Expiration.

Calling accessToken.getExpirationTime().toInstant() will throw NullPointerException when the token has no expiration time. Since AccessTokenDto.asAccessToken() can produce tokens with null expiration dates, and getSharedAccessTokenIfSupported() returns such tokens, this causes a crash when checking if proactive refresh is needed.

Fix in Cursor Fix in Web

* fix bad comment

* try to make sbom stuff more robust

* drop mvn plugins that are problematic, see to cause build errors

* use reactor build

* sboms

* fix sbom generation

* update package-lock in psoxy-test

* fix gcp release artifact script

* prompt user if gcp artifact has already been published

* prompt user if aws artifact has already been published

* warn if we're NOT running in the expected place
@eschultink eschultink enabled auto-merge (squash) November 12, 2025 14:29
function_name = module.gate_instance.function_name
qualifier = aws_lambda_alias.provisioned[0].name
provisioned_concurrent_executions = var.keep_warm_instances
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Provisioned Concurrency: Lambda Versioning Required

The provisioned concurrency configuration creates an alias pointing to $LATEST and then attempts to configure provisioned concurrency on that alias. AWS Lambda doesn't support provisioned concurrency on $LATEST - it requires a published version number. This will cause Terraform to fail when applying the configuration with keep_warm_instances set. The alias needs to point to a published version rather than $LATEST.

Fix in Cursor Fix in Web

@eschultink eschultink merged commit 6169f4d into main Nov 12, 2025
65 checks passed
@eschultink eschultink deleted the rc-v0.5.12 branch November 12, 2025 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants