Introduction à Supabase
Découvrir Supabase, une base de données dans le Cloud
Notions théoriques
Qu’est-ce que Supabase ?
Supabase est une plateforme open-source qui permet de créer et gérer des bases de données relationnelles, avec une interface moderne et de nombreuses fonctionnalités prêtes à l’emploi.
Supabase repose sur PostgreSQL (https://www.postgresql.org/), un système de gestion de base de données relationnelle puissant et très utilisé dans le monde professionnel.
Supabase est souvent comparée à Firebase (de Google), mais elle présente plusieurs avantages pour les développeurs qui préfèrent les technologies open-source, les bases de données relationnelles, ou qui veulent garder le contrôle sur leurs données.
Voici quelques fonctionnalités principales de Supabase :
- Base de données PostgreSQL : chaque projet Supabase repose sur une base relationnelle robuste.
- Éditeur SQL : permet d’écrire et d’exécuter des requêtes SQL.
- Éditeur de tables : interface graphique pour créer et modifier les tables.
- Authentification intégrée : gestion des utilisateurs avec email/mot de passe, OAuth, etc.
- Stockage de fichiers : pour héberger des images, documents, etc.
- API REST et GraphQL : générées automatiquement pour interagir avec les données.
- Sécurité avec RLS (Row Level Security) : permet de définir finement qui peut accéder à quoi.
Supabase est hébergé sur l’infrastructure cloud (AWS, GCP, etc.), mais il est aussi possible de l’installer en local avec Docker.
Pourquoi utiliser Supabase dans un projet informatique ?
- Pour centraliser les données d’une application web ou mobile.
- Pour gérer des utilisateurs avec un système d’authentification intégré.
- Pour développer rapidement sans devoir tout coder soi-même (API, sécurité, etc.).
- Pour collaborer sur des projets avec une base de données partagée et accessible en ligne.
Interface de Supabase
Une fois connecté à Supabase, l'interface principale (appelée Dashboard) propose plusieurs sections :
- Table Editor : interface pour visualiser et modifier les tables et leurs données.
- SQL Editor : pour exécuter des requêtes SQL.
- Auth : pour gérer les utilisateurs authentifiés.
- Storage : pour gérer les fichiers.
- API : documentation automatique de l’API générée.
- Settings : pour configurer les clés API, les règles de sécurité, etc.
Création d’un compte Supabase
Pour utiliser Supabase, il faut créer un compte sur https://supabase.com.
L’inscription est gratuite et nécessite une adresse email valide.
Utiliser une adresse email professionnelle sécurisée, et éviter les adresses jetables ou non respectueuses de vos données personnelles.
Création d’un projet Supabase
Une fois connecté, il est possible de créer un nouveau projet.
Cela génère une instance PostgreSQL hébergée, avec un nom de projet, un mot de passe pour la base de données, et une région de déploiement.
Chaque projet Supabase dispose de :
- Une URL publique pour accéder à l’API.
- Une clé API (anon) pour les requêtes côté client.
- Une clé secrète (service_role) pour les requêtes côté serveur.
Ces clés sont sensibles, en particulier la clé service_role
.
Ne jamais partager publiquement (sur GitHub par exemple) la clé service_role
.
Bonnes pratiques cyber
- Utiliser un mot de passe fort (au moins 12 caractères, avec majuscules, minuscules, chiffres et symboles).
- Activer l’authentification à deux facteurs (2FA).
- Ne jamais publier les clés API dans un dépôt public (GitHub, etc.).
- Toujours vérifier les droits d’accès aux données (via RLS ou les permissions de la table).
Exemple pratique
Étapes pour créer un compte et un projet Supabase
Il est possible de créer un projet Supabase en suivant les étapes suivantes :
-
Aller sur le site :
Accéder à https://supabase.com et cliquer sur Start your project. -
Créer un compte :
S’inscrire avec une adresse email et un mot de passe sécurisé. -
Activer la 2FA :
Une fois connecté, aller dans les paramètres du compte et activer l’authentification à deux facteurs (via TOTP ou SMS). -
Créer un nouveau projet :
- Cliquer sur New project.
- Donner un nom au projet (par exemple :
ma-base-donnees
). - Choisir une organisation (créer une nouvelle si nécessaire).
- Saisir un mot de passe base de données (à conserver précieusement).
- Choisir une région de déploiement (ex :
eu-west-1
). - Valider la création.
-
Attendre quelques secondes :
Supabase va générer l’instance PostgreSQL, configurer l’API et l’interface. -
Explorer l’interface :
- Aller dans Table Editor : aucune table n’est encore créée.
- Aller dans SQL Editor : possibilité d’écrire des requêtes SQL.
- Aller dans API : copier l’URL du projet et la clé
anon
.
-
Créer une table de test (optionnel) :
- Dans le SQL Editor, exécuter :
create table ma_table (
id serial primary key,
nom text
); - Vérifier que la table apparaît dans le Table Editor.
- Dans le SQL Editor, exécuter :
-
Tester l’API REST :
- Aller dans la section API.
- Copier l’URL REST et la clé
anon
. - Tester une requête GET via un client HTTP (comme Postman ou curl).
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif du TP
Ce TP vous guide pas à pas pour :
- Créer un compte Supabase sécurisé,
- Créer un projet Supabase vide,
- Explorer l’interface Dashboard,
- Identifier les clés API générées automatiquement,
- Vérifier que la base est prête à accueillir les prochaines tables.
À la fin de ce TP, vous aurez un projet Supabase fonctionnel, prêt à être utilisé dans les prochaines séances.
Étape 1 — Créer un compte Supabase sécurisé
- Rendez-vous sur https://supabase.com.
- Cliquez sur Start your project.
- Inscrivez-vous avec votre adresse email professionnelle (évitez les adresses jetables).
- Choisissez un mot de passe fort :
- Au moins 12 caractères,
- Contenant majuscules, minuscules, chiffres et symboles.
- Une fois connecté, allez dans les paramètres de votre compte et activez la 2FA (authentification à deux facteurs), en choisissant l’option TOTP (Google Authenticator, Authy, etc.).
Une solution
Vous devez être connecté pour voir le contenu.
Étape 2 — Créer un projet Supabase
- Une fois connecté, cliquez sur New Project.
- Renseignez les champs suivants :
- Nom du projet :
tp-supabase-intro
- Organisation : créez-en une si besoin.
- Mot de passe de la base de données : choisissez un mot de passe fort et conservez-le.
- Région : choisissez
eu-west-1
(ou la région la plus proche géographiquement).
- Nom du projet :
- Cliquez sur Create new project et attendez que Supabase initialise l’environnement.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 3 — Explorer l’interface Dashboard
Une fois le projet créé, vous accédez au Dashboard. Explorez les sections suivantes :
- Table Editor : vérifiez que la base est vide (aucune table encore créée).
- SQL Editor : ouvrez-le pour voir où vous pourrez écrire des requêtes SQL.
- Auth : regardez comment Supabase gère les utilisateurs.
- Storage : pour héberger des fichiers (images, PDF, etc.).
- API : repérez l’URL de votre projet et la clé
anon
.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 4 — Identifier et sécuriser les clés API
Rendez-vous dans la section API et repérez :
- L’URL REST de votre projet,
- La clé
anon
(clé publique), - La clé
service_role
(clé secrète).
Notez ces informations dans un fichier .env
local (ne pas les publier).
Une solution
Vous devez être connecté pour voir le contenu.
Étape 5 — Vérifier que la base est prête à accueillir les tables
- Dans le SQL Editor, tapez la requête suivante pour lister les tables existantes dans le schéma
public
:SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'; - Vérifiez que la base est vide (aucune table personnalisée n’a encore été créée).
Une solution
Vous devez être connecté pour voir le contenu.
Étape 6 — (Optionnel) Créer une table de test pour valider l’environnement
- Dans le SQL Editor, créez une table temporaire :
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
nom TEXT
); - Rafraîchissez le Table Editor pour vérifier que la table apparaît.
- Supprimez-la ensuite :
DROP TABLE test_table;
Une solution
Vous devez être connecté pour voir le contenu.
Fin du TP
Vous avez maintenant :
- Un compte Supabase sécurisé,
- Un projet Supabase fonctionnel,
- Une base de données vide et prête à l’emploi,
- Les clés API correctement identifiées et protégées.
Vous êtes prêt pour la séance suivante, où vous créerez vos premières tables dans Supabase.