OrdinateDB

Documentation

product Pre-releaseunwritten sections are marked
POST/v1/model/registries/{kind}/entries

Create a governed registry entry

operation ID: post_v1_model_registries_by_kind_entries

Overview

Create a governed registry entry. The model API describes assets, attributes, bindings, templates, views, registries, and governed changes that give series data its operational meaning.

When to use it

  • Use it when an application needs to create a governed registry entry.
  • Use it when a modeling tool is building, governing, resolving, or inspecting the asset and attribute hierarchy.

Quick example

Set the base URL and replace generated identifiers or credentials with values from your installation.

cURL

curl --request POST \
  --url "$ORDINATE_URL/v1/model/registries/quality-codes/entries" \
  --header "Authorization: Bearer $ORDINATE_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "string"
  }'

Expected output · 201

Registry entry created

Example 201 output

{
  "id": "00000000-0000-4000-8000-000000000001",
  "name": "string"
}

The cURL request sends the smallest contract-derived body and asks OrdinateDB to create a governed registry entry. The documented 201 response is registry entry created.

How it works

Assets form the composition hierarchy, attributes describe values on those assets, and time-bounded bindings connect attributes to stored series.

Reference

Required capability
registry-manage
Authorization scope
handler-resolved target

Parameters

NameInRequiredType and constraints
kindpathyes
string

values: enum-concepts · enum-sets · quantity-kinds · units · link-types · annotation-tags · episode-roles

Request body

application/json

canonical_unit_namestringoptional
canonical_unit_symbolstringoptional
encodingany ofoptional

Arbitrary JSON value

any of

option 1

object with arbitrary properties

option 2

array

any items

option 3

string

option 4

number

option 5

integer

option 6

boolean

option 7

null
integrates_tostringoptional
format: uuid
kind_idstringoptional
format: uuid
membersany ofoptional

Arbitrary JSON value

any of

option 1

object with arbitrary properties

option 2

array

any items

option 3

string

option 4

number

option 5

integer

option 6

boolean

option 7

null
namestringrequired
overrideany ofoptional

Arbitrary JSON value

any of

option 1

object with arbitrary properties

option 2

array

any items

option 3

string

option 4

number

option 5

integer

option 6

boolean

option 7

null
rationalestringoptional
symbolstringoptional
to_canonical_factornumberoptional
format: double
to_canonical_offsetnumberoptional
format: double

Example request body

{
  "name": "string"
}

Responses

201Registry entry created

application/json

canonical_unit_idstringoptional
format: uuid
encodingany ofoptional

Arbitrary JSON value

any of

option 1

object with arbitrary properties

option 2

array

any items

option 3

string

option 4

number

option 5

integer

option 6

boolean

option 7

null
idstringrequired
format: uuid
integrates_toany ofoptional

any of

option 1

stringformat: uuid

option 2

null
kind_idstringoptional
format: uuid
membersany ofoptional

Arbitrary JSON value

any of

option 1

object with arbitrary properties

option 2

array

any items

option 3

string

option 4

number

option 5

integer

option 6

boolean

option 7

null
namestringrequired
rationalestringoptional
symbolstringoptional
systembooleanoptional
to_canonical_factornumberoptional
format: double
to_canonical_offsetnumberoptional
format: double
tx_idintegeroptional
format: int64
valid_from_nsintegeroptional

UTC Unix timestamp in nanoseconds

format: int64
valid_to_nsany ofoptional

any of

option 1

integer

UTC Unix timestamp in nanoseconds

format: int64

option 2

null

Example 201 output

{
  "id": "00000000-0000-4000-8000-000000000001",
  "name": "string"
}
400Malformed entry or rejected override claim

application/json

ErrorEnvelope
codestringrequired
correlation_idstringrequired
format: uuid
detailsobjectoptional
errorstringrequired

Example 400 output

{
  "error": "string",
  "code": "account-sealed",
  "correlation_id": "00000000-0000-4000-8000-000000000001"
}
401Authentication required

application/json

ErrorEnvelope
codestringrequired
correlation_idstringrequired
format: uuid
detailsobjectoptional
errorstringrequired

Example 401 output

{
  "error": "string",
  "code": "account-sealed",
  "correlation_id": "00000000-0000-4000-8000-000000000001"
}
403registry-manage capability is not granted

application/json

ErrorEnvelope
codestringrequired
correlation_idstringrequired
format: uuid
detailsobjectoptional
errorstringrequired

Example 403 output

{
  "error": "string",
  "code": "account-sealed",
  "correlation_id": "00000000-0000-4000-8000-000000000001"
}
409Dedupe gate found an exact or polarity variant

application/json

ErrorEnvelope
codestringrequired
correlation_idstringrequired
format: uuid
detailsobjectoptional
errorstringrequired

Example 409 output

{
  "error": "string",
  "code": "account-sealed",
  "correlation_id": "00000000-0000-4000-8000-000000000001"
}
503Model database is not configured or unavailable

application/json

ErrorEnvelope
codestringrequired
correlation_idstringrequired
format: uuid
detailsobjectoptional
errorstringrequired

Example 503 output

{
  "error": "string",
  "code": "account-sealed",
  "correlation_id": "00000000-0000-4000-8000-000000000001"
}

Code examples

These examples are generated from the source contract. Replace the base URL, credentials, identifiers, and minimal generated values for your instance.

JavaScript

const ordinateUrl = "http://localhost:8080";
const token = "<bearer-token>";

const response = await fetch(`${ordinateUrl}/v1/model/registries/quality-codes/entries`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "name": "string"
})
});

if (!response.ok) {
  throw new Error(`OrdinateDB returned ${response.status}: ${await response.text()}`);
}

const data = await response.json();
console.log(data);