Skip to content

Commit 4d87ef1

Browse files
committed
Merge feat/webhooks — outbound webhooks + palette icon
2 parents 76c2a87 + 7ba7a4e commit 4d87ef1

13 files changed

Lines changed: 1107 additions & 3 deletions

File tree

admin/src/App.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const Records = lazy(() => import("./pages/Records.tsx"));
2323
const CollectionEdit = lazy(() => import("./pages/CollectionEdit.tsx"));
2424
const HooksPage = lazy(() => import("./pages/Hooks.tsx"));
2525
const FlagsPage = lazy(() => import("./pages/Flags.tsx"));
26+
const WebhooksPage = lazy(() => import("./pages/Webhooks.tsx"));
2627

2728
function RequireAuth({ children }: { children: React.ReactNode }) {
2829
const isAuthed = useAuth((s) => s.isAuthed);
@@ -131,6 +132,7 @@ export default function App() {
131132
<Route path="users" element={<Superusers />} />
132133
<Route path="hooks" element={<HooksPage />} />
133134
<Route path="flags" element={<FlagsPage />} />
135+
<Route path="webhooks" element={<WebhooksPage />} />
134136
<Route path="*" element={<NotFound />} />
135137
</Route>
136138
<Route path="*" element={<Navigate to="/_/" replace />} />

admin/src/components/Icon.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ const Icon: React.FC<IconProps> = ({ name, size = 14, stroke = 1.5, style, class
5151
activity: <><path d="M22 12h-4l-3 9-6-18-3 9H2"/></>,
5252
server: <><rect x="3" y="3" width="18" height="7" rx="1"/><rect x="3" y="14" width="18" height="7" rx="1"/><circle cx="7" cy="6.5" r="0.5" fill="currentColor"/><circle cx="7" cy="17.5" r="0.5" fill="currentColor"/></>,
5353
shield: <><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></>,
54+
palette: <><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"/></>,
5455
alert: <><path d="M12 2L2 20h20z"/><path d="M12 9v5M12 17v0"/></>,
5556
zap: <><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></>,
5657
globe: <><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></>,

admin/src/components/Shell.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const SECTIONS: NavSection[] = [
2222
items: [
2323
{ to: "/_/hooks", label: "Hooks", icon: "webhook" },
2424
{ to: "/_/flags", label: "Feature flags", icon: "zap" },
25+
{ to: "/_/webhooks", label: "Webhooks", icon: "upload" },
2526
],
2627
},
2728
{
@@ -46,7 +47,7 @@ export const Sidebar: React.FC = () => {
4647
<VaultbaseLogo size={22} />
4748
</span>
4849
<div className="sb-brand-name">vaultbase</div>
49-
<div className="sb-brand-version mono">v0.4.0</div>
50+
<div className="sb-brand-version mono">v0.5.0</div>
5051
</div>
5152
{SECTIONS.map((sec) => (
5253
<div className="sb-section" key={sec.label}>

admin/src/pages/Settings.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ interface SettingsTab {
3939

4040
const SETTINGS_TABS: SettingsTab[] = [
4141
{ id: "application", label: "Application", icon: "settings", subtitle: "runtime configuration" },
42-
{ id: "theme", label: "Theme", icon: "fill", subtitle: "admin UI accent + surface colors" },
42+
{ id: "theme", label: "Theme", icon: "palette", subtitle: "admin UI accent + surface colors" },
4343
{ id: "rate-limit", label: "Rate limiting", icon: "shield", subtitle: "per-IP token bucket" },
4444
{ id: "egress", label: "Hook egress", icon: "globe", subtitle: "outbound HTTP allow / deny CIDRs" },
4545
{ id: "cors", label: "CORS", icon: "globe", subtitle: "cross-origin allow-list for the HTTP API" },

0 commit comments

Comments
 (0)