// Platform-wide feature flags — the registry of flags that exist across the // whole deployment. A tenant then overrides any of these under its detail page // (see tenant-detail/feature-flags-tab). Backend: /api/v1/admin/feature-flags // (platform_admin only). import type { ArcadiaClient } from "@crema/arcadia-core-client" export interface PlatformFlag { id: string key: string description: string | null enabled_by_default: boolean inserted_at?: string updated_at?: string } export type PlatformFlagInput = { key?: string description?: string | null enabled_by_default?: boolean } export async function listPlatformFlags(arcadia: ArcadiaClient): Promise { const res = await arcadia.GET<{ data: PlatformFlag[] }>("/api/v1/admin/feature-flags") return res.data } export async function createPlatformFlag( arcadia: ArcadiaClient, input: PlatformFlagInput, ): Promise { const res = await arcadia.POST<{ data: PlatformFlag }>("/api/v1/admin/feature-flags", { body: { flag: input }, }) return res.data } export async function updatePlatformFlag( arcadia: ArcadiaClient, id: string, input: PlatformFlagInput, ): Promise { const res = await arcadia.PUT<{ data: PlatformFlag }>(`/api/v1/admin/feature-flags/${id}`, { body: { flag: input }, }) return res.data } export async function deletePlatformFlag(arcadia: ArcadiaClient, id: string): Promise { await arcadia.DELETE(`/api/v1/admin/feature-flags/${id}`) }