Skip to content

fix[frontend](integrations): fixed setup guide of forwarders on custo… - #2959

Merged
AlexSanchez-bit merged 1 commit into
release/v12.0.0from
backlog/v12_custom_int_guide
Oct 22, 2026
Merged

AlexSanchez-bit merged 1 commit into
release/v12.0.0from
backlog/v12_custom_int_guide

Conversation

@AlexSanchez-bit

Copy link
Copy Markdown
Contributor

No description provided.

@AlexSanchez-bit AlexSanchez-bit linked an issue Oct 22, 2026 that may be closed by this pull request
2 of 3 tasks
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🛑 AI review — High/critical findings

One or more high/critical issues were found. Please review and fix before merging if they're real.

⚠️ architecture (silas-1.7-pro) — minor findings

Summary: Frontend refactor moves selection state into shared ForwarderGuide and syncs it upward via effect, creating duplicated state and tighter coupling.

  • medium frontend/src/features/integrations/components/setup/collector/ForwarderGuide.tsx:253 — ForwarderGuide now owns selection state and calls onSetSelection in useEffect, making it a semi-controlled shared component and duplicating state with CustomSetup. Prefer a controlled API (selection + onChange) or keep selection in the parent and pass it down.
  • low frontend/src/features/integrations/components/setup/collector/RemoteEnablePanel.tsx:208 — RemoteEnableSelection now includes a resolved collector object, changing the panel's output contract and coupling consumers to ForwarderCollector shape. Consider exposing collectorId and resolving the collector where needed.
  • low frontend/src/features/integrations/components/setup/CustomSetup.tsx:32 — CustomSetup keeps its own selection state while also receiving updates from ForwarderGuide, creating two sources of truth. Use a single owner for the selection state or make ForwarderGuide fully controlled.

🛑 bugs (silas-1.7-pro) — high/critical — please review

Summary: CustomSetup refactor can pass undefined dataType to ForwarderGuide and drops ALL_PROTOS, risking crashes/incorrect protocol options; collector sync can be stale.

  • high frontend/src/features/integrations/components/setup/CustomSetup.tsx:31 — sourceType={integration.dataType!} removes the previous fallback and can pass undefined to ForwarderGuide. If dataType is missing, availableProtosFor may return no protocols, initialProto becomes undefined, and selection.proto.toUpperCase() throws. Repro: render CustomSetup with integration.dataType undefined.
  • high frontend/src/features/integrations/components/setup/CustomSetup.tsx:31 — CustomSetup no longer supplies ALL_PROTOS to RemoteEnablePanel; ForwarderGuide derives availableProtos from sourceType. Custom data types have no catalog entry, so the UI may offer no/incorrect protocols instead of all protocols. Repro: custom integration with a dataType not present in the protocol catalog.
  • high frontend/src/features/integrations/components/setup/CustomSetup.tsx:47 — selection.proto.toUpperCase() is called without a guard. If ForwarderGuide propagates an undefined proto (for example when availableProtos is empty), this line throws and breaks the setup page. Repro: custom integration whose sourceType yields no available protocols.
  • medium frontend/src/features/integrations/components/setup/collector/ForwarderGuide.tsx:250 — useEffect only calls onSetSelection when selection.port is truthy. If the port is cleared or empty, CustomSetup's selection is not updated, leaving endpoint/diagram with a stale port. Repro: set the port input to empty in RemoteEnablePanel.
  • medium frontend/src/features/integrations/components/setup/collector/RemoteEnablePanel.tsx:214 — Effect computes selectedForwarder from allForwarders but allForwarders is not in the dependency array. If the forwarder list loads/refreshes while collectorId stays the same, collector in selection remains stale/null, so CustomSetup host can be wrong/blank. Repro: forwarder IP changes or list loads after a collector is selected.
  • medium frontend/src/features/integrations/components/setup/CustomSetup.tsx:93 — host:selection.collector?.ip can be undefined when no collector is selected, causing the user-facing network instructions to render a blank/undefined host. Repro: no forwarders online or collector not populated before rendering the Trans block.

✅ security (silas-1.7-pro) — clean

Summary: No new vulnerabilities or customer-facing information disclosure identified in this frontend refactor.

No findings.

🔴 go-deps — pending updates

🔍 Discovered 31 Go projects

📦 Dependencies with updates available:

  📁 ./plugins/gcp:
     - google.golang.org/api: v0.305.0 → v0.307.0

  📁 ./plugins/aws:
     - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs: v1.90.0 → v1.90.1

  📁 ./backend:
     - google.golang.org/api: v0.305.0 → v0.307.0

  📁 ./tools/rulecheck:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./agent-manager:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./log-input:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./agent:
     - github.com/threatwinds/go-sdk: v1.1.28 → v1.1.38

  📁 ./collectors/utmstack:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./collectors/forwarder:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

  📁 ./collectors/as400:
     - github.com/threatwinds/go-sdk: v1.1.31 → v1.1.38

❌ Please update dependencies before merging.

@AlexSanchez-bit
AlexSanchez-bit force-pushed the backlog/v12_custom_int_guide branch from 9122ff2 to 2a4c206 Compare October 22, 2026 16:21
@AlexSanchez-bit
AlexSanchez-bit merged commit 4a53b8c into release/v12.0.0 Oct 22, 2026
1 check passed
@AlexSanchez-bit
AlexSanchez-bit deleted the backlog/v12_custom_int_guide branch October 22, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

custom integration not showing forwarder installation

1 participant