Autonomy dokumentatsioon

API-vastavus

Hoia käivitust oma OpenAPI lepingu vastu ja saa deterministlik otsus, katvus ja triiv.

Lisa OpenAPI dokument testjuhtumile ja iga selle käivitus muutub lepingutõendiks. Autonomy seostab teekonna tekitatud liikluse sinu dokumenteeritud operatsioonidega, valideerib vastused skeemi vastu ja tuletab käivitusele ühe otsuse.

Mõte on murede eraldamine. Mudelipõhine kinnitus ütleb „vastus tundus õige". Lepingukontroll ütleb „see vastus rikub sinu avaldatud skeemi" — ja seda otsust ei saa mudeliga üle kirjutada.

Lepingu redaktsioonid

Aktsepteeritud OpenAPI 3 või Swagger 2 dokument — JSON või YAML — kompileeritakse lepingu redaktsiooniks: kanooniliseks, deterministlikuks artefaktiks, kus kohalikud viited on lahendatud, näited eemaldatud, operatsioonid normaliseeritud ja kõik räsitud.

Redaktsioonid on muutmatud ja deduplitseeritud räsi järgi:

  • Testjuhtum viitab redaktsioonile.
  • Käivitus salvestab hetkeseisuna kasutatud redaktsiooni.
  • Muudetud dokumendi uuesti importimine loob uue redaktsiooni. See ei muuda kunagi vana ega tõlgenda ajaloolist käivitust ümber.

See muutmatus on see, mis teeb tõendid kuus kuud hiljem kaitstavaks. Eelmise kvartali käivituse otsus viitab endiselt lepingule sellisena, nagu see tollal eksisteeris.

Kompileerimine on viidete suhtes range. Kohalikud $ref väärtused lahendatakse; väliseid, kõrvutikausta ja rippuvaid viiteid lükatakse otse tagasi, mitte ei nõrgendada neid vaikselt. Rekursiivseid või sügavusepiiranguga skeeme märgitakse vastavalt ja valideerimine raporteerib need kui määramatud — lahendamata haru ei saa kunagi olla edukalt läbitud.

Lepingu lisamine

Laadi dokument üles manusena, kui koostad testjuhtumit Describe the flow abil — failivalija aktsepteerib OpenAPI / Swagger (.yaml, .json) faile. See läbib turvakontrolli nagu iga teine üleslaadimine, kompileeritakse ja saadud redaktsioon seotakse testjuhtumiga.

Lepingu lisamisel järgneb kaks asja:

  • Autonomy saab koostada võrgukontrolle koos kasutajaliidese sammudega, sest ta teab, mida API peaks tegema.
  • Iga selle testjuhtumi käivitus tuletab vastavusaruande.

Mida käivitus tuletab

Kui käivitus jõuab lõppolekusse, annab üks idempotentne vastavuskontroll:

  • Operatsioonide katvus — mitu dokumenteeritud operatsiooni teekond tegelikult kasutas ja milliseid ta kunagi ei puutunud.
  • Triiv mõlemas suunas — liiklus, mis ei vasta ühelegi dokumenteeritud operatsioonile, ja dokumenteeritud operatsioonid, mis liikluses kunagi ei ilmu.
  • Lepinguleiud — deterministlikud olekukoodi, sisutüübi, nõutud päise ja vastuseskeemi rikkumised.
  • OpenAPI Overlay dokumendid — ainult ülevaatamiseks, väärtustevabad paigad, mis kirjeldavad tõendite poolt viidatud muudatust, seotud lähteräsiga ja allalaaditavad käivitusest.
  • Vastuse kuju ja latentsuse alustasemed koos erinevustega varasemate käivituste suhtes.
  • Väravaotsus: passing, failed või indeterminate, selgesõnaliste põhjendustega.

Käivituse tõendite tööruum kuvab seda faktide reana: värava olek, n/m operations observed, lepingutõrked ja määramatud tulemused ning leidude arvud jagatuna isolatsiooni, kanaliteüleste ja fuzz-proovide kaupa. Tuletatud Overlay paigad on loetletud oma põhjendusega ja allalaaditavad JSON-ina.

indeterminate on tõeline vastus, mitte pehme tõrge. See tähendab, et tõendid ei suutnud lepingut kummaski suunas tõestada — lahendamata skeemiharu või võrgupüüdmine, mida platvorm ei suutnud usaldusväärselt jälgida. Käsitle seda kui „teadmata", mitte „korras".

Tõendite turvalisus

Käivituse aegne liiklus sisaldab mandaate, isikuandmeid ja rentniku identifikaatoreid, seega on vaatlused ehituselt struktuursed. Vaatlus salvestab meetodi, kanoniseeritud tee kuju, päringparameetrite ja päiste nimed, olekukoodi, sisutüübi, piiritletud ajastuse ja baidiarvu, JSON-kuju sõrmejäljed, kontrollitud operatsiooni identiteedi ja fikseeritud valideerimisvea koodid.

See ei salvesta kunagi hostinime, toorrada ega päringuväätust, päise väärtust, küpsist, keha, skeeminäidet, mandaati ega isikuandmeid. Toorvõtmine jääb käivitaja protsessi sisse ja on seal piiritletud. Ühtegi kliendisoovi ei mängita kunagi uuesti.

Mandaadid ja mitmikidentiteedi proovid

Testjuhtumid salvestavad mandaadi viited, mitte väärtusi. Profiil hangib mandaadi käivitaja keskkonna muutujast või sama käivituse ajal varem eraldatud väärtusest ja tundlikud sammuväärtused kasutavad selgesõnalisi kohahoidjaid nagu {{env.API_TOKEN}}. Käivitaja lahendab need oma dispatch-piiri sees — lahendatud väärtused ei jõua kunagi mudeli konteksti, jälgimisandmetesse, vaatlustesse ega taustafunktsioonide argumentidesse.

Just see teeb autoriseerimisproovid võimalikuks. BOLA/IDOR-proov peab viitama varasemale muutvale sammule, mis lõi ressursi, kasutama kahte erinevat identiteediprofiili ja tõestama enne dispatch'i, et kaks osapoolt on tõeliselt erinevad. Kui ta seda tõestada ei suuda — läbipaistmatud tokenid, puuduvad väited, võrdsed osapooled — raporteerib proov määramatu tulemuse, mitte ei väida edukalt läbimist.

Pull request'ides

Kui testjuhtumile on lisatud leping, lisatakse vastavuse tulemus Autonomy pull request'i kommentaarile käivitusmaatriksi kõrvale ja see liidetakse kontrollkäivituse järeldusega. Vaata GitHubi rakendus.

Tõrkeotsing

Katvus on null

Teekond ei tekitanud liiklust, mida Autonomy suutis seostada. Kinnita, et käivitus kasutas toetatud võrgupüüdmisega platvormi ja et dokumenteeritud serveri rajad vastavad sihtmärgile, mida käivitus tegelikult tabas.

Kõik on määramatu

Tavaliselt lahendusmatu skeem. Kontrolli, et kompilaator ei lükanud impordil midagi tagasi, ja otsi asjaosaliste operatsioonide rekursiivseid või sügavusepiiranguga definitsioone.

Leping muutus, aga käivitused viitavad endiselt vanale

Redaktsioonid on disaini järgi muutmatud. Impordi dokument uuesti, et luua uus redaktsioon, ja seo testjuhtum sellega; ajaloolised käivitused jäävad viitama redaktsioonile, mille vastu nad käivitati.

On this page