improve security (change RLS, and allow table sensitive access only at server side, with supabase service key)
This commit is contained in:
38
README.md
38
README.md
@@ -6,8 +6,9 @@ Une application web moderne pour gérer des campagnes de budgets participatifs,
|
||||
|
||||
- **Frontend**: Next.js 15 avec TypeScript et App Router
|
||||
- **UI/UX**: Tailwind CSS 4 + Shadcn/ui + Lucide React
|
||||
- **Base de données**: PostgreSQL via Supabase
|
||||
- **Authentification**: Supabase Auth
|
||||
- **Base de données**: PostgreSQL via Supabase avec RLS sécurisé
|
||||
- **Authentification**: Supabase Auth avec système de rôles admin/super_admin
|
||||
- **Sécurité**: Row Level Security (RLS) avec politiques granulaires
|
||||
- **Email**: Nodemailer avec support SMTP
|
||||
- **Déploiement**: Compatible Vercel, Netlify, etc.
|
||||
|
||||
@@ -20,11 +21,14 @@ Une application web moderne pour gérer des campagnes de budgets participatifs,
|
||||
- Design responsive avec sections Hero, Features et CTA
|
||||
- Navigation vers l'espace administration sécurisé
|
||||
|
||||
#### 🔐 **Authentification**
|
||||
- **Connexion sécurisée** : Authentification Supabase avec email/mot de passe
|
||||
#### 🔐 **Authentification et Sécurité**
|
||||
- **Système de rôles** : Administrateurs et Super Administrateurs
|
||||
- **Authentification robuste** : Supabase Auth avec validation côté serveur
|
||||
- **Politiques RLS sécurisées** : Row Level Security avec permissions granulaires
|
||||
- **Protection des routes admin** : Toutes les pages d'administration sont protégées
|
||||
- **Clé de service sécurisée** : Opérations sensibles côté serveur uniquement
|
||||
- **Session persistante** : Maintien de la connexion entre les pages
|
||||
- **Interface moderne** : Formulaire de connexion avec Shadcn/ui
|
||||
- **Interface moderne** : Formulaires de connexion avec validation
|
||||
|
||||
#### 🛠️ **Administration complète**
|
||||
- **Gestion des campagnes** : Création, modification, suppression
|
||||
@@ -102,12 +106,14 @@ npm install
|
||||
|
||||
#### Configurer la base de données
|
||||
1. Dans votre projet Supabase, allez dans l'éditeur SQL
|
||||
2. Copiez et exécutez le contenu du fichier `supabase-schema.sql`
|
||||
2. Copiez et exécutez le contenu du fichier `database/supabase-schema.sql`
|
||||
|
||||
#### Configurer l'authentification
|
||||
1. Dans Supabase Dashboard > Authentication > Settings
|
||||
2. Activez l'authentification par email
|
||||
3. Créez un utilisateur admin via l'interface Supabase ou l'API
|
||||
3. Désactivez "Enable email confirmations" pour les administrateurs
|
||||
4. Créez les utilisateurs dans Authentication > Users
|
||||
5. Ajoutez les administrateurs dans la table `admin_users` via l'éditeur SQL
|
||||
|
||||
#### Configurer les variables d'environnement
|
||||
Créez un fichier `.env.local` à la racine du projet :
|
||||
@@ -115,9 +121,15 @@ Créez un fichier `.env.local` à la racine du projet :
|
||||
```env
|
||||
NEXT_PUBLIC_SUPABASE_URL=votre_url_supabase
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY=votre_cle_anon_supabase
|
||||
SUPABASE_SERVICE_ROLE_KEY=votre_cle_service_supabase
|
||||
```
|
||||
|
||||
### 4. Lancer l'application
|
||||
### 4. Configuration des administrateurs
|
||||
1. **Créez les utilisateurs** dans Supabase Dashboard > Authentication > Users
|
||||
2. **Ajoutez les administrateurs** dans la table `admin_users` via l'éditeur SQL
|
||||
3. **Connectez-vous** avec les identifiants créés
|
||||
|
||||
### 5. Lancer l'application
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
@@ -168,6 +180,16 @@ L'application sera accessible sur `http://localhost:3000`
|
||||
- `category`: Catégorie (email, general, etc.)
|
||||
- `description`: Description de la configuration
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
Pour une documentation complète, consultez le dossier [docs/](docs/) :
|
||||
|
||||
- **[Guide de démarrage](docs/README.md)** - Vue d'ensemble de la documentation
|
||||
- **[Configuration](docs/SETUP.md)** - Installation et configuration
|
||||
|
||||
- **[Sécurité](docs/SECURITY-SUMMARY.md)** - Résumé de la sécurisation
|
||||
- **[Paramètres](docs/SETTINGS.md)** - Configuration avancée
|
||||
|
||||
## 🎨 Interface utilisateur
|
||||
|
||||
### Page d'accueil
|
||||
|
||||
Reference in New Issue
Block a user