{"id":22725375,"url":"https://github.com/ovotech/cloud-key-client","last_synced_at":"2025-04-13T20:27:07.700Z","repository":{"id":34748575,"uuid":"144965855","full_name":"ovotech/cloud-key-client","owner":"ovotech","description":"A Golang client to interact with Cloud Providers' Service Account keys","archived":false,"fork":false,"pushed_at":"2023-12-18T23:22:57.000Z","size":396,"stargazers_count":3,"open_issues_count":8,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-21T18:06:03.533Z","etag":null,"topics":["company-kaluza"],"latest_commit_sha":null,"homepage":"","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/ovotech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2018-08-16T09:21:58.000Z","updated_at":"2023-11-14T10:49:01.000Z","dependencies_parsed_at":"2024-06-21T16:41:44.412Z","dependency_job_id":"96fea5ec-6ead-40fd-8053-41b485487cc2","html_url":"https://github.com/ovotech/cloud-key-client","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovotech%2Fcloud-key-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovotech%2Fcloud-key-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovotech%2Fcloud-key-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovotech%2Fcloud-key-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ovotech","download_url":"https://codeload.github.com/ovotech/cloud-key-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229089204,"owners_count":18018390,"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":["company-kaluza"],"created_at":"2024-12-10T16:09:30.633Z","updated_at":"2024-12-10T16:09:31.400Z","avatar_url":"https://github.com/ovotech.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloud-Key-Client\n\n[![CircleCI](https://circleci.com/gh/ovotech/cloud-key-client.svg?style=svg\u0026circle-token=4a7b48b664bf017b6256234f5de24c5b70c54168)](https://circleci.com/gh/ovotech/cloud-key-client)\n\nCloud-Key-Client is a Golang client that connects up to cloud providers either\nto collect details of Service Account keys, or manipulate them.\n\n## Install as a Go Dependency\n\n```go\ngo get -u github.com/ovotech/cloud-key-client\n```\n\n## Getting Started\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tkeys \"github.com/ovotech/cloud-key-client\"\n)\n\nfunc main() {\n\tproviders := []keys.Provider{}\n\n\t// create a GCP provider\n\tgcpProvider := keys.Provider{\n\t\tGcpProject: \"my-gcp-project-id\",\n\t\tProvider:   \"gcp\",\n\t}\n\t// create an AWS provider\n\tawsProvider := keys.Provider{\n\t\t// no need to specify any account ID here\n\t\tProvider: \"aws\",\n\t}\n\t// create an Aiven provider\n\taivenProvider := keys.Provider{\n\t\tProvider: \"aiven\",\n\t\tToken: \"my-aiven-api-token\"\n\t}\n\n\t// add both providers to the slice\n\tproviders = append(providers, gcpProvider)\n\tproviders = append(providers, awsProvider)\n\tproviders = append(providers, aivenProvider)\n\n\t// use the cloud-key-client\n\tkeys, err := keys.Keys(providers, true)\n\tif err != nil {\n\t\tfmt.Print(err)\n\t\treturn\n\t}\n\tfor _, key := range keys {\n\t\tfmt.Printf(\"%s, ID: ****%s, Age: %dd, Status: %s\\n\",\n\t\t\tkey.Account,\n\t\t\tkey.ID[len(key.ID)-4:],\n\t\t\tint(key.Age/1440),\n\t\t\tkey.Status)\n\t}\n}\n```\n\n## Purpose\n\nThis client could be useful for obtaining key metadata, such as age, and\nperforming create and delete operations for key rotation. Multiple providers\ncan be accessed through a single interface.\n\n## Integrations\n\nThe following cloud providers have been integrated:\n\n- AWS\n- Aiven\n- GCP\n\nNo config is required, you simply need to pass a slice of `Provider` structs to\nthe `keys()` func.\n\nAuthentication is handled by the Default Credential Provider Chains for both\n[GCP](https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-go)\nand [AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovotech%2Fcloud-key-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovotech%2Fcloud-key-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovotech%2Fcloud-key-client/lists"}