> */ public static function checks(OperationRun $run): array { $context = is_array($run->context ?? null) ? $run->context : []; return [[ 'key' => 'provider.connection.check', 'title' => 'Provider connection check', 'status' => 'fail', 'severity' => 'critical', 'blocking' => true, 'reason_code' => 'unknown_error', 'message' => 'Run was queued but never started. A queue worker may not be running.', 'evidence' => self::evidence($run, $context), 'next_steps' => [], ]]; } /** * @return array */ public static function identity(OperationRun $run): array { $context = is_array($run->context ?? null) ? $run->context : []; $identity = []; $providerConnectionId = $context['provider_connection_id'] ?? null; if (is_numeric($providerConnectionId)) { $identity['provider_connection_id'] = (int) $providerConnectionId; } $targetScope = $context['target_scope'] ?? []; $targetScope = is_array($targetScope) ? $targetScope : []; $entraTenantId = $targetScope['entra_tenant_id'] ?? null; if (is_string($entraTenantId) && trim($entraTenantId) !== '') { $identity['entra_tenant_id'] = trim($entraTenantId); } return $identity; } /** * @param array $context * @return array */ private static function evidence(OperationRun $run, array $context): array { $evidence = []; $providerConnectionId = $context['provider_connection_id'] ?? null; if (is_numeric($providerConnectionId)) { $evidence[] = [ 'kind' => 'provider_connection_id', 'value' => (int) $providerConnectionId, ]; } $targetScope = $context['target_scope'] ?? []; $targetScope = is_array($targetScope) ? $targetScope : []; $entraTenantId = $targetScope['entra_tenant_id'] ?? null; if (is_string($entraTenantId) && trim($entraTenantId) !== '') { $evidence[] = [ 'kind' => 'entra_tenant_id', 'value' => trim($entraTenantId), ]; } $evidence[] = [ 'kind' => 'operation_run_id', 'value' => (int) $run->getKey(), ]; return $evidence; } }