OpsLevel
OpsLevel is a system management tool that provides visibility into your organization's operational infrastructure. You can bring infrastructure, repository, service, team, and user data from OpsLevel into Brinqa to enhance oversight of your security framework, thus strengthening your cybersecurity posture.
This document details the information you must provide for the connector to authenticate with OpsLevel and how to obtain that information from OpsLevel. See create a data integration for step-by-step instructions on setting up the integration.
Required connection settings
When setting up a data integration, select OpsLevel from the Connector drop-down. If you cannot find the connector in the drop-down, make sure that you have installed it first. You must provide the following information to authenticate OpsLevel with Brinqa:
-
API URL: The OpsLevel API Server URL: The default URL is
https://app.opslevel.com
. -
API token: The API token associated with the OpsLevel account, which must have permissions to log in to the API server and return data.
Generate an OpsLevel API token
For the OpsLevel connector to retrieve data from the OpsLevel API, you must provide an API token. To generate an API token, follow these steps:
-
Log in to your OpsLevel portal as an administrator.
-
Click API in the navigation menu.
-
Click Create API Token.
The "Create API Token" dialog displays.
-
Provide a description for the token, and then click Create API Token.
Your new API token displays. You can't view the token again after this. Copy and save it to a secure location.
If you do not have the permissions to create an API token, contact your OpsLevel administrator. For additional information, see OpsLevel documentation.
Additional settings
The OpsLevel connector contains an additional option for specific configuration:
- Maximum retries: The maximum number of times that the integration attempts to connect to the OpsLevel API before giving up and reporting a failure. The default setting is 5.
Types of data to retrieve
The OpsLevel connector can retrieve the following types of data from the OpsLevel API:
Table 1: Data retrieved from OpsLevel
Connector Object | Required | Maps to Data Model |
---|---|---|
Infrastructure | Yes | Host |
Repository | Yes | Code Repository |
Service | Yes | Application |
Team | Yes | Team |
User | Yes | Person |
The OpsLevel connector does not currently support operation options for the types of data it retrieves.
For detailed steps on how to view the data retrieved from OpsLevel in the Brinqa Platform, see How to view your data.
Attribute mappings
Expand the sections below to view the mappings between the source and the Brinqa data model attributes.
Repository
Table 2: Repository attribute mappings
Source Field Name | Maps to Attribute |
---|---|
repository.archivedAt | archivedAt |
repository.createdOn | sourceCreatedDate |
repository.defaultAlias | alias |
repository.defaultBranch | defaultBranch |
repository.description | description |
repository.forked | forked |
repository.id | uid |
repository.languages | languages |
repository.locked | locked |
repository.name | name |
repository.organization | organization |
repository.owner | owner |
repository.repoKey | repoKey |
repository.type | repoType |
repository.url | url |
repository.visibility | visibility |
repository.visible | visible |
repository.tier | tier |
Service
Table 3: Service attribute mappings
Source Field Name | Maps to Attribute |
---|---|
node.id | uid |
service.aliases | aliases |
service.dependencies | dependencies |
service.description | description |
service.framework | framework |
service.language | languages |
service.lifecycle | lifecycle |
service.name | name |
service.owner | owner |
service.product | product |
service.properties | properties |
service.repositories | repositories |
service.system | system |
service.tags | tags |
service.tier | tier |
service.tools | tools |
Team
Table 4: Team attribute mappings
Source Field Name | Maps to Attribute |
---|---|
team.aliases | aliases |
team.id | uid |
team.name | name |
team.responsibilities | description |
User
Table 5: User attribute mappings
Source Field Name | Maps to Attribute |
---|---|
user.email | emails |
user.id | uid |
user.name | name |
user.role | role |
APIs
The OpsLevel connector uses the OpsLevel GraphQL API. Specifically, it uses the following queries:
Infrastructure GraphQL query
query get_infrastructure($endCursor: String) {
account {
infrastructureResources(after: $endCursor) {
nodes {
aliases
data
href
id
name
lastSyncedAt
providerData {
accountName
externalUrl
providerName
}
providerResourceType
rawData
tags {
nodes {
key
value
}
}
type
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
Repository GraphQL query
query get_repositories($endCursor: String) {
account {
repositories(after: $endCursor) {
nodes {
id
name
archivedAt
createdOn
defaultAlias
defaultBranch
description
forked
languages {
name
}
locked
organization
owner {
id
}
repoKey
type
url
visibility
visible
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
Service GraphQL query
query get_services($endCursor: String) {
account {
services(after: $endCursor) {
nodes {
name
id
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
Team GraphQL query
query get_teams($endCursor: String) {
account {
teams(after: $endCursor) {
nodes {
id
name
aliases
responsibilities
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
User GraphQL query
query get_users($endCursor: String) {
account {
users(after: $endCursor) {
nodes {
id
name
role
teams {
nodes {
id
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
Changelog
The OpsLevel connector has undergone the following changes:
3.0.3
- Added the Infrastructure object.
3.0.2
-
Added the TEAMS attribute to the User object.
-
Added the TIER attribute to the Service object.
3.0.1
- Modified the Service object to use GraphQL instead of YAML for parsing, mitigating a vulnerability in the dependencies.
3.0.0
- Initial Integration+ release.