You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Raven.js does not get stack frames from an Electron applications that uses "require" in the renderer process #812
Electron is a popular application framework from GitHub that allows you to create desktop applications with JavaScript. It's great and easy.
Unfortunately, Raven.js is bugged with Electron applications. When an error occurs in an included JavaScript file using require, the stack frame is not reported to Sentry, so you can't actually see the line number of where the error occurred.
Raven.js: 3.9.1
Chromium: 53.0.2785.143
OS: Windows 7 Professional
Node: 6.5.0
Electron: 1.4.13
Altogether this is a deal-breaking bug, as Sentry is pretty useless for my use case without actual line number reporting. =(
Additional discussion about the problem:
Electron applications are unique in that Chromium (the browser) gets access to some of the Node APIs. So you can do things that you wouldn't normally be able to do in a browser. Like, for example, loading some functions from a separate file called extra-functions.js:
changed the title [-]Raven-JS does not get stack frames from an Electron applications that uses "require" in the renderer process[/-][+]Raven.js does not get stack frames from an Electron applications that uses "require" in the renderer process[/+]on Jan 3, 2017
For anyone else reading this, I've had success in ignoring raven-js completely and using the native Node client (raven-node) in my Electron application.
@Zamiell thanks for the note, glad to hear; out of curiosity, is that in both the main and renderer processes, or just in the main process? I can imagine raven-node working in the main process but am less sure about renderer processes.
The security implication is only that someone can send events on your behalf, which your only resolve is to revoke the API key and ship a new one. There's no other access given by default with client keys.
I'm using it in an open source project, so even in the situation where I revoked my API key and got a new one, it would be trivial to discover the new key. With that said, I don't know if I would even consider this an attack vector, so I am completely fine with exposing it.
Activity
[-]Raven-JS does not get stack frames from an Electron applications that uses "require" in the renderer process[/-][+]Raven.js does not get stack frames from an Electron applications that uses "require" in the renderer process[/+]macvag commentedon Jan 20, 2017
The same behavior is happening and on backbone app with require.js
benvinegar commentedon Jan 20, 2017
Thanks for the report. Sorry, we've been slow to explore Electron and verify its functionality, but your test repo will be super helpful.
Zamiell commentedon Feb 22, 2017
For anyone else reading this, I've had success in ignoring raven-js completely and using the native Node client (raven-node) in my Electron application.
LewisJEllis commentedon Feb 22, 2017
@Zamiell thanks for the note, glad to hear; out of curiosity, is that in both the main and renderer processes, or just in the main process? I can imagine raven-node working in the main process but am less sure about renderer processes.
Zamiell commentedon Feb 22, 2017
I'm using it in both, and it seems to work just fine.
justincy commentedon Mar 7, 2017
@Zamiell How did you avoid exposing the private key in the DSN? raven-node expects a DSN with a private key.
Zamiell commentedon Mar 11, 2017
@justincy I didn't avoid it. I am exposing my private key.
From this issue we can see:
I'm using it in an open source project, so even in the situation where I revoked my API key and got a new one, it would be trivial to discover the new key. With that said, I don't know if I would even consider this an attack vector, so I am completely fine with exposing it.
kamilogorek commentedon Sep 28, 2017
Already fixed in latest version:
Also different test case in Sentry Dashboard:
feat: add debug statements after sourcemap uploads (getsentry#812)