
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@beakyn/activity-tracker
Advanced tools
This is a custom redux-beacon integration that allows us to have our very own User Activity tracking API as a target.
First of all, you must add both redux-beacon and @beakyn/activity-tracker as dependencies.
Then, you should have a config object with the following properties:
appName (string): The application which is being trackedtenant (string): The current tenanttoken (string): The logged user jwt tokenurl (string): The Activity API instance urlresourceId (string): Either the user email or their ID, depending on resourceTyperesourceType (ResourceType): Either .email or .user, depending on resourceIdFor example:
import { ResourceType } from '@beakyn/activity-tracker';
const config = {
appName: 'My Applictation',
tenant: 'My tenant',
token: '...',
url: '...',
resourceId: '...',
resourceType: ResourceType.email,
};
Note: This module detects if it's running in localhost and does nothing there to avoid polluting your analytics with local data. In order to allow traking while on development – and debug sent requests or similar – you may want to add a
devMode: trueproperty to your config object.
Next step is to define a custom event map like the following:
import { actions as bknAuthActions } from 'bkn-auth';
import { ActivityService } from '@beakyn/activity-tracker';
const { trackEvent } = ActivityService.getInstance(config);
const eventsMap = {
[bknAuthActions.logout.getType()]: trackEvent(action => {
return {
feature: 'App',
action: 'Logged out',
};
}),
};
Last but not least, head over to your Redux store:
import { applyMiddleware, compose, createStore } from 'redux';
import { createMiddleware } from 'redux-beacon';
import { ActivityMiddleware, ResourceType } from '@beakyn/activity-tracker';
import { rootReducer, RootState } from './rootReducer';
import { config, eventsMap } from './utils/activity'; // Or somewhere else you have both
const activityInstance = ActivityMiddleware(config);
const activityMiddleware = createMiddleware(eventsMap, activityInstance);
const middlewares = [activityMiddleware];
const storeEnhancers = [applyMiddleware(...middlewares)];
export const store = createStore<RootState>(
rootReducer,
compose(...storeEnhancers)
);
Then you're done! 🚀
This project is licensed under the terms of the MIT license.
FAQs
Unknown package
The npm package @beakyn/activity-tracker receives a total of 12 weekly downloads. As such, @beakyn/activity-tracker popularity was classified as not popular.
We found that @beakyn/activity-tracker demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 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
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.