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 |
Where it appears
Section titled “Where it appears”- Produced by:
input/data→profile
Fields
Section titled “Fields”| 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 |
The complete schema
Section titled “The complete schema”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}