Aller au contenu

Introduction

Rebase est un Backend-as-a-Service (BaaS) open source et un panneau d’administration conçu avec React et TypeScript. Il vous offre tout le nécessaire pour créer des applications de back-office prêtes pour la production basées sur PostgreSQL :

  • Schema as Code — Définissez vos modèles de données sous forme de collections TypeScript. Rebase génère des tables PostgreSQL, une interface CRUD complète, des points de terminaison d’API REST et des SDK clients sécurisés au niveau des types à partir d’une source unique de vérité.
  • Panneau d’administration instantané — Une interface d’administration élégante et rapide basée sur React avec des vues tabulaires de type feuille de calcul, des listes, des formulaires, des tableaux Kanban, de l’édition en ligne et une synchronisation en temps réel.
  • Backend intégré — Authentification (mots de passe, liens magiques, codes à usage unique, MFA, clés d’API et douze fournisseurs OAuth/OIDC), stockage de fichiers (local ou S3), Row Level Security, historique des entités et temps réel par WebSocket — le tout intégré nativement.
  • Radicalement extensible — Si vous pouvez le concevoir avec React, vous pouvez l’ajouter à Rebase. Champs personnalisés, vues personnalisées, plugins et accès complet aux hooks internes.

Rebase est constitué de deux produits qui partagent le même serveur. Commencez par celui pour lequel vous êtes venu :

Je veux… Commencez ici Ce que vous obtenez
Un backend et un panneau d’administration Démarrage rapide Des collections en TypeScript, une interface CRUD générée, une API REST, l’authentification, le stockage et le temps réel
Uniquement l’API, sur ma propre base de données Backend uniquement Une API REST headless et un SDK sur votre base PostgreSQL existante — sans panneau d’administration ni fichiers de collection

Aucune de ces options n’est un chemin à sens unique : un projet headless peut intégrer un panneau d’administration en ajoutant des fichiers de collection, et un projet complet peut desservir des tables pour lesquelles il n’a pas de collection.

┌──────────────────────────────────────────────────────┐
│ Client Applications │
│ ┌──────────────┐ ┌───────────────────────────────┐ │
│ │ Your App │ │ Rebase Admin UI │ │
│ │ (Any Tech) │ │ Tables / Lists / Kanban │ │
│ └──────┬───────┘ └──────────────┬────────────────┘ │
└─────────┼──────────────────────────┼─────────────────┘
│ HTTP + WebSocket │
▼ ▼
┌──────────────────────────────────────────────────────┐
│ Rebase Backend (Node.js + Hono) │
│ ┌─────────┐ ┌──────┐ ┌─────────┐ ┌───────────────┐ │
│ │ REST API│ │ Auth │ │ Storage │ │ WebSocket RT │ │
│ └────┬────┘ └──┬───┘ └────┬────┘ └──────┬────────┘ │
└───────┼─────────┼──────────┼─────────────┼───────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌──────────────────────────────────────────────────────┐
│ PostgreSQL (Drizzle ORM) │
└──────────────────────────────────────────────────────┘
pnpm dlx @rebasepro/cli init my-app
cd my-app

init génère un fichier .env prêt à l’emploi pour vous — aucune modification nécessaire. Ensuite :

pnpm install
pnpm run dev

C’est tout ce qu’il faut pour la première exécution. Il n’y a aucune base de données à installer ni d’étape de schéma : en l’absence de DATABASE_URL, rebase dev démarre une instance PostgreSQL gérée (PGlite) dans le répertoire du projet, génère le schéma à partir de vos collections et crée les tables au démarrage.

Consultez les URL affichées dans la sortie du terminal. rebase dev choisit un port libre par projet plutôt que des ports fixes, ils diffèrent donc d’un projet à l’autre et d’une machine à l’autre. Le premier compte que vous enregistrez devient l’administrateur — sur votre machine. Un déploiement en production définit plutôt son administrateur via REBASE_ADMIN_EMAIL et REBASE_ADMIN_PASSWORD (voir Configuration).

Pour utiliser votre propre instance Postgres à la place, décommentez DATABASE_URL dans le fichier .env et réexécutez pnpm run dev.

→ Suivez le guide de démarrage rapide complet pour un tutoriel exhaustif, incluant la connexion à votre propre base de données.

Fonctionnalité Description
Vues tabulaires Tableau virtualisé et rapide avec édition en ligne, filtrage, tri et recherche textuelle
Vue Liste Vue sous forme de liste verticale épurée et réactive pour les collections
Tableau Kanban Vue en tableau avec glisser-déposer groupée par n’importe quelle propriété d’énumération
Relations Un-à-un, un-à-plusieurs, plusieurs-à-plusieurs avec tables de jonction et jointures multi-niveaux
Row Level Security Politiques RLS similaires à Supabase définies dans la configuration de votre collection
Authentification JWT + jetons de rafraîchissement, douze fournisseurs OAuth/OIDC, liens magiques, codes à usage unique, MFA TOTP, clés d’API restreintes, contrôle d’accès basé sur les rôles
Stockage de fichiers Système de fichiers local ou compatible S3 avec champs d’upload et navigateur de fichiers
Synchronisation en temps réel Mises à jour en direct via WebSocket sur tous les clients connectés
Historique des entités Journal d’audit complet pour chaque création, modification et suppression
API REST Points de terminaison CRUD générés automatiquement pour chaque collection
Import/Export de données Import CSV, JSON et Excel avec mise en correspondance des champs ; export CSV/JSON
Éditeur de collections Éditeur visuel de schéma qui génère du TypeScript via manipulation d’AST
SDK Client SDK JavaScript sécurisé au niveau des types pour vos applications frontend
Système de plugins Étendez chaque partie de l’interface — barre d’outils, formulaires, champs, page d’accueil
Enrichissement des données par IA Autocomplétion assistée par LLM pour les champs de texte
Tâches Cron Tâches d’arrière-plan planifiées avec surveillance, journalisation et tableau de bord Studio
Fonctions personnalisées Routes Hono basées sur des fichiers montées automatiquement avec middleware d’authentification et accès à la base de données
Service d’e-mail SMTP intégré pour la réinitialisation de mot de passe, la vérification et les e-mails transactionnels
Branches de base de données Copies isolées et instantanées de votre base de données pour le dev, le staging ou les tests
Webhooks Notifications sortantes signées par HMAC sur INSERT, UPDATE, DELETE
Canaux de diffusion Canaux WebSocket pour la messagerie en temps réel entre les clients connectés
Suivi de présence Suivez les utilisateurs en ligne et synchronisez l’état partagé entre les participants
  • Démarrage rapide — Soyez opérationnel en 2 minutes
  • Backend uniquement — L’API headless sur une base de données existante
  • Structure du projet — Comprenez le code généré, et les cinq concepts clés que le reste de ces pages suppose connus
  • Collections — Définissez votre schéma de données
  • Backend — Configurez l’authentification, le stockage et l’API
  • Architecture — Comprenez comment l’ensemble s’articule