const ApiKeys = ({ onNav }) => { const [newKeyCopied, setNewKeyCopied] = React.useState(false); const [keys, setKeys] = React.useState([ { id: 'k_dev', name: 'Local Development', prefix: 'ar_dev_', created: 'Mar 12, 2026', lastUsed: '2 min ago', active: true }, { id: 'k_prod', name: 'Production — Northwind API', prefix: 'ar_live_', created: 'Feb 3, 2026', lastUsed: '12 sec ago', active: true }, { id: 'k_staging', name: 'Staging — Vercel', prefix: 'ar_test_', created: 'Jan 28, 2026', lastUsed: '4 hours ago', active: true }, { id: 'k_ci', name: 'CI/CD (GitHub Actions)', prefix: 'ar_live_', created: 'Jan 10, 2026', lastUsed: 'Yesterday', active: false }, { id: 'k_old', name: 'Legacy — Zapier import', prefix: 'ar_live_', created: 'Nov 4, 2025', lastUsed: '3 weeks ago', active: false, revoked: true }, ]); const newKey = 'ar_live_sk_7x9Qf2vLm8nR4TpW6ZjKc3bEhN1aSyU5oP0dI'; const copyKey = () => { setNewKeyCopied(true); setTimeout(() => setNewKeyCopied(false), 1800); }; const toggleKey = (id) => { setKeys(keys.map(k => k.id === id ? { ...k, active: !k.active } : k)); }; return (
Workspace Settings

API Keys

Scoped credentials for calling the Arcrun API from your code and CI.
Save this key now. For security, we won't show it again — if you lose it, you'll need to create a new one.

Your new API key

Key named "Production — Northwind API" · created just now · all scopes

{newKey}
Full workspace access Never expires Add expiry or restrict scopes →

All keys

{keys.filter(k => !k.revoked).length} active · {keys.filter(k => k.revoked).length} revoked
{keys.map(k => ( ))}
Name Key Created Last used Status
{k.name}
{k.prefix}••••{k.id.slice(-4)} {k.created} {k.lastUsed} {k.revoked ? ( Revoked ) : (
toggleKey(k.id)} /> {k.active ? 'Active' : 'Paused'}
)}
{!k.revoked && ( )}
Revoking a key stops all in-flight requests within 60 seconds. This cannot be undone.
); }; window.ApiKeys = ApiKeys;