Limites par palier
Cette page rassemble les limites de Bastide : celles de chaque palier, regroupées par thème, puis celles de la plateforme, qui valent pour tous. Les valeurs par palier sont celles de la grille publiée ; les prix et ce qui se facture au-delà sont dans Facturation.
Lire ces tableaux
Une limite par palier vaut par projet, sauf mention contraire. « Négocié » signifie que la valeur se fixe au devis du palier Souverain. Quand une limite est atteinte, la plateforme refuse avec un code et une phrase qui nomment la limite et sa valeur ; elle ne coupe jamais en silence. Une limite de stockage ou de minutes n'arrête jamais le service rendu aux visiteurs d'un site déjà en ligne.
Note. Un projet naît en Découverte et change de palier par l'écran Palier. Pro s'ouvre dans la limite des places disponibles ; Souverain se chiffre sur devis et son nœud dédié n'est pas encore servi.
Calcul
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Production | Hiberne après 15 min | Toujours chaude | Toujours chaude | Dédiée, réplique chaude |
Mémoire par instance web | 512 Mo | 512 Mo | 2 Go | négociée |
| Parts de processeur garanties | 0,05 vCPU | 0,16 vCPU | 1 vCPU | négociées |
| Processus (plafond PID) | 256 | 512 | 1 024 | négocié |
Disque éphémère /tmp | 512 Mo | 1 Go | 4 Go | négocié |
| Services par projet | 1 | 10 | 25 | négocié |
| Instances par service | 1 | 3 | 10 | négocié |
| Tâches planifiées par projet | 5 | 20 | 100 | 500 |
| Environnements personnalisés | 0 | 2 | 10 | 10 |
Une charge qui dépasse sa mémoire est arrêtée par le noyau (memoire_depassee) ; le rapport porte la valeur observée et la limite. Un glowsoft.json qui déclare plus de services ou de tâches planifiées que le palier n'en permet est refusé avant toute construction (declaration_refusee), en nommant le plafond.
Base de données
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Isolation | Cluster partagé | Cluster partagé | Instance PostgreSQL dédiée | Instance et nœud dédiés |
| Base incluse | 1 Go | 8 Go | 50 Go | 250 Go |
| Branches de base | 1 | 3 | 25 | 50 |
| Extensions PostgreSQL | 20, liste blanche | 50, liste blanche | Arbitraires | Arbitraires |
| Connexions, clientes / serveur | 30 / 3 | 60 / 5 | 200 / 15 | négociées |
| Délai d'une requête / d'une transaction inactive | 30 s / 60 s | 30 s / 60 s | 300 s / 300 s | 300 s / 300 s |
| Sauvegarde | Quotidienne | Horaire sur 48 h, puis quotidienne | Restauration à la seconde (PITR) | PITR et réplique synchrone |
| Rétention des sauvegardes | 7 jours | 30 jours | 35 jours | 90 jours |
| RPO / RTO contractuels | 24 h / 4 h | 1 h / 2 h | 5 min / 30 min | 5 min / 30 min |
Temps réel
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Messages par seconde | 100 | 500 | 2 500 | négocié |
| Connexions simultanées | 200 | 2 000 | 10 000 | négociées |
Stockage et courriels
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Stockage objet inclus | 5 Go | 50 Go | 250 Go | 1 To |
| Taille maximale d'un fichier | 50 Mo | 5 Go | 50 Go | quota du projet |
| Transformations d'images incluses par mois | 5 000 | 50 000 | 250 000 | 1 000 000 |
| Courriels transactionnels par mois | 1 000 | 10 000 | 50 000 | 200 000 |
Un téléversement est refusé s'il dépasse le type ou la taille admis par le seau, la taille maximale du palier ou le quota du projet ; le refus nomme celle des trois qui joue. Au-delà des transformations incluses, l'image est servie telle quelle.
Réseau
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Trafic sortant, usage raisonnable | 500 Go/mois | 2 To/mois | 10 To/mois | 50 To/mois |
| Débit sortant soutenu par projet | 20 Mb/s | 50 Mb/s | 200 Mb/s | 500 Mb/s |
| Connexions sortantes simultanées par conteneur | 256 | 512 | 2 048 | 4 096, négociées |
| Budget de requêtes par projet, rafale de 10 s | 100 req/s | 250 req/s | 1 000 req/s | 2 500 req/s |
| Domaines personnalisés par projet | 1 | 10 | 100 | 500 |
Le débit sortant n'est jamais refusé ni tronqué : une rafale de dix secondes passe à pleine vitesse, puis l'edge espace l'envoi jusqu'au plafond. À 80 % de la rafale, la plateforme émet l'événement project.egress.threshold vers les points de réception du projet (voir Webhooks).
Construction et déploiement
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Minutes de construction par mois | 100 | 500 | 2 000 | 10 000 |
| Constructions simultanées | 1 | 2 | 5 | négocié |
| Prévisualisations simultanées | 1 | 3 | 25 | 50 |
Le quota de minutes est un plafond dur : atteint, il refuse les constructions suivantes jusqu'au premier du mois (UTC), sans facturer de dépassement. Une construction annulée par une poussée plus récente ne compte pas ; une construction échouée compte.
Observabilité
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Rétention des journaux d'exécution | 7 jours | 30 jours | 90 jours | 365 jours |
| Journal d'audit du projet | 30 jours | 12 mois | 24 mois | 36 mois |
Équipe, sécurité et support
| Découverte | Standard | Pro | Souverain | |
|---|---|---|---|---|
| Sièges | Illimités | Illimités | Illimités | Illimités |
| Authentification unique et SCIM | — | Incluse | Incluse | Incluse |
| Protection des prévisualisations, 4 modes | Incluse | Incluse | Incluse | Incluse |
| Disponibilité engagée | 99,5 % | 99,9 % | 99,9 % | 99,95 % |
| Support | Documentation, forum | Ticket, courriel, 9 h – 18 h ouvrés | Ticket, courriel, téléphone, 8 h – 19 h ouvrés | Ticket, téléphone, interlocuteur nommé, 8 h – 20 h ouvrés |
Note. Pendant la bêta, Bastide fonctionne dans une seule région, en France, et l'engagement de disponibilité chiffré n'est pas encore en vigueur.
Le projet gratuit
Le projet gratuit de chaque personne vérifiée a ses propres limites, plus serrées que Découverte :
| Limite | Valeur |
|---|---|
| Mise en veille | après 15 min sans requête |
| Mise en sommeil | après 30 jours sans visite ni déploiement |
| Base de données | 500 Mo |
| Stockage objet | 1 Go |
| Minutes de construction | 100 par mois |
| Courriels | 100 par mois |
| Domaines personnalisés | 1 |
| Sortie réseau | fermée par défaut, ouverte hôte par hôte ; pas de SMTP sortant |
| Processeur soutenu | 0,25 cœur |
Limites de la plateforme
Ces limites valent pour tous les paliers.
Débit de l'API
Chaque jeton (ou la session de console qui en tient lieu) a deux limites, en fenêtre glissante :
| Limite | Valeur | S'applique à |
|---|---|---|
| Générale | 600 appels par 60 s | Toute opération |
| Sensible | 60 appels par 60 s | Les écritures, et les lectures qui rendent un secret, en plus de la générale |
Chaque réponse porte RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (en secondes) et RateLimit-Policy ; un refus rend 429 rate_limited avec Retry-After. La page de référence de chaque opération publie ses limites. D'autres plafonds protègent des gestes précis :
| Geste | Plafond |
|---|---|
| Créations de projet par un agent | 5 par jour glissant et par locataire (plafond_de_creations_de_projet) |
| Échecs de connexion | 5 en 15 minutes pour un compte depuis une adresse, puis attente qui double (trop_de_tentatives) |
| Jetons personnels par compte | 50 |
| Seconds facteurs actifs par compte | 5 |
| Crochets de déploiement par projet | 20 |
| Projets raccordés à un même dépôt dans une organisation | 50 |
Variables d'environnement
Un environnement porte au plus 1 000 variables et 262 144 octets cumulés ; au-delà, l'écriture est refusée (quota_exceeded).
Requêtes servies par l'edge
| Paramètre | Valeur | Réglable | Au-delà |
|---|---|---|---|
| Longueur d'URL | 16 Ko | non | 414 |
| En-têtes de requête | 100, 32 Ko cumulés | non | 431 |
| Corps de requête | 100 Mo | jusqu'à 5 Go (requests.maxBodyMegabytes) | 413 |
| Connexion vers l'application | 10 s | non | 502 |
| En-têtes de la réponse de l'application | 15 s | non, pour l'instant | 504 |
| Réponse complète (délai de garde) | 300 s | 30 à 3 600 s (requests.timeoutSeconds) | 504 |
| Connexion longue (WebSocket, flux d'événements) | 60 min | non, pour l'instant | fin de la connexion |
| Connexions simultanées par adresse source | 200 | non | connexion refusée |
Les deux réglages se déclarent dans le glowsoft.json du dépôt (voir Routage).
Construction
Le Dockerfile d'un dépôt est lu dans des bornes : 256 Kio, 4 000 lignes, 32 Kio par ligne logique (dockerfile_trop_grand). L'image produite vise linux/amd64, seule architecture d'exécution du parc. Une construction trop longue, trop bavarde ou trop gourmande s'arrête avec un code qui le dit (build_limite_duree, build_limite_journal, build_limite_memoire, build_limite_disque) ; voir Constructions.
Depuis Supabase
Les écarts connus entre Bastide et Supabase (1 000 lignes par réponse REST, mode transaction du mutualiseur, temps réel sans postgres_changes…) sont listés et reproduits par un test sur la page publique https://bastide.app/limites-supabase, et repris dans Migrer depuis Supabase.
Voir aussi : Facturation, Constructions, Base de données, Stockage, Dépannage.