{"id":37186220,"url":"https://github.com/opalsecurity/terraform-provider-opal","last_synced_at":"2026-04-22T00:01:31.595Z","repository":{"id":60220047,"uuid":"537157606","full_name":"opalsecurity/terraform-provider-opal","owner":"opalsecurity","description":"A terraform provider for managing Opal resources","archived":false,"fork":false,"pushed_at":"2026-03-11T00:23:23.000Z","size":15787,"stargazers_count":4,"open_issues_count":9,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-11T06:06:14.656Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opalsecurity.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-15T18:27:43.000Z","updated_at":"2026-03-03T21:35:13.000Z","dependencies_parsed_at":"2024-02-14T01:26:15.228Z","dependency_job_id":"a8184c31-c01a-421c-a20b-b33eb90f580a","html_url":"https://github.com/opalsecurity/terraform-provider-opal","commit_stats":{"total_commits":123,"total_committers":5,"mean_commits":24.6,"dds":0.4227642276422764,"last_synced_commit":"6fe8548537739df7bad38cdbb09ceabdae45b920"},"previous_names":[],"tags_count":71,"template":false,"template_full_name":null,"purl":"pkg:github/opalsecurity/terraform-provider-opal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fterraform-provider-opal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fterraform-provider-opal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fterraform-provider-opal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fterraform-provider-opal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opalsecurity","download_url":"https://codeload.github.com/opalsecurity/terraform-provider-opal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fterraform-provider-opal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30412465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"online","status_checked_at":"2026-03-12T02:00:07.260Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T21:35:38.881Z","updated_at":"2026-04-22T00:01:31.578Z","avatar_url":"https://github.com/opalsecurity.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform provider for Opal\n\n## SDK Generation\nGenerate the new SDK using `speakeasy run`. This pulls the remote spec specified in `.speakeasy/workflow.yaml#6` and applies the overrides in `terraform_overlay.yaml`. Note the Makefile is only useful if you want to do development with a local OpenAPI spec and update the Speakeasy workflow config to reference that OpenAPI spec.\n\n\u003c!-- Start Summary [summary] --\u003e\n## Summary\n\nOpal API: The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.\n\u003c!-- End Summary [summary] --\u003e\n\n\u003c!-- Start Table of Contents [toc] --\u003e\n## Table of Contents\n\u003c!-- $toc-max-depth=2 --\u003e\n* [Terraform provider for Opal](#terraform-provider-for-opal)\n  * [SDK Generation](#sdk-generation)\n  * [Installation](#installation)\n  * [Authentication](#authentication)\n  * [Available Resources and Data Sources](#available-resources-and-data-sources)\n  * [Testing the provider locally](#testing-the-provider-locally)\n\n\u003c!-- End Table of Contents [toc] --\u003e\n\n\u003c!-- Start Installation [installation] --\u003e\n## Installation\n\nTo install this provider, copy and paste this code into your Terraform configuration. Then, run `terraform init`.\n\n```hcl\nterraform {\n  required_providers {\n    opal = {\n      source  = \"opalsecurity/opal\"\n      version = \"3.4.4\"\n    }\n  }\n}\n\nprovider \"opal\" {\n  server_url = \"...\" # Optional\n}\n```\n\u003c!-- End Installation [installation] --\u003e\n\n\n\u003c!-- Start Authentication [security] --\u003e\n## Authentication\n\nThis provider supports authentication configuration via environment variables and provider configuration.\n\nThe configuration precedence is:\n\n- Provider configuration\n- Environment variables\n\nAvailable configuration:\n\n| Provider Attribute | Description |\n|---|---|\n| `bearer_auth` | HTTP Bearer. Configurable via environment variable `OPAL_AUTH_TOKEN`. |\n\u003c!-- End Authentication [security] --\u003e\n\n\u003c!-- Start Available Resources and Data Sources [operations] --\u003e\n## Available Resources and Data Sources\n\n### Managed Resources\n\n* [opal_access_rule](docs/resources/access_rule.md)\n* [opal_bundle](docs/resources/bundle.md)\n* [opal_bundle_group](docs/resources/bundle_group.md)\n* [opal_bundle_resource](docs/resources/bundle_resource.md)\n* [opal_configuration_template](docs/resources/configuration_template.md)\n* [opal_delegation](docs/resources/delegation.md)\n* [opal_group](docs/resources/group.md)\n* [opal_group_catalog_mapping](docs/resources/group_catalog_mapping.md)\n* [opal_group_containing_group](docs/resources/group_containing_group.md)\n* [opal_group_resource_list](docs/resources/group_resource_list.md)\n* [opal_group_tag](docs/resources/group_tag.md)\n* [opal_group_user](docs/resources/group_user.md)\n* [opal_idp_group_mappings](docs/resources/idp_group_mappings.md)\n* [opal_message_channel](docs/resources/message_channel.md)\n* [opal_on_call_schedule](docs/resources/on_call_schedule.md)\n* [opal_owner](docs/resources/owner.md)\n* [opal_resource](docs/resources/resource.md)\n* [opal_resource_tag](docs/resources/resource_tag.md)\n* [opal_scoped_role_permission_list](docs/resources/scoped_role_permission_list.md)\n* [opal_tag](docs/resources/tag.md)\n* [opal_tag_user](docs/resources/tag_user.md)\n\n### Data Sources\n\n* [opal_access_rule](docs/data-sources/access_rule.md)\n* [opal_app](docs/data-sources/app.md)\n* [opal_apps](docs/data-sources/apps.md)\n* [opal_bundle](docs/data-sources/bundle.md)\n* [opal_bundle_visibility](docs/data-sources/bundle_visibility.md)\n* [opal_configuration_template_list](docs/data-sources/configuration_template_list.md)\n* [opal_delegation](docs/data-sources/delegation.md)\n* [opal_delegations](docs/data-sources/delegations.md)\n* [opal_events](docs/data-sources/events.md)\n* [opal_group](docs/data-sources/group.md)\n* [opal_group_catalog_mapping](docs/data-sources/group_catalog_mapping.md)\n* [opal_group_containing_group](docs/data-sources/group_containing_group.md)\n* [opal_group_resource_list](docs/data-sources/group_resource_list.md)\n* [opal_group_reviewers_stages_list](docs/data-sources/group_reviewers_stages_list.md)\n* [opal_group_tags](docs/data-sources/group_tags.md)\n* [opal_group_users](docs/data-sources/group_users.md)\n* [opal_group_list](docs/data-sources/group_list.md)\n* [opal_idp_group_mappings](docs/data-sources/idp_group_mappings.md)\n* [opal_message_channel](docs/data-sources/message_channel.md)\n* [opal_message_channel_list](docs/data-sources/message_channel_list.md)\n* [opal_on_call_schedule](docs/data-sources/on_call_schedule.md)\n* [opal_on_call_schedule_list](docs/data-sources/on_call_schedule_list.md)\n* [opal_owner](docs/data-sources/owner.md)\n* [opal_owner_from_name](docs/data-sources/owner_from_name.md)\n* [opal_owners](docs/data-sources/owners.md)\n* [opal_paginated_bundle_group_list](docs/data-sources/paginated_bundle_group_list.md)\n* [opal_paginated_bundle_list](docs/data-sources/paginated_bundle_list.md)\n* [opal_paginated_bundle_resource_list](docs/data-sources/paginated_bundle_resource_list.md)\n* [opal_requests](docs/data-sources/requests.md)\n* [opal_resource](docs/data-sources/resource.md)\n* [opal_resource_message_channel_list](docs/data-sources/resource_message_channel_list.md)\n* [opal_resource_reviewers_list](docs/data-sources/resource_reviewers_list.md)\n* [opal_resource_tags](docs/data-sources/resource_tags.md)\n* [opal_resource_visibility](docs/data-sources/resource_visibility.md)\n* [opal_resources_access_status](docs/data-sources/resources_access_status.md)\n* [opal_resources_users_list](docs/data-sources/resources_users_list.md)\n* [opal_resources_list](docs/data-sources/resources_list.md)\n* [opal_scoped_role_permission_list](docs/data-sources/scoped_role_permission_list.md)\n* [opal_sessions](docs/data-sources/sessions.md)\n* [opal_tag](docs/data-sources/tag.md)\n* [opal_tags_list](docs/data-sources/tags_list.md)\n* [opal_uar](docs/data-sources/uar.md)\n* [opal_uars_list](docs/data-sources/uars_list.md)\n* [opal_user](docs/data-sources/user.md)\n* [opal_user_tags](docs/data-sources/user_tags.md)\n* [opal_users](docs/data-sources/users.md)\n\u003c!-- End Available Resources and Data Sources [operations] --\u003e\n\n\u003c!-- Start Testing the provider locally [usage] --\u003e\n## Testing the provider locally\n\n#### Local Provider\n\nShould you want to validate a change locally, the `--debug` flag allows you to execute the provider against a terraform instance locally.\n\nThis also allows for debuggers (e.g. delve) to be attached to the provider.\n\n```sh\ngo run main.go --debug\n# Copy the TF_REATTACH_PROVIDERS env var\n# In a new terminal\ncd examples/your-example\nTF_REATTACH_PROVIDERS=... terraform init\nTF_REATTACH_PROVIDERS=... terraform apply\n```\n\n#### Compiled Provider\n\nTerraform allows you to use local provider builds by setting a `dev_overrides` block in a configuration file called `.terraformrc`. This block overrides all other configured installation methods.\n\n1. Execute `go build` to construct a binary called `terraform-provider-opal`\n2. Ensure that the `.terraformrc` file is configured with a `dev_overrides` section such that your local copy of terraform can see the provider binary\n\nTerraform searches for the `.terraformrc` file in your home directory and applies any configuration settings you set.\n\n```\nprovider_installation {\n\n  dev_overrides {\n      \"registry.terraform.io/opalsecurity/opal\" = \"\u003cPATH\u003e\"\n  }\n\n  # For all other providers, install them directly from their origin provider\n  # registries as normal. If you omit this, Terraform will _only_ use\n  # the dev_overrides block, and so no other providers will be available.\n  direct {}\n}\n```\n\u003c!-- End Testing the provider locally [usage] --\u003e\n\n\u003c!-- Placeholder for Future Speakeasy SDK Sections --\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopalsecurity%2Fterraform-provider-opal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopalsecurity%2Fterraform-provider-opal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopalsecurity%2Fterraform-provider-opal/lists"}