{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/workday-report-writer/main/json-schema/workday-report-writer-prism-table-schema.json", "title": "Workday Prism Analytics Table Schema", "description": "JSON Schema describing the structure of a Prism Analytics table schema definition used when creating tables via the Prism Analytics API. Field definitions specify the columns, data types, and constraints for external data loaded into Workday Prism Analytics.", "x-schema-source": "sdk", "x-source-url": "https://github.com/Workday/prism-python/blob/main/prism/data/schema.json", "x-generated-from": "documentation", "x-last-validated": "2026-05-03", "type": "object", "required": ["fields"], "properties": { "fields": { "type": "array", "description": "Ordered collection of field (column) definitions that make up the table schema", "items": { "$ref": "#/$defs/Field" } } }, "$defs": { "Field": { "type": "object", "description": "A single field (column) in a Prism Analytics table schema", "required": ["name", "ordinal", "type"], "properties": { "name": { "type": "string", "description": "Field name used in data files and queries" }, "displayName": { "type": "string", "description": "Display name shown in the Prism Analytics UI" }, "description": { "type": "string", "description": "Description of the field purpose and contents" }, "ordinal": { "type": "integer", "description": "1-based position index of the field within the table schema", "minimum": 1 }, "type": { "$ref": "#/$defs/FieldType" }, "required": { "type": "boolean", "description": "Whether the field is required for data loading" }, "externalId": { "type": "boolean", "description": "Whether this field serves as a unique identifier for upsert and delete operations" }, "defaultValue": { "description": "Default value applied when the field is missing from input data" }, "precision": { "type": "integer", "description": "Total number of significant digits for Numeric fields", "minimum": 1 }, "scale": { "type": "integer", "description": "Number of decimal places for Numeric fields", "minimum": 0 }, "parseFormat": { "type": "string", "description": "Date or DateTime parse format pattern (e.g., yyyy-MM-DD)" } } }, "FieldType": { "type": "object", "description": "Data type specification for a Prism table field", "required": ["id"], "properties": { "id": { "type": "string", "description": "Workday field type identifier", "enum": [ "Schema_Field_Type=Text", "Schema_Field_Type=Numeric", "Schema_Field_Type=Integer", "Schema_Field_Type=Long", "Schema_Field_Type=Date", "Schema_Field_Type=DateTime", "Schema_Field_Type=Boolean", "Schema_Field_Type=Instance" ] }, "descriptor": { "type": "string", "description": "Human-readable display name for the field type" } } } }, "examples": [ { "fields": [ { "name": "id", "displayName": "Record ID", "description": "Text primary key.", "ordinal": 1, "type": { "id": "Schema_Field_Type=Text" }, "required": true, "externalId": true }, { "name": "name", "displayName": "Full Name", "description": "Full name of employee.", "ordinal": 2, "type": { "id": "Schema_Field_Type=Text" }, "required": true }, { "name": "employ_yrs", "displayName": "Employee Tenure Years", "description": "Integer number of years in role.", "ordinal": 3, "defaultValue": 0, "type": { "id": "Schema_Field_Type=Integer" } }, { "name": "average_rating", "displayName": "Average Rating", "description": "Average performance rating.", "ordinal": 4, "precision": 9, "scale": 2, "defaultValue": 1.0, "type": { "id": "Schema_Field_Type=Numeric" } }, { "name": "hired", "displayName": "Hire Date", "description": "Date of hire.", "ordinal": 5, "parseFormat": "yyyy-MM-DD", "type": { "id": "Schema_Field_Type=Date" } } ] } ] }