import { A } from '@solidjs/router'; import { createMemo, createResource, For, Show } from 'solid-js'; const API = '/api/gateway'; type RoleTemplate = { id: string; name: string; description?: string; code?: string; audience?: string; }; async function fetchTemplates(): Promise { try { const res = await fetch(`${API}/api/admin/roles?audience=INTERNAL`); if (!res.ok) return []; const data = await res.json(); const rows = Array.isArray(data) ? data : (data.roles || []); return rows.map((r: any) => ({ id: r.id, name: r.name, description: r.description || '', code: r.code || r.key || '', audience: r.audience || 'INTERNAL', })); } catch { return []; } } export default function RoleTemplatesPage() { const [templates] = createResource(fetchTemplates); const count = createMemo(() => (templates() || []).length); return (

Role Templates

Starter role presets for faster internal role creation and cloning.

Create Internal Role

Available Templates

{count()} template{count() !== 1 ? 's' : ''}
0}> {(item) => ( )}
Name Description Code Actions
Loading templates...
No templates available yet.
{item.name} {item.description || '—'} {item.code || '—'}
); }