
Research
5 Malicious Chrome Extensions Enable Session Hijacking in Enterprise HR and ERP Systems
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.
@map-colonies/jobnik-sdk
Advanced tools
TypeScript SDK for interacting with the Jobnik job management system. Provides type-safe clients for creating jobs, processing tasks, and monitoring workflows with built-in observability and resilience patterns.
npm install @map-colonies/jobnik-sdk
Requirements: Node.js >= 24
import { JobnikSDK } from '@map-colonies/jobnik-sdk';
const sdk = new JobnikSDK({
baseUrl: 'https://api.jobnik.example.com'
metricsRegistry: new Registry()
});
interface MyJobTypes {
'image-processing': {
userMetadata: { userId: string };
data: { imageUrl: string };
};
}
interface MyStageTypes {
'resize': {
userMetadata: { quality: number };
data: { width: number; height: number };
task: {
userMetadata: { batchId: string };
data: { sourceUrl: string; targetPath: string };
};
};
}
const sdk = new JobnikSDK<MyJobTypes, MyStageTypes>({
baseUrl: 'https://api.jobnik.example.com'
metricsRegistry: new Registry()
});
const producer = sdk.getProducer();
// Create a job
const job = await producer.createJob({
name: 'image-processing',
data: { imageUrl: 'https://example.com/image.jpg' },
userMetadata: { userId: 'user-123' },
priority: 'HIGH'
});
// Add a stage to the job
const stage = await producer.createStage(job.id, {
type: 'resize',
data: { width: 800, height: 600 },
userMetadata: { quality: 90 }
});
// Add tasks to the stage
const task = await producer.createTask(stage.id, {
data: { sourceUrl: 'https://example.com/image.jpg', targetPath: '/output/resized.jpg' },
userMetadata: { batchId: 'batch-1' }
});
// Define task handler
const taskHandler = async (task, context) => {
const { sourceUrl, targetPath } = task.data;
context.logger.info('Processing task', { taskId: task.id });
// Your processing logic here
await resizeImage(sourceUrl, targetPath);
// Check for cancellation during shutdown
if (context.signal.aborted) {
throw new Error('Task cancelled');
}
};
// Create and start worker using the SDK
const worker = sdk.createWorker(
'resize',
taskHandler,
{
concurrency: 5,
backoffOptions: {
initialBaseRetryDelayMs: 1000,
maxDelayMs: 60000,
backoffFactor: 2
}
}
);
await worker.start();
// Graceful shutdown
process.on('SIGTERM', async () => {
await worker.stop();
});
import { Registry } from 'prom-client';
const registry = new Registry();
const sdk = new JobnikSDK({
baseUrl: 'https://api.jobnik.example.com',
metricsRegistry: registry
});
// Expose metrics endpoint
app.get('/metrics', async (req, res) => {
res.set('Content-Type', registry.contentType);
res.send(await registry.metrics());
});
The SDK automatically creates spans for all operations when OpenTelemetry is configured in your application. Trace context is propagated through jobs, stages, and tasks.
const sdk = new JobnikSDK({
baseUrl: string; // Required: Jobnik API base URL
httpClientOptions?: { // Optional: HTTP client configuration
retry?: { // Retry configuration
maxRetries?: number; // Maximum number of retries
statusCodes?: number[]; // HTTP status codes to retry
errorCodes?: string[]; // Error codes to retry
initialBaseRetryDelayMs?: number; // Initial base delay in ms
disableJitter?: boolean; // Disable random jitter in delay
maxJitterFactor?: number; // Maximum jitter factor
};
agentOptions?: Agent.Options; // HTTP agent options
};
logger?: Logger; // Optional: Custom logger (defaults to NoopLogger)
metricsRegistry: Registry; // Required: Prometheus registry for metrics
});
Full API documentation is available at https://mapcolonies.github.io/jobnik-sdk/
ISC
FAQs
Map Colonies Jobnik SDK
We found that @map-colonies/jobnik-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 10 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.

Research
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.

Research
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.

Research
/Security News
A malicious Chrome extension steals newly created MEXC API keys, exfiltrates them to Telegram, and enables full account takeover with trading and withdrawal rights.