Skip to content

Handle Salesforce Bulk external IDs during transform#1

Merged
etsenake merged 9 commits into
feat/salesforce-bulk-uploadfrom
codex/implement-salesforce-async-job-helper
Oct 18, 2025
Merged

Handle Salesforce Bulk external IDs during transform#1
etsenake merged 9 commits into
feat/salesforce-bulk-uploadfrom
codex/implement-salesforce-async-job-helper

Conversation

@etsenake
Copy link
Copy Markdown
Collaborator

Summary

  • add a Salesforce Bulk transform helper that normalizes externalId metadata, selects rudderOperation, and injects identifier columns
  • update the uploader to use the helper and default blank identifier types to Id
  • extend Salesforce Bulk tests for externalId handling and identifier defaults

Testing

  • go test ./router/batchrouter/asyncdestinationmanager/salesforce-bulk -count=1

https://chatgpt.com/codex/tasks/task_e_68f2f4e0f3dc832a8954dfd809548b9e

fracasula and others added 4 commits October 16, 2025 18:55
# Description

Replacing Uber's automaxprocs with go-kit's `maxprocs` package for VPA
in-place support.

### Sidenotes

I'm leaving `go.uber.org/automaxprocs` for the `regulation-worker`.

## Linear Ticket

< No Linear Link >

## Security

- [x] The code changed/added as part of this pull request won't create
any security issues with how the software is being used.
…6444)

# Description

Switching to org-wide docker registry mirror configuration

## Security

- [x] The code changed/added as part of this pull request won't create
any security issues with how the software is being used.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@etsenake
Copy link
Copy Markdown
Collaborator Author

@codex review this PR

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@etsenake
Copy link
Copy Markdown
Collaborator Author

@codex review this

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +28 to +29
operation := determineOperation(normalizedExternalIDs, defaultOperation)
clonedMessage["rudderOperation"] = operation
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve existing rudderOperation in transformed message

The new transform helper computes operation := determineOperation(...) and unconditionally assigns it to clonedMessage["rudderOperation"]. This overwrites any rudderOperation already present in the incoming payload. Previously the transformer forwarded the payload as‑is, so callers could explicitly send rudderOperation: "delete" (or any other supported value) and have it respected. With this change, a message that already specifies a non‑default operation will now be forcibly changed—e.g., a delete request containing an externalId will be transformed into an upsert job, causing records to be inserted or updated instead of deleted. Unless the intention is to ignore all user‑provided operations, this introduces incorrect behavior for any event that explicitly sets rudderOperation.

Useful? React with 👍 / 👎.

@etsenake etsenake force-pushed the feat/salesforce-bulk-upload branch from e3f4c49 to 0fed2ba Compare October 18, 2025 07:53
@etsenake etsenake merged commit 67efcd1 into feat/salesforce-bulk-upload Oct 18, 2025
12 of 52 checks passed
@github-actions github-actions Bot deleted the codex/implement-salesforce-async-job-helper branch December 19, 2025 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants