Completed skeleton for DNS challenge, added Cloudflare DNS integration.

This commit is contained in:
Ara Sadoyan
2026-10-03 13:49:07 +02:00
parent 3bc398610b
commit 1ecf3a69ff
9 changed files with 235 additions and 37 deletions
+13 -5
View File
@@ -1,4 +1,4 @@
use crate::tls::acme::types::DnsProvider;
use crate::tls::acme::types::{DnsBackendPlugin, DnsProvider};
pub struct Route53Provider {
pub hosted_zone_id: String,
@@ -12,14 +12,22 @@ impl Route53Provider {
}
}
// Not working, just a placeholder.
#[async_trait::async_trait]
impl DnsProvider for Route53Provider {
async fn create_txt_record(&self, domain: &str, name: &str, value: &str) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
println!(" ====> Route53 Created TXT Record for {}: {}: {}", name, domain, value);
async fn create_txt_record(&self, _domain: &str, _name: &str, _value: &str) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
println!(" ====> Route53 Created TXT Record for {}: {}: {}", _name, _domain, _value);
Ok("route53_change_id".to_string())
}
async fn delete_txt_record(&self, record_id: &str) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
println!(" ====> Route53 Deleted TXT Record {}", record_id);
async fn delete_txt_record(&self, _record_id: &str, _record_name: &str) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
println!(" ====> Route53 Deleted TXT Record for {}: {}", _record_name, _record_id);
Ok(())
}
}
inventory::submit! {
DnsBackendPlugin {
name: "route53",
factory: || Box::new(Route53Provider::new()),
}
}