11# Terraform Provider for Ory Network
22
3- [ ![ Go Reference] ( https://pkg.go.dev/badge/github.com/jasonhernandez /terraform-provider-orynetwork.svg )] ( https://pkg.go.dev/github.com/jasonhernandez /terraform-provider-orynetwork )
4- [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/jasonhernandez /terraform-provider-orynetwork )] ( https://goreportcard.com/report/github.com/jasonhernandez /terraform-provider-orynetwork )
3+ [ ![ Go Reference] ( https://pkg.go.dev/badge/github.com/ory /terraform-provider-orynetwork.svg )] ( https://pkg.go.dev/github.com/ory /terraform-provider-orynetwork )
4+ [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/ory /terraform-provider-orynetwork )] ( https://goreportcard.com/report/github.com/ory /terraform-provider-orynetwork )
55
6- > ** Warning**
7- > This is an experimental project under active development. APIs and functionality may change without notice.
8- > You should check if Ory has an official fork or Terraform provider before using this experimental provider.
6+ > ** Special Thanks**
7+ > A massive shoutout to [ Jason Hernandez] ( https://github.com/jasonhernandez ) and the [ Materialize] ( https://materialize.com/ ) team for creating the initial version of this provider!
98
109## License
1110
@@ -40,7 +39,7 @@ A Terraform provider for managing [Ory Network](https://www.ory.sh/) resources u
4039terraform {
4140 required_providers {
4241 ory = {
43- source = "jasonhernandez/ orynetwork"
42+ source = "ory/terraform-provider- orynetwork"
4443 version = "~> 0.1"
4544 }
4645 }
@@ -50,7 +49,7 @@ terraform {
5049### From Source
5150
5251``` bash
53- git clone https://github.com/jasonhernandez /terraform-provider-orynetwork.git
52+ git clone https://github.com/ory /terraform-provider-orynetwork.git
5453cd terraform-provider-orynetwork
5554go build -o terraform-provider-orynetwork
5655```
@@ -61,7 +60,7 @@ Then configure Terraform to use the local provider:
6160# ~/.terraformrc
6261provider_installation {
6362 dev_overrides {
64- "jasonhernandez/ orynetwork" = "/path/to/terraform-provider-orynetwork"
63+ "ory/terraform-provider- orynetwork" = "/path/to/terraform-provider-orynetwork"
6564 }
6665 direct {}
6766}
@@ -71,10 +70,10 @@ provider_installation {
7170
7271Ory Network uses two types of API keys:
7372
74- | Key Type | Prefix | Purpose |
75- | ----------| --------| ---------|
73+ | Key Type | Prefix | Purpose |
74+ | ----------------- | ------------- | --------------------------------------------- |
7675| Workspace API Key | ` ory_wak_... ` | Projects, organizations, workspace management |
77- | Project API Key | ` ory_pat_... ` | Identities, OAuth2 clients, relationships |
76+ | Project API Key | ` ory_pat_... ` | Identities, OAuth2 clients, relationships |
7877
7978### Environment Variables (Recommended)
8079
@@ -102,7 +101,7 @@ provider "ory" {
102101terraform {
103102 required_providers {
104103 ory = {
105- source = "jasonhernandez/ orynetwork"
104+ source = "ory/terraform-provider- orynetwork"
106105 }
107106 }
108107}
@@ -137,26 +136,26 @@ resource "ory_action" "welcome_email" {
137136
138137## Resources
139138
140- | Resource | Description |
141- | ----------| -------------|
142- | [ ` ory_project ` ] ( docs/resources/project.md ) | Ory Network projects |
143- | [ ` ory_workspace ` ] ( docs/resources/workspace.md ) | Ory workspaces |
144- | [ ` ory_organization ` ] ( docs/resources/organization.md ) | Organizations for multi-tenancy |
145- | [ ` ory_identity ` ] ( docs/resources/identity.md ) | User identities |
146- | [ ` ory_identity_schema ` ] ( docs/resources/identity_schema.md ) | Custom identity schemas |
147- | [ ` ory_oauth2_client ` ] ( docs/resources/oauth2_client.md ) | OAuth2/OIDC client applications |
148- | [ ` ory_project_config ` ] ( docs/resources/project_config.md ) | Project configuration settings |
149- | [ ` ory_action ` ] ( docs/resources/action.md ) | Webhooks for identity flows |
150- | [ ` ory_social_provider ` ] ( docs/resources/social_provider.md ) | Social sign-in providers |
151- | [ ` ory_email_template ` ] ( docs/resources/email_template.md ) | Email template customization |
152- | [ ` ory_project_api_key ` ] ( docs/resources/project_api_key.md ) | Project API keys |
153- | [ ` ory_json_web_key_set ` ] ( docs/resources/json_web_key_set.md ) | JSON Web Key Sets for signing |
154- | [ ` ory_relationship ` ] ( docs/resources/relationship.md ) | Ory Permissions (Keto) relationships |
139+ | Resource | Description |
140+ | ------------------------------------------------------------ | ------------------------------------ |
141+ | [ ` ory_project ` ] ( docs/resources/project.md ) | Ory Network projects |
142+ | [ ` ory_workspace ` ] ( docs/resources/workspace.md ) | Ory workspaces |
143+ | [ ` ory_organization ` ] ( docs/resources/organization.md ) | Organizations for multi-tenancy |
144+ | [ ` ory_identity ` ] ( docs/resources/identity.md ) | User identities |
145+ | [ ` ory_identity_schema ` ] ( docs/resources/identity_schema.md ) | Custom identity schemas |
146+ | [ ` ory_oauth2_client ` ] ( docs/resources/oauth2_client.md ) | OAuth2/OIDC client applications |
147+ | [ ` ory_project_config ` ] ( docs/resources/project_config.md ) | Project configuration settings |
148+ | [ ` ory_action ` ] ( docs/resources/action.md ) | Webhooks for identity flows |
149+ | [ ` ory_social_provider ` ] ( docs/resources/social_provider.md ) | Social sign-in providers |
150+ | [ ` ory_email_template ` ] ( docs/resources/email_template.md ) | Email template customization |
151+ | [ ` ory_project_api_key ` ] ( docs/resources/project_api_key.md ) | Project API keys |
152+ | [ ` ory_json_web_key_set ` ] ( docs/resources/json_web_key_set.md ) | JSON Web Key Sets for signing |
153+ | [ ` ory_relationship ` ] ( docs/resources/relationship.md ) | Ory Permissions (Keto) relationships |
155154
156155## Data Sources
157156
158- | Data Source | Description |
159- | -------------| -------------|
157+ | Data Source | Description |
158+ | --------------------------------------------- | ------------------------ |
160159| [ ` ory_project ` ] ( docs/data-sources/project.md ) | Read project information |
161160
162161## Examples
@@ -274,15 +273,15 @@ resource "ory_email_template" "recovery" {
274273
275274## Known Limitations
276275
277- | Resource | Limitation |
278- | ----------| ------------|
279- | ` ory_organization ` | Requires B2B features AND project environment must be ` prod ` or ` stage ` (not ` dev ` ) |
280- | ` ory_identity_schema ` | Immutable - content cannot be updated after creation |
281- | ` ory_identity_schema ` | Delete not supported by Ory API (resource removed from state only) |
282- | ` ory_workspace ` | Delete not supported by Ory API |
283- | ` ory_oauth2_client ` | ` client_secret ` only returned on create |
284- | ` ory_email_template ` | Delete resets to Ory defaults |
285- | ` ory_relationship ` | Requires Ory Permissions (Keto) to be enabled |
276+ | Resource | Limitation |
277+ | --------------------- | ----------------------------------------------------------------------------------- |
278+ | ` ory_organization ` | Requires B2B features AND project environment must be ` prod ` or ` stage ` (not ` dev ` ) |
279+ | ` ory_identity_schema ` | Immutable - content cannot be updated after creation |
280+ | ` ory_identity_schema ` | Delete not supported by Ory API (resource removed from state only) |
281+ | ` ory_workspace ` | Delete not supported by Ory API |
282+ | ` ory_oauth2_client ` | ` client_secret ` only returned on create |
283+ | ` ory_email_template ` | Delete resets to Ory defaults |
284+ | ` ory_relationship ` | Requires Ory Permissions (Keto) to be enabled |
286285
287286## Development
288287
@@ -323,32 +322,32 @@ TF_ACC=1 go test ./internal/resources/projectconfig/... -v
323322
324323Some tests require additional environment variables or specific Ory plan features:
325324
326- | Environment Variable | Purpose | Default |
327- | ---------------------| ---------| ---------|
328- | ` TF_ACC=1 ` | Enable acceptance tests | Required |
329- | ` ORY_B2B_ENABLED=true ` | Run Organization tests (requires B2B plan) | Skipped |
330- | ` ORY_SCHEMA_TESTS_ENABLED=true ` | Run IdentitySchema tests (schemas can't be deleted) | Skipped |
331- | ` ORY_PROJECT_TESTS_ENABLED=true ` | Run Project create/delete tests | Skipped |
332- | ` ORY_WORKSPACE_TESTS_ENABLED=true ` | Run Workspace tests (can't be deleted) | Skipped |
333- | ` ORY_WORKSPACE_ID=... ` | Workspace ID for import tests | Skipped |
334- | ` ORY_KETO_TESTS_ENABLED=true ` | Run Relationship tests (requires Keto) | Skipped |
335- | ` ORY_SOCIAL_PROVIDER_TESTS_ENABLED=true ` | Run social provider tests | Skipped |
325+ | Environment Variable | Purpose | Default |
326+ | ---------------------------------------- | --------------------------------------------------- | -------- |
327+ | ` TF_ACC=1 ` | Enable acceptance tests | Required |
328+ | ` ORY_B2B_ENABLED=true ` | Run Organization tests (requires B2B plan) | Skipped |
329+ | ` ORY_SCHEMA_TESTS_ENABLED=true ` | Run IdentitySchema tests (schemas can't be deleted) | Skipped |
330+ | ` ORY_PROJECT_TESTS_ENABLED=true ` | Run Project create/delete tests | Skipped |
331+ | ` ORY_WORKSPACE_TESTS_ENABLED=true ` | Run Workspace tests (can't be deleted) | Skipped |
332+ | ` ORY_WORKSPACE_ID=... ` | Workspace ID for import tests | Skipped |
333+ | ` ORY_KETO_TESTS_ENABLED=true ` | Run Relationship tests (requires Keto) | Skipped |
334+ | ` ORY_SOCIAL_PROVIDER_TESTS_ENABLED=true ` | Run social provider tests | Skipped |
336335
337336#### Test Coverage by Plan
338337
339- | Test Suite | Free Plan | Growth Plan | Enterprise |
340- | ------------| -----------| -------------| ------------|
341- | Identity | ✅ | ✅ | ✅ |
342- | OAuth2 Client | ✅ | ✅ | ✅ |
343- | Project Config | ✅ | ✅ | ✅ |
344- | Action (webhooks) | ✅ | ✅ | ✅ |
345- | Email Template | ✅ | ✅ | ✅ |
346- | Social Provider | ✅ | ✅ | ✅ |
347- | JWK | ✅ | ✅ | ✅ |
348- | Organization | ❌ | ✅* | ✅ |
349- | Relationship (Keto) | ❌ | ✅ | ✅ |
350-
351- * Organizations require B2B features to be enabled on your plan.
338+ | Test Suite | Free Plan | Growth Plan | Enterprise |
339+ | ------------------- | --------- | ----------- | ---------- |
340+ | Identity | ✅ | ✅ | ✅ |
341+ | OAuth2 Client | ✅ | ✅ | ✅ |
342+ | Project Config | ✅ | ✅ | ✅ |
343+ | Action (webhooks) | ✅ | ✅ | ✅ |
344+ | Email Template | ✅ | ✅ | ✅ |
345+ | Social Provider | ✅ | ✅ | ✅ |
346+ | JWK | ✅ | ✅ | ✅ |
347+ | Organization | ❌ | ✅\* | ✅ |
348+ | Relationship (Keto) | ❌ | ✅ | ✅ |
349+
350+ \ * Organizations require B2B features to be enabled on your plan.
352351
353352### Generating Documentation
354353
0 commit comments