rofl.yaml
Manifest File
Metadata
The following fields are valid in your yaml root:
name
: A short, human-readabe name for your ROFL app. e.g.my-rofl-app
version
: ROFL version. e.g.0.1.1
repository
: A path to the git repository. e.g.https://github.com/user/my-rofl-app
author
: The author name and their e-mail address. e.g.John Doe <john@doe.com>
license
: The ROFL license in SPDX format. e.g.Apache-2.0
tee
: The Trusted Execution Environment type. Valid options aretdx
(default) orsgx
kind
: The ROFL "flavor". Valid options for TDX TEE arecontainers
(default) orraw
. The only valid option for SGX TEE israw
App Resources (resources
)
Each containerized ROFL app must define what kind of resources it needs for its execution. This includes the number of assigned vCPUs, amount of memory, storage requirements, GPUs, etc.
Resources are specified in the app manifest file under the resources
section
as follows:
resources:
memory: 512
cpus: 1
storage:
kind: disk-persistent
size: 512
This chapter describes the set of supported resources.
Changing the requested resources will result in a different enclave identity of the ROFL app and will require the policy to be updated!
Memory (memory
)
The amount of memory is specified in megabytes. By default the this value is
initialized to 512
.
vCPU Count (cpus
)
The number of vCPUs allocated to the VM. By default this value is initialized to
1
.
Storage (storage
)
Each ROFL app can request different storage options, depending on its use case.
The storage kind is specified in the kind
field with the following values
currently supported:
-
disk-persistent
provisions a persistent disk of the given size. The disk is encrypted and authenticated using a key derived by the decentralized on-chain key management system after successful attestation. -
disk-ephemeral
provisions an ephemeral disk of the given size. The disk is encrypted and authenticated using an ephemeral key randomly generated on each boot. -
ram
provisions an ephemeral filesystem entirely contained in encrypted memory. -
none
does not provision any kind of storage. Specifying this option will not work for containerized apps.
The size
argument defines the amount of storage to provision in megabytes.
Deployments (deployments
)
This section contains ROFL deployments on specific networks.
<deployment name>
policy
Contains the policy under which the ROFL app will be allowed to spin up:
quotes
: defines a TEE-specific policy requirements such as the TCB validity period, and the minimum TCB-R number which indicates what security updates must be applied to the given platform.enclaves
: defines the allowed enclave IDs for running this ROFL app.endorsements
: a list of nodes which can run this ROFL app.- any: {}
: any node is allowed to run this ROFL app.- node: <node_id>
: node with a specific node ID is allowed to run this ROFL app. You can provide multiplenode
entries to allow the execution by any of the listed nodes.
fees: <fee_policy>
: who pays for the registration and other fees:endorsing_node
: the node running ROFL app pays the fees.instance
: ROFL app instance pays the fees.