{"id":15625720,"url":"https://github.com/daniel15/spfflatten","last_synced_at":"2025-07-23T00:34:10.730Z","repository":{"id":139345690,"uuid":"352174899","full_name":"Daniel15/SPFFlatten","owner":"Daniel15","description":"SPF flattening using AutoSPF and PowerDNS","archived":false,"fork":false,"pushed_at":"2021-03-27T21:12:32.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T17:14:41.670Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/Daniel15.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":"2021-03-27T20:53:00.000Z","updated_at":"2024-04-11T02:15:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a18929a-185c-4db4-98c0-123023c0e6ab","html_url":"https://github.com/Daniel15/SPFFlatten","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Daniel15/SPFFlatten","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel15%2FSPFFlatten","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel15%2FSPFFlatten/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel15%2FSPFFlatten/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel15%2FSPFFlatten/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Daniel15","download_url":"https://codeload.github.com/Daniel15/SPFFlatten/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Daniel15%2FSPFFlatten/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266597000,"owners_count":23953894,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":"2024-10-03T10:02:14.617Z","updated_at":"2025-07-23T00:34:10.703Z","avatar_url":"https://github.com/Daniel15.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SPFFlatten\n\nLoads flattened SPF records from [AutoSPF](https://www.autospf.com/)'s API and inserts them into a PowerDNS zone via the PowerDNS API.\n\n# Requirements\n* [.NET 5.0 runtime](https://dotnet.microsoft.com/download/dotnet/5.0)\n* PowerDNS server with a configured API key\n* AutoSPF account\n\n# Usage\n\n1. Create a PowerDNS record for your source SPF record that you'd like to flatten (eg. `_spf-source.example.com`)\n2. Sign up to AutoSPF using that domain\n3. Generate an [AutoSPF API key](https://www.autospf.com/settings#/api)\n4. Create a new PowerDNS **zone** specifically for the flattened SPF records (eg. `_spf.example.com`)\n5. Modify `appsettings.json` to contain all the correct info:\n```json\n{\n  \"AutoSpfApiKey\": \"aaaaaaaaaaaaaaa\",\n  \"AutoSpfDomain\": \"_spf-source.example.com\",\n  \"DestinationZone\": \"_spf.example.com\",\n  \"PowerDnsServer\": \"https://dns.example.com/\",\n  \"PowerDnsApiKey\": \"bbbbbbbbb\"\n}\n```\n6. Run `dotnet run` in this directory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel15%2Fspfflatten","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniel15%2Fspfflatten","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel15%2Fspfflatten/lists"}