TradeAlertRule trade.alert-rule@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
trade
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/trade/alert-rule.v1.json

trade.alert-rule@1: one alert rule of a person on OpenVibe.Trade (server/domain/alerts.js ruleDto): a threshold on a metric, filings of some form types, or any new document for an instrument. Alerts inform; they never trade.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
kindenumyes
  • one of "threshold", "filing_type", "new_document"
statusstringyes
instrumentobjectyes
instrument.idstringyes
instrument.symbolstring
instrument.namestring
metricstring | null
operatorenum
  • one of "above", "below", null
thresholdstring | null
unitstring | null
currencystring | null
form_typesarray | null
armedboolean | null
created_atstring | null
  • format date-time
updated_atstring | null
  • format date-time

Examples

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

Valid: threshold
{
  "id": "alr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "kind": "threshold",
  "status": "active",
  "instrument": {
    "id": "ins_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "symbol": "ACME",
    "name": "Acme Corporation"
  },
  "metric": "close",
  "operator": "below",
  "threshold": "150",
  "unit": "USD",
  "currency": "USD",
  "form_types": null,
  "armed": true,
  "created_at": "2026-09-25T10:00:00.000Z",
  "updated_at": "2026-09-25T10:00:00.000Z"
}
Rejected: bad-operator
{
  "id": "alr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "kind": "threshold",
  "status": "active",
  "instrument": {
    "id": "ins_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "symbol": "ACME",
    "name": "Acme Corporation"
  },
  "metric": "close",
  "operator": "crosses",
  "threshold": "150",
  "unit": "USD",
  "currency": "USD",
  "form_types": null,
  "armed": true,
  "created_at": "2026-09-25T10:00:00.000Z",
  "updated_at": "2026-09-25T10:00:00.000Z"
}

Validate

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