@@ -21,9 +21,12 @@ A Terraform provider for managing [Ory Network](https://www.ory.sh/) resources u
2121- ** Project Configuration** : CORS, session settings, password policies, MFA
2222- ** Webhooks/Actions** : Trigger webhooks on identity flow events
2323- ** Email Templates** : Customize verification, recovery, and login code emails
24- - ** OAuth2 Clients** : Manage OAuth2/OIDC client applications
24+ - ** OAuth2 Clients** : Manage OAuth2/OIDC client applications and dynamic client registration (RFC 7591)
25+ - ** JWT Grant Trust** : Trust external identity providers for RFC 7523 JWT Bearer grants
26+ - ** Event Streams** : Publish Ory events to external systems like AWS SNS (Enterprise)
2527- ** Organizations** : Multi-tenancy support for B2B applications
2628- ** Permissions (Keto)** : Manage relationship tuples for fine-grained authorization
29+ - ** API Key Management** : Manage project API keys
2730
2831## Requirements
2932
@@ -135,27 +138,35 @@ resource "ory_action" "welcome_email" {
135138
136139## Resources
137140
138- | Resource | Description |
139- | ------------------------------------------------------------ | ------------------------------------ |
140- | [ ` ory_project ` ] ( docs/resources/project.md ) | Ory Network projects |
141- | [ ` ory_workspace ` ] ( docs/resources/workspace.md ) | Ory workspaces |
142- | [ ` ory_organization ` ] ( docs/resources/organization.md ) | Organizations for multi-tenancy |
143- | [ ` ory_identity ` ] ( docs/resources/identity.md ) | User identities |
144- | [ ` ory_identity_schema ` ] ( docs/resources/identity_schema.md ) | Custom identity schemas |
145- | [ ` ory_oauth2_client ` ] ( docs/resources/oauth2_client.md ) | OAuth2/OIDC client applications |
146- | [ ` ory_project_config ` ] ( docs/resources/project_config.md ) | Project configuration settings |
147- | [ ` ory_action ` ] ( docs/resources/action.md ) | Webhooks for identity flows |
148- | [ ` ory_social_provider ` ] ( docs/resources/social_provider.md ) | Social sign-in providers |
149- | [ ` ory_email_template ` ] ( docs/resources/email_template.md ) | Email template customization |
150- | [ ` ory_project_api_key ` ] ( docs/resources/project_api_key.md ) | Project API keys |
151- | [ ` ory_json_web_key_set ` ] ( docs/resources/json_web_key_set.md ) | JSON Web Key Sets for signing |
152- | [ ` ory_relationship ` ] ( docs/resources/relationship.md ) | Ory Permissions (Keto) relationships |
141+ | Resource | Description | Plan Requirement |
142+ | ----------------------------------------------------------------------------------------------- | ----------------------------------------- | -------------------- |
143+ | [ ` ory_project ` ] ( docs/resources/project.md ) | Ory Network projects | All plans |
144+ | [ ` ory_workspace ` ] ( docs/resources/workspace.md ) | Ory workspaces (import-only) | All plans |
145+ | [ ` ory_organization ` ] ( docs/resources/organization.md ) | Organizations for multi-tenancy | Growth+ (B2B) |
146+ | [ ` ory_identity ` ] ( docs/resources/identity.md ) | User identities | All plans |
147+ | [ ` ory_identity_schema ` ] ( docs/resources/identity_schema.md ) | Custom identity schemas | All plans |
148+ | [ ` ory_oauth2_client ` ] ( docs/resources/oauth2_client.md ) | OAuth2/OIDC client applications | All plans |
149+ | [ ` ory_oidc_dynamic_client ` ] ( docs/resources/oidc_dynamic_client.md ) | RFC 7591 dynamic OIDC client registration | All plans |
150+ | [ ` ory_project_config ` ] ( docs/resources/project_config.md ) | Project configuration settings | All plans |
151+ | [ ` ory_action ` ] ( docs/resources/action.md ) | Webhooks for identity flows | All plans |
152+ | [ ` ory_social_provider ` ] ( docs/resources/social_provider.md ) | Social sign-in providers | All plans |
153+ | [ ` ory_email_template ` ] ( docs/resources/email_template.md ) | Email template customization | All plans |
154+ | [ ` ory_project_api_key ` ] ( docs/resources/project_api_key.md ) | Project API keys | All plans |
155+ | [ ` ory_json_web_key_set ` ] ( docs/resources/json_web_key_set.md ) | JSON Web Key Sets for signing | All plans |
156+ | [ ` ory_relationship ` ] ( docs/resources/relationship.md ) | Ory Permissions (Keto) relationships | All plans |
157+ | [ ` ory_event_stream ` ] ( docs/resources/event_stream.md ) | Event streams (e.g., AWS SNS) | Enterprise |
158+ | [ ` ory_trusted_oauth2_jwt_grant_issuer ` ] ( docs/resources/trusted_oauth2_jwt_grant_issuer.md ) | RFC 7523 JWT grant trust relationships | All plans |
153159
154160## Data Sources
155161
156- | Data Source | Description |
157- | --------------------------------------------- | ------------------------ |
158- | [ ` ory_project ` ] ( docs/data-sources/project.md ) | Read project information |
162+ | Data Source | Description | Plan Requirement |
163+ | ------------------------------------------------------------------ | ------------------------------ | -------------------- |
164+ | [ ` ory_project ` ] ( docs/data-sources/project.md ) | Read project information | All plans |
165+ | [ ` ory_workspace ` ] ( docs/data-sources/workspace.md ) | Read workspace information | All plans |
166+ | [ ` ory_identity ` ] ( docs/data-sources/identity.md ) | Read identity details | All plans |
167+ | [ ` ory_oauth2_client ` ] ( docs/data-sources/oauth2_client.md ) | Read OAuth2 client details | All plans |
168+ | [ ` ory_organization ` ] ( docs/data-sources/organization.md ) | Read organization details | Growth+ (B2B) |
169+ | [ ` ory_identity_schemas ` ] ( docs/data-sources/identity_schemas.md ) | List project identity schemas | All plans |
159170
160171## Examples
161172
@@ -272,15 +283,18 @@ resource "ory_email_template" "recovery" {
272283
273284## Known Limitations
274285
275- | Resource | Limitation |
276- | --------------------- | ----------------------------------------------------------------------------------- |
277- | ` ory_organization ` | Requires B2B features AND project environment must be ` prod ` or ` stage ` (not ` dev ` ) |
278- | ` ory_identity_schema ` | Immutable - content cannot be updated after creation |
279- | ` ory_identity_schema ` | Delete not supported by Ory API (resource removed from state only) |
280- | ` ory_workspace ` | Delete not supported by Ory API |
281- | ` ory_oauth2_client ` | ` client_secret ` only returned on create |
282- | ` ory_email_template ` | Delete resets to Ory defaults |
283- | ` ory_relationship ` | Requires Ory Permissions (Keto) to be enabled |
286+ | Resource | Limitation |
287+ | --------------------------------------- | ----------------------------------------------------------------------------------- |
288+ | ` ory_organization ` | Requires B2B features AND project environment must be ` prod ` or ` stage ` (not ` dev ` ) |
289+ | ` ory_identity_schema ` | Immutable - content cannot be updated after creation |
290+ | ` ory_identity_schema ` | Delete not supported by Ory API (resource removed from state only) |
291+ | ` ory_workspace ` | Import-only; create/delete not supported by Ory API |
292+ | ` ory_oauth2_client ` | ` client_secret ` only returned on create |
293+ | ` ory_oidc_dynamic_client ` | ` client_secret ` , ` registration_access_token ` , ` registration_client_uri ` only returned on create |
294+ | ` ory_email_template ` | Delete resets to Ory defaults |
295+ | ` ory_relationship ` | Requires Ory Permissions (Keto) to be enabled |
296+ | ` ory_event_stream ` | Requires Enterprise plan; authenticates with workspace API key |
297+ | ` ory_trusted_oauth2_jwt_grant_issuer ` | Create and delete only; any changes require resource recreation |
284298
285299## Development
286300
@@ -347,20 +361,24 @@ Some tests require additional feature flags or specific Ory plan features:
347361| ` ORY_SOCIAL_PROVIDER_TESTS_ENABLED=true ` | Run social provider tests | Skipped |
348362| ` ORY_SCHEMA_TESTS_ENABLED=true ` | Run IdentitySchema tests (schemas can't be deleted) | Skipped |
349363| ` ORY_PROJECT_TESTS_ENABLED=true ` | Run Project create/delete tests | Skipped |
364+ | ` ORY_EVENT_STREAM_TESTS_ENABLED=true ` | Run Event Stream tests (requires Enterprise plan) | Skipped |
350365
351366#### Test Coverage by Plan
352367
353- | Test Suite | Free Plan | Growth Plan | Enterprise |
354- | ------------------- | --------- | ----------- | ---------- |
355- | Identity | ✅ | ✅ | ✅ |
356- | OAuth2 Client | ✅ | ✅ | ✅ |
357- | Project Config | ✅ | ✅ | ✅ |
358- | Action (webhooks) | ✅ | ✅ | ✅ |
359- | Email Template | ✅ | ✅ | ✅ |
360- | Social Provider | ✅ | ✅ | ✅ |
361- | JWK | ✅ | ✅ | ✅ |
362- | Organization | ❌ | ✅\* | ✅ |
363- | Relationship (Keto) | ❌ | ✅ | ✅ |
368+ | Test Suite | Free Plan | Growth Plan | Enterprise |
369+ | ------------------------------- | --------- | ----------- | ---------- |
370+ | Identity | ✅ | ✅ | ✅ |
371+ | OAuth2 Client | ✅ | ✅ | ✅ |
372+ | OIDC Dynamic Client | ✅ | ✅ | ✅ |
373+ | Project Config | ✅ | ✅ | ✅ |
374+ | Action (webhooks) | ✅ | ✅ | ✅ |
375+ | Email Template | ✅ | ✅ | ✅ |
376+ | Social Provider | ✅ | ✅ | ✅ |
377+ | JWK | ✅ | ✅ | ✅ |
378+ | Trusted JWT Grant Issuer | ✅ | ✅ | ✅ |
379+ | Organization | ❌ | ✅\* | ✅ |
380+ | Relationship (Keto) | ❌ | ✅ | ✅ |
381+ | Event Stream | ❌ | ❌ | ✅ |
364382
365383\* Organizations require B2B features to be enabled on your plan.
366384
@@ -381,12 +399,21 @@ Templates use Go template syntax with these variables:
381399
382400```
383401templates/
384- ├── index.md.tmpl # Provider-level docs
402+ ├── index.md.tmpl # Provider-level docs
385403├── resources/
386- │ ├── oauth2_client.md.tmpl # Each resource has a template
404+ │ ├── oauth2_client.md.tmpl # Each resource has a template
405+ │ ├── oidc_dynamic_client.md.tmpl
406+ │ ├── event_stream.md.tmpl
407+ │ ├── trusted_oauth2_jwt_grant_issuer.md.tmpl
387408│ └── ...
388409└── data-sources/
389- └── project.md.tmpl # Data source template
410+ ├── project.md.tmpl # Data source templates
411+ ├── workspace.md.tmpl
412+ ├── identity.md.tmpl
413+ ├── oauth2_client.md.tmpl
414+ ├── organization.md.tmpl
415+ ├── identity_schemas.md.tmpl
416+ └── ...
390417```
391418
392419## Contributing
0 commit comments