# Feed Mirror & AirGap Ops UI ## Module Web ## Status VERIFIED ## Description Feed mirror ops UI with mirror registry list, snapshot management, AirGap import/export with bundle validation, feed version lock for deterministic scans, offline sync status, and bundle freshness warnings. ## Implementation Details - **Feature directory**: `src/Web/StellaOps.Web/src/app/features/feed-mirror/` - **Routes**: `feed-mirror.routes.ts` - **Components**: - `airgap-export` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/airgap-export.component.ts`) - `airgap-import` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/airgap-import.component.ts`) - `feed-mirror-dashboard` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/feed-mirror-dashboard.component.ts`) - `feed-mirror` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/feed-mirror.component.ts`) - `feed-version-lock` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/feed-version-lock.component.ts`) - `freshness-warnings` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/freshness-warnings.component.ts`) - `mirror-detail` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/mirror-detail.component.ts`) - `mirror-list` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/mirror-list.component.ts`) - `offline-sync-status` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/offline-sync-status.component.ts`) - `snapshot-actions` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/snapshot-actions.component.ts`) - `snapshot-selector` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/snapshot-selector.component.ts`) - `sync-status-indicator` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/sync-status-indicator.component.ts`) - `version-lock` (`src/Web/StellaOps.Web/src/app/features/feed-mirror/version-lock.component.ts`) - **Source**: SPRINT_20251229_020_FE_feed_mirror_airgap_ops_ui ## E2E Test Plan - **Setup**: - [ ] Log in with a user that has appropriate permissions - [ ] Navigate to `/ops/feeds` - [ ] Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed) - **Core verification**: - [ ] Verify the component renders correctly with sample data - [ ] Verify interactive elements respond to user input - [ ] Verify data is fetched and displayed from the correct API endpoints - **Edge cases**: - [ ] Verify graceful handling when backend API is unavailable (error state) - [ ] Verify responsive layout at different viewport sizes - [ ] Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes) ## Verification - Run: `docs/qa/feature-checks/runs/web/feed-mirror-airgap-ops-ui/run-001/` - Tier 0 (source): pass (`tier0-source-check.json`) - Tier 1 (build/tests): pass (`tier1-build-check.json`) - Tier 2 (behavior): pass (`tier2-e2e-check.json`) - Verified on (UTC): 2026-02-11