
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@qrvey/event-broker
Advanced tools
 
The @qrvey/event-broker
package provides a unified interface for work with AWS SQS, AWS EventBridge and RabbitMQ based
on the specific configurations of the service.
You can install the package using npm or yarn:
npm install @qrvey/event-broker
Or with yarn:
yarn add @qrvey/event-broker
Note: If the application does not have @aws-sdk/aws-sdk/client-sqs, @aws-sdk/client-eventbridge, @smithy/node-http-handler and @smithy/middleware-retry it must be installed manually to work with AWS SQS, AWS EventBridge and amqplib to work with RabbitMQ
AWS_ACCOUNT_ID; //AWS AccountId to send SQS service
AWS_DEFAULT_REGION; //AWS Region for SQS service
AWS_ACCESS_KEY_ID; //AWS Access key for Event Bridge service
AWS_SECRET_ACCESS_KEY; //AWS Secret key for Event Bridge service
RABBITMQ_HOST; //RabbitMQ host
RABBITMQ_USER; //RabbitMQ user
RABBITMQ_PASSWORD; //RabbitMQ password
RABBITMQ_PORT; //RabbitMQ port
PLATFORM_TYPE; //Platform type (possible value CONTAINER)
AWS_EVENT_BUS_NAME; //AWS Event Bus name, if it is not set, you will need to defined every bus name in the code for each message.
@qrvey/event-broker
[QueueService] package can deliver message either to AWS SQS or RabbitMQ, depending on certain
conditions. These conditions are determined by:
AWS SQS:
PLATFORM_TYPE
is not set or have a different value to 'CONTAINER'
.RabbitMQ:
PLATFORM_TYPE
is set to 'CONTAINER'
.const { QueueService } = require('@qrvey/event-broker');
const queueSchema = {
name: 'MY_SAMPLE_QUEUE', //name of the queue in SQS
alias: 'MY_SAMPLE_QUEUE', //name of the queue for RabbitMQ
};
const queueMessage = {
company: 'Qrvey',
name: 'Jhon Doe',
};
const options = {
headers: {
DelaySeconds: 3,
},
};
const queueService = new QueueService();
let connected = false;
try {
await queueService.connect();
connected = true;
const res = await queueService.sendMessage(queueSchema, message, options);
await queueService.disconnect();
console.log('res: ', res);
} catch (error) {
console.log(error);
} finally {
if (connected) await queueService.disconnect();
}
@qrvey/event-broker
[EventBusService] package can deliver events either to AWS EventBridge or RabbitMQ, depending
on certain conditions. These conditions are determined by:
AWS EventBridge:
PLATFORM_TYPE
is not set or have a different value to 'CONTAINER'
.RabbitMQ:
PLATFORM_TYPE
is set to 'CONTAINER'
.const { EventBusService } = require('@qrvey/event-broker');
const queueSchema = {
name: 'MY_SAMPLE_BUS', //name of the bus even in Amazon EventBridge, if AWS_EVENT_BUS_NAME is defined, you will need to set this value.
alias: 'MY_SAMPLE_QUEUE', //name of the queue for RabbitMQ
};
const eventBridgeMessage = {
EventBusName: 'my-event-bus', //The name of the event bus to which the event is sent. If not specified, the event is sent to the default(AWS_EVENT_BUS_NAME) event bus.
Detail: { 'key1': 'value1', 'key2': 'value2' }, //A JSON string containing detailed information about the event. This field is required and contains the specific data of the event.
DetailType: 'MyEventType', //An arbitrary identifier for the type of the event. It can be any string that describes the nature of the event.
Source: 'my.application', //The source of the event. This field is typically an identifier of the application or service that generates the event.
Time: '2024-06-26T12:00:00Z', //The time at which the event was generated. Is not required.
Resources: ['arn:aws:s3:::my-bucket'], //A list of resources that are related to the event. Each resource should be a string representing the ARN of an AWS resource. Is not required.
AccountId: '123456789012', //The AWS account ID where the event was generated. If not specified, the account ID of the current context is used.
};
const options = {
headers: {
DelaySeconds: 3,
},
};
const queueService = new QueueService();
let connected = false;
try {
await queueService.connect();
connected = true;
const res = await queueService.sendMessage(queueSchema, message, options);
await queueService.disconnect();
console.log('res: ', res);
} catch (error) {
console.log(error);
} finally {
if (connected) await queueService.disconnect();
}
QueueService
connect(): Promise<any>
sendMessage(queue: string, message: object, options: IFunctionMapping, options: Options.Publish): Promise<any>
queueSchema
: Object with the queue information.queueSchema.name
: The name of the queue in AWS.queueSchema.alias
: The name of the queue in RabbitMQ.message
: the body of the messages to be sent to the queue.options
: An object with additional configuration options.options.headers
: headers of the messagedeleteMessage(queue: string, receiptHandle: string): Promise<any>
queue
: The name of the queue.receiptHandle
:disconnect(): Promise<any>
EventBusService
connect(): Promise<any>
sendMessage(queue: IQueueSchema, message: IEventBridgeMessage): Promise<any>
IQueueSchema
: Object with the queue information.queueSchema.name
: The name of the bus in AWS EventBridge.queueSchema.alias
: The name of the queue in RabbitMQ.message
: The body of the messages to be sent to the queue.
message.EventBusName
: The name of the event bus in AWS EventBridge. Optional.message.Detail
: A JSON string containing detailed information about the event. Required.message.DetailType
: An arbitrary identifier for the type of the event. Required.message.Source
: The source of the event, typically an identifier of the application or service generating the
event. Required.message.Time
: The time the event was generated. Optional.message.Resources
: A list of related resources, each represented as a string containing the ARN of an AWS
resource. Optional.message.AccountId
: The AWS account ID where the event was generated. Optional. If not specified, the current
context's account ID is used.disconnect(): Promise<any>
FAQs
**Version: 1.0.0**
The npm package @qrvey/event-broker receives a total of 1,639 weekly downloads. As such, @qrvey/event-broker popularity was classified as popular.
We found that @qrvey/event-broker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 14 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
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.