## Summary - add the Spec 204 platform vocabulary foundation, including canonical glossary terms, registry ownership descriptors, canonical operation type and alias resolution, and explicit reason ownership and platform reason-family metadata - harden platform-facing compare, snapshot, evidence, monitoring, review, and reporting surfaces so they prefer governed-subject and canonical operation semantics while preserving intentional Intune-owned terminology - extend Spec 204 unit, feature, Filament, and architecture coverage and add the full spec artifacts, checklist, and completed task ledger ## Verification - ran the focused recent-change Sail verification pack for the new glossary and reason-semantics work - ran the full Spec 204 quickstart verification pack under Sail - ran `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - ran an integrated-browser smoke pass covering tenant dashboard, operations, operation detail, baseline compare, evidence, reviews, review packs, provider connections, inventory items, backup schedules, onboarding, and the system dashboard/operations/failures/run-detail surfaces ## Notes - provider registration is unchanged and remains in `bootstrap/providers.php` - no new destructive actions or asset-registration changes are introduced by this branch Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #234
28 lines
1.2 KiB
PHP
28 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Support\Governance\PlatformVocabularyGlossary;
|
|
use App\Support\OperationCatalog;
|
|
|
|
it('keeps touched registry ownership metadata inside the allowed three-way boundary classification', function (): void {
|
|
$classifications = collect(app(PlatformVocabularyGlossary::class)->registries())
|
|
->map(static fn ($descriptor): string => $descriptor->boundaryClassification)
|
|
->unique()
|
|
->values()
|
|
->all();
|
|
|
|
expect($classifications)->toEqualCanonicalizing([
|
|
PlatformVocabularyGlossary::BOUNDARY_CROSS_DOMAIN_GOVERNANCE,
|
|
PlatformVocabularyGlossary::BOUNDARY_PLATFORM_CORE,
|
|
PlatformVocabularyGlossary::BOUNDARY_INTUNE_SPECIFIC,
|
|
]);
|
|
});
|
|
|
|
it('guards the false-universal policy_type alias behind explicit context-aware vocabulary helpers', function (): void {
|
|
$glossary = app(PlatformVocabularyGlossary::class);
|
|
|
|
expect($glossary->term('policy_type')?->boundaryClassification)->toBe(PlatformVocabularyGlossary::BOUNDARY_INTUNE_SPECIFIC)
|
|
->and($glossary->resolveAlias('policy_type', 'compare')?->termKey)->toBe('governed_subject')
|
|
->and(OperationCatalog::canonicalCode('baseline_capture'))->toBe('baseline.capture');
|
|
}); |