Merged PR 1409: Upgrade Core User
Improve source docs, place tests, adjust a few small details. There are a few fields that need to be better documented still.
This commit is contained in:
commit
d5f2a7f9fe
3 changed files with 259 additions and 11 deletions
|
|
@ -4,7 +4,168 @@ sources:
|
||||||
- name: core
|
- name: core
|
||||||
schema: sync_core
|
schema: sync_core
|
||||||
tables:
|
tables:
|
||||||
- name: user
|
- name: User
|
||||||
identifier: User
|
description: A User.
|
||||||
|
columns:
|
||||||
|
- name: Id
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: "UUID for the user."
|
||||||
|
tests:
|
||||||
|
- unique
|
||||||
|
- not_null
|
||||||
|
- dbt_expectations.expect_column_values_to_match_regex:
|
||||||
|
regex: "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
|
||||||
|
- name: Code
|
||||||
|
data_type: bigint
|
||||||
|
quote: True
|
||||||
|
description: "WIP. Is this an increment unique ID?"
|
||||||
|
tests:
|
||||||
|
- unique
|
||||||
|
- not_null
|
||||||
|
- name: Email
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: "Email for this user."
|
||||||
|
tests:
|
||||||
|
- unique
|
||||||
|
- not_null
|
||||||
|
- name: Title
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: DealId
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: "The Hubspot Deal Id that this user account belongs to. Multiple users can all be part of one Deal."
|
||||||
|
# This test can't be enforced yet due to some bad test data in the production database. Once that's deal with, this should be activated.
|
||||||
|
#tests:
|
||||||
|
# - dbt_expectations.expect_column_values_to_match_regex:
|
||||||
|
# regex: "^[0-9]{10,11}$"
|
||||||
|
- name: Deleted
|
||||||
|
data_type: boolean
|
||||||
|
quote: True
|
||||||
|
description: "WIP. I'm guessing this signals that the user wanted to be deleted?"
|
||||||
|
tests:
|
||||||
|
- not_null
|
||||||
|
- name: JoinDate
|
||||||
|
data_type: timestamp without time zone
|
||||||
|
quote: True
|
||||||
|
description: "Timestamp on which the user was created."
|
||||||
|
tests:
|
||||||
|
- not_null
|
||||||
|
- name: LastName
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: UserName
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
tests:
|
||||||
|
- not_null
|
||||||
|
- name: FirstName
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: CodePrefix
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: "WIP. No clue on what is this."
|
||||||
|
- name: BillingTown
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: CompanyName
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: DateOfBirth
|
||||||
|
data_type: timestamp without time zone
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: PhoneNumber
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: PasswordHash
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: AccountTypeId
|
||||||
|
data_type: bigint
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: CreatedUserId
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: |
|
||||||
|
A user can be created by another user. If this user has been created by another user, this is the UUID of the creator.
|
||||||
|
|
||||||
|
Else, this is null.
|
||||||
|
tests:
|
||||||
|
- dbt_expectations.expect_column_values_to_match_regex:
|
||||||
|
regex: "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
|
||||||
|
row_condition: '"CreatedUserId" is not null'
|
||||||
|
- name: SecurityStamp
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: EmailConfirmed
|
||||||
|
data_type: boolean
|
||||||
|
quote: True
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: LockoutEnabled
|
||||||
|
data_type: boolean
|
||||||
|
quote: True
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: BillingPostCode
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: BillingCountryId
|
||||||
|
data_type: bigint
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: TwoFactorEnabled
|
||||||
|
data_type: boolean
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: AccessFailedCount
|
||||||
|
data_type: bigint
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: LockoutEndDateUtc
|
||||||
|
data_type: timestamp without time zone
|
||||||
|
quote: True
|
||||||
|
description: "WIP. I have no clue what this is"
|
||||||
|
- name: BillingAddressLine1
|
||||||
|
data_type: character varing
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: BillingAddressLine2
|
||||||
|
data_type: character varying
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
- name: PhoneNumberConfirmed
|
||||||
|
data_type: boolean
|
||||||
|
quote: True
|
||||||
|
description: ""
|
||||||
|
tests:
|
||||||
|
- not_null
|
||||||
|
- name: _airbyte_raw_id
|
||||||
|
data_type: character varying
|
||||||
|
description: "{{ doc('_airbyte_raw_id_desc') }}"
|
||||||
|
- name: _airbyte_extracted_at
|
||||||
|
data_type: timestamp with time zone
|
||||||
|
description: "{{ doc('_airbyte_extracted_at_desc') }}"
|
||||||
|
tests:
|
||||||
|
- not_null
|
||||||
|
- dbt_expectations.expect_row_values_to_have_recent_data:
|
||||||
|
datepart: day
|
||||||
|
interval: 2
|
||||||
|
- name: _airbyte_meta
|
||||||
|
data_type: jsonb
|
||||||
|
description: "{{ doc('_airbyte_meta_desc') }}"
|
||||||
- name: superhog_user
|
- name: superhog_user
|
||||||
identifier: SuperhogUser
|
identifier: SuperhogUser
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,102 @@
|
||||||
|
|
||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
models:
|
models:
|
||||||
- name: stg_core_user
|
- name: stg_core__user
|
||||||
description: "The staging version of Core's User table. Do not confuse with SuperhogUser."
|
description: "The staging version of Core's User table. Do not confuse with SuperhogUser."
|
||||||
columns:
|
columns:
|
||||||
- name: id_user
|
- name: id_user
|
||||||
description: "The primary key for this table"
|
data_type: character varying
|
||||||
tests:
|
description: "UUID for the user."
|
||||||
- unique
|
- name: user_code
|
||||||
- not_null
|
data_type: bigint
|
||||||
|
description: "WIP. Is this an increment unique ID?"
|
||||||
|
- name: email
|
||||||
|
data_type: character varying
|
||||||
|
description: "Email for this user."
|
||||||
|
- name: title
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: id_deal
|
||||||
|
data_type: character varying
|
||||||
|
description: "The Hubspot Deal Id that this user account belongs to. Multiple users can all be part of one Deal."
|
||||||
|
- name: is_deleted
|
||||||
|
data_type: boolean
|
||||||
|
description: "WIP. I'm guessing this signals that the user wanted to be deleted?"
|
||||||
|
- name: join_date_utc
|
||||||
|
data_type: timestamp without time zone
|
||||||
|
description: "Timestamp on which the user was created."
|
||||||
|
- name: last_name
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: user_name
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: first_name
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: code_prefix
|
||||||
|
data_type: character varying
|
||||||
|
description: "WIP. No clue on what is this."
|
||||||
|
- name: billing_town
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: company_name
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: date_of_birth
|
||||||
|
data_type: date
|
||||||
|
description: ""
|
||||||
|
- name: phone_number
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: password_hash
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: id_account_type
|
||||||
|
data_type: bigint
|
||||||
|
description: ""
|
||||||
|
- name: id_created_user
|
||||||
|
data_type: character varying
|
||||||
|
description: |
|
||||||
|
A user can be created by another user. If this user has been created by another user, this is the UUID of the creator.
|
||||||
|
|
||||||
|
Else, this is null.
|
||||||
|
- name: security_stamp
|
||||||
|
data_type: character varying
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: is_email_confirmed
|
||||||
|
data_type: boolean
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: is_lockout_enabled
|
||||||
|
data_type: boolean
|
||||||
|
description: "WIP. I have no clue what this is."
|
||||||
|
- name: billing_postcode
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: id_billing_country
|
||||||
|
data_type: bigint
|
||||||
|
description: ""
|
||||||
|
- name: is_twofactor_enabled
|
||||||
|
data_type: boolean
|
||||||
|
description: ""
|
||||||
|
- name: access_failed_count
|
||||||
|
data_type: bigint
|
||||||
|
description: ""
|
||||||
|
- name: lockout_end_date_utc
|
||||||
|
data_type: timestamp without time zone
|
||||||
|
description: "WIP. I have no clue what this is"
|
||||||
|
- name: billing_address_line_1
|
||||||
|
data_type: character varing
|
||||||
|
description: ""
|
||||||
|
- name: billing_address_line_2
|
||||||
|
data_type: character varying
|
||||||
|
description: ""
|
||||||
|
- name: is_phone_number_confirmed
|
||||||
|
data_type: boolean
|
||||||
|
description: ""
|
||||||
|
- name: dwh_extracted_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: "{{ doc('dwh_extracted_date_utc_desc')}}"
|
||||||
|
|
||||||
- name: stg_core_superhog_user
|
- name: stg_core_superhog_user
|
||||||
description: "The staging version of Core's SuperhogUser table. Do not confuse with User."
|
description: "The staging version of Core's SuperhogUser table. Do not confuse with User."
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
with
|
with
|
||||||
raw_user as (select * from {{ source("core", "user") }}),
|
raw_user as (select * from {{ source("core", "User") }}),
|
||||||
stg_core__user as (
|
stg_core__user as (
|
||||||
select
|
select
|
||||||
{{ adapter.quote("Id") }} as id_user,
|
{{ adapter.quote("Id") }} as id_user,
|
||||||
|
|
@ -15,7 +15,7 @@ with
|
||||||
{{ adapter.quote("CodePrefix") }} as code_prefix,
|
{{ adapter.quote("CodePrefix") }} as code_prefix,
|
||||||
{{ adapter.quote("BillingTown") }} as billing_town,
|
{{ adapter.quote("BillingTown") }} as billing_town,
|
||||||
{{ adapter.quote("CompanyName") }} as company_name,
|
{{ adapter.quote("CompanyName") }} as company_name,
|
||||||
{{ adapter.quote("DateOfBirth") }} as date_of_birth,
|
cast({{ adapter.quote("DateOfBirth") }} as date) as date_of_birth,
|
||||||
{{ adapter.quote("PhoneNumber") }} as phone_number,
|
{{ adapter.quote("PhoneNumber") }} as phone_number,
|
||||||
{{ adapter.quote("PasswordHash") }} as password_hash,
|
{{ adapter.quote("PasswordHash") }} as password_hash,
|
||||||
{{ adapter.quote("AccountTypeId") }} as id_account_type,
|
{{ adapter.quote("AccountTypeId") }} as id_account_type,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue