schema_version: 0.1.0
kind: source
id: source.nexuscrm.task_s3_snapshot
name: nexuscrm Task 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.Task 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.Task
  identifiers:
    database: nexuscrm
    table: Task
    cluster_id: '10996361222721502359'
assets:
- id: task_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: subject
    type: varchar(255)
    nullable: false
  - name: status
    type: varchar(255)
    nullable: true
  - name: priority
    type: varchar(255)
    nullable: true
  - name: activitydate
    type: date
    nullable: true
  - name: activitydatetime
    type: datetime
    nullable: true
  - name: description
    type: text
    nullable: true
  - name: whoid
    type: varchar(255)
    nullable: true
  - name: whoid_type
    type: varchar(255)
    nullable: true
  - name: whatid
    type: varchar(255)
    nullable: true
  - name: whatid_type
    type: varchar(255)
    nullable: true
  - name: accountid
    type: varchar(255)
    nullable: true
  - name: recordtypeid
    type: varchar(255)
    nullable: true
  - name: type
    type: varchar(255)
    nullable: true
  - name: isclosed
    type: tinyint(1)
    nullable: true
  - name: isarchived
    type: tinyint(1)
    nullable: true
  - name: ishighpriority
    type: tinyint(1)
    nullable: true
  - name: istasklatestupdate
    type: tinyint(1)
    nullable: true
  - name: isrecurrence
    type: tinyint(1)
    nullable: true
  - name: isreminderset
    type: tinyint(1)
    nullable: true
  - name: reminderdatetime
    type: datetime
    nullable: true
  - name: completeddatetime
    type: datetime
    nullable: true
  - name: calldurationinseconds
    type: decimal(65,30)
    nullable: true
  - name: calltype
    type: varchar(255)
    nullable: true
  - name: calldisposition
    type: varchar(255)
    nullable: true
  - name: callobject
    type: varchar(255)
    nullable: true
  - name: tasksubtype
    type: varchar(255)
    nullable: true
  - name: activitysubtype
    type: varchar(255)
    nullable: true
  - name: recurrenceactivityid
    type: varchar(255)
    nullable: true
  - name: recurrencestartdateonly
    type: date
    nullable: true
  - name: recurrenceenddateonly
    type: date
    nullable: true
  - name: recurrencetimezonesidkey
    type: varchar(255)
    nullable: true
  - name: recurrencetype
    type: varchar(255)
    nullable: true
  - name: recurrenceinterval
    type: decimal(65,30)
    nullable: true
  - name: recurrencedayofweekmask
    type: decimal(65,30)
    nullable: true
  - name: recurrencedayofmonth
    type: decimal(65,30)
    nullable: true
  - name: recurrenceinstance
    type: varchar(255)
    nullable: true
  - name: recurrencemonthofyear
    type: varchar(255)
    nullable: true
  - name: recurrenceregeneratedtype
    type: varchar(255)
    nullable: true
  - name: next_milestone__c
    type: text
    nullable: true
  - name: deadline__c
    type: date
    nullable: true
  - name: person_responsible__c
    type: varchar(255)
    nullable: true
  - name: risk_and_next_step__c
    type: text
    nullable: true
  - name: progress__c
    type: text
    nullable: true
  - name: review_comments__c
    type: text
    nullable: true
freshness:
  max_age: PT48H
  degrade_after: PT30H
tests:
- id: task_source_smoke
  type: sql
  severity: informational
  description: Placeholder informational smoke check for the source contract of task.
    Replace with concrete row-count, freshness, or key-uniqueness assertions.
  sql: select 1
governance:
  classifications:
  - customer_data
  - 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: 233671
  known_blind_spots:
  - Intra-snapshot changes are collapsed.
  - Insert-then-delete between snapshots is invisible.
  - Schema drift requires review before promotion.
