Dashboard

{{-- Google Fonts --}}
{{-- ── Page header ── --}}

API Generator Portal

Manage data sources, scan datasets, and create dynamic APIs.

{{-- ── Nav strip ── --}} {{-- ── Flash messages ── --}} @if(session('success'))
{{ session('success') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif {{-- ═══════════════════════════════════════════════ CREATE / GENERATE KEY CARD (Stripe-style) ════════════════════════════════════════════════ --}}
{{-- Key icon --}}

Generate API Key

Keys authenticate your API requests

@csrf {{-- Hidden fields to satisfy controller validation without UI clutter --}} {{-- allowed_api_slugs and allowed_methods are intentionally omitted (full access) --}}

Leave blank for a 6-month default expiry.

{{-- ── Newly generated key reveal (Stripe-style one-time display) ── --}} @if(session('generated_key'))

🔑 Your new API key — copy it now, it won't be shown again

{{ session('generated_key') }}
@endif
{{-- ═══════════════════════════════════════════════ EXISTING KEYS TABLE ════════════════════════════════════════════════ --}}

Your API Keys

{{ $keys->count() }} {{ Str::plural('key', $keys->count()) }}
@if($keys->isEmpty())

No API keys yet

Generate your first key above to get started.

@else
@foreach ($keys as $key) @endforeach
Name Key Status Expires Requests Actions
{{ $key->name }}
{{ substr($key->key, 0, 8) }}••••••••••••••••
@if ($key->is_active && (!$key->expires_at || $key->expires_at->isFuture())) Active @elseif (!$key->is_active) Revoked @else Expired @endif {{ $key->expires_at?->format('M d, Y') ?? 'Never' }} {{ number_format($key->request_count) }}
{{-- Revoke / Activate --}} @if ($key->is_active)
@csrf @method('PATCH')
@else
@csrf @method('PATCH')
@endif {{-- Refresh --}}
@csrf
{{-- Edit (expiry only) --}} {{-- Delete --}}
@csrf @method('DELETE')
@endif
{{-- /max-width --}}
{{-- /py-8 --}} {{-- ═══════════════════════════════════════════════ EDIT MODAL — name + expiry only ════════════════════════════════════════════════ --}}