Skip to content

madoo.dataset-profile/v1

Madoo dataset profile — Bounded inspection result used to author and qualify a tabular data source.

Reference madoo.dataset-profile/v1
Schema id urn:madoo:schema:dataset-profile:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.dataset-profile/v1 · MCP get_json_schema
  • Produced by: input/data → profile
Field Type Required Rules Description
schema "madoo.dataset-profile/v1" yes
format one of "csv", "json", "xlsx" yes
tables array of objects yes min items 1
tables[].kind one of "sheet", "array", "table" yes
tables[].name string yes min length 1; max length 255
tables[].hidden boolean yes
selectedTable string yes min length 1; max length 255
rowCount integer yes ≥ 0
columnCount integer yes ≥ 0
columns array of objects yes
columns[].name string yes min length 1; max length 255
columns[].sourceName string yes min length 1; max length 255
columns[].ordinal integer yes ≥ 0
columns[].logicalType one of "unknown", "text", "number", "boolean", "date", "datetime", "json", "mixed" yes
columns[].nullable boolean yes
columns[].samples array of any yes max items 10
sampleRows array of object yes max items 100
warnings array of objects yes
warnings[].code string yes min length 1; max length 80
warnings[].message string yes min length 1; max length 1000
warnings[].path string or null max length 500
madoo.dataset-profile/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:dataset-profile:v1",
"title": "Madoo Dataset Profile v1",
"type": "object",
"required": [
"schema",
"format",
"tables",
"selectedTable",
"rowCount",
"columnCount",
"columns",
"sampleRows",
"warnings"
],
"properties": {
"schema": {
"const": "madoo.dataset-profile/v1"
},
"format": {
"type": "string",
"enum": [
"csv",
"json",
"xlsx"
]
},
"tables": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"kind",
"name",
"hidden"
],
"properties": {
"kind": {
"type": "string",
"enum": [
"sheet",
"array",
"table"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"hidden": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"selectedTable": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"rowCount": {
"type": "integer",
"minimum": 0
},
"columnCount": {
"type": "integer",
"minimum": 0
},
"columns": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"sourceName",
"ordinal",
"logicalType",
"nullable",
"samples"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"sourceName": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"ordinal": {
"type": "integer",
"minimum": 0
},
"logicalType": {
"type": "string",
"enum": [
"unknown",
"text",
"number",
"boolean",
"date",
"datetime",
"json",
"mixed"
]
},
"nullable": {
"type": "boolean"
},
"samples": {
"type": "array",
"maxItems": 10
}
},
"additionalProperties": false
}
},
"sampleRows": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object"
}
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"path": {
"type": [
"string",
"null"
],
"maxLength": 500
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}