Postgres Réclamable
Des bases de données Postgres instantanées pour le développement local, les démos, le prototypage et les environnements de test. Aucun compte requis. Les bases de données expirent après 72 heures sauf si elles sont réclamées sur un compte Neon.
Démarrage Rapide
curl -s -X POST "https://neon.new/api/v1/database" \
-H "Content-Type: application/json" \
-d '{"ref": "agent-skills"}'
Extraire connection_string et claim_url de la réponse JSON. Écrire connection_string dans le .env du projet en tant que DATABASE_URL.
Pour d'autres méthodes (CLI, SDK, plugin Vite), voir Quelle Méthode ? ci-dessous.
Quelle Méthode ?
- REST API : Retourne du JSON structuré. Aucune dépendance runtime au-delà de
curl. Préféré quand l'agent a besoin d'une sortie prévisible et d'une gestion d'erreurs. - CLI (
npx neon-new@latest --yes) : Provisionne et écrit.enven une seule commande. Pratique quand Node.js est disponible et l'utilisateur veut une configuration simple. - SDK (
neon-new/sdk) : Scripts ou provisionning programmatique en Node.js. - Plugin Vite (
vite-plugin-neon-new) : Provisionne automatiquement survite devsiDATABASE_URLmanque. À utiliser quand l'utilisateur a un projet Vite. - Navigateur : L'utilisateur ne peut pas exécuter CLI ou API. Rediriger vers https://neon.new.
REST API
URL de base : https://neon.new/api/v1
Créer une base de données
curl -s -X POST "https://neon.new/api/v1/database" \
-H "Content-Type: application/json" \
-d '{"ref": "agent-skills"}'
| Paramètre | Requis | Description |
|---|---|---|
ref |
Oui | Étiquette de suivi identifiant qui a provisionné la base de données. Utiliser "agent-skills" lors du provisionning via cette skill. |
enable_logical_replication |
Non | Activer la réplication logique (défaut : false, ne peut pas être désactivée une fois activée) |
La connection_string retournée par l'API est une URL de connexion en pool. Pour une connexion directe (sans pool) (ex. migrations Prisma), supprimer -pooler du nom d'hôte. La CLI écrit automatiquement les deux URLs.
Réponse :
{
"id": "019beb39-37fb-709d-87ac-7ad6198b89f7",
"status": "UNCLAIMED",
"neon_project_id": "gentle-scene-06438508",
"connection_string": "postgresql://...",
"claim_url": "https://neon.new/claim/019beb39-...",
"expires_at": "2026-01-26T14:19:14.580Z",
"created_at": "2026-01-23T14:19:14.580Z",
"updated_at": "2026-01-23T14:19:14.580Z"
}
Vérifier le statut
curl -s "https://neon.new/api/v1/database/{id}"
Retourne la même forme de réponse. Transitions de statut : UNCLAIMED -> CLAIMING -> CLAIMED. Après réclamation, connection_string retourne null.
Réponses d'erreur
| Condition | HTTP | Message |
|---|---|---|
ref manquant ou vide |
400 | Missing referrer |
| ID de base de données invalide | 400 | Database not found |
| Corps JSON invalide | 500 | Failed to create the database. |
CLI
npx neon-new@latest --yes
Provisionne une base de données et écrit la chaîne de connexion dans .env en une seule étape. Toujours utiliser @latest et --yes (ignore les prompts interactifs qui pourraient bloquer l'agent).
Vérification Avant Exécution
Vérifier si DATABASE_URL (ou la clé choisie) existe déjà dans le .env cible. La CLI quitte sans provisionner si elle trouve la clé.
Si la clé existe, offrir à l'utilisateur trois options :
- Supprimer ou commenter la ligne existante, puis relancer.
- Utiliser
--envpour écrire dans un fichier différent (ex.--env .env.local). - Utiliser
--keypour écrire sous un nom de variable différent.
Obtenir confirmation avant de procéder.
Options
| Option | Alias | Description | Défaut |
|---|---|---|---|
--yes |
-y |
Ignorer les prompts, utiliser les défauts | false |
--env |
-e |
Chemin du fichier .env | ./.env |
--key |
-k |
Clé de variable env pour la chaîne de connexion | DATABASE_URL |
--prefix |
-p |
Préfixe pour les variables d'env publiques générées | PUBLIC_ |
--seed |
-s |
Chemin du fichier SQL seed | aucun |
--logical-replication |
-L |
Activer la réplication logique | false |
--ref |
-r |
ID du référant (utiliser agent-skills lors du provisionning via cette skill) |
aucun |
Gestionnaires de paquets alternatifs : yarn dlx neon-new@latest, pnpm dlx neon-new@latest, bunx neon-new@latest, deno run -A neon-new@latest.
Sortie
La CLI écrit dans le .env cible :
DATABASE_URL=postgresql://... # pooled (utiliser pour les requêtes d'application)
DATABASE_URL_DIRECT=postgresql://... # direct (utiliser pour les migrations, ex. Prisma)
PUBLIC_POSTGRES_CLAIM_URL=https://neon.new/claim/...
SDK
À utiliser pour les scripts et les flux de provisionning programmatique.
import { instantPostgres } from "neon-new";
const { databaseUrl, databaseUrlDirect, claimUrl, claimExpiresAt } =
await instantPostgres({
referrer: "agent-skills",
seed: { type: "sql-script", path: "./init.sql" },
});
Retourne databaseUrl (pooled), databaseUrlDirect (direct, pour les migrations), claimUrl et claimExpiresAt (objet Date). Le paramètre referrer est obligatoire.
Plugin Vite
Pour les projets Vite, vite-plugin-neon-new provisionne automatiquement une base de données sur vite dev si DATABASE_URL manque. Installer avec npm install -D vite-plugin-neon-new. Voir la documentation Postgres Réclamable pour la configuration.
Workflow Agent
Chemin API
- Confirmer l'intention : Si la requête est ambiguë, confirmer que l'utilisateur veut une base de données temporaire sans inscription. Ignorer si demande explicite de base rapide ou temporaire.
- Provisionner : POST vers
https://neon.new/api/v1/databaseavec{"ref": "agent-skills"}. - Parser la réponse : Extraire
connection_string,claim_urletexpires_atde la réponse JSON. - Écrire .env : Écrire
DATABASE_URL=<connection_string>dans le.envdu projet (ou le fichier et la clé préférés de l'utilisateur). Ne pas écraser une clé existante sans confirmation. - Seed (si nécessaire) : Si l'utilisateur a un fichier SQL seed, l'exécuter contre la nouvelle base de données :
psql "$DATABASE_URL" -f seed.sql - Rapport : Dire à l'utilisateur où la chaîne de connexion a été écrite, quelle clé a été utilisée, et partager l'URL de réclamation. Rappeler : la base de données fonctionne maintenant ; réclamer dans les 72 heures pour la conserver.
- Optionnel : Offrir un test de connexion rapide (ex.
SELECT 1).
Chemin CLI
- Vérifier .env : Vérifier le
.envcible pour unDATABASE_URLexistant (ou clé choisie). S'il est présent, ne pas lancer. Offrir suppression,--envou--keyet obtenir confirmation. - Confirmer l'intention : Si la requête est ambiguë, confirmer que l'utilisateur veut une base de données temporaire sans inscription. Ignorer si demande explicite de base rapide ou temporaire.
- Collecter les options : Utiliser les défauts sauf si le contexte suggère autre chose (ex. utilisateur mentionne un fichier env personnalisé, seed SQL ou réplication logique).
- Exécuter : Lancer avec
@latest --yesplus les options confirmées. Toujours utiliser@latestpour éviter les versions cachées obsolètes.--yesignore les prompts interactifs qui bloqueraient l'agent.npx neon-new@latest --yes --ref agent-skills --env .env.local --seed ./schema.sql - Vérifier : Confirmer que la chaîne de connexion a été écrite dans le fichier voulu.
- Rapport : Dire à l'utilisateur où la chaîne de connexion a été écrite, quelle clé a été utilisée, et qu'une URL de réclamation est dans le fichier env. Rappeler : la base de données fonctionne maintenant ; réclamer dans les 72 heures pour la conserver.
- Optionnel : Offrir un test de connexion rapide (ex.
SELECT 1).
Checklist de Sortie
Toujours rapporter :
- Où la chaîne de connexion a été écrite (ex.
.env) - Quelle clé de variable a été utilisée (
DATABASE_URLou clé personnalisée) - L'URL de réclamation (depuis
.envou réponse API) - Que les bases de données non réclamées sont temporaires (72 heures)
Réclamation
La réclamation est optionnelle. La base de données fonctionne immédiatement sans elle. Pour réclamer optionnellement, l'utilisateur ouvre l'URL de réclamation dans un navigateur, où il se connecte ou crée un compte Neon pour réclamer la base de données.
- API/SDK : Donner à l'utilisateur l'URL
claim_urlde la réponse de création. - CLI :
npx neon-new@latest claimlit l'URL de réclamation depuis.envet ouvre le navigateur automatiquement.
Les utilisateurs ne peuvent pas réclamer dans les orgs liés à Vercel ; ils doivent choisir une autre org Neon.
Défauts et Limites
| Paramètre | Valeur |
|---|---|
| Fournisseur | AWS |
| Région | us-east-2 |
| Postgres | 17 |
La région ne peut pas être changée pour les bases de données réclamables. Les bases de données non réclamées ont des quotas plus stricts. Réclamer réinitialise les limites aux défauts du plan gratuit.
| Non réclamée | Réclamée (Plan gratuit) | |
|---|---|---|
| Stockage | 100 MB | 512 MB |
| Transfert | 1 GB | ~5 GB |
| Branches | Non | Oui |
| Expiration | 72 heures | Aucune |
Provisionning Automatique
Si l'agent a besoin d'une base de données pour accomplir une tâche (ex. « construis-moi une app todo avec une vraie base de données ») et l'utilisateur n'a pas fourni de chaîne de connexion, provisionner une via l'API et informer l'utilisateur. Inclure l'URL de réclamation pour qu'il puisse la conserver.
Notes de Sécurité et UX
- Ne pas écraser les variables env existantes. Vérifier d'abord, puis utiliser
--envou--key(CLI) ou ignorer l'écriture (API) pour éviter les conflits. - Demander avant d'exécuter un seed SQL destructeur (
DROP,TRUNCATE,DELETEen masse). - Pour les charges de travail en production, recommander le provisionning Neon standard plutôt que les bases de données temporaires réclamables.
- Si les utilisateurs ont besoin de persistance long terme, les instruire d'ouvrir l'URL de réclamation immédiatement.
- Après écriture des identifiants dans un fichier .env, vérifier qu'il est couvert par .gitignore. Sinon, avertir l'utilisateur. Ne pas modifier
.gitignoresans confirmation.