Eng Produktsäit behaapt, et giert eng API, an d'Integratiounsversammlung hänkt bei der zweeter Fro. Wéi eng Operatioun, op wéi engem Objet, vun wiem opgeruff, a wat gëllt als Erfolleg? Déi véier beäntwerten, ier ee Produkter vergläicht, eliminéiert meeschtens d'Halschent vun de Kandidaten. Et mécht och de Rescht vum Verglach zu eppes, wat en Test entscheede kann.

Ersetzt d'Behaaptung, et hätt eng API, duerch eng eenzeg Operatioun

Eng API ass en Transport, keng Fähegkeet. En REST-Endpunkt, en lokale Socket an e Kommandozeile-Wrapper kënnen alleguer API heeschen, a si bidden net gläichwäerteg Operatiounen.

Schreift d'Operatioun als Saz op, ier Dir d'Dokumentatioun opmaacht.

Eng lokal Verbindung starten ass eng Aktioun op der Client-Säit mat engem Benotzer virun. En Apparatprofil ausginn ass eng Bereetstellungsaktioun mat engem Inventar hannendrun. De Benotzerzougang deaktivéieren ass eng administrativ Aktioun mat enger Audit-Spur. Déi dräi liewen normalerweis an ënnerschiddleche Komponenten, a verschiddene Teams hirem Besëtz, mat ënnerschiddlecher Autoritéit.

Véier Felder, déi de Kontrakt testbar maachen

Fëllt véier Felder fir all Operatioun aus: den Objet, d'Aktioun, den Opruffer an d'Erfollegsbedingung. E Kontrakt mat engem fehlenden Feld ass e Wonsch.

Den Table ass de ganzen Aarbechtsblat:

FieldQuestionExample
ObjectWhat is being acted on?One enrolled device
ActionObserve, create, change, start, stop, or revoke?Revoke
CallerWhich identity calls it?Deployment service
SuccessWhat observable state proves it?Future sign-in denied

D'Erfollegsbedingung ass dat Feld, wat d'Leit iwwersprangen, an et ass dat, wat entscheet, ob d'Integratioun funktionéiert. Eng gespäichert Astellung ass keen aktiven Tunnel, an en deaktivéierte Kont ass keng fäerdeg Sessioun.

Wann zwou Operatiounen ënnerschiddlech Opruffer brauchen, sinn et zwou Integratiounen. Si an engem eenzegen Déngschtkont ze bündelen heescht meeschtens méi Autoritéit ze ginn, wéi eng vun deenen zwee brauch.

Passt d'Interface un hir tatsächlech Schicht un

D'Gemeinschafts-Verwaltungsinterface vum OpenVPN schwätzt iwwer TCP oder en Unix-Socket mat engem Daemon. Hir Kommandoen enthalen Zoustandsobservatiounen a Signaler un den Daemon.

Dat mécht si zu engem Steierkanal fir den Daemon, net eng gehost Abonnements-API an och keen Notzerregistrierungsdéngscht. D'Dokumentatioun suergfälteg liesen verhënnert, géint eng Schicht ze bauen, déi den Objet net besëtzt.

Déi selwecht Dokumentatioun seet och, de Protokoll hätt keng eegen Verschlësselung. Wie den Socket erreeche kann, kann den Daemon steieren, also behandelt en als sensibel Steierung an net als Metrik-Feed. Bindt en un loopback oder en Unix-Socket, a setzt en hannert eng restriktiv Reegel, wa en entfernten Opruffer en brauch. En aus Bequemlechkeet an den Internet ze setzen mécht aus engem Steierkanal en Tëschefall.

Spezifizéiert d'Verhalen nom Opruff

Acceptance ass net d'selwecht wéi Ofschloss. Den Daemon kann zréckkommen, ier den Tunnel steet, also waart op dat dokumentéiert Ofschloss- oder Feelerereignis a verbënnt et mat der Ufro, déi Dir geschéckt hutt.

Entscheet, wat den Opruffer mécht, wann d'Äntwert verluer geet. En Uleeën oder eng Reconnect blann widderhuelen ass net d'selwecht wéi ze préifen, ob déi éischt Ufro scho gewierkt huet.

Zougang ewechhuelen sinn op d'manst dräi ënnerschiddlech Aktiounen: zukünfteg Umeldung blockéieren, eng lafend Sessioun ofschléissen an den Noutweis zréckzéien. Frot déi, déi d'Politik wierklech verlaangt, a sot am Kontrakt, wéi eng wéi eng ass. Bezeechent eng erfollegräich Kontaktualiséierung net ouni Beweis als komplett Zréckzéiung. Den Ënnerscheed zielt während engem Tëschefall, wann d'Auer leeft.

Iwwerpréift de Kontrakt mat engem Pilot

En klengen ugehollene Pilot sollt Erfolleg, Oflehnung, Ënnerbriechung an Neiversuch decken, duerno d'Applikatiounsoperatioun, déi sollt erlaabt oder verbuede ginn.

Fir eng Interface op Daemon-Niveau üben zwou Kommandoen d'Observatioun an e Signal:

echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505

Gitt nëmmen d'Autoritéit, déi d'Operatioun verlaangt. Haalt Geheimnisser aus Routine-Logs eraus, a loggt genuch privat Detailer, fir ze soen, wéi en Zil betraff war a wéi et opgehalen huet.

Schreift de Recuperatiounswee op fir de Fall, wou d'Steier-API selwer erof ass. Wielt d'Interface, déi den Objet a säi Liewenszyklus besëtzt; Automatiséierungsbehaaptungen op enger Produktsäit sinn keen Ersatz.

Ähnlech Artikelen