dataset: datasource/database/schema/user_interaction_events checks: - schema: allow_extra_columns: false allow_other_column_order: false - row_count: threshold: must_be_greater_than: 0 - freshness: column: ingest_time threshold: unit: hour must_be_less_than: 1 columns: - name: event_id data_type: string checks: - missing: - duplicate: - invalid: name: "Event ID length guardrail" valid_min_length: 1 valid_max_length: 128 - name: event_name data_type: string checks: - missing: - invalid: name: "Valid event names" valid_values: - job_viewed - apply_clicked - review_submitted - comment_posted - search_performed - name: event_time data_type: timestamp checks: - missing: - name: ingest_time data_type: timestamp checks: - missing: - name: user_id data_type: string checks: - invalid: name: "User ID length guardrail" valid_min_length: 1 valid_max_length: 128 - name: anonymous_id data_type: string checks: - invalid: name: "Anonymous ID length guardrail" valid_min_length: 1 valid_max_length: 128 - name: session_id data_type: string checks: - missing: - invalid: name: "Session ID length guardrail" valid_min_length: 1 valid_max_length: 128 - name: platform data_type: string checks: - invalid: name: "Valid platforms" valid_values: - web - ios - android - backend - name: app_version data_type: string checks: - invalid: name: "App version length guardrail" valid_min_length: 1 valid_max_length: 64 - name: entity_type data_type: string checks: - missing: - invalid: name: "Valid entity types" valid_values: - job - company - review - post - comment - message - name: entity_id data_type: string checks: - missing: - invalid: name: "Entity ID length guardrail" valid_min_length: 1 valid_max_length: 128 - name: action_result data_type: string checks: - missing: - invalid: name: "Valid action results" valid_values: - success - fail - blocked - dismissed