Verification & Testing: Control 3.1 - Agent Inventory and Metadata Management
Last Updated: January 2026
Manual Verification Steps
Test 1: Verify Power Platform Inventory Access
- Sign in to Power Platform Admin Center
- Navigate to Manage > Inventory
- Verify the inventory view loads
- EXPECTED: Power Platform inventory displays with item count
Test 2: Verify Agent Filtering
- In Power Platform inventory, click the Item type filter
- Select Agent to filter the view
- Review the filtered results
- EXPECTED: Only agents displayed (apps and flows filtered out)
Test 3: Verify All Environments Visible
- Review the Environment column values
- Compare against known environment list
- Verify all production, sandbox, and developer environments appear
- EXPECTED: All environments with agents are visible
Test 4: Verify Owner Information
- Review the Owner column for each agent
- Verify owners are valid users (not system accounts or deleted users)
- Cross-reference against Entra ID for validity
- EXPECTED: All agents have valid, identifiable owners
Test 5: Verify Export Functionality
- Click the Export button in the inventory toolbar
- Select CSV format
- Download the export file
- Open and verify all columns are populated
- EXPECTED: CSV export completes with all inventory data
Test 6: Verify M365 Agent Registry Access
- Sign in to Microsoft 365 Admin Center
- Navigate to Settings > Integrated apps > Agents tab
- Review declarative agents and extensions
- EXPECTED: M365 Agent Registry displays organizational agents
Test 7: Verify Inventory Reconciliation
- Export Power Platform inventory
- Export M365 Agent Registry list
- Compare agent counts
- Identify any discrepancies
- EXPECTED: Documented understanding of agents in both systems
Test Cases
| Test ID | Scenario | Expected Result | Pass/Fail |
|---|---|---|---|
| TC-3.1-01 | Access Power Platform inventory | Inventory view loads with items | |
| TC-3.1-02 | Filter by Item type = Agent | Only agents displayed | |
| TC-3.1-03 | View all environments | All known environments visible | |
| TC-3.1-04 | Check owner column | All agents have valid owners | |
| TC-3.1-05 | Export to CSV | Export downloads successfully | |
| TC-3.1-06 | Access M365 Agent Registry | Registry displays agents | |
| TC-3.1-07 | Reconcile both inventories | Discrepancies documented | |
| TC-3.1-08 | Identify orphaned agents | Orphans flagged for remediation | |
| TC-3.1-09 | PowerShell inventory export | Script completes with hash | |
| TC-3.1-10 | Verify NYDFS fields (if applicable) | RTO/RPO fields populated |
Evidence to Retain
Collect and store the following artifacts for audit readiness:
Inventory Exports
- Power Platform inventory CSV export (dated)
- M365 Agent Registry export (dated)
- Reconciliation report showing both sources
- SHA-256 hash of each export file
Configuration Evidence
- Screenshot of Power Platform inventory view
- Screenshot of M365 Admin Center Agents tab
- Screenshot of inventory filter settings
Orphaned Agent Documentation
- List of orphaned agents identified
- Remediation assignments for each orphan
- Status tracking for orphan resolution
System of Record
- SharePoint list or GRC tool configuration
- Field definitions and required metadata
- Version history settings confirmation
NYDFS Part 500 (if applicable)
- RTO/RPO values for each agent
- Criticality tier assignments
- Backup compliance status
- Support expiration dates
Attestation Statement
- Signed statement from control owner confirming:
- Inventory is current and complete
- Both discovery sources are monitored
- Orphaned agents are tracked for remediation
- Evidence is retained per policy
Automated Validation Script
# Run validation checks for Control 3.1
Write-Host "=== Control 3.1 Validation ===" -ForegroundColor Cyan
# Check 1: Verify environment access
$environments = Get-AdminPowerAppEnvironment
if ($environments.Count -gt 0) {
Write-Host "[PASS] Environment access verified: $($environments.Count) environments" -ForegroundColor Green
} else {
Write-Host "[FAIL] Cannot access environments" -ForegroundColor Red
}
# Check 2: Verify app inventory access
$allApps = Get-AdminPowerApp
if ($allApps -ne $null) {
Write-Host "[PASS] App inventory access verified: $($allApps.Count) apps" -ForegroundColor Green
} else {
Write-Host "[FAIL] Cannot access app inventory" -ForegroundColor Red
}
# Check 3: Check for orphaned agents
$orphanCount = 0
foreach ($app in $allApps) {
if ([string]::IsNullOrEmpty($app.Owner.email) -or
$app.Owner.email -like "*system*" -or
$app.Owner.email -like "*deleted*") {
$orphanCount++
}
}
if ($orphanCount -eq 0) {
Write-Host "[PASS] No orphaned agents detected" -ForegroundColor Green
} else {
Write-Host "[WARN] $orphanCount orphaned agents require remediation" -ForegroundColor Yellow
}
# Check 4: Verify export directory exists
$exportPath = "C:\Governance\AgentInventory"
if (Test-Path $exportPath) {
$recentExports = Get-ChildItem $exportPath -Filter "AgentInventory_*.csv" |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }
if ($recentExports.Count -gt 0) {
Write-Host "[PASS] Recent inventory exports found: $($recentExports.Count)" -ForegroundColor Green
} else {
Write-Host "[WARN] No inventory exports in last 7 days" -ForegroundColor Yellow
}
} else {
Write-Host "[WARN] Export directory not found - create and configure" -ForegroundColor Yellow
}
# Check 5: Verify hash file exists
$hashFile = "$exportPath\AgentInventory_Hashes.csv"
if (Test-Path $hashFile) {
Write-Host "[PASS] Hash verification file exists" -ForegroundColor Green
} else {
Write-Host "[WARN] Hash verification file not found - integrity tracking not configured" -ForegroundColor Yellow
}
Write-Host "`n=== Validation Complete ===" -ForegroundColor Cyan
Governance Tier-Specific Testing
Level 1 - Baseline Testing
- Monthly inventory review completed
- Basic metadata (owner, environment, dates) captured
- Orphaned agents identified
Level 2-3 - Recommended Testing
- Weekly inventory exports automated
- Extended metadata captured (purpose, data sources, approvals)
- Dashboard reporting configured
- GRC tool integration verified
- Hash verification implemented
Level 4 - Regulated Testing
- Daily inventory reviews completed
- Real-time drift detection configured
- Executive reporting generated monthly
- NYDFS Part 500 fields populated
- Comprehensive metadata validated
- Audit trail snapshots retained
Back to Control 3.1 | Portal Walkthrough | PowerShell Setup | Troubleshooting