Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@adobe/aio-lib-events

Package Overview
Dependencies
Maintainers
21
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adobe/aio-lib-events

Adobe I/O Events

  • 2.0.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3K
decreased by-0.4%
Maintainers
21
Weekly downloads
 
Created
Source

Version Downloads/week Build Status License Codecov Coverage

Adobe I/O Events Lib

Node Javascript API wrapping the Adobe I/O Events API.

Installing

$ npm install @adobe/aio-lib-events

Usage

  1. Initialize the SDK
const sdk = require('@adobe/aio-lib-events')

async function sdkTest() {
  //initialize sdk
  const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<options>')
}
  1. Call methods using the initialized SDK
const sdk = require('@adobe/aio-lib-events')

async function sdkTest() {
  // initialize sdk
  const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<options>')

  // call methods
  try {
    // use one of the get methods
    const result = await client.getSomething({})
    console.log(result)

  } catch (e) {
    console.error(e)
  }
}
  1. Using the poller for journalling
const sdk = require('@adobe/aio-lib-events')

async function sdkTest() {
  // initialize sdk
  const client = await sdk.init('<organization id>', 'x-api-key', '<valid auth token>', '<http options>')
  // get the journalling observable
  const journalling = client.getEventsObservableFromJournal('<journal url>', '<journalling options>')
  // call methods
  const subscription = journalling.subscribe({
    next: (v) => console.log(v), // Action to be taken on event
    error: (e) => console.log(e), // Action to be taken on error
    complete: () => console.log('Complete') // Action to be taken on complete
  })
  
  // To stop receiving events from this subscription based on a timeout
  setTimeout(() => subscription.unsubscribe(), <timeout in ms>)
}

One observable can have multiple subscribers. Each subscription can be handled differently. For more details on using the poller for Journalling check getEventsObservableFromJournal

Classes

EventsCoreAPI

This class provides methods to call your Adobe I/O Events APIs. Before calling any method initialize the instance by calling the init method on it with valid values for organizationId, apiKey, accessToken and optional http options such as timeout and max number of retries

Functions

init(organizationId, apiKey, accessToken, [httpOptions])Promise.<EventsCoreAPI>

Returns a Promise that resolves with a new EventsCoreAPI object.

Typedefs

EventsCoreAPIOptions : object
EventsJournalOptions : object
EventsJournalPollingOptions : object
SignatureOptions : object

EventsCoreAPI

This class provides methods to call your Adobe I/O Events APIs. Before calling any method initialize the instance by calling the init method on it with valid values for organizationId, apiKey, accessToken and optional http options such as timeout and max number of retries

Kind: global class

eventsCoreAPI.httpOptions

Http options {retries, timeout}

Kind: instance property of EventsCoreAPI

eventsCoreAPI.organizationId

The organization id from your integration

Kind: instance property of EventsCoreAPI

eventsCoreAPI.apiKey

The api key from your integration

Kind: instance property of EventsCoreAPI

eventsCoreAPI.accessToken

The JWT Token for the integration with IO Management API scope

Kind: instance property of EventsCoreAPI

eventsCoreAPI.init(organizationId, apiKey, accessToken, [httpOptions]) ⇒ Promise.<EventsCoreAPI>

Initialize SDK.

Kind: instance method of EventsCoreAPI
Returns: Promise.<EventsCoreAPI> - returns object of the class EventsCoreAPI

ParamTypeDescription
organizationIdstringThe organization id from your integration
apiKeystringThe api key from your integration
accessTokenstringJWT Token for the integration with IO Management API scope
[httpOptions]EventsCoreAPIOptionsOptions to configure API calls

eventsCoreAPI.getAllProviders(consumerOrgId) ⇒ Promise.<object>

Fetch all the providers

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Returns list of providers for the org

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console

eventsCoreAPI.getProvider(providerId, [fetchEventMetadata]) ⇒ Promise.<object>

Fetch a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Returns the provider specified by the provider id

ParamTypeDefaultDescription
providerIdstringThe id that uniquely identifies the provider to be fetched
[fetchEventMetadata]booleanfalseSet this to true if you want to fetch the associated eventmetadata of the provider

eventsCoreAPI.createProvider(consumerOrgId, projectId, workspaceId, body) ⇒ Promise.<object>

Create a new provider given the provider details

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Returns the details of the provider created

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
bodyobjectJson data that describes the provider

eventsCoreAPI.updateProvider(consumerOrgId, projectId, workspaceId, providerId, body) ⇒ Promise.<object>

Update a provider given the id and provider details

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Returns the details of the provider updated

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringThe id that uniquely identifies the provider to be updated
bodyobjectJson data that describes the provider

eventsCoreAPI.deleteProvider(consumerOrgId, projectId, workspaceId, providerId) ⇒ Promise.<object>

Delete a provider given the id

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Returns an empty object if the deletion was successful

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringThe id that uniquely identifies the provider to be deleted

eventsCoreAPI.getAllEventMetadataForProvider(providerId) ⇒ Promise.<object>

Get all event metadata for a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - List of all event metadata of the provider

ParamTypeDescription
providerIdstringThe id that uniquely identifies the provider whose event metadata is to be fetched

eventsCoreAPI.getEventMetadataForProvider(providerId, eventCode) ⇒ Promise.<object>

Get an event metadata for given provider and event code

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Event metadata that corresponds to the specified event code

ParamTypeDescription
providerIdstringThe id that uniquely identifies the provider whose event metadata is to be fetched
eventCodestringThe specific event code for which the details of the event metadata is to be fetched

eventsCoreAPI.createEventMetadataForProvider(consumerOrgId, projectId, workspaceId, providerId, body) ⇒ Promise.<object>

Create an event metadata for a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Details of the event metadata created

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringprovider for which the event metadata is to be added
bodyobjectJson data that describes the event metadata

eventsCoreAPI.updateEventMetadataForProvider(consumerOrgId, projectId, workspaceId, providerId, eventCode, body) ⇒ Promise.<object>

Update the event metadata for a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Details of the event metadata updated

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringprovider for which the event metadata is to be updated
eventCodestringeventCode of the event metadata to be updated
bodyobjectJson data that describes the event metadata

eventsCoreAPI.deleteEventMetadata(consumerOrgId, projectId, workspaceId, providerId, eventCode) ⇒ Promise.<object>

Delete an event metadata of a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Empty object if deletion was successful

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringprovider for which the event metadata is to be updated
eventCodestringeventCode of the event metadata to be updated

eventsCoreAPI.deleteAllEventMetadata(consumerOrgId, projectId, workspaceId, providerId) ⇒ Promise.<object>

Delete all event metadata of a provider

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Empty object if deletion was successful

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
projectIdstringProject Id from the console
workspaceIdstringWorkspace Id from the console
providerIdstringprovider for which the event metadata is to be updated

eventsCoreAPI.createWebhookRegistration(consumerOrgId, integrationId, body) ⇒ Promise.<object>

Create a webhook or journal registration

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Details of the webhook/journal registration created

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
integrationIdstringintegration Id from the console
bodyobjectJson data contains details of the registration

eventsCoreAPI.getWebhookRegistration(consumerOrgId, integrationId, registrationId) ⇒ Promise.<object>

Get registration details for a given registration

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Details of the webhook/journal registration

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
integrationIdstringIntegration Id from the console
registrationIdstringRegistration id whose details are to be fetched

eventsCoreAPI.getAllWebhookRegistrations(consumerOrgId, integrationId) ⇒ Promise.<object>

Get all registration details for a given integration

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - List of all webhook/journal registrations

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
integrationIdstringIntegration Id from the console

eventsCoreAPI.deleteWebhookRegistration(consumerOrgId, integrationId, registrationId) ⇒ Promise.<object>

Delete webhook registration

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - Empty object if deletion was successful

ParamTypeDescription
consumerOrgIdstringConsumer Org Id from the console
integrationIdstringIntegration Id from the console
registrationIdstringId of the registration to be deleted

eventsCoreAPI.publishEvent(cloudEvent) ⇒ Promise.<string>

Publish Cloud Events

Event publishers can publish events to the Adobe I/O Events using this SDK. The events should follow Cloud Events 1.0 specification: https://github.com/cloudevents/spec/blob/v1.0/spec.md. As of now, only application/json is accepted as the content-type for the "data" field of the cloud event. If retries are set, publish events are retried on network issues, 5xx and 429 error response codes.

Kind: instance method of EventsCoreAPI
Returns: Promise.<string> - Returns OK/ undefined in case of success and error in case of failure

ParamTypeDescription
cloudEventobjectObject to be published to event receiver in cloud event format

eventsCoreAPI.getEventsFromJournal(journalUrl, [eventsJournalOptions], [fetchResponseHeaders]) ⇒ Promise.<object>

Get events from a journal.

Kind: instance method of EventsCoreAPI
Returns: Promise.<object> - with the response json includes events and links (if available)

ParamTypeDescription
journalUrlstringURL of the journal or 'next' link to read from (required)
[eventsJournalOptions]EventsJournalOptionsQuery options to send with the URL
[fetchResponseHeaders]booleanSet this to true if you want to fetch the complete response headers

eventsCoreAPI.getEventsObservableFromJournal(journalUrl, [eventsJournalOptions], [eventsJournalPollingOptions]) ⇒ Observable

getEventsObservableFromJournal returns an RxJS Observable

One can go through the extensive documentation on RxJS in order to learn more and leverage the various RxJS Operators to act on emitted events.

Kind: instance method of EventsCoreAPI
Returns: Observable - observable to which the user can subscribe to in order to listen to events

ParamTypeDescription
journalUrlstringURL of the journal or 'next' link to read from (required)
[eventsJournalOptions]EventsJournalOptionsQuery options to send with the Journal URL
[eventsJournalPollingOptions]EventsJournalPollingOptionsJournal polling options

eventsCoreAPI.verifyDigitalSignatureForEvent(event, recipientClientId, [signatureOptions]) ⇒ boolean

Authenticating events by verifying digital signature

Kind: instance method of EventsCoreAPI
Returns: boolean - If signature matches return true else return false

ParamTypeDescription
eventobjectJSON payload delivered to the registered webhook URL
recipientClientIdstringTarget recipient client id retrieved from the Adobe I/O Console integration
[signatureOptions]SignatureOptionsMap of digital signature header fields defined in SignatureOptions

init(organizationId, apiKey, accessToken, [httpOptions]) ⇒ Promise.<EventsCoreAPI>

Returns a Promise that resolves with a new EventsCoreAPI object.

Kind: global function
Returns: Promise.<EventsCoreAPI> - returns object of the class EventsCoreAPI

ParamTypeDescription
organizationIdstringThe organization id from your integration
apiKeystringThe api key from your integration
accessTokenstringJWT Token for the integration with IO Management API scope
[httpOptions]EventsCoreAPIOptionsOptions to configure API calls

EventsCoreAPIOptions : object

Kind: global typedef
Properties

NameTypeDescription
[timeout]numberHttp request timeout in ms (optional)
[retries]numberNumber of retries in case of 5xx errors. Default 0 (optional)
[eventsBaseURL]stringBase URL for Events Default https://api.adobe.io (optional)
[eventsIngressURL]stringIngress URL for Events. Default https://eventsingress.adobe.io (optional)

EventsJournalOptions : object

Kind: global typedef
Properties

NameTypeDescription
[latest]booleanRetrieve latest events (optional)
[since]stringPosition at which to start fetching the events from (optional)
[limit]numberMaximum number of events to retrieve (optional)

EventsJournalPollingOptions : object

Kind: global typedef
Properties

NameTypeDescription
[interval]numberInterval at which to poll the journal; If not provided, a default value will be used (optional)

SignatureOptions : object

Kind: global typedef
Properties

NameTypeDescription
[digiSignature1]stringValue of digital signature retrieved from the x-adobe-digital-signature1 header
[digiSignature2]stringValue of digital signature retrieved from the x-adobe-digital-signature2 header
[publicKeyPath1]stringRelative path of ioevents public key retrieved from the x-adobe-public-key1-path header
[publicKeyPath2]stringRelative path of ioevents public key retrieved from the x-adobe-public-key2-path header

Debug Logs

LOG_LEVEL=debug <your_call_here>

Prepend the LOG_LEVEL environment variable and debug value to the call that invokes your function, on the command line. This should output a lot of debug data for your SDK calls.

Contributing

Contributions are welcome! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

FAQs

Package last updated on 23 Aug 2022

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc