Skip to content

UI: complete Discovery network object and relationship surface#208

Merged
BadgerOps merged 5 commits into
masterfrom
ui-network-surface-207
Jun 3, 2026
Merged

UI: complete Discovery network object and relationship surface#208
BadgerOps merged 5 commits into
masterfrom
ui-network-surface-207

Conversation

@BadgerOps
Copy link
Copy Markdown
Owner

@BadgerOps BadgerOps commented Jun 3, 2026

Summary

Closes #207.

This completes the Discovery Merged Network UI surface for the recently added network APIs, excluding screenshot capture. Operators can now inspect managed network objects, inspect and resolve explicit relationships, choose request-scoped schema policy, use relink-specific conflict actions, navigate from conflict details back to affected merged rows, and filter relationship/object context without dropping to raw API calls.

What Changed

  • Added a schema policy selector to Discovery > Merged Network for account_level, region_level, global, and manual.
  • Propagated schema_policy through hierarchy, flat, and conflict network queries.
  • Added managed network object browser mode with columns for object type, name, provider/account/region, CIDR/IP, provider resource ID, state, parent object, pool, source discovered resource, and updated timestamp.
  • Added relationship browser mode with filters for type, source kind/source ID, target kind/target ID, and resolution state.
  • Scoped relationship browser filters to the selected account and aligned the UI with the backend resolved relationship state vocabulary.
  • Added relationship resolution using the body-form POST /api/v1/network/relationships/resolve endpoint so IDs containing path separators are supported.
  • Changed relationship resolution UX to use an explicit per-row Apply button with pending state and inline error handling.
  • Added relationship badges to merged rows and conflict details when relationship data is returned.
  • Added structured conflict details for affected discovered resources, affected pools, affected managed network object evidence, account/region ownership, parent evidence, CIDR/IP evidence, attached relationships, available decisions/actions, and current state.
  • Added conflict detail navigation actions for “View in flat,” “View in hierarchy,” and “Show relationships.”
  • Added row-level relationship navigation from flat/hierarchy/object rows into the relationship browser with source filters prefilled.
  • Updated conflict actions to render inline result summaries for link/relink/import/placeholder-parent responses.
  • Added action result navigation back to affected flat rows and relationship filters.
  • Updated alternate_exact_pool UX to use relink-oriented wording and display previous_pool_id, target pool_id, discovered resource ID, and relationship count.
  • Kept placeholder-parent actions gated to missing_parent conflicts and display returned network object details.
  • Added provider, region, pool ID, and source discovered resource filters to the managed object browser.
  • Added backend support for managed object pool_id and source_discovered_id filters across memory, SQLite, and PostgreSQL stores.
  • Updated OpenAPI query params for the managed network object filters.
  • Expanded TypeScript API types for network objects, object list responses, relationship list/create/resolve responses, hydrated relationships, and conflict action response fields.
  • Added concrete 0.17.2 changelog entry.

Tests

  • npm run test -- DiscoveryNetworkRelationshipTable DiscoveryNetworkConflictList useNetwork
    • Passed: 3 files, 12 tests.
  • npm run build
    • Passed: TypeScript build and Vite production build completed.
  • env XDG_CACHE_HOME=/tmp/nix-cache nix develop -c go test ./internal/api
    • Passed: ok cloudpam/internal/api.

Notes

  • Direct go test ./internal/api was not available in this shell because go is not on PATH, so the backend API slice was run through the repo Nix dev shell.
  • web/dist/index.html was updated by the UI build. The hashed assets under web/dist/assets/ are generated but not tracked by Git in this repo.

Remaining Follow-Up

  • Add Playwright screenshots for the new Merged Network object, relationship, missing-parent, and relink flows.
  • Add a live-backend browser fixture test to prove the object and relationship tables render seeded backend data end-to-end.
  • Managed network object create/edit UI remains intentionally out of scope; this PR provides list/detail/filter context.

@BadgerOps BadgerOps merged commit b4ea865 into master Jun 3, 2026
15 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.

UI: complete Discovery network object and relationship surface

2 participants