Skip to content

feat(integrations): download timestamped service snapshots - #4891

Merged
gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-integration-snapshot-export-20260913
Sep 13, 2026
Merged

gabsprogrammer merged 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-integration-snapshot-export-20260913

Conversation

@tang-vu

@tang-vu tang-vu commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Why this matters

Operators can now save the Integrations inventory while investigating a failed service or comparing an installation before and after a change. Both the compact Settings panel and the full map offer Download snapshot. It saves the complete reported inventory, even when the visible list is filtered.

The invariant is that an export describes the last successful status response: the capture timestamp advances only with a new response; a failed refresh marks the retained receipt as stale through refreshFailed. Public URLs (which can carry owner tokens) are excluded through an explicit field projection. Known dependencies are labeled as configured relationships, not observed traffic or successful application calls.

Overlap check

Searched all-state upstream PRs by ServiceMap.jsx and integration/topology/snapshot/export/inventory terms. #3844 explores indirect impact, #4462 repairs selected-detail staleness, #4464 adds detail keyboard navigation, and #3506 exports hardware GPU topology. None offers a service-status snapshot download. This adds no dependency traversal, detail-state repair, service mutation, or hardware export. Shared-file compatibility with #4462/#4464 should be reviewed at merge time.

Validation

  • npm exec vitest run src/pages/ServiceMap.test.jsx src/pages/ServiceMap.export.test.jsx: 9 passed. The new suite fails 3 cases before implementation, and covers both entrypoints, exact downloaded JSON, secret-bearing URL exclusion, unchanged capture time after failure, filtering, empty inventories, and no extra API call.
  • npm run lint: passes with existing warnings; production build passes.
  • Scoped pre-commit and git diff --check.

The browser supplies a standard JSON data-URL download; tests inspect its actual link payload in jsdom, not an operating-system save dialog. No live stack health claim is made. The schema is diagnostic, has no import path, and does not change configuration. Revert the action/component and timestamp field to roll back. See ods/docs/INTEGRATION-SNAPSHOTS.md for the versioned receipt contract.

@gabsprogrammer
gabsprogrammer merged commit 060bcc2 into Osmantic:public-beta Sep 13, 2026
36 checks passed
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.

2 participants