88 lines
2.2 KiB
TypeScript
88 lines
2.2 KiB
TypeScript
// Secuird Configuration
|
|
// Environment-specific settings for the application
|
|
|
|
// Base URL without /api/v1 suffix - used for CLI sign URL
|
|
const BASE_URL = import.meta.env.VITE_API_BASE_URL || "http://192.168.64.7:8888";
|
|
|
|
// Theme configuration from environment
|
|
export type ThemeName = "default" | "dev" | "preprod";
|
|
|
|
interface ThemeColors {
|
|
primary: string;
|
|
primaryForeground: string;
|
|
sidebarPrimary: string;
|
|
sidebarPrimaryForeground: string;
|
|
ring: string;
|
|
}
|
|
|
|
const THEME_COLORS: Record<ThemeName, ThemeColors> = {
|
|
default: {
|
|
primary: "173 65% 36%", // teal
|
|
primaryForeground: "0 0% 100%",
|
|
sidebarPrimary: "173 65% 36%",
|
|
sidebarPrimaryForeground: "0 0% 100%",
|
|
ring: "173 65% 36%",
|
|
},
|
|
dev: {
|
|
primary: "0 72% 51%", // red
|
|
primaryForeground: "0 0% 100%",
|
|
sidebarPrimary: "0 72% 51%",
|
|
sidebarPrimaryForeground: "0 0% 100%",
|
|
ring: "0 72% 51%",
|
|
},
|
|
preprod: {
|
|
primary: "270 70% 55%", // purple
|
|
primaryForeground: "0 0% 100%",
|
|
sidebarPrimary: "270 70% 55%",
|
|
sidebarPrimaryForeground: "0 0% 100%",
|
|
ring: "270 70% 55%",
|
|
},
|
|
};
|
|
|
|
const THEME_DEFAULTS: Record<ThemeName, { appName: string; favicon: string }> = {
|
|
default: {
|
|
appName: "Secuird",
|
|
favicon: "/favicon.svg",
|
|
},
|
|
dev: {
|
|
appName: "Secuird Dev",
|
|
favicon: "/favicon-dev.svg",
|
|
},
|
|
preprod: {
|
|
appName: "Secuird Staging",
|
|
favicon: "/favicon-staging.svg",
|
|
},
|
|
};
|
|
|
|
const themeName = (import.meta.env.VITE_THEME || "default") as ThemeName;
|
|
const themeColors = THEME_COLORS[themeName] || THEME_COLORS.default;
|
|
const themeDefaults = THEME_DEFAULTS[themeName] || THEME_DEFAULTS.default;
|
|
|
|
export const config = {
|
|
// API Configuration
|
|
api: {
|
|
baseUrl: `${BASE_URL}/api/v1`,
|
|
},
|
|
|
|
// Sign URL for CLI (same as base URL, no /api/v1)
|
|
signUrl: BASE_URL,
|
|
|
|
// App metadata - can be overridden per-theme or via env
|
|
app: {
|
|
name: import.meta.env.VITE_APP_NAME || themeDefaults.appName,
|
|
description: "Identity & Access Platform",
|
|
favicon: import.meta.env.VITE_FAVICON || themeDefaults.favicon,
|
|
},
|
|
|
|
// Theme configuration for CSS variable injection
|
|
theme: {
|
|
name: themeName,
|
|
colors: themeColors,
|
|
},
|
|
|
|
// Feature flags
|
|
features: {
|
|
devTools: import.meta.env.DEV,
|
|
},
|
|
} as const;
|