Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
![]()
freta is a command line utility supporting scriptable bulk upload to the Freta volatile
memory image inspection service.
Note
Interactive device authentication, similar to that of az login, will be requested
as needed. The resulting access token will be cached in the user's home directory.
Please see Sign in with Azure CLI
for more information.
freta
Usage
$ freta --help
Project Freta client
Usage: freta <COMMAND>
Commands:
eula
config config
login
logout
licenses
info
images
artifacts
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help information
-V, --version Print version information
$
freta eula
The eula subcommands interact with the service to retrieve, accept, and reject the current EULA required to use the service.`
Usage
$ freta eula --help
Usage: freta eula <COMMAND>
Commands:
get
accept
reject
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help information
$
freta eula get
Retrieve the current eula.
Usage
$ freta eula get --help
Usage: freta eula get
Options:
-h, --help Print help information
$
Example
$ freta eula get > eula.html
$
freta eula reject
Reject the current eula.
Usage
$ freta eula reject --help
Usage: freta eula reject
Options:
-h, --help Print help information
$
Example
$ freta eula reject
$
freta eula accept
Accept the current eula
Usage
$ freta eula accept --help
Usage: freta eula accept
Options:
-h, --help Print help information
$
Example
$ freta eula accept
$
freta config
Sets the configuration for the CLI
Usage
$ freta config --help
config
Usage: freta config [OPTIONS]
Options:
--reset
reset configuration to default
--tenant-id <TENANT_ID>
--client-id <CLIENT_ID>
--client-secret <CLIENT_SECRET>
note: use the empty string to remove an existing client secret
--api-url <API_URL>
--scope <SCOPE>
note: use the empty string to remove an exisitng scope
-h, --help
Print help information
$
Example
$ freta config --reset
[2022-10-21T20:23:04Z INFO freta] config saved: Config { api url: "https://freta.microsoft.com/", client id: "574efb07-14a8-4232-a200-89714a0324c9", tenant id: "common", scope: "api://a934fc14-92d7-4127-aecd-bddab35935da/.default" }
$
freta login
The login command authenticates to obtain an access token for the Freta service.
Note
If you already have a saved access token then no action will be required.
The token is saved to ~/.config/freta/login.cache.
Usage
$ freta login --help
Usage: freta login
Options:
-h, --help Print help information
$
Example
$ freta login
$
freta logout
The logout command deletes any saved Freta access token.
Usage
$ freta logout --help
Usage: freta logout
Options:
-h, --help Print help information
$
freta images list
List the available images
Usage
$ freta images list --help
list images
Usage: freta images list [OPTIONS]
Options:
--image-id <IMAGE_ID>
image id
--owner-id <OWNER_ID>
owner id
--state <STATE>
state
Possible values:
- waiting-for-upload: The service has not recieved notification the upload has completed
- to-queue: The image is ready to be queued
- queued: The image has been queued for analysis
- running: The image is currently being analyzed
- finalizing: The results of the analysis are being uploaded
- completed: The analysis has completed successfully
- failed: The analysis of the image failed
- deleting: The image and it's related artifacts are currently being deleted
--include-samples
include sample images
-h, --help
Print help information (use `-h` for a summary)
$
Example
$ freta images list --state completed | jq
{
"images": [
{
"last_updated": "2022-09-28T17:49:01.8367376Z",
"owner_id": "11111111-1111-1111-1111-111111111111_11111111-1111-1111-1111-111111111111",
"image_id": "11111111-1111-1111-1111-111111111111",
"state": "completed",
"format": "lime",
"tags": {
"name": "Canonical:UbuntuServer:14.04.5-LTS:latest"
},
"shareable": false
}
]
}
$
freta images get
Get the status of a single image
Usage
$ freta images get --help
get information about an image
Usage: freta images get <IMAGE_ID>
Arguments:
<IMAGE_ID>
Options:
-h, --help Print help information
$
Example
$ freta images get 11111111-1111-1111-1111-111111111111
{
"last_updated": "2022-10-21T20:33:59.491417Z",
"owner_id": "11111111-1111-1111-1111-111111111111_11111111-1111-1111-1111-111111111111",
"image_id": "11111111-1111-1111-1111-111111111111",
"state": "completed",
"format": "lime",
"image_url": "https://REDACTED_URL",
"artifacts_url": "https://REDACTED_URL",
"tags": {
"name": "Canonical:0001-com-ubuntu-server-hirsute:21_04:latest"
},
"shareable": false
}
$
freta images upload
Upload an image file for analysis
Usage
$ freta images upload --help
upload image
Usage: freta images upload [OPTIONS] <FILE>
Arguments:
<FILE>
image path
Options:
--format <FORMAT>
image format
Possible values:
- vmrs:
Hyper-V 'checkpoint' files
- raw:
RAW memory dumps, such as created with `dd`
- lime:
Lime memory dumps, as created with AVML or LiME
- core:
Full-system Linux core dumps, such as memory dumps as created by VirtualBox or Dumpit for Linux
- avmh:
Internal memory snapshot feature
--monitor
monitor
--show-result
show result (after monitoring)
--tags <KEY=VALUE>
specify multiple times to include multiple key/value pairs
-h, --help
Print help information (use `-h` for a summary)
$
Example
$ freta images upload ./image.lime --tags 'name=test image'
[2022-10-21T20:34:26Z INFO freta::client] uploading as image id: 11111111-1111-1111-1111-111111111111
$
freta images monitor
Monitor the analysis state of an image
Usage
$ freta images monitor --help
monitor the analysis of an image
Usage: freta images monitor <IMAGE_ID>
Arguments:
<IMAGE_ID>
Options:
-h, --help Print help information
$
Example
$ freta images monitor 11111111-1111-1111-1111-111111111111
[2022-10-21T20:34:27Z INFO freta::client] analysis completed
$
freta images create
Creates an image reference with a SAS URI authorizing an upload of an image.
Note
Use the resulting image.image_url with an azure blob store utility, such as
azcopy, to upload the image. The image will be analyzed once the upload has
completed.
Usage
$ freta images create --help
create
Usage: freta images create [OPTIONS] <FORMAT>
Arguments:
<FORMAT>
image format
Possible values:
- vmrs:
Hyper-V 'checkpoint' files
- raw:
RAW memory dumps, such as created with `dd`
- lime:
Lime memory dumps, as created with AVML or LiME
- core:
Full-system Linux core dumps, such as memory dumps as created by VirtualBox or Dumpit for Linux
- avmh:
Internal memory snapshot feature
Options:
--tags <KEY=VALUE>
specify multiple times to include multiple key/value pairs
-h, --help
Print help information (use `-h` for a summary)
$
Example
$ freta images create lime --tags 'name=test image'
{
"owner_id": "11111111-1111-1111-1111-111111111111_11111111-1111-1111-1111-111111111111",
"image_id": "11111111-1111-1111-1111-111111111111",
"state": "waiting_for_upload",
"format": "lime",
"image_url": "https://REDACTED_URL",
"tags": {
"name": "test image"
},
"shareable": false
}
$
freta images delete
Deletes an image
Usage
$ freta images delete --help
delete an image
Usage: freta images delete <IMAGE_ID>
Arguments:
<IMAGE_ID>
Options:
-h, --help Print help information
$
freta images update
Update the metadata for an image: shareable and tags.
Usage
$ freta images update --help
Usage: freta images update [OPTIONS] <IMAGE_ID>
Arguments:
<IMAGE_ID> image id
Options:
--shareable <SHAREABLE> [possible values: true, false]
--tags <KEY=VALUE> specify multiple times to include multiple key/value pairs
-h, --help Print help information
$
Example
$ freta images update 11111111-1111-1111-1111-111111111111 --shareable false
{
"last_updated": "2022-10-21T20:33:59.491417Z",
"owner_id": "11111111-1111-1111-1111-111111111111_11111111-1111-1111-1111-111111111111",
"image_id": "11111111-1111-1111-1111-111111111111",
"state": "completed",
"format": "lime",
"tags": {
"name": "Canonical:0001-com-ubuntu-server-hirsute:21_04:latest"
},
"shareable": false
}
$
freta images reanalyze
Reanalyze the specified image
Usage
$ freta images reanalyze --help
reanalyze an image
Usage: freta images reanalyze <IMAGE_ID>
Arguments:
<IMAGE_ID>
Options:
-h, --help Print help information
$
freta artifacts list
Lists the available artifacts from a successfully analyzed image
Usage
$ freta artifacts list --help
List artifacts for an image
Usage: freta artifacts list <IMAGE_ID>
Arguments:
<IMAGE_ID>
Options:
-h, --help Print help information
$
freta artifacts get
Gets the contents of an artifact
Usage
$ freta artifacts get --help
Usage: freta artifacts get [OPTIONS] <IMAGE_ID> <PATH>
Arguments:
<IMAGE_ID>
<PATH>
Options:
--output <OUTPUT> output path
-h, --help Print help information
$
Example
$ freta artifacts get 11111111-1111-1111-1111-111111111111 report.json > report.json
$
freta licenses
Gets the licenses for third-party libraries used by Freta
Usage
$ freta licenses --help
Usage: freta licenses
Options:
-h, --help Print help information
$
Example
$ freta licenses >licenses.txt
$
freta info
Gets information on the service
Usage
$ freta info --help
Usage: freta info
Options:
-h, --help Print help information
$
Example
$ freta info
{
"api_version": "0.7.2",
"models_version": "0.10.0",
"current_eula": "993C44214D3E5D0EEB92679E41FC0C4D69DA9C37EF97988FB724C7B2493695BB",
"formats": [
"vmrs",
"raw",
"lime",
"core",
"avmh"
]
}
$