Bes Lab Info & Status
Version 0.1.0 (Jan 25, 2024)
Original authors:
- Vinod Panicker (@panickervinod)
- Harimohan Rajamohanan (@harimohanr)
- Arun Suresh (@asa1997)
- Sudhir Verma(@sudhirverma)
Purpose
This document provides an overview of BeSLab, covering essential details related to the lab. These include the id, name, version specifics, owner information, date_of_creation as well as size, poi (projects of interest) count, moi (models of interest) count and voi (vulnerabilities of interest) count. Additionally, the document outlines the various tools hosted within the lab.
BeSLab is a dynamic environment where Open Source projects, tools, vulnerabilities, and models can be seamlessly integrated using the BLIman utility. This utility also facilitates the creation and launch of the lab.
This format is stable, but further backwards compatible changes may still be made. Please feel free to create an issue in this repo.
Format Overview
The format is a JSON-based encoding format, using the following informal schema. The exact details of each field are elaborated in the next section. All ‘STRING’s contain UTF-8 text.
{
"schema_version": "STRING",
"id": "STRING",
"name": "STRING",
"description": "STRING",
"owner":{
"name": "STRING",
"type": "STRING"
},
"date_of_creation": "STRING",
"modified_date": "STRING",
"size": "STRING",
"poi": "NUMBER",
"voi": "NUMBER",
"moi": "NUMBER",
"tools":[
{
"type": "STRING",
"name": "STRING",
"version": "STRING"
}
],
"datastore": [
{
"type": "STRING",
"scope": "STRING",
"path": "STRING"
}
],
"instances": [
{
"id": "STRING",
"name": "STRING",
"type": "STRING",
"description": "STRING"
}
]
}
Field Details
schema_version field
{
"schema_version": "STRING"
}
The schema_version
field is used to indicate which version of the schema the data was exported with. This can help consumer applications decide how to import the data for their own systems and offer some protection against future breaking changes. The value should be a string matching the schema version, which follows the SemVer 2.0.0 format, with no leading “v” prefix. If no value is specified, it should be assumed to be 1.0.0
, matching version 1.0 of the schema. Clients can assume that new minor and patch versions of the schema only add new fields, without changing the meaning of old fields, so that a client that knows how to read version 1.2.0 can process data identifying as schema version 1.3.0 by ignoring any unexpected fields.
name
{
"name": "STRING"
}
The name
field gives you the name of the lab.
version
{
"version": {
"tag": "STRING",
"release_date": "STRING"
}
}
The version
field is a dictionary which gives you the details of version of the lab. The tag
field is a string which gives you the release tag. The release_date
field gives you the date of the release.
description
{
"description": "STRING"
}
The description
field contains the detailed description of what the lab is about.
owner
{
"owner": {
"name": "STRING",
"type": "STRING"
}
}
The owner
field is a dictionary which gives you the details of the entity that owns the lab.
- The
name
field gives you the name of the entity that owns the lab. - The
type
field gives you the type of entity. It can take the following values -user
ororganization
.
date_of_creation
{
"date_of_creation": "STRING"
}
The date_of_creation
field gives the time the entry should be considered to have been published, as an RFC3339-formatted time stamp.
modified_date
{
"modified_date": "STRING"
}
The modified_date
field gives the time the entry was last modified, as an RFC3339-formatted timestamp.
size
{
"size": "STRING"
}
The size
field gives you the total size of the lab in standarad metrics (KB, MB, …).
instances
{
"instances": [
{
"id": "STRING",
"name": "STRING",
"type": "STRING",
"description": "STRING"
}
]
}
The instances
field is a json array which gives you the details of the instances of the lab. Each entry contains,
id
: The id of the instance.name
: The name of the instance.type
: Type of the instance. Eg:-virtual machine
orcontainer
.description
: Description about the instance.