#pApiAuth
nextxch-cli संदर्भ: कमांड, स्कीमा कैश, jq क्वेरी & GitOps IaC
nextxch-cli से आप डोमेन, मेलबॉक्स, वितरण सूचियाँ, उपनाम, सीमित API कुंजियाँ, आउटबाउंड SMTP रूट (TLS ओवरराइड सहित), IP वार्मिंग, Reputation Shield और DNS ज़ोन सीधे अपने टर्मिनल या CI/CD पाइपलाइन (Ansible, GitLab CI, GitHub Actions) से प्रबंधित करते हैं - 0 ms क्लस्टर हॉट-रीलोड के साथ और बिना किसी रीस्टार्ट के।
बॉक्स से ही PATH में पहले से इंस्टॉल: Windows .msi इंस्टॉलर (C:\Program Files\nextxch\nextxch-cli.cmd), Debian/Ubuntu .deb पैकेज (/usr/bin/nextxch-cli), install.sh (/usr/local/bin/nextxch-cli) और OCI इमेज, सभी nextxch-cli को स्वचालित रूप से पंजीकृत करते हैं। क्रेडेंशियल हमेशा NEXTXCH_API_KEY (या NEXTXCH_TOKEN) के माध्यम से दें, ताकि सीक्रेट कभी प्रोसेस आर्ग्युमेंट में न दिखें।
1. इनवोकेशन, एनवायरनमेंट वेरिएबल, ऑथ & एग्ज़िट कोड
मेल होस्ट पर ही या किसी भी एडमिन वर्कस्टेशन या CI रनर से HTTPS पर दूरस्थ रूप से एक जैसा काम करता है।
# Linux / macOS / GitLab CI / GitHub Actions:
export NEXTXCH_URL="https://mail.firma.de"
export NEXTXCH_API_KEY="smk_01968f2a_..." # Alias: NEXTXCH_TOKEN
# PowerShell (Windows Server / Admin-Workstation):
$env:NEXTXCH_URL = "https://mail.firma.de"
$env:NEXTXCH_API_KEY = "smk_01968f2a_..."
# Docker-Host ohne lokalen Wrapper (direkt im Container):
docker exec -i nextxch nextxch-cli describe
# Interaktive Erst-Anmeldung vor dem ersten API-Key (fragt Passwort verdeckt ab, nur ohne 2FA):
nextxch-cli --url https://localhost --insecure -u admin@firma.de create ApiKey \
--set label="Ansible Prod" --set role=ServerAdmin --set allowedCidrs=10.0.0.0/8 --set expiresInDays=90
# Hilfe zu jedem Unterbefehl direkt im Terminal + definierte Exit-Codes für Skripte:
nextxch-cli --help
nextxch-cli help create
# Exit-Codes: 0 = Erfolg · 1 = HTTP-/Auth-/Server-Fehler · 2 = Ungültige CLI-Parameter / JSON
2. स्कीमा डिस्कवरी (describe), फ़िल्टर की गई क्वेरी (query) & jq पाइपलाइन
--json के साथ, get एक एकल कॉम्पैक्ट JSON ऑब्जेक्ट प्रिंट करता है, जबकि query jq या PowerShell के लिए तैयार newline-delimited JSON (NDJSON) स्ट्रीम करता है।
# Alle 12 verfügbaren Objekttypen oder die Felder eines einzelnen Typs anzeigen:
nextxch-cli describe
nextxch-cli describe Route
nextxch-cli describe TransactionalSend
# Einzelnes Objekt oder globale Singleton-Konfiguration lesen:
nextxch-cli get Domain firma.de
nextxch-cli get SmtpQueue --json | jq '{paused: .outboundQueuePaused, tls: .outboundTlsCertValidation}'
# Gefilterte Tabellen-Abfrage mit Spaltenprojektion:
nextxch-cli query Account --filter domain=firma.de,isActive=true --fields email,role,quotaMb,twoFactorEnabled
# NDJSON-Pipeline (Bash + jq): Alle aktiven Admin-Konten ohne 2FA auflisten:
nextxch-cli query Account --filter isActive=true --json \
| jq -r 'select(.role != "User" and .twoFactorEnabled == false) | "\(.email)\t\(.role)"'
# PowerShell-Pipeline auf Windows Server: Postfächer > 80 % Quota finden:
nextxch-cli query Account --json | ForEach-Object { $_ | ConvertFrom-Json } |
Where-Object { $_.quotaMb -gt 0 -and ($_.usedBytes / 1MB) -gt ($_.quotaMb * 0.8) } |
Select-Object email, quotaMb, @{N="UsedMB";E={[math]::Round($_.usedBytes/1MB,1)}}
3. ऑब्जेक्ट बनाना, पैच करना & हटाना (create, update, delete · @file.json & stdin)
स्केलर, बूलियन, संख्याएँ और कॉमा से अलग की गई ऐरे --set key=value के माध्यम से स्वचालित रूप से परिवर्तित होती हैं; नेस्टेड JSON पेलोड --data @file.json या stdin (-) के माध्यम से दें।
# 1. Domain mit Dual-DKIM (RSA-2048 + Ed25519) und 10 Jahren GoBD-Aufbewahrung anlegen:
nextxch-cli create Domain \
--set name=firma.de \
--set dkimSigningMode=Dual \
--set retentionLockMode=Compliance \
--set retentionDays=3650
# 2. Benutzerpostfach, Verteilerliste & Datenschutz-Alias anlegen:
nextxch-cli create Account/User --set email=buchhaltung@firma.de --set displayName="Buchhaltung" --set password='...' --set quotaMb=15360
nextxch-cli create Account/List --set email=rechnung@firma.de --set members=buchhaltung@firma.de,archiv@firma.de
nextxch-cli create Alias --set address=info@firma.de --set target=buchhaltung@firma.de --set description="Zentrale"
# 3. Scoped API-Key für Webshop/ERP (nur /api/v1/send, feste Absenderadresse & Subnetz-Filter):
nextxch-cli create ApiKey \
--set label="Shopware Produktion" \
--set role=User \
--set senderAddress=bestellung@firma.de \
--set defaultCategory=transactional \
--set allowedCidrs=10.20.0.0/16,198.51.100.12/32 \
--set expiresInDays=180
# 4. Ausgehende Route / TLS-Ausnahme für Partner-MX mit RemoteCertificateNameMismatch (Auto DNS-MX):
nextxch-cli create Route --set domain=neff.me --set tlsMode=StartTlsIgnoreCert --set description="Shared-MX TLS Override"
# 5. IP-Warming & Reputation Shield aktivieren oder JSON per Pipe (stdin) übergeben:
nextxch-cli update TransactionalSend --set preset=warming_28d
nextxch-cli update ReputationShield --set preset=recommended
echo '{"junkScoreThreshold":4.2,"clamAvEnabled":true}' | nextxch-cli update SpamGuard --data -
4. लाइव DNS जाँच, BIND ज़ोन निर्यात & डिक्लेरेटिव GitOps (snapshot & apply --dry-run)
.ndjson प्लान की हर पंक्ति एक idempotent ऑपरेशन (upsert या delete) का वर्णन करती है; Git कोड समीक्षा के लिए # और // टिप्पणियाँ नेटिव रूप से समर्थित हैं।
# Öffentliche DNS-Einträge live gegen die konfigurierten DKIM/DMARC/TLSA-Werte prüfen & als BIND-Zone speichern:
nextxch-cli dns firma.de --live
nextxch-cli dns firma.de --bind --output firma.de.zone
# Aktuellen Serverzustand als versionierbaren NDJSON-Plan exportieren (ohne Geheimnisse für Git):
nextxch-cli snapshot Domain Account Alias Route TransactionalSend ReputationShield --output infra/mail-prod.ndjson
# Beispiel für deklarative Zeilen in infra/mail-prod.ndjson (inkl. Kommentaren & gezieltem Löschen):
# {"op":"upsert","type":"Domain","key":"firma.de","fields":{"name":"firma.de","dkimSigningMode":"Dual","retentionDays":3650}}
# {"op":"upsert","type":"Route","key":"neff.me","fields":{"domain":"neff.me","tlsMode":"StartTlsIgnoreCert","enabled":true}}
# {"op":"delete","type":"Alias","key":"alt-kampagne@firma.de"}
# CI/CD Pull-Request Check (verändert NICHTS in der Datenbank, Exit-Code != 0 bei Fehlern):
nextxch-cli apply --file infra/mail-prod.ndjson --dry-run
# Nach Freigabe idempotent auf Produktion anwenden:
nextxch-cli apply --file infra/mail-prod.ndjson
सेटिंग्स, डिफ़ॉल्ट मान और बेस्ट प्रैक्टिस
| सेटिंग / स्थान | विवरण | डिफ़ॉल्ट मान | उत्पादन बेस्ट प्रैक्टिस |
|---|---|---|---|
Globale Flags & Umgebungsvariablen |
सर्वर URL (--url / NEXTXCH_URL), API कुंजी (--api-key, --token / NEXTXCH_API_KEY, NEXTXCH_TOKEN), Basic auth (-u/-p), JSON मोड (--json), लैब TLS (--insecure / -k), रंग (--no-color / NO_COLOR) और HTTP ट्रेस (--debug / NEXTXCH_DEBUG=1) नियंत्रित करता है। | URL: http://localhost |
ऑटोमेशन स्क्रिप्ट में हमेशा NEXTXCH_URL + NEXTXCH_API_KEY export करें और --json दें; --insecure (-k) को सख्ती से केवल स्थानीय स्टेजिंग लैब के लिए रखें। |
describe [Type] (Schema & Offline-Cache) |
सभी 12 सर्वर ऑब्जेक्ट प्रकार सूचीबद्ध करता है या किसी विशिष्ट ऑब्जेक्ट के हर फ़ील्ड, प्रकार और enum वैरिएंट की जाँच करता है, X-Nextxch-Schema-Version के अनुसार स्कीमा को स्थानीय रूप से कैश करते हुए। | Lokaler XDG/AppData-Cache |
नई नीतियों की स्क्रिप्टिंग से पहले nextxch-cli describe <Type> चलाएँ (उदा. nextxch-cli describe TransactionalSend); न्यूनतम भूमिका: ComplianceAuditor। |
get <Type> [IdOrName] [--json] |
नाम, ईमेल, slug या GUID द्वारा एकल संग्रह ऑब्जेक्ट प्राप्त करता है, या एक वैश्विक सिंगलटन नीति पढ़ता है ('singleton' स्वचालित रूप से अनुमानित होता है)। | Kartenansicht / 1-Zeilen-JSON |
सिंगलटन के लिए ID छोड़ दें: nextxch-cli get SpamGuard या nextxch-cli get ReputationShield --json। |
query <Type> (Alias: list) |
कॉमा-AND फ़िल्टर (--filter k=v,k2=v2), कॉलम प्रोजेक्शन (--fields a,b,c) और --limit N के साथ कलेक्शन खोजता है। --json के साथ सख्त NDJSON (प्रति पंक्ति 1 JSON ऑब्जेक्ट) आउटपुट करता है। | Tabelle / NDJSON-Stream |
सुरक्षा ऑडिट के लिए आदर्श: nextxch-cli query Account --json | jq -r 'select(.twoFactorEnabled==false) | .email' उन खातों को सूचीबद्ध करता है जिनमें 2FA नहीं है। |
create <Type[/Variant]> & update <Type> (Alias: patch) |
नए संग्रह आइटम बनाता है या मौजूदा ऑब्जेक्ट/सिंगलटन के अलग-अलग फ़ील्ड को पैच करता है, बिना अछूती प्रॉपर्टी को ओवरराइट किए (0 ms क्लस्टर हॉट-रीलोड)। | --set k=v · @file.json · stdin |
स्केलर/ऐरे फ़ील्ड --set key=value (कॉमा से अलग ऐरे) के माध्यम से और जटिल नेस्टेड नीतियाँ --data @policy.json या stdin (--data -) के माध्यम से दें। |
delete <Type> <IdOrName> (Alias: rm) |
डोमेन/खातों को सुरक्षित रूप से सॉफ़्ट-निष्क्रिय करता है, द्वितीयक उपनाम या कस्टम रूट हटाता है, और सीमित API कुंजियों को तुरंत रद्द करता है। | Schutz vor Selbstlöschung |
बिल्ट-इन लॉकआउट गार्ड वर्तमान में प्रमाणित API कुंजी या एडमिन प्रिंसिपल को हटाने से रोकता है। |
dns <Domain> [--live] [--bind] [-o Datei] |
MX, SPF, Dual-DKIM (RSA-2048 + Ed25519), DMARC, MTA-STS, DANE TLSA और BIMI को सार्वजनिक DNS के विरुद्ध लाइव सत्यापित करता है या RFC 1035 BIND ज़ोन फ़ाइल निर्यात करता है। | Advisor-Tabelle / BIND-Zone |
डोमेन बनाने के तुरंत बाद, कॉपी-पेस्ट टाइपो के बिना सभी रिकॉर्ड साफ़ तरीके से आयात करने के लिए nextxch-cli dns company.com --bind -o company.com.zone चलाएँ। |
snapshot & apply --dry-run (GitOps IaC) |
snapshot पूरे सर्वर या टेनेंट की स्थिति को क्रमबद्ध NDJSON ऑपरेशन के रूप में निर्यात करता है; apply प्लान को (# और // टिप्पणियों के समर्थन के साथ) idempotent रूप से निष्पादित करता है। | Atomarer Zeilen-Bericht |
CI/CD डिप्लॉयमेंट को हमेशा nextxch-cli apply -f plan.ndjson --dry-run पर निर्भर रखें (कोई प्रविष्टि अमान्य होने पर सटीक पंक्ति डायग्नोस्टिक्स के साथ 1 पर समाप्त होता है)। |
Sammlungen: Tenant, Domain, Account, Alias |
टेनेंट (ServerAdmin), स्वचालित Dual-DKIM कुंजी निर्माण वाले डोमेन, उपयोगकर्ता मेलबॉक्स (Account/User), वितरण सूचियाँ (Account/List) और उपनाम (isMasked सहित) प्रबंधित करता है। | Rolle: TenantAdmin+ |
create Domain --set dkimSigningMode=Dual चलाने से RSA-2048 और Ed25519 दोनों कीपेयर तुरंत स्वचालित रूप से बन जाते हैं। |
Sammlungen: ApiKey & Route (OutboundRoute) |
ApiKey अपरिवर्तनीय, रोल- और CIDR-सीमित smk_ टोकन बनाता है (create + delete से रोटेट करें)। Route प्रति डोमेन स्मार्ट होस्ट और TLS प्रमाणपत्र ओवरराइड प्रबंधित करता है। | ApiKey: TenantAdmin+ · Route: ServerAdmin |
जब कोई पार्टनर MX RemoteCertificateNameMismatch के साथ विफल हो, तो चलाएँ: nextxch-cli create Route --set domain=partner.com --set tlsMode=StartTlsIgnoreCert (खाली targetHost = Auto DNS-MX)। |
Singletons: TransactionalSend & ReputationShield |
IP/डोमेन वार्मिंग, श्रेणियाँ और प्रदाता कोटा (TransactionalSend) के साथ-साथ suppression सूचियाँ, ARF FBL, RFC 8058 unsubscribe और circuit breaker (ReputationShield) नियंत्रित करता है। | Presets per 1 Befehl |
प्रीसेट से त्वरित कॉन्फ़िगरेशन: nextxch-cli update TransactionalSend --set preset=warming_28d और nextxch-cli update ReputationShield --set preset=recommended। |
Singletons: SpamGuard, SmtpQueue, TransportRules & Server |
स्पैम सीमाएँ & ClamAV (SpamGuard), कतार वर्कर, स्मार्ट होस्ट & TLS नीति (SmtpQueue), डिस्क्लेमर & Fail2Ban (TransportRules) और serverHostName (Server) कॉन्फ़िगर करता है। | Rolle: ServerAdmin |
बिना डाउनटाइम के होस्टनाम अपडेट: nextxch-cli update Server --set serverHostName=mail.company.com EHLO, बैनर और Autodiscover को लाइव अपडेट करता है। |