{"id":16260047,"url":"https://github.com/cludden/terraform-registry","last_synced_at":"2025-04-08T13:49:51.368Z","repository":{"id":54456711,"uuid":"323476280","full_name":"cludden/terraform-registry","owner":"cludden","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-16T18:19:09.000Z","size":81,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-08-07T03:10:59.608Z","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/cludden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-22T00:03:01.000Z","updated_at":"2021-11-05T15:25:42.000Z","dependencies_parsed_at":"2022-08-13T16:10:55.358Z","dependency_job_id":null,"html_url":"https://github.com/cludden/terraform-registry","commit_stats":null,"previous_names":[],"tags_count":5,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cludden","download_url":"https://codeload.github.com/cludden/terraform-registry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247854813,"owners_count":21007424,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-10-10T16:06:08.358Z","updated_at":"2025-04-08T13:49:51.336Z","avatar_url":"https://github.com/cludden.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-registry\na private terraform registry that supports the following services:\n- [x] [providers.v1](https://www.terraform.io/docs/internals/provider-registry-protocol.html)\n  - backed by AWS DynamoDB \u0026 S3\n- [ ] [modules.v1](https://www.terraform.io/docs/internals/module-registry-protocol.html)\n- [ ] [login.v1](https://www.terraform.io/docs/commands/login.html)\n\n\n## Installation\n1. Download a [release](https://github.com/cludden/terraform-registry/releases)\n2. Docker `docker run -it cludden/terraform-registry server -h`\n\n## Server Configuration\n| Field | Type | Description | Required |\n| :--- | :---: | :--- | :---: |\n| `oidc` | `object` | enable oidc authentication middleware | |\n| `oidc.algorithms` | `list(string)` | list of supported algorithms | |\n| `oidc.client_id` | `string` | oid cclient identifier | |\n| `oidc.issuer` | `string` | oidc issuer url | `true` |\n| `oidc.skip_expiry_check` | `bool` | disable expiration check | |\n| `oidc.skip_issuer_check` | `bool` | disable issuer check | |\n| `provider` | `object` | enable `providers.v1` service | |\n| `provider.bucket` | `string` | name of s3 bucket where provider binaries and related files are stored | |\n| `provider.credentials.id` | `string` | aws access key id | |\n| `provider.credentials.profile` | `string` | aws profile | |\n| `provider.credentials.role` | `string` | aws role to assume | |\n| `provider.credentials.role_external_id` | `string` | aws role external id | |\n| `provider.credentials.secret` | `string` | aws secret access key | |\n| `provider.credentials.token` | `string` | aws session token | |\n| `provider.endpoint` | `string` | override aws service endpoint | |\n| `provider.prefix` | `string` | optional s3 bucket path prefix where provider binaries and related files are stored | |\n| `provider.region` | `string` | aws region| |\n| `provider.table` | `string` | name of dynamodb table where registry metadata is stored | |\n\n## Getting Started\nRun locally using *localstack*:\n```shell\n# start localstack\n$ docker-compose up -d localstack\n\n# set dummy credentials\n$ export AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar\n\n# create dynamodb table\n$ aws dynamodb create-table \\\n    --endpoint http://localhost:4566 \\\n    --table-name terraform-registry \\\n    --attribute-definitions AttributeName=pk,AttributeType=S AttributeName=sk,AttributeType=S \\\n    --key-schema AttributeName=pk,KeyType=HASH AttributeName=sk,KeyType=RANGE \\\n    --billing-mode PAY_PER_REQUEST\n\n# create s3 bucket\n$ aws s3api create-bucket --endpoint http://localhost:4566 --bucket terraform-registry\n\n# start registry server\n$ docker-compose up registry\n```\n\n## Provider Registry V1\nIn addition to the standard endpoints defined by the  `providers.v1` protocol, this service exposes the following administrative endpoints:\n\n### Register GPG Public Key\nCreate or update a gpg public key for distribution\n```http\nPUT /providers/v1/gpg-public-keys/{id}\n```\n\n| Parameter | Type | Description | Required |\n| :--- | :---: | :--- | :---: |\n| `ascii_armor` | `string` | an \"ascii-armor\" encoding of the public key associated with this GPG key | `true`  |\n| `id` | `string` | uppercase-hexadecimal-formatted ID for this GPG key | `true` |\n\n### Publish Version\nCreate or update a provider version. *Note: this endpoint simply marks a version as available, it should be called after the appropriate artifacts have been uploaded to s3.`\n```http\nPUT /providers/v1/{namespace}/{type}/{version}\n```\n\n| Parameter | Type | Description | Required |\n| :--- | :---: | :--- | :---: |\n| `gpg_public_key_id` | `string` | an \"ascii-armor\" encoding of the public key associated with this GPG key | `true` |\n| `namespace` | `string` | Provider namespace | `true` |\n| `platforms` | `list(object({arch = string, os = string}))` | List of available platforms | `true` |\n| `protocols` | `list(string)` | List of supported protocols | `true` |\n| `type` | `string` | Provider name | `true` |\n| `version` | `string` | Provider version | `true` |\n\n## License\nLicensed under the [MIT License](LICENSE.md)  \nCopyright (c) 2020 Chris Ludden\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcludden%2Fterraform-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcludden%2Fterraform-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcludden%2Fterraform-registry/lists"}