gandi-arova — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited gandi-arova (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Manage DNS records and email for the arova-ai.com domain using the Gandi REST API.
The Gandi Personal Access Token (PAT) is stored in 1Password under the item name gandi-ewill-pat.
Before making any API call, retrieve the token:
GANDI_PAT=$(op read "op://project-ewill/gandi-ewill-pat/credential")Then use it in all API requests as a Bearer token:
curl -s -H "Authorization: Bearer $GANDI_PAT" ...All operations target the domain arova-ai.com. The base URL is:
https://api.gandi.net/v5Read references/livedns-api.md for complete endpoint documentation. Here are the most common operations:
List all DNS records:
curl -s -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/livedns/domains/arova-ai.com/records" | jq .Get a specific record (e.g., A record for @):
curl -s -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/livedns/domains/arova-ai.com/records/@/A" | jq .Create/update a record (PUT overwrites, POST creates if not exists):
curl -s -X PUT -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"rrset_values": ["192.0.2.1"], "rrset_ttl": 3600}' \
"https://api.gandi.net/v5/livedns/domains/arova-ai.com/records/www/CNAME"Delete a record:
curl -s -X DELETE -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/livedns/domains/arova-ai.com/records/test/A"Common record types:
A — IPv4 addressAAAA — IPv6 addressCNAME — Alias to another domain (value must end with .)MX — Mail exchange (value: "10 mail.example.com.")TXT — Text record (value must be quoted: "\"v=spf1 ...\""`)NS — Nameserver delegationTTL range: 300 to 2,592,000 seconds (5 min to 30 days).
List all forwarding addresses:
curl -s -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/email/forwards/arova-ai.com" | jq .Create a forwarding address:
curl -s -X POST -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"source": "info", "destinations": ["[email protected]"]}' \
"https://api.gandi.net/v5/email/forwards/arova-ai.com"Update forwarding destinations:
curl -s -X PUT -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"destinations": ["[email protected]", "[email protected]"]}' \
"https://api.gandi.net/v5/email/forwards/arova-ai.com/info"Delete a forwarding address:
curl -s -X DELETE -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/email/forwards/arova-ai.com/info"List all mailboxes:
curl -s -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/email/mailboxes/arova-ai.com" | jq .Create a mailbox:
curl -s -X POST -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"login": "support", "mailbox_type": "standard_2023", "password": "SecureP@ss123!", "aliases": ["help"], "antispam": true}' \
"https://api.gandi.net/v5/email/mailboxes/arova-ai.com"Password requirements: 8-200 chars, min 1 uppercase, 3 numbers, 1 special character.
Update a mailbox (aliases, password, responder):
curl -s -X PATCH -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"aliases": ["help", "info"]}' \
"https://api.gandi.net/v5/email/mailboxes/arova-ai.com/{mailbox_id}"Check email offer status (antispam, DKIM):
curl -s -H "Authorization: Bearer $GANDI_PAT" \
"https://api.gandi.net/v5/email/offers/arova-ai.com" | jq .Enable DKIM and antispam:
curl -s -X PATCH -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"antispam": "active", "dkim": "active"}' \
"https://api.gandi.net/v5/email/offers/arova-ai.com"add_rrset_values. When replacing the entire record, use PUT. curl -s -X POST -H "Authorization: Bearer $GANDI_PAT" \
-H "Content-Type: application/json" \
-d '{"name": "before-changes-YYYY-MM-DD"}' \
"https://api.gandi.net/v5/livedns/domains/arova-ai.com/snapshots"jq for readability. For record listings, present them in a table format.For complete API endpoint documentation, read:
references/livedns-api.md — All LiveDNS endpoints, parameters, and response formatsreferences/email-api.md — All Email endpoints for forwards, mailboxes, offers, and slots~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.