5.0 KiB
5.0 KiB
Quickstart: Provider-neutral Artifact Source Taxonomy
Purpose
Use this guide to review or later implement Spec 284 as one bounded artifact-source and inventory-type taxonomy slice.
Preconditions
- Specs
281,282, and283are already present on the implementation branch. - Work stays inside
apps/platformand this spec package. - No application implementation from Specs
285through287is pulled into this slice. - No historical backfill or package runtime is added.
- SCOPE-001 ownership compliance for touched tenant-owned artifact tables is resolved or explicitly excepted before runtime implementation begins.
Pinned descriptor inventories
source_family:findingstored_reportevidence_snapshotinventoryoperation_run
source_kind:model_summarystored_reportoperation_rollupinventory_projection
source_target_kind:managed_environmentgoverned_subjectprovider_connectionoperation_run
Reviewer flow
- Read spec.md, plan.md, research.md, and data-model.md together.
- Confirm the package introduces one shared artifact-source descriptor and one inventory type split, not a new artifact table.
- Confirm the pinned inventories above for
source_family,source_kind, andsource_target_kindare identical across all artifacts. - Confirm provider-native detail such as
finding_type,report_type,policy_type, and provider object types remains nested evidence instead of top-level platform truth. - Confirm
package_run_idstays optional and unused in current runtime. - Confirm the logical contract and feature proof preserve inherited
404versus403behavior for the touched resources. - Confirm reviewer and proof guidance explicitly cover
workspace_id,tenant_id,managed_environment_id,provider_connection_id, andsource_target_identifiersemantics when those fields are available.
Suggested implementation order
- Add the bounded descriptor support seam and pin the exact inventories.
- Update findings, evidence-source providers, and stored-report readers or writers to carry the descriptor.
- Update inventory metadata to expose
canonical_type,provider_object_type, andprovider_display_type. - Update touched Filament resources and review presenters to show descriptor-first summaries.
- Align touched support or AI
source_familyconsumers only if needed. - Run the exact bounded proof commands below.
Narrow proof commands
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Unit/Artifacts/ArtifactSourceTaxonomyCatalogTest.php \
tests/Unit/Inventory/InventoryCanonicalTypeDescriptorTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Feature/Artifacts/FindingArtifactSourceTaxonomyTest.php \
tests/Feature/Artifacts/EvidenceSnapshotSourceTaxonomyTest.php \
tests/Feature/Artifacts/StoredReportSourceTaxonomyTest.php \
tests/Feature/Artifacts/InventoryArtifactTypeTaxonomyTest.php \
tests/Feature/Filament/Artifacts/ArtifactSourceTaxonomySurfaceTest.php \
tests/Feature/Guards/ArtifactSourceProviderTruthGuardTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
tests/Browser/Spec284ArtifactSourceTaxonomySmokeTest.php)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail bin pint --dirty --format agent)
Expected smoke path
- Open one finding and confirm the page shows the canonical source descriptor before provider-native detail.
- Open one evidence snapshot or evidence item tied to the same managed environment and confirm the same source-family and control summary semantics are visible.
- Open one stored report and confirm it uses the same descriptor-first disclosure while keeping raw
report_typenested. - Open one inventory item and confirm
canonical_type,provider_object_type, andprovider_display_typeare separate. - Open one tenant review with supporting artifact sections and confirm the section summary stays aligned with the underlying artifact descriptor.
Stop conditions
- Stop if implementation tries to add a new artifact table or ledger.
- Stop if implementation introduces a detector catalog or expands into a control-catalog initiative.
- Stop if implementation requires historical backfill or dual-write compatibility.
- Stop if
policy_type,finding_type, orreport_typereturns as the primary summary noun on touched surfaces. - Stop if package runtime, copy neutralization, or RBAC redesign starts appearing inside the same slice.