user(); if (! $user instanceof PlatformUser) { return false; } return $user->hasCapability(PlatformCapabilities::OPS_VIEW) && $user->hasCapability(PlatformCapabilities::RUNBOOKS_VIEW); } public function mount(): void { $this->mountInteractsWithTable(); } public function table(Table $table): Table { return $table ->defaultSort('id', 'desc') ->query(function (): Builder { $platformTenant = Tenant::query()->where('external_id', 'platform')->first(); $workspaceId = $platformTenant instanceof Tenant ? (int) $platformTenant->workspace_id : null; return OperationRun::query() ->with('tenant') ->when($workspaceId, fn (Builder $query): Builder => $query->where('workspace_id', $workspaceId)) ->when(! $workspaceId, fn (Builder $query): Builder => $query->whereRaw('1 = 0')) ->where('type', FindingsLifecycleBackfillRunbookService::RUNBOOK_KEY); }) ->columns([ TextColumn::make('status') ->badge() ->formatStateUsing(BadgeRenderer::label(BadgeDomain::OperationRunStatus)) ->color(BadgeRenderer::color(BadgeDomain::OperationRunStatus)) ->icon(BadgeRenderer::icon(BadgeDomain::OperationRunStatus)) ->iconColor(BadgeRenderer::iconColor(BadgeDomain::OperationRunStatus)), TextColumn::make('scope') ->label('Scope') ->getStateUsing(function (OperationRun $record): string { $scope = (string) data_get($record->context, 'runbook.scope', 'unknown'); $tenantName = $record->tenant instanceof Tenant ? $record->tenant->name : null; if ($scope === 'single_tenant' && $tenantName) { return "Single tenant ({$tenantName})"; } return $scope === 'all_tenants' ? 'All tenants' : $scope; }), TextColumn::make('initiator_name')->label('Initiator'), TextColumn::make('created_at')->label('Started')->since(), TextColumn::make('outcome') ->badge() ->formatStateUsing(BadgeRenderer::label(BadgeDomain::OperationRunOutcome)) ->color(BadgeRenderer::color(BadgeDomain::OperationRunOutcome)) ->icon(BadgeRenderer::icon(BadgeDomain::OperationRunOutcome)) ->iconColor(BadgeRenderer::iconColor(BadgeDomain::OperationRunOutcome)), ]) ->actions([ Action::make('view_run') ->label('View run') ->url(fn (OperationRun $record): string => SystemOperationRunLinks::view($record)), ]) ->bulkActions([]); } }