Skip to content

[pull] master from rudderlabs:master #44

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3,287 commits into
base: master
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Sep 20, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

atzoum and others added 25 commits March 11, 2025 08:51
…ted transactions (#5585)

# Description

![Untitled Diagram
drawio](https://github.com/user-attachments/assets/ff5504f1-3859-41da-9f55-ff6e41b762f0)

- Inside jobsdb, `noResultsCache` uses its own concept of transactions
for properly handling concurrent reads/writes and avoiding caching stale
results.
- A `noResultsCache` transaction begins before a query against a dataset
happens and this transaction gets committed if the query doesn't return
any results.
- Each transaction has an id and when the transaction begins, it marks
all cache entries that it plans to mark as having no jobs by adding its
id in the entries' list of **pending ids**.
- During commit, the entry will be updated as having no jobs, as long as
the entry's list of pending ids still contains the transaction id, i.e.
no write operation happened in the meantime which invalidated the entry.
- Each entry has a **bounded limit of 10** for the number of pending
transaction ids that it can hold.
- If the entry's list is full with ids (transaction ids which didn't
ever commit) the code's documentation claims that it keeps only the
latest 10 ids, i.e. removes older ones. **However, in practice, the code
was retaining the 10 earliest ones, discarding newer ids**.

Effectively, if a pipeline managed to retrieve jobs in a dataset for 10
consecutive times, the dataset's cache entries for this pipeline cannot
be updated again as having no jobs, causing the cache for this dataset
to be disabled for this pipeline unless something else manages to
invalidate the cache entries!

## Additional changes
- Adding some logging in `NoResultsCache` for capturing whenever a whole
branch of the cache is getting invalidated unexpectedly.
- Adding a metric counter for capturing pipelines that fail to commit
all their cache entries when there are no results

## Linear Ticket

resolves PIPE-1954
resolves PIPE-1956

## 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.
)

# Description

We shouldn't be logging a warning when leaf nodes get invalidated

## 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.
# Description

Avoiding unnecessary evaluation of `fmt.Sprintf` which is slow


![image](https://github.com/user-attachments/assets/9f865feb-75d0-4730-88a5-4d1ad5af61b0)

```go
func BenchmarkCheckValidJobState(b *testing.B) {

	jobStates := lo.Map(jobStates, func(s jobStateT, _ int) string { return s.State })
	var a dummyAssert
	b.Run("v1", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			checkValidJobStatev1(a, jobStates)
		}
	})

	b.Run("v2", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			checkValidJobStatev2(a, jobStates)
		}
	})

}
```
```sh
goos: darwin
goarch: arm64
pkg: github.com/rudderlabs/rudder-server/jobsdb
cpu: Apple M1 Pro
BenchmarkCheckValidJobState2
BenchmarkCheckValidJobState2/v1
BenchmarkCheckValidJobState2/v1-10 	   90434	     13019 ns/op	    6613 B/op	     190 allocs/op
BenchmarkCheckValidJobState2/v2
BenchmarkCheckValidJobState2/v2-10 	 3285302	       371.2 ns/op	     336 B/op	       2 allocs/op
```
## 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.
# Description

- using plain string concatenation instead of formatted strings for
critical paths
- caching and using reloadable configuration variables instead of asking
for the same variable again and again in critical paths

```sh
goos: darwin
goarch: arm64
pkg: github.com/rudderlabs/rudder-server/processor
cpu: Apple M1 Pro
BenchmarkSprintfvsConcat
BenchmarkSprintfvsConcat/Sprintf
BenchmarkSprintfvsConcat/Sprintf-10         	 2810226	       430.2 ns/op	     288 B/op	      10 allocs/op
BenchmarkSprintfvsConcat/Concat
BenchmarkSprintfvsConcat/Concat-10          	 9418416	       124.6 ns/op	     147 B/op	       2 allocs/op
```

## 1. Sprintf issue in processor's updateMetricMaps
<img width="845" alt="Screenshot 2025-03-12 at 11 11 17 AM"
src="https://github.com/user-attachments/assets/1aaa3f52-e3e9-4cdf-8ca9-167f6dd1d336"
/>

## 2. Router's prepareRouterJobResponses spending too much time for
resolving configuration
<img width="845" alt="Screenshot 2025-03-12 at 11 29 13 AM"
src="https://github.com/user-attachments/assets/5bc0ec26-3b46-4b7c-b177-9596b3dc05e2"
/>

## 3. Router & Batchrouter spending too much time on draining logic
inside getRetentionTimeForDestination
<img width="845" alt="Screenshot 2025-03-12 at 11 42 33 AM"
src="https://github.com/user-attachments/assets/e42abdbb-592b-44ff-ad02-966e12cec6d4"
/>


```go
func BenchmarkSprintfvsConcat(b *testing.B) {
	SourceID := "source_id"
	DestinationID := "destination_id"
	SourceJobRunID := "source_job_run_id"
	TransformationID := "transformation_id"
	TransformationVersionID := "transformation_version_id"
	TrackingPlanID := "tracking_plan_id"
	TrackingPlanVersion := 1
	status := "status"
	StatusCode := 200
	eventName := "event_name"
	eventType := "event_type"

	sprintf := func() string {
		return fmt.Sprintf("%s:%s:%s:%s:%s:%s:%d:%s:%d:%s:%s",
			SourceID,
			DestinationID,
			SourceJobRunID,
			TransformationID,
			TransformationVersionID,
			TrackingPlanID,
			TrackingPlanVersion,
			status,
			StatusCode,
			eventName,
			eventType,
		)
	}

	concat := func() string {
		return SourceID + ":" +
			DestinationID + ":" +
			SourceJobRunID + ":" +
			TransformationID + ":" +
			TransformationVersionID + ":" +
			TrackingPlanID + ":" +
			strconv.Itoa(TrackingPlanVersion) + ":" +
			status + ":" +
			strconv.Itoa(StatusCode) + ":" +
			eventName + ":" +
			eventType
	}

	b.Run("Sprintf", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			sprintf()
		}
	})

	b.Run("Concat", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			concat()
		}
	})
}
```

## Linear Ticket

resolves PIPE-1964

## 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.
# Description

Removing `ValidatePostInfo` since it isn't really validating anything at
all and it accounts for 10% of the overall `processDestinationJobs`
time.
```go
func TestValidatePostInfo(t *testing.T) {
	err := ValidatePostInfo(PostParametersT{})
	require.Error(t, err)
}
```
```sh
=== RUN   TestValidatePostInfo
    /Users/aristzoumas/work/rudder-server/processor/integrations/integrations_test.go:11:
        	Error Trace:	/Users/aristzoumas/work/rudder-server/processor/integrations/integrations_test.go:11
        	Error:      	An error is expected but got nil.
        	Test:       	TestValidatePostInfo
--- FAIL: TestValidatePostInfo (0.00s)
```
<img width="1110" alt="Screenshot 2025-03-12 at 1 05 12 PM"
src="https://github.com/user-attachments/assets/c1915377-cd44-44b4-b7ad-4438ebe299b3"
/>

## Linear Ticket

resolves PIPE-1965

## 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.
# Description

`findWorkerSlot` cpu breakdown:
- 14% unmarshalling parameters for getting destination id
- 12% resolving `Router.orderingDisabledWorkspaceIDs` configuration
option
- 12% resolving `Router.orderingDisabledDestinationIDs` configuration
option
- 53% calling `drainOrRetryLimitReached` (addressing this in #5591 )
- 9% other

We are eliminating the time for the first 3 bullets by:
1. reading destination id only once and skipping unmarshalling
2. using cached reloadable configuration variables

<img width="1474" alt="Screenshot 2025-03-12 at 1 51 15 PM"
src="https://github.com/user-attachments/assets/9b6b0c60-baa6-4295-a164-300ecd0c735f"
/>

## Linear Ticket

resolves PIPE-1966

## 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.
# Description

race condition in dedup service causing panic, since two go routines are
trying to commit the same key

## Linear Ticket

resolves PIPE-1970

## 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.
# Description
OAuth v2 assumes all jobs in batch are related to a single destination
ID, and that only happens if isolation mode is destination, but in
hosted we have isolation mode set to none so we are grouping jobs by
destination before going to transformer.

Resolves INT-3394

## Linear Ticket

https://linear.app/rudderstack/issue/INT-3394

## Security

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

---------

Co-authored-by: Aris Tzoumas <[email protected]>
Release-As: 1.45.0

# Description

dummy commit

## Linear Ticket

## Security

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

Syncing patch release v1.45.1 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: sonnet panic while unmarshalling float64 types (#5616)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Aris Tzoumas <[email protected]>
# Description

- fix: race condition in dedup service causing panic, since two go
routines are trying to commit the same key
- chore: remove scylla implementation
- chore: use real batching while checking keys against badger db (up to
40% performance improvement)


```bash
Benchmark_Dedup/no_duplicates
Benchmark_Dedup/no_duplicates/single_1_events_per_batch
badger 2025/03/17 12:06:45 INFO: All 0 tables opened in 0s
badger 2025/03/17 12:06:45 INFO: Discard stats nextEmptySlot: 0
badger 2025/03/17 12:06:45 INFO: Set nextTxnTs to 0
Benchmark_Dedup/no_duplicates/single_1_events_per_batch-10         	  112012	      9872 ns/op	   4593399 bytes	    112012 events	    4317 B/op	      82 allocs/op
Benchmark_Dedup/no_duplicates/batch_1_events_per_batch
Benchmark_Dedup/no_duplicates/batch_1_events_per_batch-10          	  121140	     11661 ns/op	   4976775 bytes	    121140 events	    4294 B/op	      81 allocs/op
Benchmark_Dedup/no_duplicates/single_10_events_per_batch
Benchmark_Dedup/no_duplicates/single_10_events_per_batch-10        	  278182	      4299 ns/op	  11572539 bytes	    278182 events	    2202 B/op	      41 allocs/op
Benchmark_Dedup/no_duplicates/batch_10_events_per_batch
Benchmark_Dedup/no_duplicates/batch_10_events_per_batch-10         	  398065	      3135 ns/op	  16607625 bytes	    398065 events	    1770 B/op	      28 allocs/op
Benchmark_Dedup/no_duplicates/single_100_events_per_batch
Benchmark_Dedup/no_duplicates/single_100_events_per_batch-10       	  397185	      3595 ns/op	  16570665 bytes	    397185 events	    2062 B/op	      38 allocs/op
Benchmark_Dedup/no_duplicates/batch_100_events_per_batch
Benchmark_Dedup/no_duplicates/batch_100_events_per_batch-10        	  534151	      2361 ns/op	  22323237 bytes	    534151 events	    1416 B/op	      24 allocs/op
Benchmark_Dedup/no_duplicates/single_1000_events_per_batch
Benchmark_Dedup/no_duplicates/single_1000_events_per_batch-10      	  300240	      3557 ns/op	  12498975 bytes	    300240 events	    2122 B/op	      38 allocs/op
Benchmark_Dedup/no_duplicates/batch_1000_events_per_batch
Benchmark_Dedup/no_duplicates/batch_1000_events_per_batch-10       	  527928	      2271 ns/op	  22061871 bytes	    527928 events	    1521 B/op	      24 allocs/op
Benchmark_Dedup/no_duplicates/single_10000_events_per_batch
Benchmark_Dedup/no_duplicates/single_10000_events_per_batch-10     	  276345	      3715 ns/op	  11495385 bytes	    276345 events	    2123 B/op	      38 allocs/op
Benchmark_Dedup/no_duplicates/batch_10000_events_per_batch
Benchmark_Dedup/no_duplicates/batch_10000_events_per_batch-10      	  494577	      2546 ns/op	  20661129 bytes	    494577 events	    1503 B/op	      24 allocs/op
```
## Linear Ticket

Resolves 

PIPE-1970

## 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.
# Description

Syncing patch release v1.52.5 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: warehouse transformations id resolution (#6029)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Mihir Gandhi <[email protected]>
Co-authored-by: Aris Tzoumas <[email protected]>
Co-authored-by: shekhar-rudder <[email protected]>
Co-authored-by: Utsab Chowdhury <[email protected]>
Co-authored-by: Rohith BCS <[email protected]>
Co-authored-by: Akash Chetty <[email protected]>
# Description

Latest version of `errgroup.Group` introduces a [breaking
change](golang/go#53757 (comment)),
which doesn't propagate a panic until `Wait` is called. Thus, wherever
we postpone the `Wait` call until shutdown, we are replacing usages of
`errgroup.Group` with `kitsync.ErrGroup` which is based on the previous
behaviour of the `errgroup.Group`.

We are not using `kitsync.EagerGroup` for the following reasons:
- A zero-value `kitsync.EagerGroup` is not valid
- It exhibits unique behaviour with respect to context cancellation
which can lead to propagating an error during `EagerGroup.Wait` even
though no goroutine returned an error. This has to do mostly with the
eager group avoiding to call goroutines if the context has been canceled
and it communicates this condition through an error.

## Linear Ticket

resolves PIPE-2154

## 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.
Description

With the v2 SDK, if the endpoint is passed as an empty string it is
using the empty endpoint to route the data. This is not going to affect
any customers but should rather affect tests. error index was one place
where we were passing an empty endpoint and this caused issues

## Linear Ticket

fixes PIPE-2167

## 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.
…-reloadable config change (#6036)

# Description

Using an environment variable proved to be suboptimal

## 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.
# Description

- Add sourceType to batch request statistics for internalBatch requests
- Update getSourceConfigFromSourceID method to return source type
- Modify handle logic to populate sourceType in batch request stats

## Linear Ticket

pipe-2160

## 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.
shekhar-rudder and others added 24 commits June 23, 2025 20:39
🤖 I have created a release *beep* *boop*
---


##
[1.53.0](v1.52.0...v1.53.0)
(2025-06-23)


### Features

* add support for Snowflake Iceberg tables
([#5922](#5922))
([93b3f5e](93b3f5e))


### Bug Fixes

* add golang.org/x/net/html vulnerability
([#5988](#5988))
([92f8c1c](92f8c1c))
* add source type to internalBatch request stats
([#6030](#6030))
([1c8350e](1c8350e))
* add validation to skip disabled destinations to be associated with
accounts
([#5985](#5985))
([06a584c](06a584c))
* signal handling in NotifyContextWithCallback
([#5987](#5987))
([c3fc223](c3fc223))


### Miscellaneous

* add metrics for duplicate events in staging files
([#5998](#5998))
([2e3ffc5](2e3ffc5))
* bump go kit
([#6034](#6034))
([1fcb140](1fcb140))
* create enterprise images with an additional race enabled build
([#5999](#5999))
([f8d2a94](f8d2a94))
* enable warehouse race test
([#5997](#5997))
([baa83f7](baa83f7))
* gateway warehouse integration test
([#5996](#5996))
([861fada](861fada))
* sync release v1.52.1 to main branch
([#6009](#6009))
([deb8c00](deb8c00))
* sync release v1.52.2 to main branch
([#6019](#6019))
([6cdbb65](6cdbb65))
* sync release v1.52.3 to main branch
([#6024](#6024))
([3fecf81](3fecf81))
* sync release v1.52.4 to main branch
([#6027](#6027))
([fbf54fe](fbf54fe))
* sync release v1.52.5 to main branch
([#6032](#6032))
([8f60155](8f60155))
* update nodeSelector for warehouse benchmark deploy
([#6001](#6001))
([4e6d4ac](4e6d4ac))
* use a reloadable config for deciding whether to shudown on
non-reloadable config change
([#6036](#6036))
([3d0a05a](3d0a05a))
* use kitsync.ErrGroup instead of errgroup.Group
([#6011](#6011))
([bba66d6](bba66d6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
# Description

Syncing release v1.53.0 to main branch

**WARNING: Do NOT rewrite git history and ALWAYS use a "Merge Commit"
for merging!**

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
feat: propagate snowpipe iceberg config to snowpipe service (#6013)
feat: implement configurable event blocking (#6018)
END_COMMIT_OVERRIDE
# Description

inject stats in source transformer to avoid using global stats.

## Linear Ticket

-

## 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.
# Description

Syncing patch release v1.53.1 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
chore: oauth platform error logs (#6053)
chore: add logging for HasDynamicConfig flag in destination config
(#6054)
fix: ensure hasDynamicConfig field always present in DestinationT JSON
(#6057)
chore: keydb deduplication mirroring (#6058)
fix: personalise aws v2 implementation fails with unmarshal error
(#6050)
fix: statsExcludedTags causes server to shutdown immediately (#6060)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Dilip Kola <[email protected]>
Co-authored-by: Francesco Casula <[email protected]>
Co-authored-by: Rohith BCS <[email protected]>
Co-authored-by: Aris Tzoumas <[email protected]>
# Description

- Postgres docker load test race condition.

## Linear Ticket

- Fixes WAR-820

## 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.
# Description

Occasionally, the reporting service is receiving a double-encoded
invalid HLL value `5c78313139303766`.

This PR adds strategic debug logging at three critical checkpoints in
the HLL data lifecycle to pinpoint exactly where the double encoding
occurs:

- Before Database Storage (users_reporter.go): Logs when the problematic
value is detected just before storing HLL data to the database
- After Database Retrieval (tracked_users_inapp.go): Logs when the
problematic value is found in data retrieved from the database
- After JSON Marshalling (tracked_users_inapp.go): Logs when the
problematic value appears in the final marshalled report payload

## Linear Ticket

Resolves OBS-857

## Security

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

Syncing patch release v1.53.2 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: bigquery load errors population (#6065)
fix: custom type in payload during enrichment (#6064)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Dilip Kola <[email protected]>
Co-authored-by: Francesco Casula <[email protected]>
Co-authored-by: Rohith BCS <[email protected]>
Co-authored-by: Aris Tzoumas <[email protected]>
Co-authored-by: Akash Chetty <[email protected]>
# Description

This PR moves bot event dropping from the ingestion service to the
processor to capture accurate reporting metrics before deduplication
occurs.

### Background
Previously, bot events were dropped at the ingestion service level. The
main issue was that there is currently no way to emit reporting metrics
from ingestion, so we were using Prometheus metrics to power the UI
which are not accurate. Now we are using reporting metrics in the
processor to capture accurate bot event statistics.


### Changes made
- Drop bot events in the processor when botAction is set to "drop" in
message parameters
- Block live events recording in gateway for bot events that will be
dropped in the processor
- Capture accurate bot event metrics before the deduplication stage

#### Additional changes
- Move event blocking logic to occur before dedup processing.
- Cleanup `botAction` empty check before enriching them.


## Linear Ticket

Resolves OBS-858

## Security

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

- Add leaky uploader functionality to handle invalid JSON payloads
- Upload invalid payloads to s3 for debugging and analysis
- Ensure valid payloads are processed normally without being uploaded
- Configure leaky uploader with S3 storage options
- Implement backoff and buffer mechanisms for failed uploads

## Linear Ticket

pipe-2188

## 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.
# Description
This pull request makes a small but important change to the logging
level in the `refreshClient` method of the `CustomManagerT` struct. The
change updates the log level from `Debug` to `Info` to ensure that
refresh operations are logged with higher visibility.

*
[`router/customdestinationmanager/customdestinationmanager.go`](diffhunk://#diff-1e9610e1dd9e153448cfb4ad28adbe60b0b5d9cd300e998e0cc1bfda227aeedeL226-R226):
Changed the logging level from `Debugn` to `Infon` in the
`refreshClient` method to increase the visibility of refresh operations.
## Linear Ticket


https://linear.app/rudderstack/issue/INT-3715/investigate-zoopla-error-with-google-sheets-destination-delivery

## Security

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

Syncing release v1.54.0 to main branch.

**WARNING: Do NOT rewrite git history and ALWAYS use a "Merge Commit"
for merging!**

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE 
END_COMMIT_OVERRIDE

Co-authored-by: Mihir Khambhati <[email protected]>
# Description
- Fix duplicate loadfiles for datalakes using deterministic file name
using format `<hash of locations of staging files>.<sourceId>.<file
format>`



## Linear Ticket
Part of WAR-666

## Security

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

---------

Co-authored-by: shekhar-rudder <[email protected]>
Co-authored-by: Akash Chetty <[email protected]>
# Description

Syncing patch release v1.54.1 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: update validation and conversion of timestamp to bingads offline
conversion supported format (#6082)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Aris Tzoumas <[email protected]>
# Description

Syncing patch release v1.54.2 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: disable column index for parquet writer (#6088)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Ranjeet <[email protected]>
Co-authored-by: Ranjeet <[email protected]>
Co-authored-by: Akash Chetty <[email protected]>
# Description

Remove the legacy savePayloadOnError configuration, which stored the
payload as the sample response. This is no longer needed since the
payload is now populated in the sample event column for reporting.

## Linear Ticket

## Security

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

## Description

- The `getTransformerProxyURL` function now prioritizes the
`TRANSFORMER_PROXY_URL` environment variable. If this variable is not
set, it falls back to `DEST_TRANSFORM_URL`.
- Added unit tests to cover all environment variable scenarios.

## Linear Ticket

- Reference: [INT-3943 - Add support for dedicated deployment for
transformer
proxy/delivery](https://linear.app/rudderstack/issue/INT-3943/add-support-for-dedicated-deployment-for-transformer-proxydelivery)

## Security

- [x] The code changes in this pull request do not introduce any new
security issues.
# Description

Syncing patch release v1.54.4 to main branch

**↓↓ Please review and edit commit overrides before merging ↓↓**

BEGIN_COMMIT_OVERRIDE
fix: update validation and conversion of timestamp to bingads offline
conversion supported format (#6082)
fix: disable column index for parquet writer (#6088)
chore: upgrade go kit (#6103)
chore: update golang.org/x/sync to v0.16.0 (#6111)
fix: remove region from provider config for backups (#6109)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Sudip Paul <[email protected]>
Co-authored-by: Ranjeet <[email protected]>
Co-authored-by: Ranjeet <[email protected]>
Co-authored-by: Rohith BCS <[email protected]>
Co-authored-by: Mihir Gandhi <[email protected]>
Co-authored-by: Mihir Khambhati <[email protected]>
… (WAR-866) (#6095)

# Description

- Introduces a new table, `wh_staging_file_schema_snapshots`, to store
JSON-encoded schema snapshots for staging files, keyed by source,
destination, and workspace.
- Adds two columns to **wh_staging_files**:
  - `schema_snapshot_id` (UUID, references the new snapshot table)
- `schema_snapshot_patch` (TEXT, stores a JSON Patch diff from the
snapshot to the actual schema)
- Adds supporting indexes for efficient lookup and retrieval.

# Linear Ticket

[WAR-866: Migration for snapshot
table](https://linear.app/rudderstack/issue/WAR-866/migration-for-snapshot-table)

# 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.