make(Kernel::class)->bootstrap(); $identity = portalQaAssertTarget($target); $file = $directory.'/i0-qa-actor-private.json'; $credentials = is_file($file) ? json_decode(file_get_contents($file), true) : ['email' => 'geo-manager-qa@example.invalid', 'password' => 'QA-'.Str::uuid(), 'totp_secret' => 'JBSWY3DPEHPK3PXP']; $actor = User::firstOrCreate(['email' => $credentials['email']], ['name' => 'Synthetic cartography manager QA', 'password' => Hash::make($credentials['password'])]); $actor->forceFill(['email_verified_at' => now(), 'two_factor_confirmed_at' => now(), 'two_factor_secret' => Crypt::encrypt($credentials['totp_secret']), 'two_factor_recovery_codes' => Crypt::encrypt('[]')])->save(); file_put_contents($file, json_encode($credentials, JSON_THROW_ON_ERROR)); chmod($file, 0600); echo json_encode(['qa_target' => $identity, 'actor_id' => $actor->id, 'mfa_configured' => true, 'credentials' => 'retained privately, not exported', 'active_writes' => 0]).PHP_EOL;