Skip to main content

Validation

Required nested fields by type:

  • Tables: table and table.columns
  • Dimensions: table.dimension and table.dimension.content
  • Metrics: table.metric and table.metric.content
  • Relationships: relationship

Valid examples:

# Table
{"table": {"name": "customers", "columns": [{"name": "id", "type": "INTEGER"}]}}

# Dimension
{"table": {"name": "customers", "dimension": {"name": "status", "content": {"type": "categorical", "values": ["active","inactive"]}}}}

# Metric
{"table": {"name": "orders", "metric": {"name": "total_revenue", "content": {"aggregation": "sum", "column": "amount"}}}}

Programmatic validation:

errors = client.schema_metadata.validate_schema({"table": {"name": "users", "columns": []}}, "table")
if errors:
print("Invalid:", errors)

Invalid example (shows error):

try:
client.schema_metadata.create(
project_id=project.id,
name="Bad Dimension",
schema_data={"table": {"dimension": {"name": "status"}}}, # missing content
)
except Exception as e:
print("Expected ValidationError:", e)

Feedback