๐๏ธExternal Events
Introduction
Guardian will publish number of events to NATS server to hook into those events , which extends the function that is suitable to the solution.
Hooks to external event
To hooks into Guardian events, we need to have a client, that is connected to same NATS instance with Guardian and implement the response function for a specific event.
Below is the sample for .NodeJs and in case of other language please refer to Nats.io for complete documentation.
publish/subscribe events
The events with type=publish
is publish/subscribe pattern so that the same message can be received by multiple clients. If there are multiple clients make sure it is handled by duplicate message processing.
To get more information please click https://github.com/nats-io/nats.js#publish-and-subscribe
request/reply events
Some event has type=request
for which we need to subscribe and respond to the event.
Example:
For the before/after IPFS event, if the listener responds an error then IPFS service will be skipped and upload/response the actual content. This same scenario also happens when we do not have listener to an event. For example we can use this to encrypt/decrypt IPFS content file
External events list
externals-events.ipfs_added_file
publish
{cid, url}
Event is published when an IPFS file is added
external-events.token_minted
publish
{ tokenId, tokenValue, memo }
When token is minted successfully
external-events.error_logs
publish
{message, type, attributes}
When an error is sent to logger service
external-events.block_run_action_event
publish
{blockType, blockTag, uuid ,data, result}
After runAction is finished, events are called by these blocks:
aggregateDocumentBlock
mintDocumentBlock
sendToGuardianBlock
timerBlock
after runAction finish
external-events.ipfs_before_upload_content
request
{content}
The base64 of the content (buffer) to be hooked and modified
external-events.ipfs_after_read_content
request
{content}
The base64 of the content (buffer) to be modified/processed
Example
This example demonstrates implementation of encryption / decryption of simple IPFS content.
Please refer to https://github.com/hashgraph/guardian/blob/main/common/src/mq/sample-external-client.ts
Last updated