Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
@erento/nestjs-module-google-pubsub
Advanced tools
Readme
Easy way to publish messages to Google Pub/Sub. Supports encrypting the message.
Import
Import this module in the module you want to use it:
typescript imports: [ PubSubModule.forRoot( {keyFilename: PUBSUB_CONFIG}, X_PUBSUB_KEY, X_PUBSUB_ENCRYPTION_KEY, SERVICE_IDENTIFIER ) ]
PUBSUB_CONFIG
is the path to the file with the service account, e.g.: ./config/pubsub.config.json
X_PUBSUB_KEY
is a secret signature key to encrypt the message. This is necessary for write, but can be used in read operation to verify a signature.X_PUBSUB_ENCRYPTION_KEY
is a secret encryption key. This is necessary for write and read.SERVICE_IDENTIFIER
is a string represantation of a sender, e.g. "price-service", "user-service", etc.Usage
Publish a messages:
await this.pubSubService.publishMessage<MyMessage>(
'projects/project-name/topics/topic-name',
{ // this can be any object, in this case: MyMessage
text: `some message`,
},
{
myAttribute: 'any other attribute you need to pass',
},
);
Read a messages:
private async onSubscriptionMessage (message: EncodedMessage): Promise<void> {
try {
await this.pubSubService.verifyMessage(message);
const decryptedMessage: string = await this.pubSubService.decryptMessage(message);
const parsedMessage: PubSubMessage<MyMessage> = JSON.parse(decryptedMessage);
// process parsed message parsedMessage looks like: {meta: object, payload: MyMessage}
message.ack();
} catch (e) {
message.nack();
}
}
Pull for messages:
In constructor run this.registerPubSubPull();
. The implementation can look as follows:
import {EncodedMessage, PubSubMessage, PubSubService} from '@erento/nestjs-module-google-pubsub';
interface MyMessage {}
class MyClass {
constructor(private readonly pubSubService: PubSubService) {
this.registerPubSubPull();
}
private registerPubSubPull (): void {
this.pubSubService.listenOnSubscription(
'projects/project-name/subscriptions/pull-subscription-name',
this.onSubscriptionMessage.bind(this),
this.onSubscriptionError.bind(this),
);
}
private async onSubscriptionMessage (message: EncodedMessage): Promise<void> {
// see section above how to read a message
}
private onSubscriptionError (message: EncodedRequest): void {
Log.error(`Unexpected error happened with a message: ${JSON.stringify(message)}`);
}
}
This module is MIT licensed.
FAQs
NestJS module to work with Google Pub/Sub messages.
The npm package @erento/nestjs-module-google-pubsub receives a total of 35 weekly downloads. As such, @erento/nestjs-module-google-pubsub popularity was classified as not popular.
We found that @erento/nestjs-module-google-pubsub demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.