BREAKING CHANGE: Assignment capture flow completely refactored Core Changes: - Created PolicyCaptureOrchestrator service for centralized capture coordination - Refactored BackupService to use orchestrator (version-first approach) - Fixed domain model bug: PolicyVersion now stores assignments (source of truth) - BackupItem references PolicyVersion and copies assignments for restore Database: - Added assignments, scope_tags, assignments_hash, scope_tags_hash to policy_versions - Added policy_version_id foreign key to backup_items - Migrations: 2025_12_22_171525, 2025_12_22_171545 Services: - PolicyCaptureOrchestrator: Intelligent version reuse, idempotent backfilling - VersionService: Enhanced to capture assignments during version creation - BackupService: Uses orchestrator, version-first capture flow UI: - Moved assignments widget from Policy to PolicyVersion view - Created PolicyVersionAssignmentsWidget Livewire component - Updated BackupItemsRelationManager columns for new assignment fields Tests: - Deleted BackupWithAssignmentsTest (old behavior) - Created BackupWithAssignmentsConsistencyTest (4 tests, all passing) - Fixed AssignmentFetcherTest and GroupResolverTest for GraphResponse - All 162 tests passing Issue: Assignments/scope tags not displaying in BackupSet items table (UI only) Status: Database contains correct data, UI column definitions need adjustment
24 lines
448 B
PHP
24 lines
448 B
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use App\Models\PolicyVersion;
|
|
use Livewire\Component;
|
|
|
|
class PolicyVersionAssignmentsWidget extends Component
|
|
{
|
|
public PolicyVersion $version;
|
|
|
|
public function mount(PolicyVersion $version): void
|
|
{
|
|
$this->version = $version;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.policy-version-assignments-widget', [
|
|
'version' => $this->version,
|
|
]);
|
|
}
|
|
}
|