Schema

Objects


Application Metadata

Application Metadata Properties

TypeDescriptionRequired
namestring✓ Yes
description["string", "null"]No
versionstring✓ Yes
authorsstring []No
homepage["string", "null"]No

Additional properties are allowed.

  • JSON schema:

AppMetadata.name

  • Type: string
  • Required: ✓ Yes

AppMetadata.description

  • Type: ["string", "null"]
  • Required: No

AppMetadata.version

  • Type: string
  • Required: ✓ Yes

AppMetadata.authors

  • Type: string []
  • Required: No

AppMetadata.homepage

  • Type: ["string", "null"]
  • Required: No

Computation Manifest

Computation Manifests let Requestors define a certain set of allowed actions, to be negotiated with and approved by a Provider. Requestors' actions will be verified against the Manifest during computation.

Computation Manifest Properties

TypeDescriptionRequired
versionstringSemver✓ Yes
scriptobjectDefines a set of allowed ExeScript commands and applies constraints to their arguments.No
netobjectApplies constraints to networking. Currently, outgoing requests to the public Internet network are covered.No

Additional properties are allowed.

  • JSON schema:

CompManifest.version

Semver

  • Type: string
  • Required: ✓ Yes

CompManifest.script

Defines a set of allowed ExeScript commands and applies constraints to their arguments.

  • Type: object
  • Required: No
  • Allowed values:

CompManifest.net

Applies constraints to networking. Currently, outgoing requests to the public Internet network are covered.

  • Type: object
  • Required: No
  • Allowed values:

Computation Payload Manifest

Computation Payload Manifest Properties

TypeDescriptionRequired
versionstringSemver✓ Yes
createdAtstring✓ Yes
expiresAtstring✓ Yes
metadataobjectNo
payloadAppPayload []✓ Yes
compManifestobjectNo

Additional properties are allowed.

Computation Payload Manifest.version

Semver

  • Type: string
  • Required: ✓ Yes

Computation Payload Manifest.createdAt

  • Type: string
  • Required: ✓ Yes
  • Format: date-time

Computation Payload Manifest.expiresAt

  • Type: string
  • Required: ✓ Yes
  • Format: date-time

Computation Payload Manifest.metadata

  • Type: object
  • Required: No
  • Allowed values:

Computation Payload Manifest.payload

  • Type: AppPayload []
  • Required: ✓ Yes

Computation Payload Manifest.compManifest

  • Type: object
  • Required: No
  • Allowed values:

Internet Network

Internet Network Properties

TypeDescriptionRequired
outobjectInternet Outbound NetworkNo

Additional properties are allowed.

  • JSON schema:

Inet.out

Internet Outbound Network

  • Type: object
  • Required: No
  • Allowed values:

Internet Outbound Network

Applies constraints to networking. Currently, outgoing requests to the public Internet network are covered.

Internet Outbound Network Properties

TypeDescriptionRequired
protocolsstring []List of allowed outbound protocols. Supports "http", "https", "ws", and "wss".No, default: [http,https,ws,wss]
urls["array", "null"]List of allowed external URLs that outbound requests can be sent to. E.g. ["http://golemfactory.s3.amazonaws.com/file1", "http://golemfactory.s3.amazonaws.com/file2"]No

Additional properties are allowed.

  • JSON schema:

InetOut.protocols

List of allowed outbound protocols. Supports "http", "https", "ws", and "wss".

  • Type: string []
  • Required: No, default: [http,https,ws,wss]

InetOut.urls

List of allowed external URLs that outbound requests can be sent to. E.g. ["http://golemfactory.s3.amazonaws.com/file1", "http://golemfactory.s3.amazonaws.com/file2"]

  • Type: ["array", "null"]
  • Required: No

Net

Applies constraints to networking. Currently, outgoing requests to the public Internet network are covered.

Net Properties

TypeDescriptionRequired
inetobjectNo

Additional properties are allowed.

  • JSON schema:

Net.inet

  • Type: object
  • Required: No
  • Allowed values:

Payload

Payload Properties

TypeDescriptionRequired
platformobjectNo
urlsstring []✓ Yes
hashstring✓ Yes

Additional properties are allowed.

  • JSON schema:

AppPayload.platform

  • Type: object
  • Required: No
  • Allowed values:

AppPayload.urls

  • Type: string []
  • Required: ✓ Yes

AppPayload.hash

  • Type: string
  • Required: ✓ Yes

Payload Platform

Payload Platform Properties

TypeDescriptionRequired
archstring✓ Yes
osstring✓ Yes
osVersion["string", "null"]No

Additional properties are allowed.

  • JSON schema:

PayloadPlatform.arch

  • Type: string
  • Required: ✓ Yes

PayloadPlatform.os

  • Type: string
  • Required: ✓ Yes

PayloadPlatform.osVersion

  • Type: ["string", "null"]
  • Required: No

Script

Defines a set of allowed ExeScript commands and applies constraints to their arguments.

Script Properties

TypeDescriptionRequired
commandsarray[]Specifies a curated list of commands.✓ Yes
matchArgMatchSelects a default way of comparing command arguments stated in the manifest and the ones received in the ExeScript, unless stated otherwise in a command JSON object.No, default: strict

Additional properties are allowed.

  • JSON schema:

Script.commands

Specifies a curated list of commands.

  • Type: array[]
    • Each element in the array must be one of the following values:
  • Required: ✓ Yes

Script.match

Selects a default way of comparing command arguments stated in the manifest and the ones received in the ExeScript, unless stated otherwise in a command JSON object.

  • Type: ArgMatch
  • Required: No, default: strict
  • Allowed values:
    • strict
    • regex