Skip to main content

Settings

Manage user-specific view preferences and snapshot configuration for datasets.

GET /api/datasets/{id}/settings

Get user settings for a dataset.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDataset ID or slug

Response:

{
"datasetId": "sales-2024",
"userId": "user:admin",
"settings": {
"defaultView": "table",
"pageSize": 50,
"columnWidths": {
"order_id": 120,
"customer_name": 200,
"amount": 100
},
"columnOrder": ["order_id", "customer_name", "amount", "order_date"],
"hiddenColumns": ["internal_notes", "audit_timestamp"],
"defaultSort": {
"field": "order_date",
"order": "desc"
},
"defaultFilter": "filter-high-value",
"visualPreferences": {
"chartType": "bar",
"colorScheme": "blue"
}
},
"snapshots": {
"includeLatest": true,
"type": "relative",
"n": 5,
"snapshotDatasets": []
},
"updatedAt": "2024-02-08T15:30:00Z"
}

Settings Properties:

PropertyTypeDescription
defaultViewstringDefault view type: table, grid, chart
pageSizeintegerDefault number of records per page
columnWidthsobjectColumn width preferences (pixels)
columnOrderarrayColumn display order
hiddenColumnsarrayColumns hidden from view
defaultSortobjectDefault sort configuration
defaultFilterstringDefault filter ID
visualPreferencesobjectVisual/chart preferences

Snapshot Settings:

PropertyTypeDescription
includeLatestbooleanInclude current data in snapshot views
typestringSnapshot selection: relative, absolute
nintegerNumber of snapshots (for relative type)
snapshotDatasetsarraySpecific snapshot IDs (for absolute type)

PUT /api/datasets/{id}/settings

Update user settings and snapshot configuration.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDataset ID or slug

Request Body:

FieldTypeDescription
settingsobjectUser preference settings
snapshotsobjectSnapshot configuration

Example Request:

{
"settings": {
"defaultView": "grid",
"pageSize": 100,
"columnOrder": ["customer_name", "amount", "order_date", "order_id"],
"hiddenColumns": ["internal_notes"],
"defaultSort": {
"field": "amount",
"order": "desc"
},
"defaultFilter": "filter-west-region"
},
"snapshots": {
"includeLatest": true,
"type": "relative",
"n": 10
}
}

Response:

Returns the updated settings object.

Merge Behavior:

Settings are merged with existing user settings. Only specified properties are updated; unspecified properties are preserved.


POST /api/datasets/{id}/settings/_restore

Delete user settings and restore to defaults.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDataset ID or slug

Response:

204 No Content

Behavior:

  • Deletes all user-specific settings for this dataset
  • User will see default dataset view
  • Column order, widths, and preferences reset
  • Default filter and sort cleared

Use Case:

Reset personalized view when settings become corrupted or user wants to start fresh.


GET /api/datasets/{id}/params

Get dataset query parameters.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringDataset ID or slug

Response:

{
"params": [
{
"name": "year",
"label": "Fiscal Year",
"dataType": "number",
"defaultValue": 2024,
"required": true,
"description": "Fiscal year for reporting",
"options": [2022, 2023, 2024]
},
{
"name": "region",
"label": "Sales Region",
"dataType": "string",
"defaultValue": "All",
"required": false,
"description": "Filter by region",
"options": ["All", "West", "East", "North", "South"]
},
{
"name": "minAmount",
"label": "Minimum Order Amount",
"dataType": "number",
"defaultValue": 0,
"required": false,
"description": "Minimum order value to include"
}
]
}

Parameter Properties:

PropertyTypeDescription
namestringParameter identifier (used as {{name}} in query)
labelstringDisplay name
dataTypestringData type: string, number, date, boolean
defaultValueanyDefault value if not provided
requiredbooleanMust be provided for execution
descriptionstringHelp text
optionsarrayPredefined value options (optional)

PUT /api/datasets/{id}/params

Update dataset query parameters.

Authentication: Required

Permission: dataset:write

Path Parameters:

ParameterTypeDescription
idstringDataset ID or slug

Request Body:

Array of parameter objects.

Example Request:

{
"params": [
{
"name": "startDate",
"label": "Start Date",
"dataType": "date",
"defaultValue": "2024-01-01",
"required": true,
"description": "Beginning of date range"
},
{
"name": "endDate",
"label": "End Date",
"dataType": "date",
"defaultValue": "2024-12-31",
"required": true,
"description": "End of date range"
},
{
"name": "status",
"label": "Order Status",
"dataType": "string",
"defaultValue": "all",
"required": false,
"options": ["all", "pending", "completed", "cancelled"]
}
]
}

Response:

Returns the updated dataset with new parameters.

Parameter Usage

Parameters defined here are available in the dataset query using {{paramName}} syntax. They can be overridden at refresh/run time.


User Settings Examples

Table View Preferences

{
"settings": {
"defaultView": "table",
"pageSize": 50,
"columnWidths": {
"order_id": 100,
"customer_name": 250,
"amount": 120,
"order_date": 150
},
"columnOrder": [
"order_id",
"customer_name",
"amount",
"order_date",
"region"
],
"hiddenColumns": [
"internal_notes",
"created_by",
"modified_at"
],
"defaultSort": {
"field": "order_date",
"order": "desc"
}
}
}

Chart View Preferences

{
"settings": {
"defaultView": "chart",
"visualPreferences": {
"chartType": "line",
"colorScheme": "categorical",
"xAxis": "order_date",
"yAxis": "amount",
"groupBy": "region",
"showLegend": true,
"showDataLabels": false
}
}
}

Grid View Preferences

{
"settings": {
"defaultView": "grid",
"pageSize": 25,
"gridPreferences": {
"cardLayout": "compact",
"imageField": "product_image",
"titleField": "product_name",
"subtitleField": "category",
"priceField": "amount"
}
}
}

Snapshot Configuration Examples

Include Latest + Last 5 Snapshots

{
"snapshots": {
"includeLatest": true,
"type": "relative",
"n": 5,
"snapshotDatasets": []
}
}

This shows:

  • Current data (includeLatest: true)
  • 5 most recent snapshots (type: relative, n: 5)

Specific Snapshots Only

{
"snapshots": {
"includeLatest": false,
"type": "absolute",
"n": 0,
"snapshotDatasets": [
"sales-2024-q1-snapshot",
"sales-2024-q2-snapshot",
"sales-2024-q3-snapshot",
"sales-2024-q4-snapshot"
]
}
}

This shows:

  • No current data (includeLatest: false)
  • Only the 4 specified snapshots (type: absolute)

Current Data Only

{
"snapshots": {
"includeLatest": true,
"type": "relative",
"n": 0,
"snapshotDatasets": []
}
}

This shows:

  • Only current data, no snapshots

Settings Use Cases

Personal Dashboard

Users can customize their view of shared datasets:

// User A prefers table view with high page size
await PUT('/api/datasets/sales-2024/settings', {
settings: {
defaultView: 'table',
pageSize: 100,
defaultSort: { field: 'amount', order: 'desc' }
}
});

// User B prefers chart view
await PUT('/api/datasets/sales-2024/settings', {
settings: {
defaultView: 'chart',
visualPreferences: { chartType: 'bar' }
}
});

Historical Analysis

Configure snapshot views for trend analysis:

await PUT('/api/datasets/sales-2024/settings', {
snapshots: {
includeLatest: true,
type: 'relative',
n: 12 // Last 12 snapshots (monthly)
}
});

Compliance Reporting

Lock view to specific historical snapshots:

await PUT('/api/datasets/financial-2024/settings', {
snapshots: {
includeLatest: false,
type: 'absolute',
snapshotDatasets: [
'financial-2024-q1-final',
'financial-2024-q2-final',
'financial-2024-q3-final'
]
}
});

Best Practices

User Settings

  • Preserve user preferences during dataset updates
  • Don't override user settings programmatically
  • Provide reset option to restore defaults
  • Validate settings before saving
  • Document conventions for team-shared datasets

Snapshot Configuration

  • Match business needs: Quarterly snapshots for financial data, daily for operational data
  • Limit snapshot count: Too many snapshots slow queries and UI
  • Use relative mode: For rolling time windows
  • Use absolute mode: For fixed reporting periods
  • Document snapshot purpose: Include descriptions explaining each snapshot

Parameter Management

  • Use descriptive labels: Help users understand what parameters do
  • Provide default values: Ensure dataset works out-of-box
  • Offer options lists: When parameter has limited valid values
  • Mark required params: Prevent execution errors
  • Document parameter usage: Explain how parameters affect query results

Performance

  • Limit hidden columns: Don't hide too many columns by default
  • Optimize default sorts: Index frequently sorted fields
  • Reasonable page sizes: 25-100 records for most use cases
  • Cache settings: Client-side caching reduces API calls
Settings vs. Configuration

Settings are user-specific preferences (view, layout, sort). Configuration is dataset-level (query, fields, parameters). Don't confuse the two when building UIs.