← Retour à la marketplace
⚙️

Paramètres Application

Paramètres configurables de l'application avec interface d'administration.

InfrastructureSimple~2 joursv1.1.0

Module de paramètres applicatifs avec stockage en DB, interface d'administration, typage des valeurs (string, number, boolean, json), paramètres publics vs privés et audit des modifications.

settingsconfigurationadminparameters

Dépendances requises :

📋 Schéma Prisma

// === Module Paramètres ===

enum SettingType {
  STRING
  NUMBER
  BOOLEAN
  JSON
}

model AppSetting {
  id          String      @id @default(cuid())
  key         String      @unique
  value       String
  type        SettingType @default(STRING)
  label       String
  description String?
  isPublic    Boolean     @default(false)
  group       String      @default("general")
  updatedAt   DateTime    @updatedAt

  @@map("app_settings")
}

🔌 Endpoints API

## API Paramètres

GET  /api/settings/public           # Paramètres publics (sans auth)
GET  /api/admin/settings            # Tous les paramètres (admin only)
GET  /api/admin/settings/:key       # Un paramètre
PUT  /api/admin/settings/:key       # Modifier la valeur
POST /api/admin/settings            # Créer un paramètre

🛠️ Guide d'implémentation

## Implémentation Paramètres

### Étape 1 — Service de paramètres
Créer src/lib/settings/service.ts :
```typescript
async function getSetting(key: string): Promise<string | null>
async function getSettingTyped<T>(key: string, type: SettingType): Promise<T | null>
async function updateSetting(key: string, value: string): Promise<void>
```

### Étape 2 — Cache en mémoire
Mettre en cache les paramètres (TTL 5min) pour éviter les requêtes DB fréquentes.

### Étape 3 — Seed des paramètres par défaut
Créer prisma/seeds/settings.ts avec les paramètres initiaux de l'application.

### Étape 4 — UI admin
Page /admin/settings avec groupes de paramètres et formulaires adaptés au type.

Prêt à installer ce module ?

Ajoutez-le à un projet existant depuis la page modules du projet.

Voir les projets →