Skip to content

Commit 5ee7d1a

Browse files
authored
Update for Neo4j Labs Terraform Provider (#124)
* Update for Neo4j Labs Terraform Provider * Moved to just above migrations on the index page * Added section for Support Feedback and Issues. Minor fixes in other places
1 parent a443f40 commit 5ee7d1a

File tree

4 files changed

+189
-0
lines changed

4 files changed

+189
-0
lines changed

antora.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ title: Neo4j Labs
44
start_page: ROOT:index.adoc
55
nav:
66
- modules/ROOT/nav.adoc
7+
- modules/neo4j-aura-terraform-provider/nav.adoc
78
- modules/genai-ecosystem/nav.adoc
89
- modules/apoc/nav.adoc
910
- modules/arrows/nav.adoc

modules/ROOT/pages/index.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ They are actively developed and maintained, but we don't provide any SLAs or gua
3232
== Current Projects
3333

3434
[#goals.incremental]
35+
3536
=== xref:genai-ecosystem:index.adoc[GenAI Ecosystem]
3637

3738
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.
@@ -68,6 +69,12 @@ For interactively modeling and importing CSV files, check out the https://data-i
6869

6970
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.
7071

72+
73+
=== xref:neo4j-aura-terraform-provider:index.adoc[Neo4j Aura Terraform Provider]
74+
75+
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.
76+
77+
7178
=== xref:neo4j-migrations:index.adoc[Neo4j-Migrations]
7279

7380
xref:neo4j-migrations:index.adoc[Neo4j-Migrations] is a set of tools to make your schema migrations as easy as possible.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
** xref:index.adoc[Neo4j Aura Terraform Provider]
2+
3+
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
= Neo4j Aura Terraform Provider
2+
:imagesdir: https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads
3+
:author: Eugene Rubanov & Jonathan Giffard
4+
:category: labs
5+
:tags: aura, api, terraform
6+
// :neo4j-versions:
7+
// :page-pagination:
8+
// :page-product:
9+
10+
11+
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:-
12+
13+
* Obtaining information about a project ( tenant )
14+
* Create, modify, pause, resume and delete operations for AuraDB instances
15+
* Take and restore AuraDB snapshots.
16+
* Creating an Aura instance from a snapshot
17+
18+
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 <<contributing>>
19+
20+
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.
21+
22+
23+
As previously mentioned, Neo4j Aura Terraform Provider is a Neo4j Labs Project. Please read the Disclaimer at the bottom of this page before use.
24+
25+
26+
== Availability
27+
28+
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]
29+
30+
31+
== Using from the Terraform Provider Registry
32+
33+
To install this provider, copy and paste this code into your Terraform configuration, adjusting the configuration options to meet your requirements.
34+
35+
[source, console]
36+
----
37+
terraform {
38+
required_providers {
39+
neo4jaura = {
40+
source = "neo4j-labs/neo4jaura"
41+
version = "0.0.1-beta"
42+
}
43+
}
44+
}
45+
46+
provider "neo4jaura" {
47+
# Configuration options
48+
}
49+
----
50+
51+
Then run
52+
[source, console]
53+
----
54+
terraform init
55+
----
56+
57+
See <<examples>> for the various possible configuration options
58+
59+
60+
== Using from GitHUb repository
61+
62+
This is route to take if you wish to experiment with your own development of the provider or just try it out.
63+
64+
65+
=== Requirements
66+
67+
* Go 1.25+
68+
* Terraform 1.13.4+
69+
* 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]
70+
71+
72+
=== Installation
73+
74+
Clone the repositry
75+
[source, console]
76+
----
77+
git clone https://github.com/neo-technology/neo4j-aura-terraform-provider-poc.git
78+
----
79+
80+
Build the provider
81+
[source, console]
82+
----
83+
cd neo4j-aura-terraform-provider-poc/
84+
./build.sh
85+
----
86+
87+
Add .terraformrc file to your $HOME folder
88+
89+
90+
[source, text]
91+
----
92+
provider_installation {
93+
filesystem_mirror {
94+
path = "$YOUR_HOME_PATH/.terraform.d/plugins"
95+
}
96+
direct {
97+
exclude = ["terraform.local/*/*"]
98+
}
99+
}
100+
----
101+
102+
== Examples [[examples]]
103+
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.
104+
105+
[source, console]
106+
----
107+
export TF_VAR_client_id="$AURA_CLIENT_ID"
108+
export TF_VAR_client_secret="$AURA_CLIENT_SECRET"
109+
----
110+
111+
Move into the examples folder and then, to run an example
112+
113+
[source, console]
114+
----
115+
/execute_example.sh <example folder name>
116+
----
117+
118+
You may be prompted to enter values or text during execution.
119+
120+
[TIP]
121+
====
122+
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.
123+
====
124+
125+
126+
== Contributing [[contributing]]
127+
We welcome contributions to improve and extend the capabilities of the Neo4j Aura Terraform Provider. If you wish to contribute, then follow these steps:-
128+
129+
* Sign the link:https://neo4j.com/developer/contributing-code/#sign-cla[contributors agreement]
130+
* Fork the link:https://github.com/neo-technology/neo4j-aura-terraform-provider-poc[repository]
131+
* Create a branch for your contribution on your _forked repo_
132+
* Submit a PR from your fork back to the Neo4j Aura Terraform Provider repository
133+
134+
135+
136+
[TIP]
137+
====
138+
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".
139+
====
140+
141+
142+
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.
143+
144+
Thank you for contributing to make this better!
145+
146+
147+
== Feedback, Support and Issues
148+
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.
149+
150+
151+
152+
153+
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]
154+
155+
156+
== Disclaimer
157+
Neo4j Aura Terraform Provider is a Neo4j Labs project. Neo4j Labs projects are useful ecosystem tools that are meant to benefit all Neo4j users.
158+
They are not officially supported by Neo4j. Use them at your own risk.
159+
160+
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.
161+
162+
163+
164+
165+
166+
== Relevant Links
167+
168+
[cols="1,4"]
169+
|===
170+
| Authors | https://github.com/venikkin[Eugene Rubanov^]
171+
| Releases | https://github.com/neo4j-labs/terraform-provider-neo4jaura/releases
172+
| Source | https://github.com/neo4j-labs/terraform-provider-neo4jaura
173+
| Issues | https://github.com/neo4j-labs/terraform-provider-neo4jaura/issues
174+
| Terraform provider registry | https://registry.terraform.io/providers/neo4j-labs/neo4jaura/latest
175+
| Terraform plugin framework | https://developer.hashicorp.com/terraform/plugin/framework
176+
| Terraform provider scaffolding framework | https://github.com/hashicorp/terraform-provider-scaffolding-framework
177+
| Aura API specifcation | https://neo4j.com/docs/aura/platform/api/specification/
178+
|===

0 commit comments

Comments
 (0)