"use client"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, CardFooter } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Badge } from "@/components/ui/badge"; import { Key, Globe, Webhook, Save } from "lucide-react"; import { api } from "@/lib/api"; import * as React from "react"; export default function SettingsPage() { const [apiKey, setApiKey] = React.useState(() => api.getApiKey() || ""); const [apiBaseUrl, setApiBaseUrl] = React.useState(() => api.getApiBaseUrl() || ""); const [status, setStatus] = React.useState(""); const handleSaveKey = () => { api.setApiKey(apiKey); setStatus("API key saved."); }; const handleSaveBaseUrl = () => { if (!apiBaseUrl.trim()) { setStatus("API base URL cannot be empty."); return; } api.setApiBaseUrl(apiBaseUrl); setStatus("API base URL saved."); }; const handleTestConnection = async () => { setStatus("Testing backend connection..."); try { const health = await api.getHealth(); const ready = health?.environment_ready ? "ready" : "not ready"; setStatus(`Backend connected (${health?.status || "unknown"}, ${ready}).`); } catch (error) { const message = error instanceof Error ? error.message : "Connection failed"; setStatus(`Connection failed: ${message}`); } }; return (

Settings

Manage platform configuration and integrations.

API Keys Keys for connecting your applications to the FeatureFlag platform.
setApiKey(e.target.value)} placeholder="ff_live_..." className="font-mono" />

Used for all simulation and monitoring API calls.

setApiBaseUrl(e.target.value)} placeholder="http://127.0.0.1:8000" className="font-mono" />

Overrides NEXT_PUBLIC_API_URL in browser for this machine.

{status ? {status} : null}
Environments Configure targeting environments for your flags.

Production

Live environment

Default

Staging

Pre-production testing

Development

Local development

Integrations External integrations are not configured in this UI.

Monitoring is available via the backend monitoring endpoints. Configure any third-party integrations on the backend as needed.

); }