forked from rudderlabs/rudder-server
-
Notifications
You must be signed in to change notification settings - Fork 0
[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
pull
wants to merge
3,287
commits into
rizalgowandy:master
Choose a base branch
from
rudderlabs:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+310,478
−1,574,322
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4155fa2
to
b124ce4
Compare
…ted transactions (#5585) # Description  - 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 Avoiding unnecessary evaluation of `fmt.Sprintf` which is slow  ```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.
Release-As: 1.45.0
# 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.
🤖 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )