AirbossDokumentation

Kodeindeks

Et kort over dine services, og et tjek af hver ændring mod de services, der bruger den.

Kodeindekset er et kort over dine services: hvilke endpoints, Kafka-topics og kontrakter hver service udstiller, hvem der bruger dem, og hvilke felter de læser. Airboss bruger kortet til at tjekke hver ændring, en agent laver, mod de services, der afhænger af den.

Hvad bliver indekseret?

Under Indstillinger og på siden Repositories vælger du, hvilke repos indekset dækker. Airboss kloner dem, læser koden og bygger indekset igen, når det er mere end et døgn gammelt (det kan ændres), eller når du beder om det. Et repo, der ikke har ændret sig, bliver ikke klonet igen.

  • C# bliver læst med Roslyn: ASP.NET-endpoints, HTTP-klienter, Kafka-producere og -consumere, kontrakter og deres felter, autorisation, Entity Framework, SQL, baggrundsjobs og message handlers.
  • TypeScript og Angular bliver læst for kald med HttpClient, fetch og axios, også fra templates.

Indekset ved, hvilket commit hvert repo er læst ved, og viser det, hvis et repo er sakket bagud.

Siden Kodeindeks

Udforsk viser, hvad der kalder POST bookings, og hvad det sætter i gang via HTTP og Kafka
Udforsk viser, hvad der kalder POST bookings, og hvad det sætter i gang via HTTP og Kafka

Siden har to faner.

  • Services viser hver service med det, den udstiller, og de kanter, der går til og fra den. Hver kant har en sikkerhed, og kald, Airboss ikke kunne knytte til en service, står for sig med en grund.
  • Udforsk er grafen og felterne samlet, med én søgning på tværs af services, endpoints, topics, kontrakter og felter.
    • Kald sætter én ting i midten: til venstre det, der kalder den, til højre det, den sætter i gang, et hop ad gangen.
    • Data følger ét felt: hvem der skriver det, hvor værdien kommer fra, og hvem der læser det, med fil, linje og kode for hver brug.

Tjek af breaking changes

Når et workspace er klar, læser Airboss hvert repo, som det så ud, hvor branchen startede. Det er workspacets lokale indeks. Efter hver tur, agenten tager, læser Airboss de ændrede repos igen og sammenligner.

Breaking er, når et endpoint, et topic eller en kontrakt, som workspacet udstiller, bliver fjernet eller ændret, mens en kendt forbruger stadig bruger det: en ændret route, en ny type, et fjernet eller omdøbt felt.

Advarsler er, når workspacet nu kalder en route, der ikke findes, lytter på et topic, ingen producerer, eller læser felter, producenten ikke sender.

Tilføjelser er aldrig et fund.

Agenten får besked om nye breaking changes med det samme, og den kan selv spørge indekset, hvem der afhænger af en kontrakt. Et repo med en breaking change kan ikke udgives, før du enten har rettet den eller markeret den som bevidst på workspacets Kodeindeks-fane.

Adfærdstjekket

Kontrakten kan være den samme, mens adfærden ændrer sig: en betingelse, der er vendt om, en statuskode, der er skiftet, en besked, der ikke længere bliver sendt. Adfærdstjekket er et sikkerhedsnet for den slags, i tre lag:

  1. Hvilke indgange ændringen rammer. Airboss finder de endpoints, consumere og jobs, hvis kode diffen rører, og som en anden service bruger. Det vises stille på Kodeindeks-fanen under Ændret logik, som andre bruger.
  2. Mønstre i de ændrede linjer, fx vendte betingelser, statuskoder, exceptions, validering, autorisation og beskeder, der bliver sendt.
  3. En dommer i baggrunden. Når sessionen har været stille et par minutter, spørger Airboss en model, om hver kendt forbruger nu vil opføre sig anderledes. Den spørger to gange, og kun det, begge svar kalder en ændring og begrunder med en linje i forbrugerens kode, bliver rejst.

Et fund fra dommeren blokerer ikke. Det venter i Venter på dig, og du svarer én gang: Bevidst, Lad agenten rette eller Ignorér.