# Integration Settings UI (keys + connection testing) — apply

    cp -R settings-ui/app/*       ./app/
    cp -R settings-ui/resources/* ./resources/
    cp -R settings-ui/tests/*     ./tests/

## bootstrap/providers.php — register the config bridge (THIS is what makes saved keys work):
    App\Platform\Providers\PlatformConfigServiceProvider::class,

## routes/web.php — the credentials routes already exist; ADD the test route inside
   the existing admin/settings group:
    Route::post('/credentials/test', [\App\Http\Controllers\Admin\CredentialController::class, 'test'])->name('credentials.test');

## Test + build
    php artisan test --filter=SettingsUi
    node node_modules/vite/bin/vite.js build

## What it does
- One screen for every provider key: AI, SMTP, Salesforce, Google Ads, GA4, Meta, QuickBooks
- "Test connection" per provider with honest results:
    * AI  -> real API call (definitive)
    * Mail -> sends a real test email (definitive)
    * Meta -> real app-token grant (definitive)
    * Salesforce/Google/GA4/QuickBooks -> probes the token endpoint; distinguishes
      "credentials rejected" from "credentials fine, user must Connect"
- Shows the exact Redirect URI to paste into each provider's app config (copy button)
- Saved values bridge into config() at boot, so every provider picks them up with no
  code changes — .env remains the fallback.
