These 79 commits are when the Protocol Buffers files have changed:
| Commit: | ea6ca00 | |
|---|---|---|
| Author: | Mihir Gandhi | |
| Committer: | GitHub | |
feat: add control-plane connection management for processor (#7126) # Description Opens the processor's dataplane-initiated gRPC connection to **cp-router**, reusing the shared `controlplane.ConnectionManager` (the same mechanism rudder-sources and warehouse use). This makes the processor reachable from cp-router so that, test-flow requests can be forwarded to the per-workspace `rudder-pytransformer`. Only the **node-0** pod opens the connection, so cp-router holds a single inbound connection per dataplane (not one per replica) and node-0 becomes the sole owner of any privileged work served over it. The whole bootstrap is gated behind a config flag and defaults off — this PR is inert until enabled. The `Forward` RPC itself is intentionally **left unimplemented in this PR** (a follow-up PR adds op-routing + the HTTP forward to pyt). Until then cp-router receives `codes.Unimplemented`. ## What's in here - **`proto/processor/processor.proto`** (+ generated `.pb.go` / `_grpc.pb.go`): a generic `ProcessorService` with a single RPC — `Forward(op, workspace_id, payload) → (status_code, body)`. The op is an opaque string and payload/body are JSON bytes, so cp-router stays transformation-agnostic and never grows per-op code. Generated with the repo's pinned plugin versions (`protoc-gen-go` v1.33.0, `protoc-gen-go-grpc` v1.3.0). - **`processor/cpservice/cpservice.go`** — `Service`, the `ProcessorService` gRPC handler. Embeds `UnimplementedProcessorServiceServer` so it registers and serves safely while `Forward` is pending. - **`processor/cpservice/connection.go`** — `Connector`, which wraps `controlplane.ConnectionManager`, registers the handler on the dataplane-side gRPC server, and drives the connection from the workspace connection flags published by the control plane (the warehouse pattern). `ShouldConnect` = feature-enabled **&&** node-0. - **`app/apphandlers/{processor,embedded}AppHandler.go`** — gated bootstrap wired into both modes that run the processor pipeline. GATEWAY mode is intentionally excluded (no processor pipeline; the LLD keeps this off the horizontally-scaled gateway). ## Node-0 detection Reuses `misc.GetInstanceID()` — the same instance-ID ordinal signal `app/cluster/state` uses. It returns the trailing ordinal of `INSTANCE_ID` (`"0"`, `"1"`, …); an unset `INSTANCE_ID` yields `""`, so local runs never connect. ## Config | Key | Default | Purpose | |-----|---------|---------| | `Processor.cpRouterConnection.enabled` | `false` | Master switch for opening the cp-router connection | | `Processor.cpRouterConnection.retryInterval` | `0` (→ 1s) | Reconnect backoff for the connection manager | | `CP_ROUTER_USE_TLS` (reused) | `true` | TLS for the cp-router dial | | `INSTANCE_ID` (reused) | — | Node-0 detection + `AuthInfo.InstanceID` | ## Linear Ticket pipe-3143 ## Security - [ ] The code changed/added as part of this pull request won't create any security issues with how the software is being used.
| Commit: | 59e4de7 | |
|---|---|---|
| Author: | mihir | |
feat: introduce Op enum for processor operations in ForwardRequest 🔒 Scanned for secrets using gitleaks 8.28.0
| Commit: | 9cda68d | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | GitHub | |
chore(jobsdb): multi-consumer partition migration (#7098) # Description Adds `GetPendingConsumerJobs`, a partition-migration-specific method to fetch pending jobs while excluding their latest status(es). - For a multi-consumer jobsdb, each returned job carries only the list of consumers still pending. - Reuses all the existing jobsdb optimizations (dataset iteration, noResultsCache, limits, MoreToken, retry-on-compaction). - Partition migration now uses this method and also communicates the `consumers` field node-to-node (new `repeated string consumers = 12` on the cluster `Job` proto message). ## Linear Ticket resolves PIPE-3053 ## 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. <!-- GitButler Footer Boundary Top --> --- This is **part 3 of 5 in a stack** made with GitButler: - <kbd> 5 </kbd> #7122 - <kbd> 4 </kbd> #7121 - <kbd> 3 </kbd> #7098 👈 - <kbd> 2 </kbd> #7097 - <kbd> 1 </kbd> #7096 <!-- GitButler Footer Boundary Bottom -->
| Commit: | 795763e | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | Aris Tzoumas | |
chore(jobsdb): GetPendingConsumerJobs
| Commit: | b34338f | |
|---|---|---|
| Author: | mihir | |
feat: add control-plane connection management for processor 🔒 Scanned for secrets using gitleaks 8.28.0
| Commit: | 324ac97 | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | Aris Tzoumas | |
chore(jobsdb): GetPendingConsumerJobs
| Commit: | be9603f | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | Aris Tzoumas | |
chore(jobsdb): GetPendingConsumerJobs
| Commit: | ce92b7e | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | Aris Tzoumas | |
chore(jobsdb): GetPendingConsumerJobs
| Commit: | e1350b4 | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | Aris Tzoumas | |
chore(jobsdb): GetPendingConsumerJobs
| Commit: | 77e40d3 | |
|---|---|---|
| Author: | github-actions[bot] | |
Deploy preview for PR #7026
This commit does not contain any .proto files.
| Commit: | 3a9b242 | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | GitHub | |
feat: partition migration grpc server, client and job executor (#6568) 🔒 Scanned for secrets using gitleaks 8.30.0 # Description Introducing a new gRPC-based partition migration system. - `PartitionMigrationServer`: sets up a gRPC multidirectional streaming service for letting clients move jobs to the target jobsdb in the context of a single migration job. Takes care of deduplication of jobs that have already been migrated for each migration job id and table prefix. - `MigrationJobExecutor`: Executes partition migration jobs by moving jobs out of a local jobsdb to a remote jobsdb using the gRPC service. ## Key implementation details - Jobs are fetched in batches (default 10k) and split into smaller chunks (default 1k) for streaming. - The server operates asynchronously: while the receiver goroutine collects incoming chunks, a separate store goroutine persists complete batches to the database. - Memory is bounded using an unbuffered channel for backpressure, ensuring at most 2 batches are in memory at any time (one being assembled, one being stored). - Each batch is acknowledged before the client proceeds sending the last chunk of the next batch. ## Linear Ticket Resolves PIPE-2650 Resolves PIPE-2651 ## 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.
| Commit: | cdd3b6b | |
|---|---|---|
| Author: | Satish Kumar | |
feat: data mapper tester
| Commit: | 97f0c60 | |
|---|---|---|
| Author: | Satish Kumar | |
add proto file for processor grpc service
| Commit: | f86e39b | |
|---|---|---|
| Author: | Satish Kumar | |
feat: framework changes for processor, cp router communication
| Commit: | 9613236 | |
|---|---|---|
| Author: | shekhar-rudder | |
| Committer: | GitHub | |
feat: warehouse grpc API to get namespace mappings of a destination (#6200) ### 📋 **Overview** Implements the `GetDestinationNamespaces` gRPC API method for the warehouse service . The API allows clients to retrieve the most recent namespace for each source associated with a given destination ID. ### ✅ **Changes Made** - **Proto**: Added `GetDestinationNamespaces` RPC method and corresponding request/response messages - **Model**: Added `NamespaceMapping` struct with `SourceID` and `Namespace` fields - **Repository**: Added `GetDestinationNamespaces` method using `DISTINCT ON` query to get most recent namespace per source - **gRPC Service**: Implemented API method with input validation, error handling, and structured logging - **Tests**: Added comprehensive repository and gRPC tests ## 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.
The documentation is generated from this commit.
| Commit: | 52ba55d | |
|---|---|---|
| Author: | Shashank Shekhar | |
feat: warehouse grpc API to get namespace mappings of a destination
The documentation is generated from this commit.
| Commit: | f365c7c | |
|---|---|---|
| Author: | shekhar-rudder | |
| Committer: | GitHub | |
feat: gRPC API to expire the warehouse schema of a destination (#5508) # Description This PR adds a GRPC API which expires all warehouse schemas of a destination in the `wh_schemas` table by setting `expiresAt` column as `now()`. This will ensure that the next time these schemas are fetched from the DB, they will re-fetched from the warehouse. ## 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.
| Commit: | b35a657 | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
feat: sync latency metrics api (#5500)
| Commit: | 90b48b5 | |
|---|---|---|
| Author: | Mihir Khambhati | |
| Committer: | GitHub | |
feat: add api to get first aborted uploads in series of continuous aborts (#4838)
| Commit: | dbd4ea6 | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
feat: health dashboard (#3906)
| Commit: | a07cf9e | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
chore: remove unused code from warehouse (#3567)
| Commit: | 0bda13f | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | GitHub | |
chore: applying 1.9.1 and 1.9.2 hotfixes to main branch (#3413)
| Commit: | e9f2174 | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | GitHub | |
chore: batch event schema messages for faster processing (#3406)
| Commit: | 9accebf | |
|---|---|---|
| Author: | Rohith BCS | |
| Committer: | GitHub | |
feat: schema forwarder (#3146)
| Commit: | 52d9392 | |
|---|---|---|
| Author: | Aris Tzoumas | |
| Committer: | GitHub | |
chore: data residency adaptations (#2703)
| Commit: | 3d2d87e | |
|---|---|---|
| Author: | Deepak Rai | |
| Committer: | GitHub | |
chore(warehouse): validate object storage credentials (#2440) * Introduced api for object storage validation * Changes data type for isValid * Resolved code issues * Changed directory of test file for upload * Comments resolution * Error print in case of upload failure * Handled case for bucketName not present * Added base implementation of fallback logic for s3 * Refactored codebase to allow for better gRPC handling * Added deletion functionality * ContainerName in case of azure blob * Updated proto files to accept json object in config field * Minor change: printin error * Added download functionality for object storage validation * Included few checks * Minor correction * Liniting fixes * Updated the function endpoint to capture status codes as part of error along with some other refactorings * Updated warehouse proto files * Updated object storage validation api * Code refactoring * Code refactoring * Updated grpc files * Updated grpc files * Build failed resolution * Code comments * made changes to pass correct generated files * Code refactoring * Code refactoring * Code refactoring * Rectified error * Rectified error * Rectified error * Format code with gofumpt * Updated go.mod and go.sum file * Corrected warehouse grpc file * Added test case for api.go * Ran make fmt * Updated test message Co-authored-by: Abhimanyu Babbar <abhimanyu.babbar89@gmail.com> Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
| Commit: | 212db1e | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
chore(warehouse): warehouse retry uploads count (#2275)
| Commit: | 92600fd | |
|---|---|---|
| Author: | Pavan Chaithanya | |
| Committer: | GitHub | |
chore: add token type for success message (#2408)
| Commit: | 689edd6 | |
|---|---|---|
| Author: | Pavan Chaithanya | |
| Committer: | GitHub | |
chore: change proto message names (#2394)
| Commit: | 3c86dab | |
|---|---|---|
| Author: | Rohith BCS | |
| Committer: | GitHub | |
feat: cpRouter Multitenant Support (#2233)
| Commit: | bac75a6 | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
chore(warehouse): added merge partition pruning for deltalake changes. (#2175)
| Commit: | 230473b | |
|---|---|---|
| Author: | Akash Chetty | |
| Committer: | GitHub | |
feat(warehouse): added support for multi retry admin api (#1889)
| Commit: | 745e8f0 | |
|---|---|---|
| Author: | Akash Chetty | |
proto files updated for WHValidationRequest and WHValidationResponse.
| Commit: | 41eab75 | |
|---|---|---|
| Author: | Akash Chetty | |
Added validation for destination proto files for warehouse.
| Commit: | 2a4ef3e | |
|---|---|---|
| Author: | Akash Chetty | |
Added databricks proto files
| Commit: | 1406db0 | |
|---|---|---|
| Author: | Akash Chetty | |
Make some changes around databricks.proto
| Commit: | 80c279e | |
|---|---|---|
| Author: | Akash Chetty | |
Added execute query
| Commit: | f1d4644 | |
|---|---|---|
| Author: | Akash Chetty | |
Updated proto files for databricks.proto
| Commit: | d170c0b | |
|---|---|---|
| Author: | Akash Chetty | |
Close proto changes.
| Commit: | 9e57b61 | |
|---|---|---|
| Author: | Akash Chetty | |
Added proto files.
| Commit: | fba20b4 | |
|---|---|---|
| Author: | Leonidas Vrachnis | |
| Committer: | GitHub | |
Remove vendor files (#1285) * Remove vendor * rm -mod=vendor * Add caching
| Commit: | 9ff3512 | |
|---|---|---|
| Author: | achetty | |
Made changes for TriggerWhUploadsResponse
| Commit: | d7e7360 | |
|---|---|---|
| Author: | BipinMandava | |
wh dest sync now
| Commit: | fcbea31 | |
|---|---|---|
| Author: | BipinMandava | |
| Committer: | BipinMandava | |
No retry for archived wh uploads
| Commit: | 1b92741 | |
|---|---|---|
| Author: | Sidddddarth | |
| Committer: | GitHub | |
badgerv2->v2.2007.2 (#1066) * badgerv2->v2.2007.2
| Commit: | e4671f4 | |
|---|---|---|
| Author: | BipinMandava | |
| Committer: | BipinMandava | |
wh upload retry
| Commit: | 4d7bd7b | |
|---|---|---|
| Author: | srikanth | |
Authotize syncs by source config
| Commit: | e7ecd90 | |
|---|---|---|
| Author: | srikanth | |
Add last_exec_at to sync detail
| Commit: | 513d445 | |
|---|---|---|
| Author: | srikanth | |
Minor tweaks to warehouse proto
| Commit: | 7b7b478 | |
|---|---|---|
| Author: | BipinMandava | |
WH health endpoint
| Commit: | 909eb35 | |
|---|---|---|
| Author: | srikanth | |
Add createdAt to upload detail endpoint
| Commit: | cd816da | |
|---|---|---|
| Author: | srikanth | |
Few more tweaks to warehouse proto
| Commit: | 831df52 | |
|---|---|---|
| Author: | srikanth | |
Changes to warehouse proto
| Commit: | bbfd247 | |
|---|---|---|
| Author: | srikanth | |
Add additional fields
| Commit: | b0465e8 | |
|---|---|---|
| Author: | gane5hvarma | |
api response changes
| Commit: | 89a0e13 | |
|---|---|---|
| Author: | gane5hvarma | |
change api routes
| Commit: | f1a6b83 | |
|---|---|---|
| Author: | gane5hvarma | |
working warehouse apis through grpc
| Commit: | 6881655 | |
|---|---|---|
| Author: | gane5hvarma | |
refactor proto files
| Commit: | 0ae87e6 | |
|---|---|---|
| Author: | gane5hvarma | |
warehouse grpc apis
| Commit: | 382e287 | |
|---|---|---|
| Author: | BipinMandava | |
| Committer: | BipinMandava | |
migrating dedup
| Commit: | c7c5e03 | |
|---|---|---|
| Author: | Ruchira | |
added google pub/sub as destination
| Commit: | 7aaa861 | |
|---|---|---|
| Author: | Ruchira | |
rebased for go modules with master
| Commit: | b5c8ca0 | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
updated for firehose
| Commit: | e20ea8f | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
showing information to user for firehose
| Commit: | c59f8c8 | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
5213fb7df102a5c1630888633d6bdcf382d67d73
| Commit: | 6c414d8 | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
added sending simple events to firehose
| Commit: | 8f3a6bb | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
changing for firehose
| Commit: | b70569b | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
updated for firehose
| Commit: | 7afc3f2 | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
showing information to user for firehose
| Commit: | bbfbe4f | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
5213fb7df102a5c1630888633d6bdcf382d67d73
| Commit: | cbb60b5 | |
|---|---|---|
| Author: | Ruchira | |
| Committer: | Ruchira | |
added sending simple events to firehose
| Commit: | 989be14 | |
|---|---|---|
| Author: | chandumlg | |
| Committer: | GitHub | |
Chandu/badger crash fix (#346) * badger crash fix Co-authored-by: Chandra shekar Varkala <chandra@rudderlabs.com>
| Commit: | 9a0542a | |
|---|---|---|
| Author: | lokey | |
| Committer: | GitHub | |
Revert "Postgres version compatibility check (#159)" (#160) This reverts commit 1a5df33b6a0cef09b5d63600359bf3d4d5d1f829.
| Commit: | 1a5df33 | |
|---|---|---|
| Author: | chandumlg | |
| Committer: | GitHub | |
Postgres version compatibility check (#159)
| Commit: | e1384c3 | |
|---|---|---|
| Author: | Chandra shekar Varkala | |
Postgres version compatibility check
| Commit: | 6b4a1be | |
|---|---|---|
| Author: | srikanth | |
| Committer: | SumanthPuram | |
Bigquery support (#97) Redshift, BigQuery, GCS and Azure Blob support
| Commit: | bd24a3c | |
|---|---|---|
| Author: | chandumlg | |
| Committer: | SumanthPuram | |
Feature hosted service (#94) Rudder's Hosted service
| Commit: | 7ba3d36 | |
|---|---|---|
| Author: | sayan-rudder | |
| Committer: | SumanthPuram | |
changes from master and session change (#91) * Add enterprise edition of docker compose file which includes grafana dashboard. * Fix dashboard repo path. * Fix ops dashboard path. * Fix bug with sourceIDFilters for batchrouter * Add timestamp to filename for s3 dumps * Cleaning up config toml * use sourceIDFilters also in setting ds empty result cache * v0.1.1 * Add sourceID to csutomval in empty cache for batch router on job status update * Support for VictorOps and Pagerduty (#87) * Fix jobsdb empty cache (#86) * Add sourceid as key in nested map for meptyresultcache * Add locks to inProgressMap in batchrouter to eliminate concurrent access * Remove unused code * Fixing alert if-else * Release script and Source debugger assert only in dev * Removing debug log * Changes to ginkgo tests for segment compatability * Update README.md * Update correctness.go * Update correctness.go * Add instanceName as a tag to all stats. * Adding 204 as success status * Add all 2** statucodes as success status * Dedup events at gateway using BadgerDB (#88) Use Badger K/V store to dedup events at gateway * Order by job_id for table dumps * Update README.md * Update README.md * Update README.md * Send empty array if properties is empty * add session id to singular events * append time info to log statements * resolve conflicts * changes to add session on job limit, adding logs * sdks send shorthand AM, GA in integrations array * revert adding time info to logs * handle the bug of not initializing empty array * dst and correctness test of s3 * Revert "dst and correctness test of s3" This reverts commit 148eea998f0d3b2adf7390a2d1186df2d476644a. * Revert "sdks send shorthand AM, GA in integrations array" This reverts commit 5b1205d50d092c539103dc7cb8a116fe52860dbb. * refactor logging * change session to uuid * update log levels and logging * more cleanup
| Commit: | cce6dd4 | |
|---|---|---|
| Author: | srikanth | |
| Committer: | SumanthPuram | |
Dedup events at gateway using BadgerDB (#88) Use Badger K/V store to dedup events at gateway