{"id":19499437,"url":"https://github.com/locaweb/power_dnsex","last_synced_at":"2025-07-19T04:05:23.087Z","repository":{"id":46653846,"uuid":"63920107","full_name":"locaweb/power_dnsex","owner":"locaweb","description":"PowerDNS Elixir client","archived":false,"fork":false,"pushed_at":"2024-12-09T17:28:44.000Z","size":95,"stargazers_count":10,"open_issues_count":1,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-25T22:35:17.156Z","etag":null,"topics":["elixir","hacktoberfest","powerdns","powerdns4"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/locaweb.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}},"created_at":"2016-07-22T03:20:15.000Z","updated_at":"2024-06-21T05:05:15.000Z","dependencies_parsed_at":"2022-08-29T00:41:23.303Z","dependency_job_id":null,"html_url":"https://github.com/locaweb/power_dnsex","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/locaweb/power_dnsex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locaweb%2Fpower_dnsex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locaweb%2Fpower_dnsex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locaweb%2Fpower_dnsex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locaweb%2Fpower_dnsex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/locaweb","download_url":"https://codeload.github.com/locaweb/power_dnsex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/locaweb%2Fpower_dnsex/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265887587,"owners_count":23844433,"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":["elixir","hacktoberfest","powerdns","powerdns4"],"created_at":"2024-11-10T22:04:09.148Z","updated_at":"2025-07-19T04:05:23.070Z","avatar_url":"https://github.com/locaweb.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PowerDNSex\n\nA client to [PowerDNS 4 API](https://doc.powerdns.com/md/httpapi/README/), with all CRUD operations to manage zones and records.\n\n[![Build Status](https://travis-ci.org/digaoddc/power_dnsex.svg?branch=travis)](https://travis-ci.org/digaoddc/power_dnsex)\n\n## Installation\n\nIf [available in Hex](https://hex.pm/docs/publish), the package can be installed as:\n\n  1. Add `powerdnsex` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [{:powerdnsex, \"~\u003e 0.1.0\"}]\nend\n```\n\n  2. Ensure `powerdnsex` is started before your application:\n\n```elixir\ndef application do\n  [applications: [:powerdnsex]]\nend\n```\n\n## Configuration\nInsert this in your configuration files. Eg:  `config.exs`\n\n```elixir\nconfig :powerdnsex, url: \"localhost:8081\",\n                    token: \"sometoken\"\n```\n\nYou can also use ENV vars to configure PowerDNSex.\n```elixir\nconfig :powerdnsex, url: {:system, \"POWERDNS_URL\"},\n                    token: {:system, \"POWERDNS_TOKEN\"}\n```\nMake sure you set those environment variables.\n\n## Example usage\n\n### Zone Management\n\n```elixir\n# CREATE ZONE:\nzone_model = %PowerDNSex.Models.Zone{\n  id: \"example.com.\",\n  kind: \"Master\",\n  name: \"example.com.\",\n  serial: 1,\n}\n{:ok, zone} = PowerDNSex.create_zone(zone_model)\n\n# SHOW ZONE:\n{:ok, zone} = PowerDNSex.show_zone(\"example.com\")\n\n# SHOW ZONE without RRSets:\n{:ok, zone} = PowerDNSex.get_zone(\"example.com\")\n\n# DELETE ZONE:\nres = PowerDNSex.delete_zone(\"example.com\")\n```\n\n\n### Record management\n\n```elixir\n# CREATE RECORD:\n{:ok, zone} = PowerDNSex.show_zone(\"example.com\")\nrecord = %{\n  name: \"test.example.com.\",\n  type: \"A\",\n  ttl: 60,\n  records: [\n    %{\n      content: \"192.168.11.67\",\n      disabled: false,\n    }\n  ]\n}\nres = PowerDNSex.create_record(zone, record)\n\n# SHOW RECORD:\nrecord = %{\n  name: \"test.example.com.\",\n  type: \"A\",\n}\nrrset = PowerDNSex.show_record(\"example.com\", record)\n\n# UPDATE RECORD:\n{:ok, zone} = PowerDNSex.show_zone(\"example.com\")\nrecord = %{\n  name: \"test.example.com.\",\n  type: \"A\",\n  ttl: 60,\n  records: [\n    %{\n      content: \"192.168.11.100\",\n      disabled: false,\n    }\n  ]\n}\nres = PowerDNSex.update_record(zone, record)\n\n# DELETE RECORD:\n{:ok, zone} = PowerDNSex.show_zone(\"example.com\")\nrecord = %{\n  name: \"test.example.com.\",\n  type: \"A\",\n}\nrrset = PowerDNSex.show_record(\"example.com\", record)\nres = PowerDNSex.delete_record(zone, rrset)\n```\n\n## Development\n\n### Setup application\n```bash\n$ script/setup\n```\n\n### Run local console (IEX)\n```bash\n$ script/run\n```\n\n### Run tests\n```bash\n$ script/test\n```\n\n#### Run tests to a specific File\n```bash\n$ script/test test/lib/powerdnsex/powerdnsex_test.exs\n```\n\n### Reset environment (clean + setup)\n### YOU WILL LOSE EVERYTHING\n\nGood for then you change the elixir version and need to delete everything and start again\n\n```bash\n$ script/reset\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocaweb%2Fpower_dnsex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocaweb%2Fpower_dnsex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocaweb%2Fpower_dnsex/lists"}