{"id":49636523,"url":"https://github.com/libdns/oraclecloud","last_synced_at":"2026-05-05T15:03:42.396Z","repository":{"id":346444450,"uuid":"1190005482","full_name":"libdns/oraclecloud","owner":"libdns","description":"Oracle Cloud Infrastructure DNS Provider for libdns","archived":false,"fork":false,"pushed_at":"2026-03-23T22:18:45.000Z","size":38,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-24T21:11:25.314Z","etag":null,"topics":["libdns","oraclecloud","oraclecloudinfrastructure"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"upl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libdns.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-23T22:00:32.000Z","updated_at":"2026-03-23T22:18:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/libdns/oraclecloud","commit_stats":null,"previous_names":["libdns/oraclecloud"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/libdns/oraclecloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Foraclecloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Foraclecloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Foraclecloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Foraclecloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libdns","download_url":"https://codeload.github.com/libdns/oraclecloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Foraclecloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32654618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["libdns","oraclecloud","oraclecloudinfrastructure"],"created_at":"2026-05-05T15:03:39.339Z","updated_at":"2026-05-05T15:03:42.385Z","avatar_url":"https://github.com/libdns.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libdns Oracle Cloud\n\n`libdns` provider for Oracle Cloud Infrastructure DNS.\n\nThis module currently requires Go 1.25 or newer.\n\nThis package implements:\n\n- `GetRecords`\n- `AppendRecords`\n- `SetRecords`\n- `DeleteRecords`\n- `ListZones`\n\n## Authentication\n\nOCI SDKs support several authentication methods. This provider supports the two\nprimary methods: API keys, for authentication outside OCI, and\n`instance_principal`, for authentication from instances within OCI.\n\nAll OCI SDKs support some or all of Oracle's standard environment variables for\nauthentication configuration, so this provider does too.\n\nThe recommended and most prominently documented configuration style is the\nstandard OCI config file, usually `~/.oci/config`, because it matches Oracle's\npreferred user workflow and works cleanly with existing OCI tooling.\n\nSee the OCI Developer Guide for more on the [Authentication Methods](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdk_authentication_methods.htm) and [Environment Variables](https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/clienvironmentvariables.htm).\n\nSupported `Auth` values:\n\n- `\"\"` or `auto`\n- `api_key`\n- `config_file`\n- `environment`\n- `instance_principal`\n\nThe `api_key`, `config_file`, and `environment` values are all API-key authentication;\nthey only differ in where the credentials come from.\n\n`resource_principal` and token-based authentication are not currently supported.\n\nIf you set `Auth` to `auto` or `config_file` with a valid `~/.oci/config` file available, or set `Auth` to `instance_principal` on an OCI instance with the appropriate policies applied, no further configuration is required to manage public DNS zones. However, both of these methods require `ViewID` to be configured to manage private zones by name.\n\nFor `environment`, or when populating the provider fields directly, the minimum required values are `TenancyOCID`, `UserOCID`, `Fingerprint`, `Region`, and either `PrivateKeyPath` or inline `PrivateKey`. `PrivateKeyPassphrase` is only needed when the private key is passphrase-protected.\n\n`CompartmentID` is required to List Zones.\n\n## Provider Fields\n\n```go\nprovider := oraclecloud.Provider{\n    Auth:               \"auto\",\n    ConfigFile:         \"~/.oci/config\",\n    ConfigProfile:      \"DEFAULT\",\n    TenancyOCID:        \"ocid1.tenancy.oc1..example\",\n    UserOCID:           \"ocid1.user.oc1..example\",\n    Fingerprint:        \"12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef\",\n    PrivateKeyPath:     \"~/.oci/oci_api_key.pem\",\n    PrivateKeyPassphrase: \"\",\n    Region:             \"us-phoenix-1\",\n    Scope:              \"GLOBAL\",\n    ViewID:             \"\",\n    CompartmentID:      \"ocid1.compartment.oc1..example\",\n}\n```\n\n## Environment Variables\n\nThe provider accepts Oracle's documented OCI CLI environment variables:\n\n- `OCI_CLI_KEY_CONTENT` or `OCI_CLI_KEY_FILE`\n- `OCI_CLI_PASSPHRASE`\n- `OCI_CLI_TENANCY`\n- `OCI_CLI_USER`\n- `OCI_CLI_FINGERPRINT`\n- `OCI_CLI_REGION`\n- `OCI_CLI_CONFIG_FILE`\n- `OCI_CLI_PROFILE`\n\n## Smoke Test\n\nYou can verify real OCI auth and TXT-record write access locally with the bundled smoke-test command:\n\n```sh\ngo run ./cmd/ocismoke \\\n  -auth config_file \\\n  -config-file ~/.oci/config \\\n  -config-profile DEFAULT \\\n  -zone example.com\n```\n\nBy default it creates a random `_libdns-smoke-*` TXT record, confirms it can read it back, and then deletes it.\n\nUseful flags:\n\n- `-auth auto|config_file|environment|api_key`\n- `-zone` zone name or OCI zone OCID\n- `-view-id` for private zones accessed by name\n- `-scope GLOBAL|PRIVATE`\n- `-name` to override the generated label\n- `-value` to override the generated TXT value\n\nFor safety, the smoke-test command does not accept inline secret flags such as\n`--private-key` or `--private-key-passphrase`. Use `-config-file`, `-private-key-path`,\nor Oracle's `OCI_CLI_*` environment variables instead.\n\n## Versioning\n\nThis module follows Semantic Versioning, with Git tags like `v1.2.3`.\n\nFor Go modules, that means:\n\n- `fix:` conventional commits map to patch releases\n- `feat:` conventional commits map to minor releases\n- `feat!:` or any commit with a `BREAKING CHANGE:` footer maps to a major release\n- if this module ever releases `v2+`, the Go module path must also change to include the major suffix\n  such as `github.com/libdns/oraclecloud/v2`\n\nGitHub Actions uses `release-please` to turn conventional commits merged to `main` into release PRs,\nSemVer tags, changelog updates, and GitHub Releases.\n\n## Notes\n\n- In `Auth: \"auto\"` mode, explicit API-key fields take precedence over config-file auth. If you want to\n  force use of `~/.oci/config`, set `Auth: \"config_file\"`.\n- For private zones accessed by name, OCI requires `ViewID`.\n- `SetRecords` is atomic per RRSet because OCI exposes RRSet replacement as a single operation, but it is not atomic across multiple distinct RRSets.\n- The module path is `github.com/libdns/oraclecloud`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibdns%2Foraclecloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibdns%2Foraclecloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibdns%2Foraclecloud/lists"}