export interface EnvSpec { name: string; label?: string; description?: string; default?: string; required?: boolean; secret?: boolean; options?: string[]; generate?: boolean; } /** An RSA private key the installer generates into a file on first install (used for Authelia OIDC signing). */ export interface RsaKeySpec { name: string; path: string; bits?: number; } export interface ServiceMetadata { id: string; name: string; description: string; version: string; category?: string; tags?: string[]; icon?: string; author?: string; license?: string; homepage?: string; documentation?: string; compose: Record; volumes?: Record; networks?: Record; env?: EnvSpec[]; rsaKeys?: RsaKeySpec[]; dependsOn?: string[]; notes?: string; } export interface InstalledService { id: string; name: string; version: string; installedAt: string; updatedAt: string; } export interface State { version: number; services: Record; } export interface CatalogEntry { id: string; version: string; path: string; } export interface Catalog { generatedAt?: string; services: CatalogEntry[]; } export interface ActionResult { ok: boolean; message: string; }