2.1 KiB
2.1 KiB
Feature Specification: Inventory Dependencies Graph
Feature Branch: feat/042-inventory-dependencies-graph
Created: 2026-01-07
Status: Draft
Purpose
Represent and surface dependency relationships between inventory items and foundational Intune objects so admins can understand blast radius and prerequisites.
User Scenarios & Testing
Scenario 1: View dependencies for an item
- Given an inventory item
- When the user opens its dependencies view
- Then they can see inbound and outbound relationships (e.g., “uses”, “assigned to”, “scoped by”)
Scenario 2: Identify missing prerequisites
- Given an item references a prerequisite object not present in inventory
- When the user views dependencies
- Then missing prerequisites are clearly indicated
Scenario 3: Filter dependencies by relationship type
- Given multiple relationship types exist
- When the user filters by relationship type
- Then only matching edges are shown
Functional Requirements
- FR1: Define a normalized set of relationship types.
- FR2: Store dependency edges between inventory items and other objects (including non-inventory foundations when applicable).
- FR3: Allow querying inbound/outbound edges for a given item.
- FR4: Show missing prerequisites without requiring a separate “deleted” state in core inventory.
- FR5: All dependency data is tenant-scoped and access-controlled.
Non-Functional Requirements
- NFR1: Dependency extraction must be idempotent (re-runnable without duplicating edges).
- NFR2: Dependency extraction must not fail an inventory sync run if an unknown/unsupported reference is encountered; it should record a safe warning.
Success Criteria
- SC1: Admins can determine prerequisites and blast radius for an item in under 2 minutes.
- SC2: For supported relationship types, dependency edges are consistent across re-runs (deterministic output).
Out of Scope
- Automatic remediation.
- Cross-tenant dependency graphs.
Related Specs
- Program:
specs/039-inventory-program/spec.md - Core:
specs/040-inventory-core/spec.md