RateCard platform.rate-card@1
Generated at from
openvibe-contracts v0.79.0 and
openvibe-sdk v0.25.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-034
- Schema
https://openvibe.network/contracts/platform/rate-card.v1.json
One provider price with its free allowance, in the provider's real billing unit, with effective dates and where it was checked (roadmap WS-Z3 task 5). Changed only by review; never written by an AI on its own.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes | ||
provider | string | yes | ||
adapter | string | |||
metric | string | yes | e.g. queue-operation-64kb, request, gib-delivered, message, gb-month, class-a-op | |
unit_size | number | yes |
| |
unit_price_usd | number | yes |
| |
free_allowance | number | yes |
| |
reset_period | enum | yes |
| |
region | string | |||
effective_from | string | yes |
| |
effective_until | string |
| ||
source | string | yes |
| |
verified_at | string | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: queue-ops
{
"id": "rc_example_queue_ops",
"provider": "example-queues",
"adapter": "example-queue-v1",
"metric": "queue-operation-64kb",
"unit_size": 1000000,
"unit_price_usd": 0.4,
"free_allowance": 1000000,
"reset_period": "month",
"effective_from": "2026-09-01",
"source": "https://example.com/pricing",
"verified_at": "2026-09-28"
}Rejected: negative-price
{
"id": "rc",
"provider": "p",
"metric": "m",
"unit_size": 1,
"unit_price_usd": -1,
"free_allowance": 0,
"reset_period": "month",
"effective_from": "2026-09-01",
"source": "https://example.com",
"verified_at": "2026-09-28"
}Rejected: no-source
{
"id": "rc",
"provider": "p",
"metric": "m",
"unit_size": 1,
"unit_price_usd": 1,
"free_allowance": 0,
"reset_period": "month",
"effective_from": "2026-09-01",
"verified_at": "2026-09-28"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('platform.rate-card@1', value); // { valid, errors: [{ path, message }] }