From 0b3937c4aca87d56045738135fffb70f08352c7d Mon Sep 17 00:00:00 2001 From: Jonathan Giffard <39745127+LackOfMorals@users.noreply.github.com> Date: Tue, 2 Dec 2025 16:35:07 +0000 Subject: [PATCH 1/3] Update for Neo4j Labs Terraform Provider --- antora.yml | 1 + modules/ROOT/pages/index.adoc | 5 + .../neo4j-aura-terraform-provider/nav.adoc | 3 + .../pages/index.adoc | 169 ++++++++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 modules/neo4j-aura-terraform-provider/nav.adoc create mode 100644 modules/neo4j-aura-terraform-provider/pages/index.adoc diff --git a/antora.yml b/antora.yml index 37f0088..eb523ed 100644 --- a/antora.yml +++ b/antora.yml @@ -4,6 +4,7 @@ title: Neo4j Labs start_page: ROOT:index.adoc nav: - modules/ROOT/nav.adoc +- modules/neo4j-aura-terraform-provider/nav.adoc - modules/genai-ecosystem/nav.adoc - modules/apoc/nav.adoc - modules/arrows/nav.adoc diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 335ca4a..c5af90a 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -32,6 +32,11 @@ They are actively developed and maintained, but we don't provide any SLAs or gua == Current Projects [#goals.incremental] +=== xref:neo4j-aura-terraform-provider:index.adoc[Neo4j Aura Terraform Provider] + +Neo4j Aura Terraform Provider is Neo4j Labs tool that allows infrastructure-as-code management of Neo4j AuraDB resources, primarily focusing on the lifecycle of AuraDB through declarative Terraform configurations. + + === xref:genai-ecosystem:index.adoc[GenAI Ecosystem] Neo4j integrates with many libraries (LangChain, LlamaIndex, Haystack, Spring-AI) in the xref:genai-ecosystem:index.adoc[GenAI Ecosystem] to make building and deploying knowledge graph-powered GenAI applications easier. diff --git a/modules/neo4j-aura-terraform-provider/nav.adoc b/modules/neo4j-aura-terraform-provider/nav.adoc new file mode 100644 index 0000000..26135f5 --- /dev/null +++ b/modules/neo4j-aura-terraform-provider/nav.adoc @@ -0,0 +1,3 @@ +** xref:index.adoc[Neo4j Aura Terraform Provider] + + diff --git a/modules/neo4j-aura-terraform-provider/pages/index.adoc b/modules/neo4j-aura-terraform-provider/pages/index.adoc new file mode 100644 index 0000000..99be815 --- /dev/null +++ b/modules/neo4j-aura-terraform-provider/pages/index.adoc @@ -0,0 +1,169 @@ += Neo4j Aura Terraform Provider +:imagesdir: https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads +:author: Eugene Rubanov & Jonathan Giffard +:category: labs +:tags: aura, api, terraform +// :neo4j-versions: +// :page-pagination: +// :page-product: + + +Neo4j AuraDB customers who use Terraform to enable a declarative, infrastructure-as-code (IaC) approach to infrastructure, can now take advantage of Neo4j Aura Terraform Provider. This codifies the interaction with Aura's management API for the provisioning and management of AuraDB infrastructure. Specifically Neo4j Aura Terraform provider allows for:- + +* Obtaining information about a project ( tenant ) +* Create, modify, pause, resume and delete operations for AuraDB instances +* Take and restore AuraDB snaphots. +* Creating an Aura instance from a snapshot + +Releasing in Neo4j Labs allows for rapid development incorporating suggestions from customers from the maintainers, and if desired, code submissions directly from customers in the form of Pull Requests ( PRs ). If you want to submit code, please read <> + +It is hoped that there will sufficient interest and usage such that the Neo4j Aura Terraform Provider can graduate from Neo4j Labs and become an official Neo4j offering. + + +As previously mentioned, Neo4j Aura Terraform Provider is a Neo4j Labs Project. Please read the Disclaimer at the bottom of this page before use. + + +== Availability + +Neo4j Aura Terraform Provider is available directly from link:https://github.com/neo4j-labs/terraform-provider-neo4jaura[Neo4j Labs] and from the link:https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest[Terraform Provider Repositry] + + +== Using from the Terraform Provider Repositry + +To install this provider, copy and paste this code into your Terraform configuration, adjusting the configuration options to meet your requirements. + +[source, console] +---- +terraform { + required_providers { + neo4jaura = { + source = "neo4j-labs/neo4jaura" + version = "0.0.1-beta" + } + } +} + +provider "neo4jaura" { + # Configuration options +} +---- + +Then run +[source, console] +---- +terraform init +---- + +See <> for the various possible configuration options + + +== Using from GitHUb repository + +This is route to take if you wish to experiment with your own development of the provider or just try it out. + + +=== Requirements + +* Go 1.25+ +* Terraform 1.13.4+ +* A Client Id and Client Secret for access to the Aura API. To obtain these, follow the guidance in the link:https://neo4j.com/docs/aura/api/authentication/[Neo4j AuraDB documentation] + + +=== Installation + +Clone the repositry +[source, console] +---- +git clone https://github.com/neo-technology/neo4j-aura-terraform-provider-poc.git +---- + +Build the provider +[source, console] +---- +cd neo4j-aura-terraform-provider-poc/ +./build.sh +---- + +Add .terraformrc file to your $HOME folder + + +[source, text] +---- +provider_installation { + filesystem_mirror { + path = "$YOUR_HOME_PATH/.terraform.d/plugins" + } + direct { + exclude = ["terraform.local/*/*"] + } +} +---- + +== Examples [[examples]] +There are several examples in the examples folder. You will need to set TF_VAR_client_id and TF_VAR_client_secret environment variables before running any of the examples. + +[source, console] +---- +export TF_VAR_client_id="$AURA_CLIENT_ID" +export TF_VAR_client_secret="$AURA_CLIENT_SECRET" +---- + +Move into the examples folder and then, to run an example + +[source, console] +---- +/execute_example.sh +---- + +You may be prompted to enter values or text during execution. + +[TIP] +==== +The terraform files used in the examples may require editing to match your Neo4j AuraDB environment. In particular , those that create or modify AuraDB Instances are likely to need changes. +==== + + +== Contributing [[contributing]] +We welcome contributions to improve and extend the capabilities of the Neo4j Aura Terraform Provider. If you wish to contribute, then follow these steps:- + +* Sign the link:https://neo4j.com/developer/contributing-code/#sign-cla[contributors agreement] +* Fork the link:https://github.com/neo-technology/neo4j-aura-terraform-provider-poc[repository] +* Create a branch for your contribution on your _forked repo_ +* Submit a PR from your fork back to the Neo4j Aura Terraform Provider repository + + + +[TIP] +==== +A good pull request is focused on one feature or issue and includes a clear title that summarizes the change. In the description, you should explain what you changed and why, and reference any related issues using syntax like "Fixes #123". +==== + + +If you get stuck, start by checking existing GitHub issues to see if others have encountered similar problems. You can also ask questions directly in pull request discussions, where maintainers and other contributors can provide guidance. For complex architectural questions or decisions that might affect the project's design, reach out to maintainers directly to get their input before investing too much time in a particular approach. + +Thank you for contributing to make this better! + + +== Disclaimer +Neo4j Aura Terraform Provider is a Neo4j Labs project. Neo4j Labs projects are useful ecosystem tools that are meant to benefit all Neo4j users. +They are not officially supported by Neo4j. Use them at your own risk. + +Neo4j Labs projects, while trying to apply sound engineering principles, are provided as is - with no guarantees, liabilities or warranty for function, API stability or continued maintenance. Support for Neo4j Labs projects happens by the community and maintainers as a best-effort through GitHub issues and community forums. These projects are examples that use public Neo4j APIs to show how to implement a certain capability. + + + + + +== Relevant Links + +[cols="1,4"] +|=== +| Authors | https://github.com/venikkin[Eugene Rubanov^] +| Releases | https://github.com/neo4j-labs/terraform-provider-neo4jaura/releases +| Source | https://github.com/neo4j-labs/terraform-provider-neo4jaura +| Issues | https://github.com/neo4j-labs/terraform-provider-neo4jaura/issues +| Terraform provider repositry | https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest +| Terraform plugin framework | https://developer.hashicorp.com/terraform/plugin/framework +| Terraform provider scaffolding framework | https://github.com/hashicorp/terraform-provider-scaffolding-framework +| Aura API specifcation | https://neo4j.com/docs/aura/platform/api/specification/ +|=== From c0d4d1ca891e37a129522c58737f460ae469a644 Mon Sep 17 00:00:00 2001 From: Jonathan Giffard <39745127+LackOfMorals@users.noreply.github.com> Date: Tue, 2 Dec 2025 20:39:24 +0000 Subject: [PATCH 2/3] Moved to just above migrations on the index page --- modules/ROOT/pages/index.adoc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index c5af90a..c27bde3 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -32,10 +32,6 @@ They are actively developed and maintained, but we don't provide any SLAs or gua == Current Projects [#goals.incremental] -=== xref:neo4j-aura-terraform-provider:index.adoc[Neo4j Aura Terraform Provider] - -Neo4j Aura Terraform Provider is Neo4j Labs tool that allows infrastructure-as-code management of Neo4j AuraDB resources, primarily focusing on the lifecycle of AuraDB through declarative Terraform configurations. - === xref:genai-ecosystem:index.adoc[GenAI Ecosystem] @@ -73,6 +69,12 @@ For interactively modeling and importing CSV files, check out the https://data-i Liquibase is an open source project for tracking, managing and applying database schema changes. The link:https://github.com/liquibase/liquibase-neo4j[Neo4j plugin for Liquibase] allows you to define and execute changes against Neo4j, with all the features Liquibase supports. + +=== xref:neo4j-aura-terraform-provider:index.adoc[Neo4j Aura Terraform Provider] + +Neo4j Aura Terraform Provider is Neo4j Labs tool that allows infrastructure-as-code management of Neo4j AuraDB resources, primarily focusing on the lifecycle of AuraDB through declarative Terraform configurations. + + === xref:neo4j-migrations:index.adoc[Neo4j-Migrations] xref:neo4j-migrations:index.adoc[Neo4j-Migrations] is a set of tools to make your schema migrations as easy as possible. From a81f93e2992aaab1f86227cefb9092d75f64a50b Mon Sep 17 00:00:00 2001 From: Jonathan Giffard <39745127+LackOfMorals@users.noreply.github.com> Date: Wed, 3 Dec 2025 12:02:19 +0000 Subject: [PATCH 3/3] Added section for Support Feedback and Issues. Minor fixes in other places --- .../pages/index.adoc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/neo4j-aura-terraform-provider/pages/index.adoc b/modules/neo4j-aura-terraform-provider/pages/index.adoc index 99be815..2a259a5 100644 --- a/modules/neo4j-aura-terraform-provider/pages/index.adoc +++ b/modules/neo4j-aura-terraform-provider/pages/index.adoc @@ -12,7 +12,7 @@ Neo4j AuraDB customers who use Terraform to enable a declarative, infrastructure * Obtaining information about a project ( tenant ) * Create, modify, pause, resume and delete operations for AuraDB instances -* Take and restore AuraDB snaphots. +* Take and restore AuraDB snapshots. * Creating an Aura instance from a snapshot Releasing in Neo4j Labs allows for rapid development incorporating suggestions from customers from the maintainers, and if desired, code submissions directly from customers in the form of Pull Requests ( PRs ). If you want to submit code, please read <> @@ -25,10 +25,10 @@ As previously mentioned, Neo4j Aura Terraform Provider is a Neo4j Labs Project. == Availability -Neo4j Aura Terraform Provider is available directly from link:https://github.com/neo4j-labs/terraform-provider-neo4jaura[Neo4j Labs] and from the link:https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest[Terraform Provider Repositry] +Neo4j Aura Terraform Provider is available directly from link:https://github.com/neo4j-labs/terraform-provider-neo4jaura[Neo4j Labs] and from the link:https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest[Terraform Provider Regsitry] -== Using from the Terraform Provider Repositry +== Using from the Terraform Provider Registry To install this provider, copy and paste this code into your Terraform configuration, adjusting the configuration options to meet your requirements. @@ -144,6 +144,15 @@ If you get stuck, start by checking existing GitHub issues to see if others have Thank you for contributing to make this better! +== Feedback, Support and Issues +All feedback is welcome and can be posted either in the link:https://github.com/neo4j-labs/terraform-provider-neo4jaura/issues[Issues] area of the GitHub Reposity or by posting in link:https://community.neo4j.com/c/integrations[Neo4j Communities Integrations]. Communities is also a great place for asking questions. + + + + +Neo4j Aura Terraform Provider is a Neo4j Labs project which means it is not officially supported by Neo4j. Please report any issue what you may have in the link:https://github.com/neo4j-labs/terraform-provider-neo4jaura/issues[GitHub Reposity] + + == Disclaimer Neo4j Aura Terraform Provider is a Neo4j Labs project. Neo4j Labs projects are useful ecosystem tools that are meant to benefit all Neo4j users. They are not officially supported by Neo4j. Use them at your own risk. @@ -162,7 +171,7 @@ Neo4j Labs projects, while trying to apply sound engineering principles, are pro | Releases | https://github.com/neo4j-labs/terraform-provider-neo4jaura/releases | Source | https://github.com/neo4j-labs/terraform-provider-neo4jaura | Issues | https://github.com/neo4j-labs/terraform-provider-neo4jaura/issues -| Terraform provider repositry | https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest +| Terraform provider registry | https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest | Terraform plugin framework | https://developer.hashicorp.com/terraform/plugin/framework | Terraform provider scaffolding framework | https://github.com/hashicorp/terraform-provider-scaffolding-framework | Aura API specifcation | https://neo4j.com/docs/aura/platform/api/specification/