Skip to main content

Example Headers And Payloads

To work with a webhook, you need to know a bit about the payload you’ll be receiving. Each event you receive a payload for will contain special headers that describe what the event is.

Example Headers

X-Request-Id: d535c62b-063e-4ace-90ce-f7b579d6c37c
Content-Type: application/json; charset=UTF-8
User-Agent: Nexus/3.1.0-SNAPSHOT (PRO; Mac OS X; 10.11.1; x86_64; 1.8.0_60)
X-Nexus-Webhook-Signature: 687f3719b87232cf1c11b3ef7ea10c49218b6df1
X-Nexus-Webhook-Id: rm:repository:asset
X-Nexus-Webhook-Delivery: 7f4a6dde-5c68-4999-bcc0-a62f3fb8ae48

Of special importance are the following three headers:

Header

Description

X-Webhook-Signature

This is the HMAC digest of the body of the payload, if an optional secret key has been configured

X-Nexus-Webhook-Delivery

This is a unique UUID identifying the event

X-Nexus-Webhook-Id

This is the event type, e.g. rm:repository:asset

A payload will be returned with each event type, an example of one for a repository asset webhook is shown below:

Example Payload

{
   "timestamp" : "2016-11-10T23:57:49.664+0000",
   "nodeId" : "52905B51-085CCABB-CEBBEAAD-16795588-FC927D93",
   "initiator" : "admin/127.0.0.1",
   "repositoryName" : "npm-proxy",
   "action" : "CREATED",
   "asset" : {
   "id" : "31c950c8eeeab78336308177ae9c441c",
   "assetId" : "bnBtLXByb3h5OjMxYzk1MGM4ZWVlYWI3ODMzNjMwODE3N2FlOWM0NDFj",
   "format" : "npm",
   "name" : "concrete"
  }
}

Events share common fields, described in detail below:

Header

Description

nodeId

A UUID that identifies which Nexus Repository Manager node the event originated from

timestamp

The ISO 8601 representation of the time the event occurred

initiator

The userId or "anonymous" for system events

Below, you will find examples of many Payloads that are returned, to help you get up and running with webhooks in Nexus Repository Manager.

Example Audit Payload

This is an example payload returned when a user is created inside of Nexus Repository Manager:

Global Audit Payload

{
  "nodeId":"7FFA7361-6ED33978-36997BD4-47095CC4-331356BE",
  "initiator":"admin/127.0.0.1",
  "audit":{
     "domain":"security.user",
     "type":"created",
     "context":"testuser",
     "attributes":{
        "id":"testuser",
        "name":"test user",
        "email":"test@test.com",
        "source":"default",
        "status":"active",
        "roles":"nx-admin, nx-anonymous"
      }
   }
}

Audit Event Fields

Field

Description

audit:domain

A string that identifies the domain where the event occurred

audit:type

A string that identifies action type that occurred on the object

audit:context

A string that identifies the object the event refers to

attributes

A list that describes the attributes on the object that the event occurred on

Example Repository Payload

This is an example payload returned when a PyPi proxy repository is created inside of Nexus Repository Manager:

Global Repository Payload

{
   "timestamp":"2016-11-14T20:19:34.525+0000",
   "nodeId":"7FFA7361-6ED33978-36997BD4-47095CC4-331356BE",
   "initiator":"admin/127.0.0.1",
   "action":"CREATED",
   "repository":{
      "format":"pypi",
      "name":"pypi-proxy",
      "type":"proxy"
   }
}

Repository Event Fields

Field

Description

action

A string that identifies the action performed on the repository

repository:format

A string that identifies the repository format type

repository:name

A string that identifies the repositories name

repository:type

A string that identifies the type of repository

Example Repository Asset Payload

This is an example payload returned when an asset is created inside of Nexus Repository Manager:

Repository Asset Payload

{
   "timestamp" : "2016-11-10T23:57:49.664+0000",
   "nodeId" : "52905B51-085CCABB-CEBBEAAD-16795588-FC927D93",
   "initiator" : "admin/127.0.0.1",
   "repositoryName" : "npm-proxy",
   "action" : "CREATED",
   "asset" : {
     "id" : "31c950c8eeeab78336308177ae9c441c",
     "assetId" : "bnBtLXByb3h5OjMxYzk1MGM4ZWVlYWI3ODMzNjMwODE3N2FlOWM0NDFj",
     "format" : "npm",
     "name" : "concrete"
  }
}

Repository Asset Event Fields

Field

Description

repositoryName

A string that identifies the repository where the event occurred

action

A string that identifies the action performed on the asset

asset:id

A UUID that identifies the assets ID (to be used with Groovy scripting)

asset:assetId

A UUID that identifies the assets ID (to be used with REST API)

asset:format

A string that identifies the repository format type

asset:name

A string that identifies the asset name

Example Repository Component Payload

This is an example payload returned when a component is created inside of Nexus Repository Manager:

Repository Component Payload

{
   "timestamp":"2016-11-14T19:32:13.515+0000",
   "nodeId":"7FFA7361-6ED33978-36997BD4-47095CC4-331356BE",
   "initiator":"anonymous/127.0.0.1",
   "repositoryName":"npm-proxy",
   "action":"CREATED",
   "component":{
      "id":"08909bf0c86cf6c9600aade89e1c5e25",
      "componentId":"bnBtLXByb3h5OjA4OTA5YmYwYzg2Y2Y2Yzk2MDBhYWRlODllMWM1ZTI1",
      "format":"npm",
      "name":"angular2",
      "group":"types",
      "version":"0.0.2"
   }
}

Repository Component Event Fields

Field

Description

repositoryName

A string that identifies the repository where the event occurred

action

A string that identifies the action performed on the component

component:id

A UUID that identifies the assets ID (to be used with Groovy scripting)

component:componentId

A UUID that identifies the assets ID (to be used with REST API)

component:format

A string that identifies the repository format type

component:name

A string that identifies the component name

component:group

A string that identifies the component group

component:version

A string that identifies the component version