Skip to content

Revenera SBOM Insights API (1.0)

Revenera SBOM Insights offers APIs to manage your Software Bill of Materials (SBOM) via buckets and parts. It supports manual software parts creation as well as ingestion of SBOMs in various formats. It also supports various queries into the constructed SBOM data.

Download OpenAPI description
Languages
Servers
Mock server
https://sbominsightsapi.redocly.app/_mock/openapi3
SBOM Insights API URL - Production
https://sca-api.revenera.com
SBOM Insights API URL - Staging
https://sca-api.reveneratest.com

Archetypes

Archetypes represents master 'types' that would be used across the system.

Operations

Buckets

Buckets are used to store a set of SBOM parts. They can represent an organization's entities such as business units and product families, as well as top-level applications and their elements such as modules and containers. Buckets can be nested under other buckets to form a hierarchy.

Operations

Files

Files represent the codebase files comprising the SBOM part. Each file has a name, relative path, and hashes.

Operations

Importer

The Importer processes SBOM data imports from multiple data sources and creates SBOM parts for the selected Bucket. An import is performed via a job, which allows for a persisted record of the transaction along with its resulting data summary and any encountered errors.

Operations

Jobs

Jobs are persisted transactions for background operations with a record of the transaction along with its resulting data summary and any encountered errors.

Operations

Parts

SBOM Parts represent open source, third-party, and commercial ingredients in a software application. An SBOM part can represent an operating system such as Linux with 60k+ files, individual files, a single binary, a source bundle for an open source component, and even fragments of code. Parts within an SBOM, and even across multiple SBOMs, are related to each other via links of various types including dependencies, found inside, related to, and several others.

Operations

View All SBOM Parts

Request

Retrieve all the parts.

Parts can be filtered using any 'one' of the following parameters.

parameterdescription
idscomma separated list of part ids
bucketIdscomma separated list of bucket ids
trailIdprovide job id to list all the records that was created/updated during the job run
Security
GlobalSession_header_Authorization(Required scopes:
sbom:bucket:create
sbom:bucket:delete
sbom:bucket:index
sbom:bucket:show
+41
)
Path
orgIdinteger(int64)required

Organization id

Example: 38808
Query
idsstring

comma separated list of part ids

Example: ids=12,34,56
bucketIdsstring

comma separated list of bucket ids

Example: bucketIds=12,34,56
trailIdinteger(int64)

jobid that created/modified the record

Example: trailId=22
offsetinteger>= 1

page number of the results to fetch, defaults to first page

Default 1
Example: offset=1
limitinteger<= 100

results per page (max 100)

Default 100
Example: limit=10
sortstring

sort the data by the given field e.g sort=field. Use this in combination with 'order' query param.

Default ""
Example: sort=id
orderstring^(?i)(asc|desc)$

order the results ascending / descending. Use : asc | desc

Default "asc"
Example: order=asc
curl -i -X GET \
  'https://sbominsightsapi.redocly.app/_mock/openapi3/sbom/v1/orgs/38808/parts?ids=12%2C34%2C56&bucketIds=12%2C34%2C56&trailId=22&offset=1&limit=10&sort=id&order=asc' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK response.

Bodyapplication/json
dataArray of strings(binary)
Example: [{"id":101,"other-fields":"please check the Schema for all the fields returned in this reponse"}]
metaobject(Metainfo)

Represents the Meta information that would be contained in each response returned.

Example: {"limit":100,"offset":1,"total":1000}
Response
application/json
{ "data": [ {} ], "meta": { "limit": 100, "offset": 1, "total": 1000 } }

Create SBOM Part

Request

Register a part

Security
GlobalSession_header_Authorization(Required scopes:
sbom:bucket:create
sbom:bucket:delete
sbom:bucket:index
sbom:bucket:show
+41
)
Path
orgIdinteger(int64)required

Organization id

Example: 38808
Bodyapplication/jsonrequired
additionalNotesstring

additional notes

Example: "Artistic License 1.0"
bucketIdinteger(int64)required

bucket id

Example: 205
catalogIdinteger(int64)

catalog associated to that part

Example: 644
copyrightTextstring

copyright text of the part

Example: "copyright text"
customFieldValuesstring

org specific custom field values for that particular bucket

Example: "{'field1': 'value1','field2': 'value2'}"
descriptionstring

part description

Example: "some text"
fileIdsArray of integers(int64)

ids of files assocaited

Example: [8587597350144002000,5372633121641905000]
linkIdinteger(int64)

id of the other part it's linked to

Example: 323
linkNotesstring

notes about the link

Example: "link notes"
linkTypeIdinteger(int64)

type of link to the other part. Ref: Archetypes api for details.

Example: 345
namestringrequired

part name

Example: "Some Part name"
noticesTextstring

notices text

Example: "some text"
originIdinteger(int64)

origin of the bucket. A bucket id from which this bucket was cloned or copied from.

Example: 1
originTypeIdinteger(int64)

origin type of the bucket. Ref: Archetypes api for details.

Example: 1
purlstring

package url

Example: "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64"
statusstringrequired

status of the part

Example: "Approved"
typeIdinteger(int64)required

type of the part Ref: Archetypes api for details.

Example: 1
urlstring

url

Example: "Artistic License 1.0"
curl -i -X POST \
  https://sbominsightsapi.redocly.app/_mock/openapi3/sbom/v1/orgs/38808/parts \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "additionalNotes": "Artistic License 1.0",
    "bucketId": 205,
    "catalogId": 644,
    "copyrightText": "copyright text",
    "customFieldValues": "{'\''field1'\'': '\''value1'\'','\''field2'\'': '\''value2'\''}",
    "description": "some text",
    "fileIds": [
      8657670097689851000,
      9191975148648903000
    ],
    "linkId": 323,
    "linkNotes": "link notes",
    "linkTypeId": 345,
    "name": "Some Part name",
    "noticesText": "some text",
    "originId": 1,
    "originTypeId": 1,
    "purl": "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64",
    "status": "Approved",
    "typeId": 1,
    "url": "Artistic License 1.0"
  }'

Responses

Created response.

Bodyapplication/json
idinteger(int64)required

ID of the newly created bucket

Example: 205
Response
application/json
{ "id": 411 }

Delete SBOM Part

Request

Un-register a part

Security
GlobalSession_header_Authorization(Required scopes:
sbom:bucket:create
sbom:bucket:delete
sbom:bucket:index
sbom:bucket:show
+41
)
Path
orgIdinteger(int64)required

Organization id

Example: 38808
partIdinteger(int64)required

Part id

Example: 1
curl -i -X DELETE \
  https://sbominsightsapi.redocly.app/_mock/openapi3/sbom/v1/orgs/38808/parts/1 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK response.

Bodyapplication/json
idinteger(int64)required

ID of the newly created bucket

Example: 205
Response
application/json
{ "id": 411 }

View Information for an SBOM Part

Request

Retrieve a part

Security
GlobalSession_header_Authorization(Required scopes:
sbom:bucket:create
sbom:bucket:delete
sbom:bucket:index
sbom:bucket:show
+41
)
Path
orgIdinteger(int64)required

Organization id

Example: 38808
partIdinteger(int64)required

Identifies a part by ID.

Example: 411
curl -i -X GET \
  https://sbominsightsapi.redocly.app/_mock/openapi3/sbom/v1/orgs/38808/parts/411 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK response.

Bodyapplication/json
additionalNotesstring
Example: "additional notes"
bucketstring(binary)
Example: {"bucketType":22,"description":"a new buckets with desc","id":5,"name":"my bucket in an org","orgId":40062,"parentId":"null","typeId":1}
bucketIdinteger(int64)
Example: 205
catalogstring(binary)
Example: {"id":1,"orgId":-1,"title":"vul-bug-apache-struts"}
catalogIdinteger(int64)
Example: 644
copyrightTextstring
Example: "multi line copyright text"
createdBystring(binary)
Example: {"email":"adam@server.com","firstName":"Adam","id":2435456,"lastName":"Stone"}
createdOnstring
Example: "2022-07-20 04:55:49"
customFieldValuesobject(Customfieldvalues)
Example: {"value":"{ field1 : value1 , field2 : value2 }"}
descriptionstring
Example: "multi line description about the part"
fileIdsArray of integers(int64)
Example: [4856849504480032000,7276947136532931000]
idinteger(int64)
Example: 411
internalNotesobject(Internalnotes)
Example: {"value":"Laborum suscipit minus quos."}
linkIdinteger(int64)
Example: 404
linkNotesstring
Example: "notes about the link estabilished"
linkTypestring(binary)
Example: {"category":"link_types","id":9,"key":"cloned","label":"Clone","orgId":-1}
linkTypeIdinteger(int64)
Example: 54
modifiedBystring(binary)
Example: {"email":"adam@server.com","firstName":"Adam","id":2435456,"lastName":"Stone"}
modifiedOnstring
Example: "2022-07-20 04:55:49"
namestring
Example: "my bucket name"
noticesTextstring
Example: "multi line notices text"
orgIdinteger(int64)
Example: 38808
originIdinteger(int64)
Example: 545
originTypestring(binary)
Example: "Aperiam inventore quia."
originTypeIdinteger(int64)
Example: 54
partTypestring(binary)
Example: {"category":"part_types","id":9,"key":"application","label":"Application","orgId":-1}
purlstring
Example: "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64"
statusstring
Example: "Reviewed / Not Reviewed / Pending"
trailIdinteger(int64)
Example: 22
typeIdinteger(int64)
Example: 1
urlstring
Example: "http://github.com/my/component"
vulnerabilitySummaryobject(VulnerabilitySummary)
Example: {"cvss2":{"high":52,"low":10,"medium":38,"unknown":0},"cvss3":{"critical":13,"high":17,"low":0,"medium":7,"none":63},"total":10}
Response
application/json
{ "additionalNotes": "additional notes", "bucket": { "bucketType": 22, "description": "a new buckets with desc", "id": 5, "name": "my bucket in an org", "orgId": 40062, "parentId": "null", "typeId": 1 }, "bucketId": 205, "catalog": { "id": 1, "orgId": -1, "title": "vul-bug-apache-struts" }, "catalogId": 644, "copyrightText": "multi line copyright text", "createdBy": { "email": "adam@server.com", "firstName": "Adam", "id": 2435456, "lastName": "Stone" }, "createdOn": "2022-07-20 04:55:49", "customFieldValues": { "value": "{ field1 : value1 , field2 : value2 }" }, "description": "multi line description about the part", "fileIds": [ 6388167972581648000, 7106059467961315000 ], "id": 411, "internalNotes": { "value": "Atque alias odit." }, "linkId": 404, "linkNotes": "notes about the link estabilished", "linkType": { "category": "link_types", "id": 9, "key": "cloned", "label": "Clone", "orgId": -1 }, "linkTypeId": 54, "modifiedBy": { "email": "adam@server.com", "firstName": "Adam", "id": 2435456, "lastName": "Stone" }, "modifiedOn": "2022-07-20 04:55:49", "name": "my bucket name", "noticesText": "multi line notices text", "orgId": 38808, "originId": 545, "originType": "Non voluptas atque recusandae tenetur.", "originTypeId": 54, "partType": { "category": "part_types", "id": 9, "key": "application", "label": "Application", "orgId": -1 }, "purl": "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64", "status": "Reviewed / Not Reviewed / Pending", "trailId": 22, "typeId": 1, "url": "http://github.com/my/component", "vulnerabilitySummary": { "cvss2": {}, "cvss3": {}, "total": 10 } }

Update SBOM Part

Request

Update part information

Security
GlobalSession_header_Authorization(Required scopes:
sbom:bucket:create
sbom:bucket:delete
sbom:bucket:index
sbom:bucket:show
+41
)
Path
orgIdinteger(int64)required

Organization id

Example: 38808
partIdinteger(int64)required

part id

Example: 411
Bodyapplication/jsonrequired
additionalNotesstring

additional notes

Example: "multi line additional notes"
bucketIdinteger(int64)

bucket id

Example: 205
catalogIdinteger(int64)

catalog associated to that part

Example: 1
copyrightTextstring

copyright text of the part

Example: "copyright text"
customFieldValuesstring

org specific custom field values for that particular bucket

Example: "{'field1': 'value1','field2': 'value2'}"
descriptionstring

part description

Example: "full description of the part"
fileIdsArray of integers(int64)

ids of files assocaited

Example: [3261006363549719600,783716059535085400,2309888631560961500]
linkIdinteger(int64)

id of the other part it's linked to

Example: 323
linkNotesstring

notes about the link

Example: "link notes"
linkTypeIdinteger(int64)

type of link to the other part. Ref: Archetypes api for details.

Example: 345
namestring

part name

Example: "Some Part name"
noticesTextstring

notices text

Example: "multi line notices text"
originIdinteger(int64)

origin of the bucket. A bucket id from which this bucket was cloned or copied from.

Example: 1
originTypeIdinteger(int64)

origin type of the bucket. Ref: Archetypes api for details.

Example: 1
purlstring

package url

Example: "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64"
statusstring

status of the part

Example: "Approved"
typeIdinteger(int64)

type of the part Ref: Archetypes api for details.

Example: 1
urlstring

url

Example: "http://github.com/ven/rep"
curl -i -X PUT \
  https://sbominsightsapi.redocly.app/_mock/openapi3/sbom/v1/orgs/38808/parts/411 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "additionalNotes": "multi line additional notes",
    "bucketId": 205,
    "catalogId": 1,
    "copyrightText": "copyright text",
    "customFieldValues": "{'\''field1'\'': '\''value1'\'','\''field2'\'': '\''value2'\''}",
    "description": "full description of the part",
    "fileIds": [
      3448109934389025000,
      3612097320600397000,
      5796970362103919000,
      5426399058772692000
    ],
    "linkId": 323,
    "linkNotes": "link notes",
    "linkTypeId": 345,
    "name": "Some Part name",
    "noticesText": "multi line notices text",
    "originId": 1,
    "originTypeId": 1,
    "purl": "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64",
    "status": "Approved",
    "typeId": 1,
    "url": "http://github.com/ven/rep"
  }'

Responses

OK response.

Bodyapplication/json
additionalNotesstring
Example: "additional notes"
bucketstring(binary)
Example: {"bucketType":22,"description":"a new buckets with desc","id":5,"name":"my bucket in an org","orgId":40062,"parentId":"null","typeId":1}
bucketIdinteger(int64)
Example: 205
catalogstring(binary)
Example: {"id":1,"orgId":-1,"title":"vul-bug-apache-struts"}
catalogIdinteger(int64)
Example: 644
copyrightTextstring
Example: "multi line copyright text"
createdBystring(binary)
Example: {"email":"adam@server.com","firstName":"Adam","id":2435456,"lastName":"Stone"}
createdOnstring
Example: "2022-07-20 04:55:49"
customFieldValuesobject(Customfieldvalues)
Example: {"value":"{ field1 : value1 , field2 : value2 }"}
descriptionstring
Example: "multi line description about the part"
fileIdsArray of integers(int64)
Example: [4856849504480032000,7276947136532931000]
idinteger(int64)
Example: 411
internalNotesobject(Internalnotes)
Example: {"value":"Laborum suscipit minus quos."}
linkIdinteger(int64)
Example: 404
linkNotesstring
Example: "notes about the link estabilished"
linkTypestring(binary)
Example: {"category":"link_types","id":9,"key":"cloned","label":"Clone","orgId":-1}
linkTypeIdinteger(int64)
Example: 54
modifiedBystring(binary)
Example: {"email":"adam@server.com","firstName":"Adam","id":2435456,"lastName":"Stone"}
modifiedOnstring
Example: "2022-07-20 04:55:49"
namestring
Example: "my bucket name"
noticesTextstring
Example: "multi line notices text"
orgIdinteger(int64)
Example: 38808
originIdinteger(int64)
Example: 545
originTypestring(binary)
Example: "Aperiam inventore quia."
originTypeIdinteger(int64)
Example: 54
partTypestring(binary)
Example: {"category":"part_types","id":9,"key":"application","label":"Application","orgId":-1}
purlstring
Example: "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64"
statusstring
Example: "Reviewed / Not Reviewed / Pending"
trailIdinteger(int64)
Example: 22
typeIdinteger(int64)
Example: 1
urlstring
Example: "http://github.com/my/component"
vulnerabilitySummaryobject(VulnerabilitySummary)
Example: {"cvss2":{"high":52,"low":10,"medium":38,"unknown":0},"cvss3":{"critical":13,"high":17,"low":0,"medium":7,"none":63},"total":10}
Response
application/json
{ "additionalNotes": "additional notes", "bucket": { "bucketType": 22, "description": "a new buckets with desc", "id": 5, "name": "my bucket in an org", "orgId": 40062, "parentId": "null", "typeId": 1 }, "bucketId": 205, "catalog": { "id": 1, "orgId": -1, "title": "vul-bug-apache-struts" }, "catalogId": 644, "copyrightText": "multi line copyright text", "createdBy": { "email": "adam@server.com", "firstName": "Adam", "id": 2435456, "lastName": "Stone" }, "createdOn": "2022-07-20 04:55:49", "customFieldValues": { "value": "{ field1 : value1 , field2 : value2 }" }, "description": "multi line description about the part", "fileIds": [ 72174769622849060, 8969560062921569000, 6282079258586465000 ], "id": 411, "internalNotes": { "value": "Atque alias odit." }, "linkId": 404, "linkNotes": "notes about the link estabilished", "linkType": { "category": "link_types", "id": 9, "key": "cloned", "label": "Clone", "orgId": -1 }, "linkTypeId": 54, "modifiedBy": { "email": "adam@server.com", "firstName": "Adam", "id": 2435456, "lastName": "Stone" }, "modifiedOn": "2022-07-20 04:55:49", "name": "my bucket name", "noticesText": "multi line notices text", "orgId": 38808, "originId": 545, "originType": "Consectetur nam repellendus.", "originTypeId": 54, "partType": { "category": "part_types", "id": 9, "key": "application", "label": "Application", "orgId": -1 }, "purl": "pkg:alpine/alpine-keys@2.4-r0?arch=x86_64", "status": "Reviewed / Not Reviewed / Pending", "trailId": 22, "typeId": 1, "url": "http://github.com/my/component", "vulnerabilitySummary": { "cvss2": {}, "cvss3": {}, "total": 10 } }