Add Veeam Backup & Replication plugin#81
Conversation
Low-code (Web API) plugin for Veeam Backup & Replication. Indexes backup repositories and jobs as objects, provides job/repository status and capacity data streams (all and object-scoped via idFilter), and ships an Overview plus per-object Status dashboards. Auth via OAuth2 password grant with a selectable x-api-version (Veeam 12.0-13). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Important Review skippedNo new commits to review since the last review. ⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe PR adds a new Veeam Backup & Replication v1 plugin with connection settings, object types, repository/job data streams, default dashboards, index mappings, and supporting documentation. ChangesVeeam Backup & Replication v1 plugin
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai full review |
✅ Action performedFull review finished. |
✅ Action performedFull review finished. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@claude review |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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
`@plugins/VeeamBackupReplication/v1/defaultContent/Repository/status.dash.json`:
- Around line 25-30: The Online Status tile’s isOnline metadata only maps "true"
to success, so offline repositories with "false" are not shown as unhealthy.
Update the metadata shape in status.dash.json for the isOnline field to
explicitly map "false" to an error or warning state, keeping the existing
success mapping for "true", so the tile surfaces offline repositories clearly.
In `@plugins/VeeamBackupReplication/v1/metadata.json`:
- Around line 27-51: The base plugin reference in the metadata is pointing to an
unreleased CI build, which breaks validation and installability. Update the base
plugin identifier in the metadata config from the CI-specific
WebAPI-ci-wpPLUG4677 reference to the released WebAPI plugin version, keeping
the rest of the OAuth and header configuration unchanged.
- Line 9: The description in metadata.json is missing terminal punctuation and
should be a single punctuated sentence without implementation language. Update
the `description` field in `metadata.json` for `VeeamBackupReplication` so it
ends with proper punctuation while keeping it as one concise sentence.
🪄 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: Repository UI (base), Organization UI (inherited)
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6afbd30f-b671-4f35-97f5-ef225990c196
⛔ Files ignored due to path filters (1)
plugins/VeeamBackupReplication/v1/icon.svgis excluded by!**/*.svg
📒 Files selected for processing (17)
plugins/VeeamBackupReplication/v1/configValidation.jsonplugins/VeeamBackupReplication/v1/custom_types.jsonplugins/VeeamBackupReplication/v1/dataStreams/jobStates.jsonplugins/VeeamBackupReplication/v1/dataStreams/jobStatesScoped.jsonplugins/VeeamBackupReplication/v1/dataStreams/repositoryStates.jsonplugins/VeeamBackupReplication/v1/dataStreams/repositoryStatesScoped.jsonplugins/VeeamBackupReplication/v1/defaultContent/Job/manifest.jsonplugins/VeeamBackupReplication/v1/defaultContent/Job/status.dash.jsonplugins/VeeamBackupReplication/v1/defaultContent/Repository/manifest.jsonplugins/VeeamBackupReplication/v1/defaultContent/Repository/status.dash.jsonplugins/VeeamBackupReplication/v1/defaultContent/manifest.jsonplugins/VeeamBackupReplication/v1/defaultContent/overviewDashboard.dash.jsonplugins/VeeamBackupReplication/v1/defaultContent/scopes.jsonplugins/VeeamBackupReplication/v1/docs/README.mdplugins/VeeamBackupReplication/v1/indexDefinitions/default.jsonplugins/VeeamBackupReplication/v1/metadata.jsonplugins/VeeamBackupReplication/v1/ui.json
jame2O
left a comment
There was a problem hiding this comment.
All looking good so far! Just left a few nitpick comments but looks nearly ready to go
- metadata.json: add terminal punctuation to description (CodeRabbit) - Repository Status dashboard: map isOnline "false" to error so offline repositories surface as unhealthy (CodeRabbit) - docs/README.md: drop the trailing-slash note and the redundant indexing paragraph (review nits) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
🧩 Plugin PR Summary📦 Modified Plugins
📋 Results
🔍 Validation Details✅
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
🔌 Plugin overview
x-api-versionheader carries the selected REST API revision.🖼️ Plugin screenshots
Plugin configuration
Config form: Server URL, Username, Password, REST API version (dropdown), Ignore certificate errors.
Default dashboards
Overview (jobs by last result/status, failed & warning job lists, repositories table, % free space, repositories not online), plus per-object Job → Status and Repository → Status perspectives.
🧪 Testing
squaredup validatepasses (hybrid).1.3-rev1) server through a SquaredUp Agent.Job Status (All),Repository Status (All), and the object-scopedJob Status/Repository Status(server-sideidFilter, one call per selected object); Name-column drilldowns resolve to the graph objects; theLast Resulthealth map,gigabytescapacity andpercentshapes render; and the Overview + per-object "Status" dashboards populate.x-api-version— the endpoints the plugin uses exist across all offered revisions — but have not been end-to-end tested.WebAPI-ci-wpPLUG4677), not the releasedWebAPI. It carries the PLUG-4677 fix (OAuth2 token cert/serialization) that the on-prem / self-signed flow needs. Before this ships publicly the base must be switched to the releasedWebAPIonce PLUG-4677 is merged/released.oauth2ClientId/oauth2ClientSecretare the literal"notused"— Veeam's password grant takes no client credentials, but the base's OAuth2 config expects the fields to be present. These are placeholders, not secrets.x-api-versionmust not be older than the server (older revisions can't serialize newer enum values). The object-scoped streams make no request until at least one object is selected.📚 Checklist
🤖 Generated with Claude Code
Summary by CodeRabbit