Skip to content

Commit f09e11d

Browse files
authored
chore: update readme with an introduction (#33)
1 parent 29c9f93 commit f09e11d

File tree

2 files changed

+68
-79
lines changed

2 files changed

+68
-79
lines changed

CONTRIBUTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Terraform Provider Scaffolding (Terraform Plugin Framework)
2+
3+
_This template repository is built on the [Terraform Plugin Framework](https://github.com/hashicorp/terraform-plugin-framework). The template repository built on the [Terraform Plugin SDK](https://github.com/hashicorp/terraform-plugin-sdk) can be found at [terraform-provider-scaffolding](https://github.com/hashicorp/terraform-provider-scaffolding). See [Which SDK Should I Use?](https://developer.hashicorp.com/terraform/plugin/framework-benefits) in the Terraform documentation for additional information._
4+
5+
This repository is a _template_ for a [Terraform](https://www.terraform.io) provider. It is intended as a starting point for creating Terraform providers, containing:
6+
7+
- A resource and a data source (`internal/provider/`),
8+
- Examples (`examples/`) and generated documentation (`docs/`),
9+
- Miscellaneous meta files.
10+
11+
These files contain boilerplate code that you will need to edit to create your own Terraform provider. Tutorials for creating Terraform providers can be found on the [HashiCorp Developer](https://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework) platform. _Terraform Plugin Framework specific guides are titled accordingly._
12+
13+
Please see the [GitHub template repository documentation](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template) for how to create a new repository from this template on GitHub.
14+
15+
Once you've written your provider, you'll want to [publish it on the Terraform Registry](https://developer.hashicorp.com/terraform/registry/providers/publishing) so that others can use it.
16+
17+
## Requirements
18+
19+
- [Terraform](https://developer.hashicorp.com/terraform/downloads) >= 1.0
20+
- [Go](https://golang.org/doc/install) >= 1.20
21+
22+
## Building The Provider
23+
24+
1. Clone the repository
25+
1. Enter the repository directory
26+
1. Build the provider using the Go `install` command:
27+
28+
```shell
29+
go install
30+
```
31+
32+
## Adding Dependencies
33+
34+
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
35+
Please see the Go documentation for the most up to date information about using Go modules.
36+
37+
To add a new dependency `github.com/author/dependency` to your Terraform provider:
38+
39+
```shell
40+
go get github.com/author/dependency
41+
go mod tidy
42+
```
43+
44+
Then commit the changes to `go.mod` and `go.sum`.
45+
46+
## Developing the Provider
47+
48+
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
49+
50+
To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
51+
52+
To generate or update documentation, run `go generate`.
53+
54+
In order to run the full suite of Acceptance tests, run `make testacc`.
55+
56+
_Note:_ Acceptance tests create real resources, and often cost money to run.
57+
58+
```shell
59+
make testacc
60+
```

README.md

Lines changed: 8 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,16 @@
1-
# Terraform Provider Scaffolding (Terraform Plugin Framework)
1+
# Supabase Terraform Provider
22

3-
_This template repository is built on the [Terraform Plugin Framework](https://github.com/hashicorp/terraform-plugin-framework). The template repository built on the [Terraform Plugin SDK](https://github.com/hashicorp/terraform-plugin-sdk) can be found at [terraform-provider-scaffolding](https://github.com/hashicorp/terraform-provider-scaffolding). See [Which SDK Should I Use?](https://developer.hashicorp.com/terraform/plugin/framework-benefits) in the Terraform documentation for additional information._
3+
The [Supabase Provider](https://registry.terraform.io/providers/supabase/supabase/latest/docs) allows Terraform to manage resources hosted on [Supabase](https://supabase.com/) platform.
44

5-
This repository is a _template_ for a [Terraform](https://www.terraform.io) provider. It is intended as a starting point for creating Terraform providers, containing:
5+
You may use this provider to version control your project settings or setup CI/CD pipelines for automatically provisioning projects and branches.
66

7-
- A resource and a data source (`internal/provider/`),
8-
- Examples (`examples/`) and generated documentation (`docs/`),
9-
- Miscellaneous meta files.
10-
11-
These files contain boilerplate code that you will need to edit to create your own Terraform provider. Tutorials for creating Terraform providers can be found on the [HashiCorp Developer](https://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework) platform. _Terraform Plugin Framework specific guides are titled accordingly._
12-
13-
Please see the [GitHub template repository documentation](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template) for how to create a new repository from this template on GitHub.
14-
15-
Once you've written your provider, you'll want to [publish it on the Terraform Registry](https://developer.hashicorp.com/terraform/registry/providers/publishing) so that others can use it.
16-
17-
## Requirements
18-
19-
- [Terraform](https://developer.hashicorp.com/terraform/downloads) >= 1.0
20-
- [Go](https://golang.org/doc/install) >= 1.20
21-
22-
## Building The Provider
23-
24-
1. Clone the repository
25-
1. Enter the repository directory
26-
1. Build the provider using the Go `install` command:
27-
28-
```shell
29-
go install
30-
```
31-
32-
## Adding Dependencies
33-
34-
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
35-
Please see the Go documentation for the most up to date information about using Go modules.
36-
37-
To add a new dependency `github.com/author/dependency` to your Terraform provider:
38-
39-
```shell
40-
go get github.com/author/dependency
41-
go mod tidy
42-
```
43-
44-
Then commit the changes to `go.mod` and `go.sum`.
7+
- [CI/CD example](https://github.com/supabase/supabase-action-example/tree/main/supabase/remotes)
8+
- [Step-by-step tutorials](docs/tutorial.md)
9+
- [Contributing guide](CONTRIBUTING.md)
4510

4611
## Using the provider
4712

48-
- Example `main.tf`
13+
This simple example imports an existing Supabase project and synchronises its API settings.
4914

5015
```hcl
5116
terraform {
@@ -63,7 +28,7 @@ provider "supabase" {
6328
6429
# Define a linked project variable as user input
6530
variable "linked_project" {
66-
type = string
31+
type = string
6732
}
6833
6934
# Import the linked project resource
@@ -93,40 +58,4 @@ resource "supabase_settings" "production" {
9358
max_rows = 1000
9459
})
9560
}
96-
97-
# Fetch all branches of a linked project
98-
data "supabase_branch" "all" {
99-
parent_project_ref = var.linked_project
100-
}
101-
102-
# Override settings for each preview branch
103-
resource "supabase_settings" "branch" {
104-
for_each = { for b in data.supabase_branch.all.branches : b.project_ref => b }
105-
106-
project_ref = each.key
107-
108-
api = supabase_settings.production.api
109-
110-
auth = jsonencode({
111-
site_url = "http://localhost:3000"
112-
})
113-
}
114-
```
115-
116-
Refer to [our tutorial](docs/tutorial.md) for a step-by-step guide.
117-
118-
## Developing the Provider
119-
120-
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
121-
122-
To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
123-
124-
To generate or update documentation, run `go generate`.
125-
126-
In order to run the full suite of Acceptance tests, run `make testacc`.
127-
128-
_Note:_ Acceptance tests create real resources, and often cost money to run.
129-
130-
```shell
131-
make testacc
13261
```

0 commit comments

Comments
 (0)