Skip to main content

Database

A Database resource defines a managed PostgreSQL database via the Neon provider.

:::note Status The Neon provider is implemented via a Pulumi Go provider (pulumi-resource-neon). Core database provisioning is available; advanced features (branching, connection pooling) are planned for a future release. :::

A database resource lives in a folder under regional/database/<name>/:

regional/database/main/
manifest.yaml # required — the database spec

Schema

manifest.yaml:

name: main # required
container: bridge # required
provider: neon # optional — inherits from inforge.yaml providers.database.postgresql
engine: postgresql # required — must be "postgresql"
branch: main # optional — Neon branch name (default "main")
database: app # required — database name within the branch
owner: app # required — PostgreSQL role that owns the database

Fields

FieldTypeRequiredDescription
namestringYesResource name.
containerstringYesGrouping label.
providerstringNoMust be neon. Inherits from inforge.yaml providers.database.<engine> if omitted.
enginestringYesMust be postgresql.
branchstringNoNeon branch name (default main).
databasestringYesPostgreSQL database name.
ownerstringYesPostgreSQL role that owns the database.

Outputs

OutputDescription
connectionUrlPostgreSQL connection string

This output can be referenced from a service's environment.yaml:

# in regional/service/api/environment.yaml
DATABASE_URL: ref:database/main.connectionUrl

Example

regional/database/main/manifest.yaml
name: main
container: bridge
engine: postgresql
database: app
owner: app

Provider requirements

The Neon provider is installed via inforge plugins install. It requires:

  • NEON_API_KEY environment variable
  • neon.projectId in the provider config