Implements Spec 118 baseline drift engine improvements: - Resumable, budget-aware evidence capture for baseline capture/compare runs (resume token + UI action) - “Why no findings?” reason-code driven explanations and richer run context panels - Baseline Snapshot resource (list/detail) with fidelity visibility - Retention command + schedule for pruning baseline-purpose PolicyVersions - i18n strings for Baseline Compare landing Verification: - `vendor/bin/sail bin pint --dirty --format agent` - `vendor/bin/sail artisan test --compact --filter=Baseline` (159 passed) Note: - `docs/audits/redaction-audit-2026-03-04.md` left untracked (not part of PR). Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #143
38 lines
1.1 KiB
PHP
38 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\Policy;
|
|
use App\Models\Tenant;
|
|
use App\Support\Baselines\PolicyVersionCapturePurpose;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\PolicyVersion>
|
|
*/
|
|
class PolicyVersionFactory extends Factory
|
|
{
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'tenant_id' => Tenant::factory(),
|
|
'policy_id' => Policy::factory(),
|
|
'version_number' => 1,
|
|
'policy_type' => 'settingsCatalogPolicy',
|
|
'platform' => fake()->randomElement(['android', 'iOS', 'macOS', 'windows10']),
|
|
'created_by' => fake()->safeEmail(),
|
|
'captured_at' => now(),
|
|
'snapshot' => ['example' => true],
|
|
'metadata' => [],
|
|
'capture_purpose' => PolicyVersionCapturePurpose::Backup->value,
|
|
'operation_run_id' => null,
|
|
'baseline_profile_id' => null,
|
|
];
|
|
}
|
|
}
|