Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
@sentry/ember
Advanced tools
This package is an Ember addon that wraps @sentry/browser
, with added functionality related to Ember. All methods
available in @sentry/browser
can be imported from @sentry/ember
.
As with other Ember addons, run: ember install @sentry/ember
Then add the following to your <your-app>/app.js
import * as Sentry from "@sentry/ember";
Sentry.init({
dsn: '__DSN__' // replace __DSN__ with your DSN,
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production,
tracesSampleRate: 1.0,
});
To use this SDK, call Sentry.init
before the application is initialized, in app.js
. This will allow Sentry to
capture information while your app is starting. Any additional SDK settings can be modified via the usual config in
environment.js
for you, see the Additional Configuration section for more details.
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
import * as Sentry from "@sentry/ember";
Sentry.init({
dsn: '__DSN__' // replace __DSN__ with your DSN,
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production,
tracesSampleRate: 1.0,
});
export default class App extends Application {
modulePrefix = config.modulePrefix;
podModulePrefix = config.podModulePrefix;
Resolver = Resolver;
}
Aside from configuration passed from this addon into @sentry/browser
via the sentry
property, there is also the
following Ember specific configuration:
ENV['@sentry/ember'] = {
// Will silence Ember.onError warning without the need of using Ember debugging tools.
ignoreEmberOnErrorWarning: false,
// Will disable automatic instrumentation of performance.
// Manual instrumentation will still be sent.
disablePerformance: true,
// All runloop queue durations will be added as spans.
minimumRunloopQueueDuration: 0,
// Will disable automatic instrumentation for components.
disableInstrumentComponents: true,
// All (non-glimmer) component render durations will be added as spans.
minimumComponentRenderDuration: 0,
// All component definitions will be added as spans.
enableComponentDefinition: true,
};
@sentry/ember
captures performance by default, if you would like to disable the automatic performance instrumentation,
you can add the following to your config/environment.js
:
ENV['@sentry/ember'] = {
disablePerformance: true, // Will disable automatic instrumentation of performance. Manual instrumentation will still be sent.
};
If you would like to capture beforeModel
, model
, afterModel
and setupController
times for one of your routes,
you can import instrumentRoutePerformance
and wrap your route with it.
import Route from '@ember/routing/route';
import { instrumentRoutePerformance } from '@sentry/ember';
class MyRoute extends Route {
model() {
//...
}
}
export default instrumentRoutePerformance(MyRoute);
The runloop queue durations are instrumented by default, as long as they are longer than a threshold (by default 5ms). This helps (via the render queue) capturing the entire render in case component render times aren't fully instrumented, such as when using glimmer components.
If you would like to change the runloop queue threshold, add the following to your config:
ENV['@sentry/ember'] = {
minimumRunloopQueueDuration: 0, // All runloop queue durations will be added as spans.
};
Non-glimmer component render times will automatically get captured.
If you would like to disable component render being instrumented, add the following to your config:
ENV['@sentry/ember'] = {
disableInstrumentComponents: true, // Will disable automatic instrumentation for components.
};
Additionally, components whose render time is below a threshold (by default 2ms) will not be included as spans. If you would like to change this threshold, add the following to your config:
ENV['@sentry/ember'] = {
minimumComponentRenderDuration: 0, // All (non-glimmer) component render durations will be added as spans.
};
Currently glimmer component render durations can only be captured indirectly via the runloop instrumentation. You can optionally enable a setting to show component definitions (which will indicate which components are being rendered) be adding the following to your config:
ENV['@sentry/ember'] = {
enableComponentDefinition: true, // All component definitions will be added as spans.
};
Previously we've recommended using the Ember integration from @sentry/integrations
but moving forward we will be using
this Ember addon to offer more Ember-specific error and performancing monitoring.
For this package itself, you can find example instrumentation in the dummy
application, which is also used for
testing. To test with the dummy application, you must pass the dsn as an environment variable.
SENTRY_DSN=__DSN__ ember serve
8.43.0
feat(nuxt): Add option autoInjectServerSentry (no default import()) (#14553)
Using the dynamic import()
as the default behavior for initializing the SDK on the server-side did not work for every project.
The default behavior of the SDK has been changed, and you now need to use the --import
flag to initialize Sentry on the server-side to leverage full functionality.
Example with --import
:
node --import ./.output/server/sentry.server.config.mjs .output/server/index.mjs
In case you are not able to use the --import
flag, you can enable auto-injecting Sentry in the nuxt.config.ts
(comes with limitations):
sentry: {
autoInjectServerSentry: 'top-level-import', // or 'experimental_dynamic-import'
},
feat(browser): Adds LaunchDarkly and OpenFeature integrations (#14207)
Adds browser SDK integrations for tracking feature flag evaluations through the LaunchDarkly JS SDK and OpenFeature Web SDK:
import * as Sentry from '@sentry/browser';
Sentry.init({
integrations: [
// Track LaunchDarkly feature flags
Sentry.launchDarklyIntegration(),
// Track OpenFeature feature flags
Sentry.openFeatureIntegration(),
],
});
feat(browser): Add featureFlagsIntegration
for custom tracking of flag evaluations (#14582)
Adds a browser integration to manually track feature flags with an API. Feature flags are attached to subsequent error events:
import * as Sentry from '@sentry/browser';
const featureFlagsIntegrationInstance = Sentry.featureFlagsIntegration();
Sentry.init({
// Initialize the SDK with the feature flag integration
integrations: [featureFlagsIntegrationInstance],
});
// Manually track a feature flag
featureFlagsIntegrationInstance.addFeatureFlag('my-feature', true);
feat(astro): Add Astro 5 support (#14613)
With this release, the Sentry Astro SDK officially supports Astro 5.
feat(nextjs): Deprecate typedef for hideSourceMaps
(#14594)
The functionality of hideSourceMaps
was removed in version 8 but was forgotten to be deprecated and removed.
It will be completely removed in the next major version.
feat(core): Deprecate APIs around RequestSession
s (#14566)
The APIs around RequestSession
s are mostly used internally.
Going forward the SDK will not expose concepts around RequestSession
s.
Instead, functionality around server-side Release Health will be managed in integrations.
browserSessionIntegration
(#14551)raw_security
envelope types (#14562)disableAnrDetectionForCallback
function (#14359)trackIncomingRequestsAsSessions
option to http integration (#14567)autoInjectServerSentry
(no default import()
) (#14553)^1.29.0
(#14590)1.28.0
(#14547)filename
and module
stack frame properties in Node stack parser (#14544)maxSpanWaitDuration
values (#14632)parseSearch
option in TanStack Router instrumentation (#14328)Work in this release was contributed by @lsmurray. Thank you for your contribution!
FAQs
Official Sentry SDK for Ember.js
The npm package @sentry/ember receives a total of 17,043 weekly downloads. As such, @sentry/ember popularity was classified as popular.
We found that @sentry/ember demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 11 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.