Postgres Revendicable
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 à moins d'être revendiqué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"}'
Analysez connection_string et claim_url à partir de la réponse JSON. Écrivez 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 que l'utilisateur veut une configuration simple. - SDK (
neon-new/sdk) : Scripts ou provisioning programmatique en Node.js. - Plugin Vite (
vite-plugin-neon-new) : Provisionne automatiquement survite devsiDATABASE_URLest manquant. À utiliser quand l'utilisateur a un projet Vite. - Navigateur : L'utilisateur ne peut pas exécuter CLI ou API. Direction 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 | Balise de suivi qui identifie qui a provisionné la base de données. Utilisez "agent-skills" lors du provisioning via cette compétence. |
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 avec pooling. Pour une connexion directe (sans pooling) (p. ex. migrations Prisma), supprimez -pooler du nom d'hôte. Le CLI écrit automatiquement les deux URLs pooled et directe.
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 que la base de données soit revendiquée, 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. Utilisez toujours @latest et --yes (ignore les invites interactives qui bloqueraient l'agent).
Vérification avant exécution
Vérifiez si DATABASE_URL (ou la clé choisie) existe déjà dans le .env cible. Le CLI se termine sans provisioning s'il trouve la clé.
Si la clé existe, offrez à l'utilisateur trois options :
- Supprimer ou commenter la ligne existante, puis relancer.
- Utiliser
--envpour écrire dans un fichier différent (p. ex.--env .env.local). - Utiliser
--keypour écrire sous un nom de variable différent.
Obtenez une confirmation avant de continuer.
Options
| Option | Alias | Description | Défaut |
|---|---|---|---|
--yes |
-y |
Ignorer les invites, utiliser les défauts | false |
--env |
-e |
Chemin du fichier .env | ./.env |
--key |
-k |
Clé de variable d'env de 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 de seed | aucun |
--logical-replication |
-L |
Activer la réplication logique | false |
--ref |
-r |
ID de référent (utilisez agent-skills lors du provisioning via cette compétence) |
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
Le 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, p. ex. Prisma)
PUBLIC_POSTGRES_CLAIM_URL=https://neon.new/claim/...
SDK
À utiliser pour les scripts et les flux de provisioning 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. Installez avec npm install -D vite-plugin-neon-new. Voir la documentation Postgres Revendicable pour la configuration.
Flux de travail agent
Chemin API
- Confirmer l'intention : Si la demande est ambiguë, confirmez que l'utilisateur veut une base de données temporaire sans inscription. Ignorez cette étape s'il a explicitement demandé une base de données rapide ou temporaire.
- Provisionner : POST vers
https://neon.new/api/v1/databaseavec{"ref": "agent-skills"}. - Analyser la réponse : Extrayez
connection_string,claim_urletexpires_atde la réponse JSON. - Écrire .env : Écrivez
DATABASE_URL=<connection_string>dans le.envdu projet (ou le fichier et la clé préférés de l'utilisateur). Ne réécrivez pas une clé existante sans confirmation. - Seed (si nécessaire) : Si l'utilisateur a un fichier SQL de seed, exécutez-le contre la nouvelle base de données :
psql "$DATABASE_URL" -f seed.sql - Rapport : Dites à l'utilisateur où la chaîne de connexion a été écrite, quelle clé a été utilisée et partagez l'URL de revendication. Rappelez-leur : la base de données fonctionne maintenant ; revendiquez-la dans les 72 heures pour la conserver définitivement.
- Optionnel : Offrez un test de connexion rapide (p. ex.
SELECT 1).
Chemin CLI
- Vérifier .env : Vérifiez le
.envcible pour uneDATABASE_URLexistante (ou clé choisie). Si présente, ne l'exécutez pas. Offrez remove,--envou--keyet obtenez une confirmation. - Confirmer l'intention : Si la demande est ambiguë, confirmez que l'utilisateur veut une base de données temporaire sans inscription. Ignorez cette étape s'il a explicitement demandé une base de données rapide ou temporaire.
- Rassembler les options : Utilisez les défauts à moins que le contexte ne suggère le contraire (p. ex., l'utilisateur mentionne un fichier d'env personnalisé, du SQL seed ou la réplication logique).
- Exécuter : Exécutez avec
@latest --yesplus les options confirmées. Utilisez toujours@latestpour éviter les versions cached obsolètes.--yesignore les invites interactives qui bloqueraient l'agent.npx neon-new@latest --yes --ref agent-skills --env .env.local --seed ./schema.sql - Vérifier : Confirmez que la chaîne de connexion a été écrite dans le fichier prévu.
- Rapport : Dites à l'utilisateur où la chaîne de connexion a été écrite, quelle clé a été utilisée et qu'une URL de revendication se trouve dans le fichier env. Rappelez-leur : la base de données fonctionne maintenant ; revendiquez-la dans les 72 heures pour la conserver définitivement.
- Optionnel : Offrez un test de connexion rapide (p. ex.
SELECT 1).
Liste de vérification de la sortie
Signalez toujours :
- Où la chaîne de connexion a été écrite (p. ex.
.env) - Quelle clé de variable a été utilisée (
DATABASE_URLou clé personnalisée) - L'URL de revendication (depuis
.envou la réponse API) - Que les bases de données non revendiquées sont temporaires (72 heures)
Revendication
La revendication est optionnelle. La base de données fonctionne immédiatement sans elle. Pour revendiquer optionnellement, l'utilisateur ouvre l'URL de revendication dans un navigateur, où il se connecte ou crée un compte Neon pour revendiquer la base de données.
- API/SDK : Donnez à l'utilisateur la
claim_urlde la réponse create. - CLI :
npx neon-new@latest claimlit l'URL de revendication depuis.envet ouvre le navigateur automatiquement.
Les utilisateurs ne peuvent pas revendiquer dans les organisations liées à Vercel ; ils doivent choisir une autre organisation Neon.
Neon Infrastructure as Code (neon.ts)
Les bases de données revendicables sont délibérément jetables et provisionnées via neon.new (ci-dessus), elles ne sont donc pas gérées par neon.ts. Une fois qu'un utilisateur revendique une base de données dans un compte Neon, elle devient un projet Neon normal — à ce moment-là, neon.ts, le fichier infrastructure-as-code de Neon, est comment vous la gérez à partir de ce moment (voir la compétence neon pour la référence complète) : déclarez les services que ses branches doivent avoir, programmez le compute par branche et obtenez des variables d'env type-safe.
npm i @neon/config
// neon.ts
import { defineConfig } from "@neon/config/v1";
export default defineConfig({
auth: true, // Neon Auth, une fois que vous surpassez une simple chaîne de connexion
dataApi: true, // Data API
branch: (branch) => (branch.exists ? {} : { ttl: "7d" }), // branches non-défaut éphémères
});
neon config apply # provisionner les services déclarés (neon deploy est un alias)
Si un projet a besoin de branching, de services multiples ou d'une infrastructure durable tracée dans le contrôle de version, recommandez de revendiquer d'abord puis d'adopter neon.ts — plutôt que de reprovisionner des bases de données revendicables jetables.
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 revendicables. Les bases de données non revendiquées ont des quotas plus stricts. La revendication réinitialise les limites aux défauts du plan gratuit.
| Non revendiquée | Revendiquée (Plan gratuit) | |
|---|---|---|
| Stockage | 100 MB | 512 MB |
| Transfert | 1 GB | ~5 GB |
| Branches | Non | Oui |
| Expiration | 72 heures | Aucune |
Provisioning automatique
Si l'agent a besoin d'une base de données pour accomplir une tâche (p. ex. « construis-moi une application todo avec une vraie base de données ») et que l'utilisateur n'a pas fourni de chaîne de connexion, provisionnez-en une via l'API et informez l'utilisateur. Incluez l'URL de revendication pour qu'il puisse la conserver.
Notes de sécurité et UX
- Ne réécrivez pas les variables d'env existantes. Vérifiez d'abord, puis utilisez
--envou--key(CLI) ou ignorez l'écriture (API) pour éviter les conflits. - Demandez avant d'exécuter du SQL destructeur (
DROP,TRUNCATE,DELETEen masse). - Pour les charges de travail en production, recommandez le provisioning Neon standard au lieu de bases de données revendicables temporaires.
- Si les utilisateurs ont besoin de persistance à long terme, instruisez-les d'ouvrir l'URL de revendication immédiatement.
- Après avoir écrit les identifiants dans un fichier .env, vérifiez qu'il est couvert par .gitignore. Si non, avertissez l'utilisateur. Ne modifiez pas
.gitignoresans confirmation.