[PR #4832] [Management/Client] Trigger debug bundle runs from API/Dashboard (#4592) #26410

Closed
opened 2026-08-05 07:07:18 -04:00 by saavagebueno · 0 comments
Owner

Original Pull Request: https://github.com/netbirdio/netbird/pull/4832

State: closed
Merged: Yes


Describe your changes

This PR adds the ability to trigger debug bundle generation remotely from the Management API/Dashboard.

Core Features

  • Remote Debug Bundle Triggering: Request debug bundles from peers via Management API/Dashboard
  • Job Management System: New job dispatch system enabling management server to request work from clients
  • Automatic Upload: Debug bundles are automatically uploaded to a centralized location

Implementation Details

Client-Side:

  • Added jobexec package to handle remote job execution
  • Implemented debug bundle upload functionality
  • Added job event stream handling in engine
  • Modified bundle generation to support remote triggers

Management-Side:

  • Created job manager and channel system for coordinating job lifecycle
  • Added new API endpoint: POST /api/peers/{peerId}/debug-bundle
  • Extended gRPC protocol with bidirectional Job() stream
  • Added job persistence to SQL store

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

Docs PR URL (required if "docs added" is checked)

Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__

Summary by CodeRabbit

  • New Features

    • Jobs system: create/list/get per-peer jobs (bundle workloads) via API and streaming; background executor to generate/upload bundles; client/server job streaming support.
  • Bug Fixes / Improvements

    • Status output rebuilt from full status plus daemon version for improved summaries.
    • Debug bundle uploads now use presigned streamed uploads and honor a propagated log path.
    • Connect/run flows accept a log path parameter.
  • Other

    • Debug bundles no longer include the previous standalone status string.

✏️ Tip: You can customize this high-level summary in your review settings.

**Original Pull Request:** https://github.com/netbirdio/netbird/pull/4832 **State:** closed **Merged:** Yes --- ## Describe your changes This PR adds the ability to trigger debug bundle generation remotely from the Management API/Dashboard. ### Core Features - **Remote Debug Bundle Triggering**: Request debug bundles from peers via Management API/Dashboard - **Job Management System**: New job dispatch system enabling management server to request work from clients - **Automatic Upload**: Debug bundles are automatically uploaded to a centralized location ### Implementation Details **Client-Side:** - Added `jobexec` package to handle remote job execution - Implemented debug bundle upload functionality - Added job event stream handling in engine - Modified bundle generation to support remote triggers **Management-Side:** - Created job manager and channel system for coordinating job lifecycle - Added new API endpoint: `POST /api/peers/{peerId}/debug-bundle` - Extended gRPC protocol with bidirectional `Job()` stream - Added job persistence to SQL store ## Issue ticket number and link ## Stack <!-- branch-stack --> ### Checklist - [ ] Is it a bug fix - [ ] Is a typo/documentation fix - [x] Is a feature enhancement - [x] It is a refactor - [ ] Created tests that fail without the change (if possible) > By submitting this pull request, you confirm that you have read and agree to the terms of the [Contributor License Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md). ## Documentation Select exactly one: - [ ] I added/updated documentation for this change - [ ] Documentation is **not needed** for this change (explain why) ### Docs PR URL (required if "docs added" is checked) Paste the PR link from https://github.com/netbirdio/docs here: https://github.com/netbirdio/docs/pull/__ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Jobs system: create/list/get per-peer jobs (bundle workloads) via API and streaming; background executor to generate/upload bundles; client/server job streaming support. * **Bug Fixes / Improvements** * Status output rebuilt from full status plus daemon version for improved summaries. * Debug bundle uploads now use presigned streamed uploads and honor a propagated log path. * Connect/run flows accept a log path parameter. * **Other** * Debug bundles no longer include the previous standalone status string. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
saavagebueno added the pull-request label 2026-08-05 07:07:18 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#26410