RuntimeOffer platform.runtime-offer@1

Generated at from openvibe-contracts v0.84.0 and openvibe-sdk v0.26.0.

Version
1.0.0
Owner
network
Visibility
public
Status
active
Compatibility
backward
Decision
ADR-034
Schema
https://openvibe.network/contracts/platform/runtime-offer.v1.json

Available execution capacity for code on a node (T1 Universal Fabric; ADR-034 proposed).

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
kindenumyes
  • one of "container", "process", "wasm", "vm", "function"
regionstringyes
nodestringyes
limitsobjectyes
  • no other fields
limits.cpu_coresnumberyes
  • minimum 0
limits.memory_mbintegeryes
  • minimum 0
limits.duration_secondsinteger
  • minimum 0
limits.concurrencyinteger
  • minimum 0
priceobjectyes
  • no other fields
price.amount_usdnumberyesEstimated USD
  • minimum 0
price.unitenumyes
  • one of "second", "hour", "invocation"
availabilityenumyes
  • one of "available", "limited", "unavailable"
constraintsarray of stringyes

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: example
{
  "id": "runtime-1",
  "kind": "container",
  "region": "us-west",
  "node": "node-1",
  "limits": {
    "cpu_cores": 2,
    "memory_mb": 4096,
    "duration_seconds": 3600
  },
  "price": {
    "amount_usd": 0.05,
    "unit": "hour"
  },
  "availability": "available",
  "constraints": [
    "first-party"
  ]
}
Rejected: missing-id
{
  "kind": "container",
  "region": "us-west",
  "node": "node-1",
  "limits": {
    "cpu_cores": 2,
    "memory_mb": 4096,
    "duration_seconds": 3600
  },
  "price": {
    "amount_usd": 0.05,
    "unit": "hour"
  },
  "availability": "available",
  "constraints": [
    "first-party"
  ]
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('platform.runtime-offer@1', value);   // { valid, errors: [{ path, message }] }