# Eurodns

> Show or modify explicitly requested EuroDNS records, with current schema verification, GET-before…

Show or modify explicitly requested EuroDNS records, with current schema verification, GET-before-write, concrete previews, and whole-zone replacement approval.

- Page: https://ss33.ai/skills/kochetkov-ma/eurodns-84223736072
- Publisher: kochetkov-ma
- Category: [Software Development](https://ss33.ai/skills/category/software-development-t44z8z) › [DevOps & cloud](https://ss33.ai/skills/category/software-development-t44z8z/devops-and-cloud-unkt50)
- License: MIT
- Source: https://github.com/kochetkov-ma/claude-brewcode/blob/ffee9f3abb982ebce5905fe736611355ef08afbc/.codex/skills/eurodns/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/kochetkov-ma/eurodns-84223736072

# EuroDNS records

Resolve RU/EN prose into mode, domain, and record selection; never use the first word as the domain.

| Mode | EN keywords | RU keywords |
|---|---|---|
| `show` (default) | show, list, view, get records, check | покажи, список, посмотри, проверь |
| `add` | add, create, new record | добавь, создай, новая запись |
| `update` | update, change, modify, edit, redirect | обнови, измени, поменяй, настрой редирект |
| `delete` | delete, remove, drop | удали, убери, сними |

Strip flags; one explicit mode token wins. Otherwise score distinct whole-word keyword hits: unique highest wins; a tie involving delete needs clarification; a tie with show resolves to show; add/update ties use the earliest keyword. Conflicting explicit modes need clarification. Zero matches or empty input resolves to show. Ask for a missing domain or outcome-changing ambiguity before API work; clarify deletion scope before target inspection if necessary. Use available Codex input tools for optional questions; required approval needs an explicit user response, never a timeout or absent tool result.

Before the first API call emit one English `PLAN — eurodns` block with `INPUT`, `MODE`, `SCOPE` (domain and record identities), `DO`, and `RESULT`. Redact credentials if present in user input.

## Provider contract and credentials

Verify API routes, status codes, auth header names, IP restrictions, and schemas against [provider OpenAPI](https://rest-api.eurodns.com/openapi) and [official documentation](https://docapi.eurodns.com/) before a future API operation. Do not invent endpoints when verification fails.

Preserve separate DNS records, URL forwards, and mail forwards. Historical provider field notes, adapted 2026-09-30: DNS record `type`, `host`, `ttl`, `rdata`; URL-forward `forwardType`, `host`, `url` and optional FRAME metadata; mail-forward `source`, `destination`; read-only IDs/state; and validation severity. Confirm these fields, supported types, TTLs, read-only fields, and payload/response wrappers in the live schema before constructing payloads. Do not assume domain-specific URL-forward support from historical failures.

During setup/migration do not read credentials or call the API. Credentials: `EURODNS_APP_ID` -> header `X-APP-ID`, `EURODNS_API_KEY` -> `X-API-KEY`, `EURODNS_API_URL` = base URL. Source: shell env, else the repo-root `.env`, loaded only during authorized operation: `[ -n "$EURODNS_API_KEY" ] || { set -a; . "$(git rev-parse --show-toplevel)/.env"; set +a; }`. Never print, copy, or persist secrets, enable shell tracing, or embed secret values in command text/reports. Keep temporary/runtime data outside `.claude/` and restrict secret-bearing local files.

## Operation

1. Verify the provider contract, resolve authorized target and credentials, then GET the zone before any mutation. Show requested records and relevant state.
2. Build a concrete before/after preview identifying domain, operation, IDs, host, type, data, TTL or forwarding fields, and preservation of unrelated records. A delete preview names exact existing targets. Preserve unrelated parking records unless removal is requested; remove by ID rather than replacing the zone.
3. Match payloads to the verified schema. Whole-zone PUT requires validation with the verified provider check operation and explicit user approval of that concrete whole-zone replacement preview. Preserve unrelated records, URL forwards, and mail forwards. General DNS modification authority does not authorize whole-zone replacement. Missing approval: present the preview and wait.
4. Execute only authorized changes. If the outcome is uncertain, GET and reconcile before retrying; do not blindly replay writes. GET afterward and compare actual records with the preview. Report verified effects and unresolved differences.

For a verified IP authorization error, stop; if needed obtain the public IP using a trusted endpoint without exposing credentials, explain the provider dashboard allowlist action at [API users](https://my.eurodns.com/apiusers), and wait for user confirmation before one retry. Do not modify allowlists automatically. Distinguish invalid input, authentication, forbidden access, and missing domain/ID using the current provider error contract.
