diff --git a/core-concepts/did-ddo.md b/core-concepts/did-ddo.md index 42dc3fc5..d9fa5e0a 100644 --- a/core-concepts/did-ddo.md +++ b/core-concepts/did-ddo.md @@ -128,8 +128,7 @@ Example: } } ``` - -**Algorithm Metadata** +#### Algorithm Metadata An asset of type `algorithm` has additional attributes under `metadata.algorithm`, describing the algorithm and the Docker environment it is supposed to be run under. @@ -194,7 +193,7 @@ An asset should have at least one service to be actually accessible, and can hav | **`consumerParameters`** | [Consumer Parameters](did-ddo.md#consumer-parameters) | | An object the defines required consumer input before consuming the asset | | **`additionalInformation`** | Object | | Stores additional information, this is customizable by publisher | -**Files** +##### Files The `files` field is returned as a `string` which holds the encrypted file URLs. @@ -295,63 +294,18 @@ To get information about the files after encryption, the `/fileinfo` endpoint of This only concerns metadata about a file, but never the file URLs. The only way to decrypt them is to exchange at least 1 datatoken based on the respective service pricing scheme. -**Compute Options** +##### Compute Options An asset with a service of `type` `compute` has the following additional attributes under the `compute` object. This object is required if the asset is of `type` `compute`, but can be omitted for `type` of `access`. -|

allowRawAlgorithm

TypeRequiredDescription
booleanIf true, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be false by default in all implementations.
| | | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | -|

allowNetworkAccess

TypeRequiredDescription
booleanIf true, the algorithm job will have network access.
| | | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -| Type | Required | Description | -| `boolean` | **✓** | If `true`, the algorithm job will have network access. | -|

publisherTrustedAlgorithmPublishers

TypeRequiredDescription
Array of stringIf not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed.
| | | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -| Type | Required | Description | -| Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | -|

publisherTrustedAlgorithms

TypeRequiredDescription
Array of publisherTrustedAlgorithmsIf not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below).
| | | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | -| Type | Required | Description | -| Array of `publisherTrustedAlgorithms` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. Otherwise only the algorithms defined in the array are allowed. (see below). | +| Attribute | Type | Required | Description | +| ------------------------------ | -------- | -------- | ----------------------------------------------------------- | +| `allowRawAlgorithm` | `boolean` | **✓** | If `true`, any passed raw text will be allowed to run. Useful for an algorithm drag & drop use case, but increases risk of data escape through malicious user input. Should be `false` by default in all implementations. | +| `allowNetworkAccess` | `boolean` | **✓** | If `true`, the algorithm job will have network access. | +| `publisherTrustedAlgorithmPublishers` | Array of `string` | **✓** | If not defined, then any published algorithm is allowed. If empty array, then no algorithm is allowed. If not empty any algo published by the defined publishers is allowed. | +| `publisherTrustedAlgorithms` | Array of `publisherTrustedAlgorithms` | **✓** | | + + The `publisherTrustedAlgorithms` is an array of objects with the following structure: @@ -415,7 +369,7 @@ Example: } ``` -**Consumer Parameters** +##### Consumer Parameters Sometimes, the asset needs additional input data before downloading or running a Compute-to-Data job. Examples: