-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Capture failed turnstile challenges to sentry #738
Conversation
The latest updates on your projects. Learn more about Vercel for Git βοΈ
|
const user = await getUser(); | ||
Sentry.captureEvent({ | ||
message: 'User failed turnstile challenge when signing up for event.', | ||
level: Sentry.Severity.Fatal, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Det er ikke riktig nivΓ₯, dette er maks en error, sannsynligvis bare warning
Fatal ville vært om OWF ikke kjører overhode
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I utgangspunktet er jeg enig i at det burde vΓ¦re warning, men vi vet at i 99.9% av tilfellene som dette skjer sΓ₯ er det ikke meningen at det skal ha skjedd. For hvorfor skal folk gidde Γ₯ botte nΓ₯r det ikke funker uansett siden vi har turnstile. SΓ₯ mener det er error i vΓ₯rt tilfelle her.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HΓ₯pet er ihvertfall at turnstile gjΓΈr det vanskelig nok Γ₯ botte til at ingen gidder. Men har ikke testet selv
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
99.9% av tilfellene som dette skjer sΓ₯ er det ikke meningen at det skal ha skjedd
Nei, det er ikke det vi vet.
Dette er ikke en fatal error, og skal ikke behandles som det, det er helt naturlig at Turnstile feiler, det at den noen ganger feiler betyr at den er "working as intended".
SΓ₯ lenge vi har data-ene i sentry spiller det ikke sΓ₯ stor rolle hvilke nivΓ₯ det er pΓ₯, tipper det bare er jeg som faktisk fΓΈlger med er pr. nΓ₯
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enig i at det ikke er en fatal error. Synes det kan vΓ¦re error sett situasjonen vΓ₯r.
Mener du det er "helt naturlig" om turnstile i blant feiler nΓ₯r reelle brukere prΓΈver Γ₯ melde seg pΓ₯?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"helt naturlig" om turnstile i blant feiler nΓ₯r reelle brukere prΓΈver Γ₯ melde seg pΓ₯
Ja, fordi bot-deteksjon er et vanskelig problem, og jeg antar at de nΓΈdvendigvis mΓ₯ ha noen false-positives. NΓ₯ er jeg ogsΓ₯ ikke helt kjent med API-et til turnstile her og det kan godt vΓ¦re at det at den sier feil en gang bare betyr at brukeren mΓ₯ trykke pΓ₯ knappen en gang til eller mΓ₯ flytte pΓ₯ musepekeren litt til for Γ₯ samle info, idk.
Vi vet jo allerede fra Cloudflare-turnstile stats at den feiler ganske ofte, og kan vΓ¦re mΓ₯ten vi har satt den opp (med at den bare er i en modal) legger opp til at den feiler oftere enn nΓΈdvendig.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok sure kjΓΈrer warning. Men synes personlig det like godt kunne vΓ¦rt error i vΓ₯rt tilfelle.
message: 'User failed turnstile challenge when signing up for event.', | ||
level: Sentry.Severity.Fatal, | ||
extra: { | ||
event_id: eventId, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tror det fanges via URL-en allerede
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah smart
onError={async (error) => { | ||
const user = await getUser(); | ||
Sentry.captureEvent({ | ||
message: 'User failed turnstile challenge when signing up for event.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vi burde ha en egen ordbok akkurat for event-domenet med norsk og engelsk "melde seg pΓ₯" = register eller sign up?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eeenig!
error: error, | ||
}, | ||
user: { | ||
email: user?.profile.email, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
E-post er personopplysning (PII), auth0 sub-en er ikke
https://www.datatilsynet.no/rettigheter-og-plikter/personopplysninger/
(Vi mangler personvernerklæring)
SΓ₯nn generelt burde vi unngΓ₯ at PII havner i Sentry, siden vi ikke har koblet f.eks. "slett bruker" funksjonaliteten til det
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Godt poeng. Bytter til auth0-sub'en.
@@ -44,7 +43,8 @@ const AttendButton: FC<IAttendButtonProps> = (props: IAttendButtonProps) => { | |||
unwrapResult(action); | |||
addToast('Du har blitt meldt pΓ₯ arrangementet'); | |||
} catch (err) { | |||
addToast(`Noe gikk galt under pΓ₯meldelse av arrangement, ERROR: ${err.message}`, { type: 'error' }); | |||
const errorMessage = err instanceof Error ? err.message : 'Unknown error'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Ukjent feil"?
@@ -10,10 +10,11 @@ interface ICaptchaModalProps { | |||
toggleModal: () => void; | |||
setCaptcha: (token: string | null) => void; | |||
errorText?: React.ReactNode | string; | |||
onError: (error: Error) => void; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
React-struktur spΓΈrsmΓ₯l: hvorfor driver du Γ₯ sender logikk via to nivΓ₯er? Syntes det bare kompliserer kontroll-flyten.
Ser dette ganske ofte, og syntes det fremstΓ₯r som et veldig anti-pattern?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enig i at flyten er litt komplisert her. Godt mulig at det kan gjΓΈres bedre. Er fort en case av premature optimalization. SΓ₯nn det er nΓ₯ er ikke CaptchaModal knyttet til event-pΓ₯melding. Det er en reusable komponent som potensielt kan brukes andre steder. SΓ₯ da blir det jo sΓ₯nn at event handlers og tekst som kan vΓ¦re forskjellig fra case til case mΓ₯ vΓ¦re i parent komponenten.
IMO kunne hele greia vært i AttendButton istedenfor at det er en egen komponent. Eller bare gjort den helt spesifikk for event registration.
Synes forΓΈvrig setCaptcha
er et dΓ₯rlig navn her da, som gjΓΈr det litt ekstra forvirrende. Kunne vΓ¦rt onValidCaptchaToken
e.l.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Synes det ble veldig rotete med feilmeldingene fra parent component og fra Turnstile onError her da. Men siden vi ikke har store ambisjoner for videreutvikling pΓ₯ owf tenker jeg at sΓ₯nne ting er greit. As long as it works og ikke er helt uforstΓ₯elig liksom
|
OWF_SENTRY_DSN var kalt OW4_SENTRY_DSN i doppler π΅βπ«