Fejlrapporter inde i din app, der ankommer med beviserne vedhæftet.
Din brugerflade, dit eget endepunkt, nogle få kilobyte.
Fejlovervågning fanger det, der kaster en fejl. Den kan ikke fange det, der bare ser forkert ud, og den fortæller aldrig, hvad brugeren var i gang med, da det skete. »Gem-knappen gør ingenting« er ikke en rapport, nogen kan handle på.
bugbottle samler konteksten i det øjeblik, nogen opdager fejlen — siden, vinduets størrelse, de seneste konsolfejl, det element brugeren peger på og eventuelt et billede af det, vedkommende kiggede på — og sender det som JSON til en rute, du selv ejer.
Én rapport, som din rute modtager den. Der bliver ikke sendt noget fra denne side.
Hvad du får
-
Uden brugerflade
Du bygger selv formularen. Biblioteket står for tilstanden, indsamlingen og afsendelsen — ikke for din HTML.
-
Du modtager rapporterne selv
Der er intet kontrolpanel og ingen tjeneste, man skal oprette sig hos. En rapport er et JSON-kald til en rute, du selv skriver, og valideringsfunktionerne følger med.
-
Intet i din pakke, du ikke har bedt om
Nul afhængigheder. Kernen fylder omkring 0,6 kB gzippet; med elementvælgeren og React-hook'et 3,4 kB; det færdige panel 6 kB.
-
Peg på elementet
pickElement()giver en kort CSS-vælger, elementets tag, den synlige tekst, placeringen og de brugbare attributter — nok til at et menneske eller en kodeagent kan finde den rigtige fil. -
Dit sprog, dit udtryk
Otte indbyggede sprog, alle tekster kan skiftes ud, og panelet får sit udseende fra en håndfuld CSS-variabler.
-
Hjælpefunktioner til serveren
Alt, hvad en browser sender, bliver kontrolleret, før det når din database, for det er dér, de skarpe kanter er.
Kom i gang
Tre veje ind, alt efter hvad projektet allerede har. Alle tre sender den samme JSON til en rute, du selv skriver.
Vil du hellere bygge formularen selv? useBugReport fra
bugbottle/react giver dig den samme kerne uden en linje færdig HTML.
Se
dokumentationen
(på engelsk).
Panelet, kørende på denne side
Den flydende knap i hjørnet er det rigtige
bugbottle/ui-panel med den danske sprogfil. Åbn det, skriv en
linje, peg på noget her på siden, og tryk send.
Der er ingen server bag: demoen sender gennem sit eget
fetch, gemmer den rapport, der ville være blevet sendt, og
viser den ved siden af med toMarkdown fra
bugbottle/server — samme funktion, som du ville bruge til
teksten i en sag eller til en morgenopsamling. Intet forlader din browser.
Skærmbilleder er slået fra her, fordi demoen ikke har noget privat sted at
lægge dem.
Rapporten som Markdown
Læs lige det her
Et skærmbillede af din applikation indeholder alt, hvad den, der melder fejlen, kunne se. I et journalsystem kan det være et billede af en patient; i et lønsystem en løn; i dit måske nogens indbakke eller en halvskrevet besked, der aldrig blev sendt.
Tre ting følger heraf, og dem kan biblioteket ikke gøre for dig:
- Læg skærmbilleder et privat sted. Hvis din objektlagring har offentlig læseadgang — det har mange mediearkiver — kan alt, hvad du lægger derind, hentes af enhver, der kender adressen. Brug en separat lagerplads uden offentlig adgang.
- Vis dem kun gennem en rute, der kræver login. Giv aldrig et skærmbillede en offentlig adresse. Slå nøglen op ud fra rækken i databasen frem for at tage den fra forespørgslen, så et id ikke kan bruges til at gennemsøge hele lageret.
- Sig det, før billedet bliver taget. Skriv det i formularen ved siden af afkrydsningsfeltet — ikke i en politik, ingen åbner.
Det er også værd at overveje at kræve, at folk er logget ind. Et anonymt skærmbillede er et, ingen bagefter kan spørges om, og ingen kan få at vide er blevet slettet. Hele afsnittet i dokumentationen.
Bygget af Mahope
Jeg hedder Mads Holst Jensen, er freelance web- og AI-udvikler i Danmark og arbejder under navnet Mahope. bugbottle er blevet til undervejs i kundearbejde: to apps, hvor brugerne blev ved med at melde fejl, jeg ikke kunne genskabe. Så byggede jeg den del, der samler beviserne, og pillede stykker af den, indtil den var lille nok til at give væk.
Jeg bygger den slags værktøj til andres produkter også — vejen en bruger går, når noget er galt, det interne værktøj ingen har haft tid til, integrationen der skal blive ved med at virke, når jeg er gået igen. Er det dét, du mangler, så skriv til mig og fortæl, hvad det drejer sig om.
Mads Holst Jensen mahope.dk [email protected]