Sdružení CZ.NIC vydalo 2. července 2025 novou verzi nástroje EPPIC. Oproti předchozí verzi přibyly nové příkazy, upravili jsme (zpětně kompatibilním způsobem) chování stávajících a opravili chyby v textech. Protože EPPIC byl na tomto blogu zatím jen stručně zmíněn, pojďme si jej představit podrobněji.
Co je EPPIC
EPPIC (Extensible Provisioning Protocol Interactive Client) je interaktivní terminálový EPP klient, který je vyvíjen jako součást systému FRED a nahrazuje starší fred-client. Extensible Provisioning Protocol (EPP), kterým EPPIC se servery FRED komunikuje, slouží ke komunikaci registrátorů s registrem domén. Zájemci z řad veřejnosti si ho mohou vyzkoušet podle instrukcí na našem veřejném testovacím prostředí.
Registrátoři obvykle pro komunikaci s registrem implementují vlastní klienty, které integrují do svých systémů. EPPIC je řádkový (CLI) nástroj, vhodný zejména pro jednorázové ruční operace, nicméně může být například začleněn do shell skriptů.
Stejně jako fred-client je EPPIC implementován v Pythonu. Funguje v aktuálně podporovaných verzích 3.9 až 3.13. Je postaven nad samostatnou knihovnou epplib, kterou mohou kromě EPPICu používat i další klientské nástroje psané v Pythonu. Ty mohou být interaktivní stejně jako EPPIC, nebo pracovat plně automaticky.
Instalace
EPPIC je možné nainstalovat jako Python balíček ze serveru https://pypi.nic.cz/cznic/public. Vzhledem k tomu, že EPPIC je samostatný CLI nástroj, je vhodné k tomu použít nástroj pipx nebo obdobný.
Interaktivní režim
Interaktivní režim EPPICu do značné míry napodobuje shell. Nalezneme zde prompt, který uživatele informuje, zda je připojen k serveru a případně ke kterému a pod kterým uživatelem. Do příkazové řádky je možné zadávat příkazy a jejich parametry, přičemž syntaxe vychází ze standardu POSIX. V interaktivním režimu lze, podobně jako v shellu, procházet historii již použitých příkazů. Uživatelskému komfortu pomáhá barevné zvýraznění různých částí zapisovaného příkazu nebo našeptávač, který je pro uživatele interaktivního režimu asi největším posunem vpřed oproti nástroji fred-client.
Našeptávač nabízí příkazy, parametry a u výčtových parametrů i dovolené hodnoty. Dále zohledňuje, které parametry už jsou zadané. Při psaní příkazu je uživatel rovněž informován o chybách prostřednictvím stavového řádku.
Pro kompletní popis dostupných příkazů a jejich voleb je přímo v prostředí EPPICu k dispozici příkaz help.
Vybrané parametry je možné zadávat jako poziční (celý příkaz pak může znít např. info-domain nic.cz), ale je vhodnější, v některých případech dokonce nutné zadávat parametry jako pojmenované. Způsob zadávání odpovídá standardům POSIX: Název parametru je uvozen dvěma spojovníky (např. --email) a hodnotu parametru od jeho názvu lze oddělit mezerou nebo rovnítkem. Víceslovné hodnoty je třeba uzavřít do jednoduchých (') či dvojitých (") uvozovek (např. --postal-info.addr.city='České Budějovice').
Pro opakované používání je vhodné připravit si konfigurační soubor, do kterého si můžete zapsat přihlašovací údaje, nastavení vstupu, výstupu, logování atd. Pro veřejnou testovací instanci FREDa může vypadat třeba takto:
Potom stačí pro interaktivní spuštění EPPICu a přihlášení do první z nakonfigurovaných relací (sessions) zadat příkaz eppic bez parametrů.
Neinteraktivní režim
Přímo v shellu je možné zadat také konkrétní příkaz EPPICu (např. create-contact, info-domain, …). V tomto režimu se EPPIC přihlásí do první nakonfigurované relace, provede zadaný příkaz, spojení uzavře a skončí.
Příkaz se zadává jako parametry programu eppic, například:
Pokud ovšem v rámci příkazu EPPICu zadáváte pojmenované parametry,
nezapomeňte před příkaz EPPICu vložit parametr --, aby nebyly parametry příkazu EPPICu interpretovány jako volby pro spuštění programu.
Novinky verze 3.1.0
Zejména stávající uživatele EPPICu bychom rádi informovali o změnách v nové verzi. Jejich kompletní přehled je dostupný v seznamu změn.
Relace (sessions)
Většího přepracování se dočkala práce se sessions za běhu programu.
V EPP je přihlašování rozděleno mezi navázání TLS spojení a
příkaz
Tyto volby lze nyní zadat v přihlášení novým příkazem epp-login, jehož parametry odpovídají EPP příkazu
V rámci příkazu use-session si můžeme parametrem --login vyžádat, aby se určená relace rovnou přihlásila. Takový příkaz odpovídá stávajícímu loginu, který by měl být v další major verzi (viz Sémantické verzování) nahrazen nynějším příkazem epp-login, jehož pojmenování v tuto chvíli vybočuje z konvence v rámci EPPICu.
Aktivní relaci indikovanou v promptu, ať už přihlášenou nebo odhlášenou,
lze uložit pro pozdější použití do seznamu známých relací novým příkazem save-session.
Seznam známých relací lze vypsat příkazem list-sessions. Jedná se o seznam udržovaný v paměti běžícího procesu, EPPIC nemění svoje konfigurační soubory. Nicméně z výstupu příkazu list-sessions ve formátu YAML je možné údaje o relaci ručně zkopírovat přímo do konfiguračního souboru. Je třeba dát pozor pouze na odsazení položek v souboru a na to, že list-sessions vypisuje místo hesel jen hvězdičky.
Další vybrané novinky
Další novinky aktuální verze jsou přímočařejší, a proto je můžeme probrat stručněji:
- Nově je možné příkazem update-contact odebrat korespondenční adresu kontaktu, a to uvedením parametru --mailing.rem=true.
- Byl upraven formát nápovědy (příkaz help), která nově vypisuje příkaz s jeho parametry ve formátu inspirovaném standardem POSIX.
- V rámci odpovědi serveru se nově vypisují identifikátory transakce (cl_tr_id a sv_tr_id).
- Ve výstupu příkazu poll-req je uveden typ přijaté zprávy.
- V případě detekce přerušeného spojení při odeslání příkazu se EPPIC pokusí spojení obnovit a odeslat příkaz znovu.
Závěr
Snad vám tento článek přišel vhod, pokud už EPPIC používáte nebo o tom uvažujete. A kdybyste věděli o nějakém problému nebo měli nápad na vylepšení, neváhejte nás kontaktovat na fred@nic.cz.