All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed the link in the JWKS URL resource's documentation.
- [209] Changed the provider's state management behaviour. Now, the provider will not update the state of the resources if the resource's attributes are not changed in the Terraform configuration. It will attempt to recreate sources deleted outside terraform only if the resource's attributes are changed in the Terraform configuration. This change is introduced to avoid unexpected recreation of resources when they are deleted outside Terraform.
- [203] Added the attribute
hipaato the resourceneon_projectto configure the project's HIPAA compliance. - [221] Added the attribute
default_branch_protectedto the resourceneon_projectto configure protection of the default branch.
- [218] Fixed state management for the attribute
enable_logical_replicationof the resourceneon_project. It can be changed in-place now. - [223] Fixed state management for the attribute
maintenance_windowof the resourceneon_project. It will be updated only if it's changed in the tf state change. - Fixed state management for the attribute
default_endpoint_settings.suspend_timeout_secondsof the resourceneon_project. Now, it can be set to-1to turn auto-suspension off.
- Added the following attributes to the resource
neon_project:block_public_connections;block_vpc_connections.
- [191] Fixed the import logic for the resource
neon_vpc_endpoint_assignment. - Fixed documentation for the resource
neon_project_permission. - [193] Fixed the import logic for the resource
neon_endpoint. - [198] Fixed the import logic for the resource
neon_branch.
- [BREAKING] Changed the
idattribute of theneon_project_permission. It's identical to the identifier assigned by Neon now.
- [#126] Added the block
maintenance_windowto theneon_projectresource to configure the Neon maintenance window. - Added examples to the documentation of the resource
neon_org_api_key.
- [#148] Added the resource
neon_org_api_keyto manage API keys on per org. level.
- Updated dependencies:
- Neon Go SDK: v0.16.0
- [#157] Removed the client-side validation of the autoscaling limit input.
- Removed client-side validation of the Postgres version input.
- [#154], [#156] Fixed projects listing when importing resources.
- [#166] Fixed the
neon_projectresource validation to configure the default endpoint to never suspend. - [#179] Fixed the
neon_projectresource diff management when theorg_idis attribute is not set in the terraform module.
- Added the resources
neon_vpc_endpoint_assignmentandneon_vpc_endpoint_restrictionto manage Neon Private Networking.
- [#144] Added the resource
neon_jwks_urlto manage the JWKs URL provided by the 3rd-party IdP required to establish Neon RLS authorization.
- Updated the Go version: 1.23.6 from 1.22.7.
- Fixed the note about the endpoints types.
- Updated dependencies:
- Neon Go SDK: v0.13.0
- Added the "User-Agent" header injected to every request to the Neon API for tracking purposes as agreed with James Broadhead from Neon.
- Added the resource
neon_api_keyto manage Neon API keys. - Added the output attributes
connection_uri_pooleranddatabase_host_poolerto the resourceneon_projectto connect to the default database in the pooler mode.
- [#119] Fixed the output attribute
hostof the resourceneon_endpoint: it will yield the correct URI for the endpoints with the pooled mode activated. - [#137] Fixed operations execution management by introducing await mechanism to wait until the running operations finish.
- [#133] Fixed state management when configuring network security.
- Documentation improvements:
- Removed unclear warning from the page for the
neon_endpointresource.
- Removed unclear warning from the page for the
- Removed the outdated warning which was showing upon creation of the endpoint of the type "read_only",
- Removed the attributes "allowed_ips_primary_branch_only" from the resource
neon_projectbecause it's no longer supported by Neon.
- Updated dependencies:
- [BREAKING] #113] Set the default retention window to 1 day to avoid inconsistency with Neon.
- Fixed docu; non-functional change.
- Added the attribute
protectedfor the resourceneon_branchto provision protected branches.
- [#108] Fixed the import behaviour for the resource
neon_role. - Fixed mutability of the default branch by adjusting the behaviour for the
branchstate of the resourceneon_project.
- Updated dependencies:
- Neon Go SDK: v0.6.1
- Added support of Postgres 17. See the Neon announcement and the Postgres announcement.
- Fixed validation of the autoscalling limits. You can now set the maximum compute size up to
10.
- [#99] Added the attribute
org_idto the resourceneon_projectto create project in the organisation.
- [BREAKING] [#96] The boolean attributes of the
resource
neon_projectwill be treated as strings to work around the issue with state management when the attribute gets removed from the manifest.
Examples
- Set allowed_ips to be applicable only to the primary branch:
resource "neon_project" "this" { name = "myproject" allowed_ips = ["1.2.3.4/24"] allowed_ips_primary_branch_only = "yes" }
- Set allowed_ips to be applicable to all branches, explicitly:
resource "neon_project" "this" { name = "myproject" allowed_ips = ["1.2.3.4/24"] allowed_ips_primary_branch_only = "no" }
- Set allowed_ips to be applicable to all branches, implicitly:
resource "neon_project" "this" { name = "myproject" allowed_ips = ["1.2.3.4/24"] }
-
[#22] Added the following data resources:
neon_projectneon_branchesneon_branch_endpointsneon_branch_rolesneon_branch_role_password
-
Added the read-only attribute
default_endpoint_idto the resourceneon_project. -
Added the retry logic to manage all supported resources:
neon_projectneon_branchneon_endpointneon_roleneon_databaseneon_project_permission
- [#83] Fixed the state management of the project's default branch, role, database and endpoint.
- [#88] Fixed import of the resource
neon_role.
- Updated dependencies:
- Neon Go SDK v0.4.7
- Reduced the retry delay to 1 second from 5 seconds.
- Added the resource
neon_project_permissionto manage the project's permissions.
- [
resource_project>region_id] Validation of the project deployment region was removed.
- Updated dependencies: Neon Go SDK v0.4.2
resource_projectincludes the attributeenable_logical_replicationto configure the logical replication.
- PostgreSQL 16 is now supported.
- Updated dependencies: Neon Go SDK v0.4.1
resource_projectincludes two additional attributes to configure IP addresses allowed to connect to the project's endpoints:allowed_ipsallowed_ips_primary_branch_only
- Schema is set on per resource basis now.
- Fixed validation of the branch ID.
- Minor documentation fixes:
- The note in the
resource_roleis removed because it's not reflecting the provider's behaviour. - The logo is fixed.
- The note in the
- Updated dependencies: Neon Go SDK v0.3.0
- [#51] Fixed credentials content.
- Fixed management of the
resource_rolestate:- Fixed password reading.
- Removed the side effect upon the resource import: the role's password won't be reset now.
- Updated dependencies: Neon Go SDK v0.2.5
resource_project:- (#40) Fixed types conversion for the terraform
resource attributes of the
type
TypeInt. - (#42) Fixed default branch configuration.
- (#48) Fixed default endpoint settings configuration.
- Fixed history retention configuration. Now, the retention period of 7 days will be set by default, and zero will
be set if
history_retention_secondsis set to zero explicitly.
- (#40) Fixed types conversion for the terraform
resource attributes of the
type
Note web console will reflect the data retention period correctly only if history_retention_seconds was set to an
integral number of days because the web console shows the total number of full days only. Moreover, "7 days - default"
will be displayed for any history_retention_seconds value below 86400 (1 day).
| history_retention_seconds | web console | human-friendly duration |
|---|---|---|
| 0 | 7 days - default | 0 |
| 300 | 7 days - default | 5 min |
| 3600 | 7 days - default | 1 hour |
| 43200 | 7 days - default | 12 hours |
| 164160 | 1 day | 1.9 days |
| 198720 | 2 days | 2.3 days |
| 604800 | 7 days - default | 7 days |
- Documentation:
- Link to the Neon logo
- End-to-end example
- Documentation: examples of project provisioning
- Updated dependencies: Neon Go SDK v0.2.2, terraform plugin SDK to 2.29.0
-
Acceptance e2e tests
-
resource_project:- default_branch_id
-
resource_endpoint:- id
- compute_provisioner
- suspend_timeout_seconds
-
resource_role:- created_at
- updated_at
-
resource_endpoint:- passwordless_access: it's not implemented yet by Neon
- current_state
- pending_state
-
resource_branch:- connection_uri
resource_endpoint:- autoscaling_limit_min_cu set to 0.25 by default
- autoscaling_limit_max_cu set to 0.25 by default
- type set to "read_write" by default
The release follows update of the Neon Go SDK.
- (#25) Fixed branch import
- (#26) Fixed database import
- (#32) Data type to define autoscaling limits
- Neon logo in documentation
-
resource_project:- store_password (Note that Neon does not support "false" value yet)
- history_retention_seconds
- compute_provisioner
- quota:
- active_time_seconds
- compute_time_seconds
- written_data_bytes
- data_transfer_bytes
- logical_size_bytes
- default_endpoint_settings:
- autoscaling_limit_min_cu
- autoscaling_limit_max_cu
- suspend_timeout_seconds
- branch:
- id
- name
- role_name
- database_name
-
resource_branch:- id
- connection_uri
-
resource_project:- pg_settings
- cpu_quota_sec
- autoscaling_limit_min_cu
- autoscaling_limit_max_cu
- branch_logical_size_limit
- created_at
- updated_at
-
resource_branch:- physical_size_size
- endpoint
- host
- current_state
- pending_state
- created_at
- updated_at
-
resource_database:- created_at
- updated_at
-
resource_endpoint:- created_at
- updated_at
- Fixed typo and indentation of documentation
- Fixed
neon_branchrecourse by provisioning an endpoint attached to a newly created branch. It is required to permit interactions with the branch to manage associated roles and databases.
- Improved documentation
- Added an end-to-end guide to provision resources for AWS application to communicate with the Neon database
- Database resource:
resource "neon_database" "this" {
project_id = "bitter-meadow-966132"
branch_id = "br-floral-mountain-251143"
name = "baz"
owner_name = "qux"
}- Role resource:
resource "neon_role" "this" {
project_id = "bitter-meadow-966132"
branch_id = "br-floral-mountain-251143"
name = "qux"
}- Fixed
neon_endpointresource provisioning when the attributepg_settingsis not set. The bug was in the Neon SDK, see details in the release notes.
- Bumped Neon Go SDK to v0.1.4
- Fixed the logic to import
neon_branchresource by its ID.
- Endpoint resource:
resource "neon_endpoint" "this" {
project_id = "bitter-meadow-966132"
branch_id = "br-floral-mountain-251143"
type = "read_write"
}- Added database connection details for the resource
neon_project. Note thatdatabase_passwordandconnection_uriread-only attributes are sensitive. Make sure that terraform backend is secured and terraform state is not exposed to prevent undesirable access to database.
- Branch resource:
resource "neon_project" "this" {
name = "foo"
}
resource "neon_branch" "this" {
project_id = neon_project.this.id
name = "bar"
}- Backoff+retry mechanism: operation is retried after the delay of 5 sec. API response's HTTP codes are 500, or 429. Total number of attempts is limited to 120 per operation.
- Bumped Neon Go SDK v0.1.3
- Added errors handling for the project resource
NeonProvider:
terraform {
required_providers {
neon = {
source = "kislerdm/neon"
}
}
}
provider "neon" {}- Project resource:
resource "neon_project" "this" {
name = "foo"
}