feat: add Google Cloud Pub/Sub connector view to observability plugins - #3714
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (7)
📝 WalkthroughSummary by CodeRabbit
WalkthroughAdds a Pub/Sub observability provider: enterprise fallback connector UI, a plugin view wrapper, observability registration to show the tab, server-side plugin/handler updates, and two indirect Go module bumps. ChangesPub/Sub UI & server registration
Indirect dependency updates
Sequence DiagramsequenceDiagram
participant ObservabilityView
participant PubSubView
participant PubSubConnectorView
ObservabilityView->>PubSubView: render when provider "pubsub" selected
PubSubView->>PubSubConnectorView: mount PubSubConnectorView
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 golangci-lint (2.12.2)level=error msg="[linters_context] typechecking error: pattern ./...: directory prefix . does not contain main module or its selected dependencies" Comment |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Confidence Score: 5/5Safe to merge — all changes are additive UI scaffolding, a correct behavioral bug fix, and minor dependency bumps with no breaking surface. The UI additions follow established connector patterns exactly, the plugins.go change is a straightforward and correct fix for disabled-plugin status being clobbered, and the enterprisePlugins expansion only affects silent error suppression on non-enterprise builds. No logic paths are removed or altered in a risky way. No files require special attention. Important Files Changed
Reviews (17): Last reviewed commit: "feat: add google pub sub connector" | Re-trigger Greptile |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx`:
- Around line 21-28: Add a testIdPrefix prop to the ContactUsView usage so its
internal interactive buttons get stable data-testid attributes; specifically,
pass testIdPrefix="pubsub-connector" into the ContactUsView instance in
pubsubConnectorView.tsx (the ContactUsView component will then render test IDs
like "pubsub-connector-read-more" and "pubsub-connector-book-demo"). Ensure the
prop name matches ContactUsView's expected prop (testIdPrefix) so existing
internal button rendering logic picks it up without changing other props.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d5c246ff-2fd6-42b7-b418-076bd70182f3
📒 Files selected for processing (3)
ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsxui/app/workspace/observability/views/observabilityView.tsxui/app/workspace/observability/views/plugins/pubsubView.tsx
0b81bb0 to
4a20705
Compare
4a20705 to
60b8e68
Compare
60b8e68 to
b30dbd6
Compare
b30dbd6 to
258734a
Compare
24f4243 to
a72e8f3
Compare
934f696 to
cd812bb
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (2)
ui/app/workspace/observability/views/plugins/pubsubView.tsx (1)
1-1: ⚡ Quick winUse PascalCase for the component filename.
Please rename
pubsubView.tsxtoPubSubView.tsxto align with the component filename convention.As per coding guidelines: "
ui/**/*.tsx: React component files must use PascalCase for component exports and filenames".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/app/workspace/observability/views/plugins/pubsubView.tsx` at line 1, Rename the React component file from pubsubView.tsx to PubSubView.tsx and update the component's export name to PascalCase (e.g., export default function PubSubView or export const PubSubView) so it matches the filename; also update any imports referencing "pubsubView" (for example where PubSubConnectorView is used) to import from "PubSubView" so all references and exports use the PascalCase name consistently.ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx (1)
1-1: ⚡ Quick winUse PascalCase for the component filename.
Please rename
pubsubConnectorView.tsxtoPubSubConnectorView.tsxto match the UI component filename convention.As per coding guidelines: "
ui/**/*.tsx: React component files must use PascalCase for component exports and filenames".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx` at line 1, The filename doesn't follow PascalCase; rename the file from pubsubConnectorView.tsx to PubSubConnectorView.tsx and update all imports that reference pubsubConnectorView to the new filename; also ensure the component export (e.g., default or named export inside the file) uses a PascalCase identifier such as PubSubConnectorView (replace any pubsubConnectorView function/component name) so the filename and exported component name match the ui/**/*.tsx convention.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx`:
- Line 1: The filename doesn't follow PascalCase; rename the file from
pubsubConnectorView.tsx to PubSubConnectorView.tsx and update all imports that
reference pubsubConnectorView to the new filename; also ensure the component
export (e.g., default or named export inside the file) uses a PascalCase
identifier such as PubSubConnectorView (replace any pubsubConnectorView
function/component name) so the filename and exported component name match the
ui/**/*.tsx convention.
In `@ui/app/workspace/observability/views/plugins/pubsubView.tsx`:
- Line 1: Rename the React component file from pubsubView.tsx to PubSubView.tsx
and update the component's export name to PascalCase (e.g., export default
function PubSubView or export const PubSubView) so it matches the filename; also
update any imports referencing "pubsubView" (for example where
PubSubConnectorView is used) to import from "PubSubView" so all references and
exports use the PascalCase name consistently.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: aa7ee584-083a-48c1-9da6-26b1b565bfcf
⛔ Files ignored due to path filters (3)
plugins/governance/go.sumis excluded by!**/*.sumtransports/go.sumis excluded by!**/*.sumui/public/images/pubsub-logo.svgis excluded by!**/*.svg
📒 Files selected for processing (6)
plugins/governance/go.modtransports/bifrost-http/server/server.gotransports/go.modui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsxui/app/workspace/observability/views/observabilityView.tsxui/app/workspace/observability/views/plugins/pubsubView.tsx
cd812bb to
d697f0a
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx (1)
2-2: ⚡ Quick winPrefer alias import over relative traversal in UI TSX files.
Use the project alias path for consistency with the rest of the UI layer (e.g.,
@/app/_fallbacks/enterprise/components/views/contactUsView) instead of../../views/contactUsView.Based on learnings: "In the UI codebase, prefer alias imports using
@/... over relative imports."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx` at line 2, Replace the relative import of ContactUsView in pubsubConnectorView.tsx with the project alias path to match UI conventions: change the import for ContactUsView (used in pubsubConnectorView.tsx) from "../../views/contactUsView" to the alias "`@/app/_fallbacks/enterprise/components/views/contactUsView`" so the file uses the `@/`... alias style consistently with the rest of the UI layer.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx`:
- Line 16: Rename the file pubsubConnectorView.tsx to PascalCase
PubSubConnectorView.tsx and update all imports that reference this file to the
new filename; ensure the exported component PubSubConnectorView remains
unchanged and update any stacked or barrel files that re-export or import it so
the module resolution matches the new PascalCase filename.
---
Nitpick comments:
In
`@ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx`:
- Line 2: Replace the relative import of ContactUsView in
pubsubConnectorView.tsx with the project alias path to match UI conventions:
change the import for ContactUsView (used in pubsubConnectorView.tsx) from
"../../views/contactUsView" to the alias
"`@/app/_fallbacks/enterprise/components/views/contactUsView`" so the file uses
the `@/`... alias style consistently with the rest of the UI layer.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9128ade5-a9a0-42e9-834b-f899e116ac41
⛔ Files ignored due to path filters (3)
plugins/governance/go.sumis excluded by!**/*.sumtransports/go.sumis excluded by!**/*.sumui/public/images/pubsub-logo.svgis excluded by!**/*.svg
📒 Files selected for processing (6)
plugins/governance/go.modtransports/bifrost-http/server/server.gotransports/go.modui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsxui/app/workspace/observability/views/observabilityView.tsxui/app/workspace/observability/views/plugins/pubsubView.tsx
✅ Files skipped from review due to trivial changes (2)
- ui/app/workspace/observability/views/plugins/pubsubView.tsx
- transports/bifrost-http/server/server.go
d697f0a to
b536082
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ui/app/workspace/observability/views/plugins/pubsubView.tsx (1)
3-12:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRename this component file to PascalCase.
PubSubViewis PascalCase, but the filenamepubsubView.tsxis not. Please rename it toPubSubView.tsxand update imports accordingly.As per coding guidelines: "React component files must use PascalCase for component exports and filenames".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/app/workspace/observability/views/plugins/pubsubView.tsx` around lines 3 - 12, The file name does not follow PascalCase for the exported React component PubSubView; rename the file from pubsubView.tsx to PubSubView.tsx and update all imports that reference the old filename (e.g., any import of PubSubView) to use the new filename, ensuring the exported component name PubSubView remains unchanged and any tooling/paths referencing the file are updated.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@ui/app/workspace/observability/views/plugins/pubsubView.tsx`:
- Around line 3-12: The file name does not follow PascalCase for the exported
React component PubSubView; rename the file from pubsubView.tsx to
PubSubView.tsx and update all imports that reference the old filename (e.g., any
import of PubSubView) to use the new filename, ensuring the exported component
name PubSubView remains unchanged and any tooling/paths referencing the file are
updated.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5e29d432-00bb-4ed2-937d-69240571ceda
⛔ Files ignored due to path filters (3)
plugins/governance/go.sumis excluded by!**/*.sumtransports/go.sumis excluded by!**/*.sumui/public/images/pubsub-logo.svgis excluded by!**/*.svg
📒 Files selected for processing (6)
plugins/governance/go.modtransports/bifrost-http/server/server.gotransports/go.modui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsxui/app/workspace/observability/views/observabilityView.tsxui/app/workspace/observability/views/plugins/pubsubView.tsx
2ca1c7f to
300fdd1
Compare
300fdd1 to
7b75be0
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ui/app/workspace/observability/views/plugins/pubsubView.tsx`:
- Around line 3-11: The file exporting the PubSubView React component must be
renamed to match PascalCase; rename the source file to "PubSubView.tsx" so the
filename matches the exported component PubSubView, then update all imports that
reference the previous filename to import PubSubView from the new filename;
ensure any internal references to PubSubConnectorView remain unchanged and run a
quick search/replace across the codebase to update import paths that pointed to
the old filename.
- Line 1: Import path casing for the PubSub connector is inconsistent and can
break on case-sensitive filesystems; update the import statement that references
pubSubConnectorView so the filename segment and exported identifier exactly
match the actual module's casing (ensure the path segment under the pubsub
directory and the exported component name match the real file, e.g., adjust
"/pubsub/pubSubConnectorView" to the exact filename casing and keep the imported
symbol PubSubConnectorView in sync), then rebuild/typecheck to confirm
resolution succeeds.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 3f46c782-967e-460b-a4d2-ea5e7a7bb9f0
⛔ Files ignored due to path filters (3)
plugins/governance/go.sumis excluded by!**/*.sumtransports/go.sumis excluded by!**/*.sumui/public/images/pubsub-logo.svgis excluded by!**/*.svg
📒 Files selected for processing (7)
plugins/governance/go.modtransports/bifrost-http/handlers/plugins.gotransports/bifrost-http/server/server.gotransports/go.modui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsxui/app/workspace/observability/views/observabilityView.tsxui/app/workspace/observability/views/plugins/pubsubView.tsx
✅ Files skipped from review due to trivial changes (2)
- plugins/governance/go.mod
- ui/app/_fallbacks/enterprise/components/data-connectors/pubsub/pubsubConnectorView.tsx
7b75be0 to
3270522
Compare
ca142f8 to
801b534
Compare
3270522 to
ad25c3b
Compare
ad25c3b to
31f979f
Compare
Merge activity
|
The base branch was changed.
31f979f to
2efbce3
Compare
#3714) ## Summary Adds Google Cloud Pub/Sub as a new observability connector option in the UI, gated behind the Bifrost enterprise license. ## Changes - Added a `PubSubConnectorView` fallback component that renders a "Contact Us" / enterprise upsell view when the enterprise license is not present, using the `Rss` icon and linking to the Pub/Sub connector docs. - Added `PubSubView` as a plugin view that wraps `PubSubConnectorView`. - Registered `pubsub` as a supported platform in the observability view list, including a custom inline SVG icon styled in Google blue (`#4285F4`), and wired up the `PubSubView` to render when the `pubsub` plugin is selected. ## Type of change - [ ] Bug fix - [x] Feature - [ ] Refactor - [ ] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [x] UI (React) - [ ] Docs ## How to test ```sh cd ui pnpm i || npm i pnpm build || npm run build ``` 1. Navigate to the Observability settings page in the UI. 2. Confirm that "Pub/Sub" appears in the list of supported platforms with the correct icon. 3. Select "Pub/Sub" and verify the enterprise upsell view is rendered, showing the title "Unlock Google Cloud Pub/Sub trace streaming" and a link to `https://docs.getbifrost.ai/enterprise/pubsub-connector`. ## Screenshots/Recordings If UI changes, add before/after screenshots or short clips. ## Breaking changes - [ ] Yes - [x] No ## Related issues Link related issues and discussions. Example: Closes #123 ## Security considerations No security implications. This is a UI-only change that renders a static upsell view for non-enterprise users. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [ ] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
maximhq#3714) ## Summary Adds Google Cloud Pub/Sub as a new observability connector option in the UI, gated behind the Bifrost enterprise license. ## Changes - Added a `PubSubConnectorView` fallback component that renders a "Contact Us" / enterprise upsell view when the enterprise license is not present, using the `Rss` icon and linking to the Pub/Sub connector docs. - Added `PubSubView` as a plugin view that wraps `PubSubConnectorView`. - Registered `pubsub` as a supported platform in the observability view list, including a custom inline SVG icon styled in Google blue (`#4285F4`), and wired up the `PubSubView` to render when the `pubsub` plugin is selected. ## Type of change - [ ] Bug fix - [x] Feature - [ ] Refactor - [ ] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [x] UI (React) - [ ] Docs ## How to test ```sh cd ui pnpm i || npm i pnpm build || npm run build ``` 1. Navigate to the Observability settings page in the UI. 2. Confirm that "Pub/Sub" appears in the list of supported platforms with the correct icon. 3. Select "Pub/Sub" and verify the enterprise upsell view is rendered, showing the title "Unlock Google Cloud Pub/Sub trace streaming" and a link to `https://docs.getbifrost.ai/enterprise/pubsub-connector`. ## Screenshots/Recordings If UI changes, add before/after screenshots or short clips. ## Breaking changes - [ ] Yes - [x] No ## Related issues Link related issues and discussions. Example: Closes maximhq#123 ## Security considerations No security implications. This is a UI-only change that renders a static upsell view for non-enterprise users. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [ ] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable
maximhq#3714) ## Summary Adds Google Cloud Pub/Sub as a new observability connector option in the UI, gated behind the Bifrost enterprise license. ## Changes - Added a `PubSubConnectorView` fallback component that renders a "Contact Us" / enterprise upsell view when the enterprise license is not present, using the `Rss` icon and linking to the Pub/Sub connector docs. - Added `PubSubView` as a plugin view that wraps `PubSubConnectorView`. - Registered `pubsub` as a supported platform in the observability view list, including a custom inline SVG icon styled in Google blue (`#4285F4`), and wired up the `PubSubView` to render when the `pubsub` plugin is selected. ## Type of change - [ ] Bug fix - [x] Feature - [ ] Refactor - [ ] Documentation - [ ] Chore/CI ## Affected areas - [ ] Core (Go) - [ ] Transports (HTTP) - [ ] Providers/Integrations - [ ] Plugins - [x] UI (React) - [ ] Docs ## How to test ```sh cd ui pnpm i || npm i pnpm build || npm run build ``` 1. Navigate to the Observability settings page in the UI. 2. Confirm that "Pub/Sub" appears in the list of supported platforms with the correct icon. 3. Select "Pub/Sub" and verify the enterprise upsell view is rendered, showing the title "Unlock Google Cloud Pub/Sub trace streaming" and a link to `https://docs.getbifrost.ai/enterprise/pubsub-connector`. ## Screenshots/Recordings If UI changes, add before/after screenshots or short clips. ## Breaking changes - [ ] Yes - [x] No ## Related issues Link related issues and discussions. Example: Closes maximhq#123 ## Security considerations No security implications. This is a UI-only change that renders a static upsell view for non-enterprise users. ## Checklist - [ ] I read `docs/contributing/README.md` and followed the guidelines - [ ] I added/updated tests where appropriate - [ ] I updated documentation where needed - [ ] I verified builds succeed (Go and UI) - [ ] I verified the CI pipeline passes locally if applicable

Summary
Adds Google Cloud Pub/Sub as a new observability connector option in the UI, gated behind the Bifrost enterprise license.
Changes
PubSubConnectorViewfallback component that renders a "Contact Us" / enterprise upsell view when the enterprise license is not present, using theRssicon and linking to the Pub/Sub connector docs.PubSubViewas a plugin view that wrapsPubSubConnectorView.pubsubas a supported platform in the observability view list, including a custom inline SVG icon styled in Google blue (#4285F4), and wired up thePubSubViewto render when thepubsubplugin is selected.Type of change
Affected areas
How to test
https://docs.getbifrost.ai/enterprise/pubsub-connector.Screenshots/Recordings
If UI changes, add before/after screenshots or short clips.
Breaking changes
Related issues
Link related issues and discussions. Example: Closes #123
Security considerations
No security implications. This is a UI-only change that renders a static upsell view for non-enterprise users.
Checklist
docs/contributing/README.mdand followed the guidelines