schema_version: 0.1.0
kind: source
id: source.nexuscrm.contact_s3_snapshot
name: nexuscrm Contact 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.Contact 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.Contact
  identifiers:
    database: nexuscrm
    table: Contact
    cluster_id: '10996361222721502359'
assets:
- id: contact_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: salutation
    type: varchar(255)
    nullable: true
  - name: firstname
    type: varchar(255)
    nullable: true
  - name: lastname
    type: varchar(255)
    nullable: false
  - name: title
    type: varchar(255)
    nullable: true
  - name: department
    type: varchar(255)
    nullable: true
  - name: accountid
    type: varchar(255)
    nullable: true
  - name: phone
    type: varchar(50)
    nullable: true
  - name: mobilephone
    type: varchar(50)
    nullable: true
  - name: fax
    type: varchar(50)
    nullable: true
  - name: homephone
    type: varchar(50)
    nullable: true
  - name: otherphone
    type: varchar(50)
    nullable: true
  - name: email
    type: varchar(255)
    nullable: true
  - name: hasoptedoutofemail
    type: tinyint(1)
    nullable: true
  - name: donotcall
    type: tinyint(1)
    nullable: true
  - name: emailbounceddate
    type: datetime
    nullable: true
  - name: emailbouncedreason
    type: varchar(255)
    nullable: true
  - name: leadsource
    type: varchar(255)
    nullable: true
  - name: jigsaw
    type: varchar(255)
    nullable: true
  - name: jigsawcontactid
    type: varchar(255)
    nullable: true
  - name: assistantname
    type: varchar(255)
    nullable: true
  - name: assistantphone
    type: varchar(50)
    nullable: true
  - name: birthdate
    type: date
    nullable: true
  - name: description
    type: text
    nullable: true
  - name: mailingstreet
    type: text
    nullable: true
  - name: mailingcity
    type: varchar(255)
    nullable: true
  - name: mailingstate
    type: varchar(255)
    nullable: true
  - name: mailingpostalcode
    type: varchar(255)
    nullable: true
  - name: mailingcountry
    type: varchar(255)
    nullable: true
  - name: mailingstatecode
    type: varchar(255)
    nullable: true
  - name: mailingcountrycode
    type: varchar(255)
    nullable: true
  - name: mailinglatitude
    type: decimal(65,30)
    nullable: true
  - name: mailinglongitude
    type: decimal(65,30)
    nullable: true
  - name: mailinggeocodeaccuracy
    type: varchar(255)
    nullable: true
  - name: account_segmentation__c
    type: varchar(255)
    nullable: true
  - name: alicloud_channel__c
    type: tinyint(1)
    nullable: true
  - name: cldr__active_contacts__c
    type: decimal(65,30)
    nullable: true
  - name: call_attempt__c
    type: decimal(65,30)
    nullable: true
  - name: call_result__c
    type: text
    nullable: true
  - name: championsois_c__c
    type: tinyint(1)
    nullable: true
  - name: cloudservices__c
    type: json
    nullable: true
  - name: comments__c
    type: text
    nullable: true
  - name: converted_from_leads__c
    type: tinyint(1)
    nullable: true
  - name: country_picklist_sfdc__c
    type: varchar(255)
    nullable: true
  - name: current_cadence__c
    type: varchar(255)
    nullable: true
  - name: current_touch_type__c
    type: varchar(255)
    nullable: true
  - name: current_touch__c
    type: decimal(65,30)
    nullable: true
  - name: customer_stage_datev2__c
    type: datetime
    nullable: true
  - name: customer_stage_date__c
    type: datetime
    nullable: true
  - name: customer_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: customer_stage_source__c
    type: varchar(255)
    nullable: true
  - name: dozisf__zoominfo_company_id__c
    type: varchar(255)
    nullable: true
  - name: dozisf__zoominfo_enrich_status__c
    type: varchar(255)
    nullable: true
  - name: dozisf__zoominfo_first_updated__c
    type: datetime
    nullable: true
  - name: dozisf__zoominfo_id__c
    type: varchar(255)
    nullable: true
  - name: dozisf__zoominfo_inboxai_id__c
    type: varchar(255)
    nullable: true
  - name: dozisf__zoominfo_last_updated__c
    type: datetime
    nullable: true
  - name: dozisf__zoominfo_non_matched_reason__c
    type: varchar(255)
    nullable: true
  - name: developer_segment_name_re__c
    type: longtext
    nullable: true
  - name: developer_segment_name__c
    type: json
    nullable: true
  - name: developer_summary__c
    type: longtext
    nullable: true
  - name: developer_summary_original__c
    type: text
    nullable: true
  - name: developer_tags_ori__c
    type: varchar(255)
    nullable: true
  - name: developer_tags__c
    type: longtext
    nullable: true
  - name: disqualified_reason__c
    type: varchar(255)
    nullable: true
  - name: disqualified_stage_datev2__c
    type: datetime
    nullable: true
  - name: disqualified_stage_date__c
    type: datetime
    nullable: true
  - name: disqualified_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: disqualified_stage_source__c
    type: varchar(255)
    nullable: true
  - name: do_not_call_until__c
    type: date
    nullable: true
  - name: email_counter__c
    type: decimal(65,30)
    nullable: true
  - name: first_campaign__c
    type: varchar(255)
    nullable: true
  - name: first_conversion__c
    type: varchar(255)
    nullable: true
  - name: first_dialed_date__c
    type: datetime
    nullable: true
  - name: first_emailed_date__c
    type: datetime
    nullable: true
  - name: googleformid__c
    type: varchar(255)
    nullable: true
  - name: hq_zip_postal_code__c
    type: text
    nullable: true
  - name: heavy_user_type__c
    type: varchar(255)
    nullable: true
  - name: heavy_user__c
    type: tinyint(1)
    nullable: true
  - name: hubspot_original_source_drill_down_1__c
    type: varchar(255)
    nullable: true
  - name: hubspot_score__c
    type: decimal(65,30)
    nullable: true
  - name: ip_city__c
    type: varchar(255)
    nullable: true
  - name: ip_country__c
    type: varchar(255)
    nullable: true
  - name: iqm_completed_date__c
    type: date
    nullable: true
  - name: iqm_completed__c
    type: tinyint(1)
    nullable: true
  - name: iqm_note_na_emea_only__c
    type: text
    nullable: true
  - name: iqm_scheduled_date__c
    type: date
    nullable: true
  - name: iqm_stage_datev2__c
    type: datetime
    nullable: true
  - name: iqm__c
    type: tinyint(1)
    nullable: true
  - name: individualid
    type: varchar(255)
    nullable: true
  - name: interest_level__c
    type: varchar(255)
    nullable: true
  - name: internal_user_bg__c
    type: varchar(255)
    nullable: true
  - name: internal_user__c
    type: tinyint(1)
    nullable: true
  - name: job_function__c
    type: varchar(255)
    nullable: true
  - name: job_role__c
    type: varchar(255)
    nullable: true
  - name: key_message__c
    type: longtext
    nullable: true
  - name: koncert_tag__c
    type: varchar(255)
    nullable: true
  - name: last_activity_date__c
    type: varchar(255)
    nullable: true
  - name: last_attempted_outcome__c
    type: text
    nullable: true
  - name: last_campaign__c
    type: varchar(255)
    nullable: true
  - name: last_dialed_date__c
    type: datetime
    nullable: true
  - name: last_email_outcome__c
    type: text
    nullable: true
  - name: last_emailed_date__c
    type: datetime
    nullable: true
  - name: last_talker_call_outcome__c
    type: text
    nullable: true
  - name: last_touch_date_time__c
    type: datetime
    nullable: true
  - name: last_touch__c
    type: varchar(255)
    nullable: true
  - name: lead_source_details__c
    type: varchar(255)
    nullable: true
  - name: lead_stage_datev2__c
    type: datetime
    nullable: true
  - name: lead_stage_date__c
    type: datetime
    nullable: true
  - name: lead_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: lead_stage_source__c
    type: varchar(255)
    nullable: true
  - name: lead_status_formula_from_lead_hidden__c
    type: varchar(255)
    nullable: true
  - name: lifecycle_stage__c
    type: varchar(255)
    nullable: true
  - name: linkedin_company_profile_url__c
    type: varchar(255)
    nullable: true
  - name: linkedin_profile__c
    type: text
    nullable: true
  - name: linkedin_url__c
    type: varchar(255)
    nullable: true
  - name: mql_priority__c
    type: varchar(255)
    nullable: true
  - name: mql_reason__c
    type: varchar(255)
    nullable: true
  - name: mql_sla_violation_date__c
    type: datetime
    nullable: true
  - name: mql_sla_violation__c
    type: tinyint(1)
    nullable: true
  - name: mql_stage_datev2__c
    type: datetime
    nullable: true
  - name: mql_stage_date__c
    type: datetime
    nullable: true
  - name: mql_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: mql_stage_source__c
    type: varchar(255)
    nullable: true
  - name: most_recent_referrer_url__c
    type: text
    nullable: true
  - name: most_recent_working_status_date__c
    type: datetime
    nullable: true
  - name: no_longer_with_the_company__c
    type: tinyint(1)
    nullable: true
  - name: no_of_times_mql__c
    type: decimal(65,30)
    nullable: true
  - name: nurture_reason_other__c
    type: varchar(255)
    nullable: true
  - name: nurture_reason__c
    type: varchar(255)
    nullable: true
  - name: opportunityassociated__c
    type: tinyint(1)
    nullable: true
  - name: opportunity_stage_datev2__c
    type: datetime
    nullable: true
  - name: original_referrer_url__c
    type: text
    nullable: true
  - name: original_utm_campaign__c
    type: varchar(255)
    nullable: true
  - name: original_utm_content__c
    type: varchar(255)
    nullable: true
  - name: original_utm_medium__c
    type: varchar(255)
    nullable: true
  - name: original_utm_source__c
    type: varchar(255)
    nullable: true
  - name: original_utm_term__c
    type: varchar(255)
    nullable: true
  - name: other_emails__c
    type: varchar(255)
    nullable: true
  - name: plg_bd_pool__c
    type: tinyint(1)
    nullable: true
  - name: person_lifecycle_stage__c
    type: varchar(255)
    nullable: true
  - name: person_owner_profile__c
    type: varchar(255)
    nullable: true
  - name: person_source_detail__c
    type: varchar(255)
    nullable: true
  - name: person_source__c
    type: varchar(255)
    nullable: true
  - name: person_status__c
    type: varchar(255)
    nullable: true
  - name: persona__c
    type: varchar(255)
    nullable: true
  - name: portal_id__c
    type: varchar(255)
    nullable: true
  - name: post_iqm_stage_datev2__c
    type: datetime
    nullable: true
  - name: recent_source_detail__c
    type: varchar(255)
    nullable: true
  - name: recent_source__c
    type: varchar(255)
    nullable: true
  - name: recent_utm_campaign__c
    type: varchar(255)
    nullable: true
  - name: recent_utm_content__c
    type: varchar(255)
    nullable: true
  - name: recent_utm_medium__c
    type: varchar(255)
    nullable: true
  - name: recent_utm_source__c
    type: varchar(255)
    nullable: true
  - name: recent_utm_term__c
    type: varchar(255)
    nullable: true
  - name: recent_working_source_details__c
    type: varchar(255)
    nullable: true
  - name: recent_working_source__c
    type: varchar(255)
    nullable: true
  - name: region__c
    type: varchar(255)
    nullable: true
  - name: registration_status__c
    type: varchar(255)
    nullable: true
  - name: replacing_database__c
    type: json
    nullable: true
  - name: reportstoid
    type: varchar(255)
    nullable: true
  - name: sal_stage_date__c
    type: datetime
    nullable: true
  - name: sal_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: sal_stage_source__c
    type: varchar(255)
    nullable: true
  - name: sdr_note_na_emea_only__c
    type: text
    nullable: true
  - name: sql_stage_date__c
    type: datetime
    nullable: true
  - name: sql_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: sql_stage_source__c
    type: varchar(255)
    nullable: true
  - name: secondary_email__c
    type: varchar(255)
    nullable: true
  - name: state_from_hubspot__c
    type: varchar(255)
    nullable: true
  - name: status__c
    type: varchar(255)
    nullable: true
  - name: suspect_stage_datev2__c
    type: datetime
    nullable: true
  - name: suspect_stage_date__c
    type: datetime
    nullable: true
  - name: suspect_stage_source_details__c
    type: varchar(255)
    nullable: true
  - name: suspect_stage_source__c
    type: varchar(255)
    nullable: true
  - name: technical_fit_details__c
    type: varchar(255)
    nullable: true
  - name: tidb_cloud_user__c
    type: tinyint(1)
    nullable: true
  - name: website_referrer_url__c
    type: text
    nullable: true
  - name: wrong_phone_number__c
    type: tinyint(1)
    nullable: true
  - name: zoominfo_company_id__c
    type: text
    nullable: true
  - name: zoominfo_contact_id__c
    type: varchar(255)
    nullable: true
  - name: affectlayer__affectlayer_notes__c
    type: varchar(255)
    nullable: true
  - name: affectlayer__iscreatedbychoruszi__c
    type: tinyint(1)
    nullable: true
  - name: pqcrush__origin__c
    type: varchar(255)
    nullable: true
  - name: pqcrush__relationshipmap__c
    type: varchar(255)
    nullable: true
  - name: utm_campaign__c
    type: varchar(255)
    nullable: true
  - name: utm_content__c
    type: varchar(255)
    nullable: true
  - name: utm_medium__c
    type: varchar(255)
    nullable: true
  - name: utm_source__c
    type: varchar(255)
    nullable: true
  - name: utm_term__c
    type: varchar(255)
    nullable: true
  - name: name
    type: varchar(255)
    nullable: true
  - name: buyerattributes
    type: varchar(255)
    nullable: true
  - name: genderidentity
    type: varchar(255)
    nullable: true
  - name: lastactivitydate
    type: date
    nullable: true
  - name: pronouns
    type: varchar(255)
    nullable: true
freshness:
  max_age: PT48H
  degrade_after: PT30H
tests:
- id: contact_source_smoke
  type: sql
  severity: informational
  description: Placeholder informational smoke check for the source contract of contact.
    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: 7074
  known_blind_spots:
  - Intra-snapshot changes are collapsed.
  - Insert-then-delete between snapshots is invisible.
  - Schema drift requires review before promotion.
