schema_version: 0.1.0
kind: source
id: source.nexuscrm.case_s3_snapshot
name: nexuscrm Case S3 snapshot export
version: 0.1.0
owner:
  type: team
  name: data-platform
domain:
  name: crm
purpose: Source-faithful per-snapshot Parquet export of nexuscrm.Case from TiDB Cloud
  Essential to S3, consumed by the lakehouse load stage.
usage:
  intended:
  - Bulk load into the raw lakehouse layer
  - Audit and provenance of exported snapshots
  prohibited:
  - Direct analytical querying (load into a contracted product first).
  - Treating a single snapshot as an intra-day event stream.
source:
  kind: database
  system: tidbcloud
  description: TiDB Cloud Essential nexuscrm.Case
  identifiers:
    database: nexuscrm
    table: Case
    cluster_id: '10996361222721502359'
assets:
- id: case_s3_snapshot
  kind: file
  ref: s3://pingcap-datalake-nexuscrm-export-247906201378-us-west-2/tidb-essential/snapshots/source=nexuscrm/
  materialization: external
  produced_by:
    kind: python
    ref: ingestion.extract.tidbcloud.engine.export
schema:
  kind: relational
  columns:
  - name: id
    type: varchar(255)
    nullable: false
  - name: ownerid
    type: varchar(255)
    nullable: true
  - name: createdbyid
    type: varchar(255)
    nullable: true
  - name: lastmodifiedbyid
    type: varchar(255)
    nullable: true
  - name: createddate
    type: datetime
    nullable: false
  - name: lastmodifieddate
    type: datetime
    nullable: false
  - name: systemmodstamp
    type: datetime
    nullable: false
  - name: isdeleted
    type: tinyint(1)
    nullable: false
  - name: casenumber
    type: varchar(255)
    nullable: true
  - name: subject
    type: varchar(255)
    nullable: false
  - name: status
    type: varchar(255)
    nullable: false
  - name: priority
    type: varchar(255)
    nullable: false
  - name: origin
    type: varchar(255)
    nullable: true
  - name: type
    type: varchar(255)
    nullable: true
  - name: reason
    type: varchar(255)
    nullable: true
  - name: suppliedname
    type: varchar(255)
    nullable: true
  - name: suppliedemail
    type: varchar(255)
    nullable: true
  - name: suppliedphone
    type: varchar(255)
    nullable: true
  - name: suppliedcompany
    type: varchar(255)
    nullable: true
  - name: contactid
    type: varchar(255)
    nullable: true
  - name: accountid
    type: varchar(255)
    nullable: true
  - name: description
    type: text
    nullable: true
  - name: comments
    type: text
    nullable: true
  - name: assetid
    type: varchar(255)
    nullable: true
  - name: businesshoursid
    type: varchar(255)
    nullable: true
  - name: parentid
    type: varchar(255)
    nullable: true
  - name: sourceid
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_assignee_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_brand_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_created_at__c
    type: datetime
    nullable: true
  - name: zendesk_support_ticket_form_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_group_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_id__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_initial_assigned__c
    type: datetime
    nullable: true
  - name: zendesk_support_ticket_organization_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_requester_as_lead__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_requester_email__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_requester_name__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_resolution_bus__c
    type: decimal(65,30)
    nullable: true
  - name: zendesk_support_ticket_resolution_cal__c
    type: decimal(65,30)
    nullable: true
  - name: zendesk_support_ticket_solved_at__c
    type: datetime
    nullable: true
  - name: zendesk_support_ticket_tags__c
    type: text
    nullable: true
  - name: zendesk_support_ticket_url__c
    type: varchar(255)
    nullable: true
  - name: zendesk_support_ticket_updated_at__c
    type: datetime
    nullable: true
freshness:
  max_age: PT48H
  degrade_after: PT30H
tests:
- id: case_source_smoke
  type: sql
  severity: informational
  description: Placeholder informational smoke check for the source contract of case.
    Replace with concrete row-count, freshness, or key-uniqueness assertions.
  sql: select 1
governance:
  classifications:
  - customer_data
  - operational_sensitive
  - pii
  - restricted
  access:
    default: restricted
  retention:
    period: P7D
  audit:
    required: true
    events:
    - export
    - agent_action
agent_permissions:
  default: deny
compatibility:
  change_policy: semver
extensions:
  primary_key:
  - Id
  watermark_columns:
  - SystemModstamp
  - LastModifiedDate
  row_estimate: 0
  known_blind_spots:
  - Intra-snapshot changes are collapsed.
  - Insert-then-delete between snapshots is invisible.
  - Schema drift requires review before promotion.
