cocoon icon

Cocoon: RAG for Large Data Warehouse

Cocoon prepares large data warehouse for RAG, enabling cursor-style chatbot functionality:

Get Started with Notebook

The project is fully open-sourced. You can run Cocoon locally.

Try Cocoon

Live Demo: RAG Salesforce + Stripe Tables in 2 steps


Step 1: Thoroughly Prepare RAG

Instead of traditional Vector RAG, Cocoon builds novel RAG based on join relationships among tables.

%3 stg_fee_data_0 stg_fee_data stg_balance_transaction_data_22 stg_balance_transaction_data stg_fee_data_0->stg_balance_transaction_data_22 stg_plan_data_1 stg_plan_data stg_sf_user_data_2 stg_sf_user_data stg_sf_user_data_2->stg_sf_user_data_2 stg_sf_user_data_2->stg_sf_user_data_2 stg_sf_user_role_data_14 stg_sf_user_role_data stg_sf_user_data_2->stg_sf_user_role_data_14 stg_payment_intent_data_3 stg_payment_intent_data stg_charge_data_10 stg_charge_data stg_payment_intent_data_3->stg_charge_data_10 stg_customer_data_11 stg_customer_data stg_payment_intent_data_3->stg_customer_data_11 stg_payment_method_data_23 stg_payment_method_data stg_payment_intent_data_3->stg_payment_method_data_23 stg_invoice_line_item_data_4 stg_invoice_line_item_data stg_invoice_line_item_data_4->stg_plan_data_1 stg_subscription_data_8 stg_subscription_data stg_invoice_line_item_data_4->stg_subscription_data_8 stg_payment_method_card_data_5 stg_payment_method_card_data stg_payment_method_card_data_5->stg_payment_method_data_23 snapshot_sf_contact_history_data_6 snapshot_sf_contact_history_data snapshot_sf_contact_history_data_6->stg_sf_user_data_2 snapshot_sf_contact_history_data_6->stg_sf_user_data_2 snapshot_sf_contact_history_data_6->snapshot_sf_contact_history_data_6 snapshot_sf_contact_history_data_6->snapshot_sf_contact_history_data_6 snapshot_sf_account_history_data_9 snapshot_sf_account_history_data snapshot_sf_contact_history_data_6->snapshot_sf_account_history_data_9 stg_refund_data_7 stg_refund_data stg_refund_data_7->stg_charge_data_10 stg_refund_data_7->stg_balance_transaction_data_22 stg_refund_data_7->stg_balance_transaction_data_22 stg_subscription_data_8->stg_customer_data_11 stg_subscription_data_8->stg_payment_method_data_23 snapshot_sf_account_history_data_9->stg_sf_user_data_2 stg_charge_data_10->stg_payment_intent_data_3 stg_charge_data_10->stg_customer_data_11 stg_sf_lead_data_12 stg_sf_lead_data stg_customer_data_11->stg_sf_lead_data_12 stg_sf_lead_data_12->stg_sf_user_data_2 stg_sf_lead_data_12->stg_sf_user_data_2 stg_sf_lead_data_12->stg_sf_user_data_2 stg_sf_lead_data_12->snapshot_sf_contact_history_data_6 stg_sf_lead_data_12->snapshot_sf_account_history_data_9 stg_sf_lead_data_12->snapshot_sf_account_history_data_9 stg_sf_opportunity_history_data_16 stg_sf_opportunity_history_data stg_sf_lead_data_12->stg_sf_opportunity_history_data_16 stg_invoice_data_13 stg_invoice_data stg_invoice_data_13->stg_invoice_line_item_data_4 stg_invoice_data_13->stg_subscription_data_8 stg_invoice_data_13->stg_customer_data_11 stg_sf_user_role_data_14->stg_sf_user_data_2 stg_sf_user_role_data_14->stg_sf_user_role_data_14 stg_payout_data_15 stg_payout_data stg_payout_data_15->stg_balance_transaction_data_22 stg_payout_data_15->stg_balance_transaction_data_22 stg_sf_opportunity_history_data_16->stg_sf_user_data_2 stg_sf_opportunity_history_data_16->snapshot_sf_account_history_data_9 stg_sf_opportunity_history_data_16->stg_sf_lead_data_12 stg_sf_task_data_17 stg_sf_task_data stg_sf_task_data_17->stg_sf_user_data_2 stg_sf_task_data_17->stg_sf_user_data_2 stg_sf_task_data_17->stg_sf_user_data_2 stg_sf_task_data_17->snapshot_sf_contact_history_data_6 stg_sf_task_data_17->snapshot_sf_account_history_data_9 stg_card_data_18 stg_card_data stg_card_data_18->stg_payment_method_data_23 stg_sf_event_data_19 stg_sf_event_data stg_sf_event_data_19->stg_sf_user_data_2 stg_sf_event_data_19->stg_sf_user_data_2 stg_sf_event_data_19->stg_sf_user_data_2 stg_sf_event_data_19->snapshot_sf_contact_history_data_6 stg_sf_event_data_19->snapshot_sf_account_history_data_9 stg_transfer_data_20 stg_transfer_data stg_transfer_data_20->stg_payout_data_15 stg_transfer_data_20->stg_balance_transaction_data_22 stg_dispute_data_21 stg_dispute_data stg_dispute_data_21->stg_charge_data_10 stg_dispute_data_21->stg_charge_data_10 stg_dispute_data_21->stg_balance_transaction_data_22 stg_balance_transaction_data_22->stg_charge_data_10 stg_balance_transaction_data_22->stg_payout_data_15 stg_payment_method_data_23->stg_customer_data_11 stg_price_data_24 stg_price_data stg_price_data_24->stg_invoice_line_item_data_4
1. stg_sf_user_role_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_user_role_data
  description: The table is about user roles in a system. It contains details like
    role name, developer name, access levels for different objects (case, contact,
    opportunity), forecast permissions, parent role, and portal type. Each role has
    a unique ID and additional flags for deletion and activity status. The table likely
    represents a hierarchical structure of user roles with varying permissions.
  columns:
  - name: is_deleted
    description: Indicates if the role has been deleted
    tests:
    - not_null
  - name: case_access_level
    description: Access level for case objects for account owners
    tests:
    - not_null
    - accepted_values:
        values:
        - No Access
        - Read Only
        - Read/Write
        - Full Access
        - fc4SIASWnVauLgJFy3VNNQ==
  - name: contact_access_level
    description: Access level for contact objects for account owners
    tests:
    - not_null
    - accepted_values:
        values:
        - No Access
        - Read Only
        - Read/Write
        - Full Access
        - Custom
        - fc4SIASWnVauLgJFy3VNNQ==
  - name: developer_name
    description: Unique identifier for developers to reference the role
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for developers to
        reference the role. For this table, each row represents a unique user role.
        The developer_name appears to be unique across rows in the sample data.
  - name: role_id
    description: Unique identifier for the role
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for the role. For
        this table, each row represents a unique user role. The role_id appears to
        be unique across rows in the sample data and is likely intended to be the
        primary key for this table.
  - name: can_manager_share_forecast
    description: Indicates if manager can share forecasts
    tests:
    - not_null
  - name: role_name
    description: Name of the role
    tests:
    - not_null
  - name: opportunity_access_level
    description: Access level for opportunity objects for account owners
    tests:
    - not_null
    - accepted_values:
        values:
        - No Access
        - Read Only
        - Read/Write
        - Full Access
        - fc4SIASWnVauLgJFy3VNNQ==
  - name: parent_role_id
    description: ID of the parent role in hierarchy
    tests:
    - not_null
  - name: portal_type
    description: Type of portal associated with the role
    tests:
    - not_null
    - accepted_values:
        values:
        - Customer
        - Employee
        - Partner
        - Vendor
        - Supplier
        - Investor
        - Public
        - Internal
        - External
        - Admin
        - Member
        - Guest
        - at+X+DrPZFPUpqSxBw83VA==
  - name: rollup_description
    description: Description for roll-up summary calculations
    tests:
    - not_null
  - name: is_active
    description: Indicates if the role is currently active
    tests:
    - not_null
  - name: forecast_user_id
    description: ID of the user responsible for forecasts
    tests:
    - not_null
  tests: []
2. stg_payout_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_payout_data
  description: The table is about Stripe payouts. It contains details of individual
    payout transactions. Each row represents a payout with attributes like amount,
    currency, dates, status, and destination account. The table includes information
    on payout methods, source types, and transaction IDs. It also stores metadata
    and flags for automatic processing and live mode.
  columns:
  - name: payout_id
    description: Unique identifier for the payout
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column is a unique identifier for each payout transaction.
        For this table, each row represents a single payout, and payout_id is unique
        across rows.
  - name: payout_amount_cents
    description: Payout amount in cents
    tests:
    - not_null
  - name: is_automatic
    description: Indicates if payout was automatically scheduled
    tests:
    - not_null
  - name: balance_transaction_id
    description: Unique identifier for the balance transaction
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column appears to be a unique identifier for each balance
        transaction associated with a payout. For this table, each row represents
        a single payout, and balance_transaction_id is unique across rows.
  - name: currency_code
    description: Currency code of the payout
    tests:
    - not_null
  - name: description
    description: Brief description of the payout
    tests:
    - not_null
  - name: destination_bank_account_id
    description: ID of the destination bank account
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if payout was in live mode
    tests:
    - not_null
  - name: payout_method
    description: Method used for the payout
    tests:
    - not_null
    - accepted_values:
        values:
        - standard
        - express
        - wire transfer
        - check
        - direct deposit
        - paypal
        - cryptocurrency
        - prepaid card
        - cash
        - bank transfer
  - name: source_type
    description: Type of source for the payout
    tests:
    - not_null
    - accepted_values:
        values:
        - card
        - bank_account
        - cash
        - check
        - wire_transfer
        - paypal
        - venmo
        - cryptocurrency
        - other
  - name: payout_status
    description: Current status of the payout
    tests:
    - not_null
    - accepted_values:
        values:
        - in_transit
        - paid
        - pending
        - failed
        - canceled
        - reversed
        - completed
  - name: destination_type
    description: Type of payout destination
    tests:
    - not_null
    - accepted_values:
        values:
        - bank_account
        - credit_card
        - paypal
        - venmo
        - cash_app
        - check
        - wire_transfer
        - prepaid_card
        - cryptocurrency_wallet
        - mobile_money
  - name: connected_account_id
    description: ID of the connected Stripe account
    tests:
    - not_null
  - name: creation_timestamp
    description: Timestamp of payout creation
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents the exact time when the payout was created.
        While it's theoretically possible for two payouts to be created at the exact
        same second, it's highly unlikely in practice. For this table, each row represents
        a single payout, and creation_timestamp is likely to be unique across rows.
  - name: destination_card_id
    description: ID of the destination card (if applicable)
    tests:
    - not_null
  - name: estimated_arrival_date
    description: Estimated date of payout arrival
    tests:
    - not_null
  - name: failure_code
    description: Code indicating reason for payout failure
    tests:
    - not_null
  - name: failure_message
    description: Detailed message explaining payout failure
    tests:
    - not_null
  - name: failure_transaction_id
    description: Transaction ID if payout failed
    tests:
    - not_null
  - name: metadata
    description: Additional information in JSON format
    tests:
    - not_null
  tests: []
3. stg_transfer_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_transfer_data
  description: The table is about Stripe payouts. It includes details such as payout
    amount, currency, creation date, destination bank account, and transaction IDs.
    Each row represents a single payout. The table contains metadata fields, including
    references to NetSuite deposit IDs and links. All payouts are in USD and have
    not been reversed. The destination bank account is consistent across most entries.
  columns:
  - name: payout_id
    description: Unique identifier for the payout
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each payout. For
        this table, each row is for a single payout transaction. payout_id is unique
        across rows as it's specifically designed to be a unique identifier for each
        payout.
  - name: payout_amount_cents
    description: Payout amount in cents
    tests:
    - not_null
  - name: reversed_amount_cents
    description: Amount reversed in cents
    tests:
    - not_null
  - name: balance_transaction_id
    description: Unique identifier for the balance transaction
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each balance transaction
        associated with a payout. For this table, each row is for a single payout
        transaction. balance_transaction_id is unique across rows as it's specifically
        designed to be a unique identifier for each transaction.
  - name: currency
    description: Currency of the payout
    tests:
    - not_null
    - accepted_values:
        values:
        - usd
        - eur
        - gbp
        - jpy
        - cny
        - chf
        - cad
        - aud
        - nzd
        - inr
        - krw
        - sgd
        - hkd
        - mxn
        - brl
        - zar
        - sek
        - nok
        - dkk
        - rub
  - name: payout_description
    description: Brief description of the payout
    tests:
    - not_null
  - name: destination_bank_account_id
    description: Destination bank account identifier
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if the payout is live or test
    tests:
    - not_null
  - name: is_reversed
    description: Indicates if the payout was reversed
    tests:
    - not_null
  - name: payment_source_type
    description: Type of payment source
    tests:
    - not_null
    - accepted_values:
        values:
        - card
        - cash
        - bank transfer
        - digital wallet
        - cryptocurrency
        - check
        - money order
        - gift card
        - store credit
        - mobile payment
        - paypal
        - wire transfer
        - direct debit
        - prepaid card
  - name: destination_payment
    description: Unused field for destination payment
    tests:
    - not_null
  - name: destination_payment_id
    description: Unused field for destination payment ID
    tests:
    - not_null
  - name: metadata
    description: Additional information in JSON format
    tests:
    - not_null
  - name: payout_created_at
    description: Date and time of payout creation
    tests:
    - not_null
  tests: []
4. stg_refund_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_refund_data
  description: The table is about refund data. It contains details of refund transactions.
    Each row represents a refund with attributes like ID, amount, currency, and status.
    It includes information on the associated charge, reason for refund, and timestamp.
    The table also stores metadata and receipt numbers for each refund. All refunds
    in the sample have succeeded status and are in USD currency.
  columns:
  - name: refund_id
    description: Unique identifier for the refund
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each refund. For
        this table, each row is for a single refund transaction. refund_id is unique
        across rows as it's designed to be a unique identifier for each refund.
  - name: refund_amount_cents
    description: Refund amount in cents
    tests:
    - not_null
  - name: balance_transaction_id
    description: Unique identifier for the balance transaction
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each balance transaction
        associated with the refund. For this table, each row is for a single refund
        transaction. balance_transaction_id is likely unique across rows as each refund
        would typically have its own balance transaction.
  - name: charge_id
    description: Unique identifier for the associated charge
    tests:
    - not_null
  - name: currency
    description: Currency of the refund
    tests:
    - not_null
  - name: refund_reason
    description: Reason for the refund
    tests:
    - not_null
    - accepted_values:
        values:
        - requested_by_customer
        - duplicate
        - item_not_received
        - item_defective
        - wrong_item_shipped
        - arrived_too_late
        - no_longer_needed
        - better_price_found
        - not_as_described
        - changed_mind
        - unauthorized_purchase
        - damaged_in_transit
        - quality_not_as_expected
        - missing_parts
        - incorrect_size
        - allergic_reaction
        - subscription_cancellation
        - technical_issues
        - pricing_error
        - product_recall
  - name: receipt_number
    description: Receipt number for the refund
    tests:
    - not_null
  - name: refund_status
    description: Current status of the refund
    tests:
    - not_null
    - accepted_values:
        values:
        - succeeded
        - pending
        - failed
        - cancelled
        - processing
        - reversed
  - name: failure_balance_transaction_id
    description: ID of failed balance transaction, if any
    tests:
    - not_null
  - name: failure_reason
    description: Reason for refund failure, if any
    tests:
    - not_null
  - name: metadata
    description: Additional information about the refund
    tests:
    - not_null
  - name: refund_created_at
    description: Timestamp of when the refund was created
    tests:
    - not_null
  tests: []
5. stg_fee_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_fee_data
  description: The table is about fee transactions. It includes details such as the
    transaction ID, amount, currency, description, and type. All transactions are
    in USD. The amounts vary significantly, from 99 to 22215. Each transaction has
    a unique balance_transaction_id. The description and type fields contain consistent
    values across all entries, suggesting they might be category identifiers.
  columns:
  - name: transaction_id
    description: Unique identifier for the transaction
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each transaction.
        For this table, each row represents a distinct fee transaction. The transaction_id
        appears to be unique across rows, as each sample has a different value.
  - name: group_index
    description: Constant value, possibly for grouping
    tests:
    - not_null
  - name: amount_cents
    description: Transaction amount in cents
    tests:
    - not_null
  - name: currency_code
    description: Currency of the transaction
    tests:
    - not_null
  - name: category_hash
    description: Identifier or hash for transaction category
    tests:
    - not_null
  - name: type_hash
    description: Identifier or hash for transaction type
    tests:
    - not_null
  tests: []
6. stg_balance_transaction_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_balance_transaction_data
  description: The table is about balance transactions. It includes details such as
    transaction ID, amount, date, currency, description, fees, net amount, source,
    status, and type. Each row represents a financial transaction like a charge or
    payout. The table tracks monetary movements, including both incoming (charges)
    and outgoing (payouts) transactions, with associated fees and net amounts.
  columns:
  - name: transaction_id
    description: Unique identifier for the transaction
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each transaction.
        For this table, each row is for a single financial transaction, and transaction_id
        is unique across rows.
  - name: transaction_amount_cents
    description: Transaction amount in cents
    tests:
    - not_null
  - name: currency_code
    description: Currency code of the transaction
    tests:
    - not_null
  - name: transaction_description
    description: Unique identifier or description of the transaction
    tests:
    - not_null
  - name: fee_amount_cents
    description: Fee amount in cents
    tests:
    - not_null
  - name: net_amount_cents
    description: Net amount after fees in cents
    tests:
    - not_null
  - name: transaction_source_id
    description: Source of the transaction (charge or payout ID)
    tests:
    - not_null
  - name: transaction_status
    description: Current status of the transaction
    tests:
    - not_null
    - accepted_values:
        values:
        - pending
        - completed
        - failed
        - cancelled
        - processing
        - rejected
        - on hold
        - refunded
        - partially refunded
  - name: transaction_type
    description: Type of transaction (charge or payout)
    tests:
    - not_null
    - accepted_values:
        values:
        - charge
        - payout
  - name: payout_id
    description: Identifier for the associated payout
    tests:
    - not_null
  - name: connected_account_id
    description: ID of the connected account (empty in this data)
    tests:
    - not_null
  - name: funds_available_date
    description: Date when the funds become available
    tests:
    - not_null
  - name: transaction_created_at
    description: Date and time when the transaction was created
    tests:
    - not_null
  tests: []
7. stg_dispute_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_dispute_data
  description: The table is about dispute data for charges. It includes details like
    dispute ID, amount, charge ID, currency, and dispute status. Evidence fields store
    information provided for the dispute. Metadata contains additional references.
    Key fields are reason for dispute, status (won/lost), and whether the charge is
    refundable. The table tracks dispute lifecycles from creation to resolution.
  columns:
  - name: dispute_id
    description: Unique identifier for the dispute
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column is a unique identifier for each dispute. For this
        table, each row represents a distinct dispute, and dispute_id is unique across
        rows.
  - name: dispute_transaction_id
    description: Transaction ID for the dispute
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents the transaction ID for each dispute. It
        appears to be unique for each dispute in the given sample, but it's possible
        that multiple disputes could theoretically be related to the same transaction
        in some cases.
  - name: charge_id
    description: Unique identifier for the disputed charge
    tests:
    - not_null
  - name: currency
    description: Currency of the disputed amount
    tests:
    - not_null
  - name: evidence_billing_address
    description: Billing address provided as evidence
    tests:
    - not_null
  - name: evidence_customer_email
    description: Customer email address provided as evidence
    tests:
    - not_null
  - name: evidence_customer_name
    description: Customer name provided as evidence
    tests:
    - not_null
  - name: evidence_purchase_ip
    description: Customer's IP address at purchase as evidence
    tests:
    - not_null
  - name: has_evidence
    description: Indicates if evidence has been submitted
    tests:
    - not_null
  - name: evidence_past_due
    description: Indicates if evidence submission is past due
    tests:
    - not_null
  - name: evidence_submission_count
    description: Number of evidence submissions
    tests:
    - not_null
  - name: evidence_receipt
    description: Receipt provided as evidence
    tests:
    - not_null
  - name: is_refundable
    description: Indicates if the charge can be refunded
    tests:
    - not_null
  - name: is_live
    description: Indicates if the dispute is in live mode
    tests:
    - not_null
  - name: dispute_reason
    description: Reason for the dispute
    tests:
    - not_null
    - accepted_values:
        values:
        - subscription_canceled
        - general
        - product_unacceptable
        - fraudulent_charge
        - duplicate_charge
        - product_not_received
        - incorrect_amount
        - unauthorized_charge
        - service_unsatisfactory
        - refund_not_processed
        - subscription_unwanted
        - quality_issue
        - shipping_issue
  - name: dispute_status
    description: Current status of the dispute
    tests:
    - not_null
    - accepted_values:
        values:
        - lost
        - won
        - pending
        - settled
        - withdrawn
  - name: additional_data
    description: Additional data related to the dispute
    tests:
    - not_null
  - name: connected_account_id
    description: ID of the connected account
    tests:
    - not_null
  - name: dispute_created_at
    description: Date and time when the dispute was created
    tests:
    - not_null
  - name: disputed_amount
    description: Disputed charge amount
    tests:
    - not_null
  - name: evidence_access_log
    description: Access activity log provided as evidence
    tests:
    - not_null
  - name: evidence_cancellation_disclosure
    description: Disclosure of cancellation policy as evidence
    tests:
    - not_null
  - name: evidence_cancellation_policy
    description: Cancellation policy provided as evidence
    tests:
    - not_null
  - name: evidence_cancellation_rebuttal
    description: Rebuttal to cancellation claim as evidence
    tests:
    - not_null
  - name: evidence_carrier
    description: Shipping carrier used for the order
    tests:
    - not_null
  - name: evidence_customer_signature
    description: Customer signature provided as evidence
    tests:
    - not_null
  - name: evidence_due_date
    description: Due date for submitting evidence
    tests:
    - not_null
  - name: evidence_duplicate_charge_docs
    description: Documentation for duplicate charge claim
    tests:
    - not_null
  - name: evidence_duplicate_charge_explanation
    description: Explanation for duplicate charge claim
    tests:
    - not_null
  - name: evidence_duplicate_charge_id
    description: ID of the duplicate charge
    tests:
    - not_null
  - name: evidence_ship_date
    description: Date the order was shipped
    tests:
    - not_null
  - name: evidence_ship_docs
    description: Documentation related to shipping
    tests:
    - not_null
  - name: evidence_tracking
    description: Tracking number for the shipped order
    tests:
    - not_null
  tests: []
8. stg_charge_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_charge_data
  description: The table is about charge transactions. It contains details like amount,
    currency, customer ID, card details, and transaction status. Most charges failed
    due to card declines. The table includes information on the reason for failure,
    risk assessment, and metadata. All charges are in USD and were made on February
    18, 2021.
  columns:
  - name: charge_id
    description: Unique identifier for the charge
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each charge transaction.
        For this table, each row represents a distinct charge transaction. The charge_id
        is unique across rows.
  - name: amount_cents
    description: Transaction amount in cents
    tests:
    - not_null
  - name: refunded_cents
    description: Amount refunded in cents
    tests:
    - not_null
  - name: is_captured
    description: Whether the charge was captured
    tests:
    - not_null
  - name: card_id
    description: ID of the card used
    tests:
    - not_null
  - name: currency
    description: Currency of the charge
    tests:
    - not_null
    - accepted_values:
        values:
        - usd
        - eur
        - gbp
        - jpy
        - cad
        - aud
        - chf
        - cny
        - hkd
        - nzd
        - sek
        - krw
        - sgd
        - nok
        - mxn
        - inr
        - rub
        - zar
        - try
        - brl
        - twd
        - dkk
        - pln
        - thb
        - idr
  - name: customer_id
    description: ID of the customer
    tests:
    - not_null
  - name: description
    description: Description of the charge
    tests:
    - not_null
  - name: failure_code
    description: Code indicating reason for failure
    tests:
    - not_null
    - accepted_values:
        values:
        - card_declined
        - insufficient_funds
        - expired_card
        - invalid_card_number
        - invalid_cvc
        - incorrect_cvc
        - lost_card
        - stolen_card
        - fraudulent_card
        - processing_error
        - issuer_not_available
        - do_not_honor
        - card_not_supported
        - currency_not_supported
        - duplicate_transaction
        - authentication_required
        - blocked_card
        - restricted_card
        - card_velocity_exceeded
        - withdrawal_count_limit_exceeded
  - name: failure_message
    description: Message describing the failure
    tests:
    - not_null
  - name: is_live
    description: Whether charge was in live mode
    tests:
    - not_null
  - name: network_status
    description: Network status of the charge outcome
    tests:
    - not_null
    - accepted_values:
        values:
        - declined_by_network
        - approved
        - declined_by_issuer
        - network_error
        - timeout
        - invalid_card
        - insufficient_funds
        - lost_or_stolen_card
        - suspected_fraud
        - expired_card
        - processing_error
        - card_not_supported
        - card_restricted
        - do_not_honor
        - pickup_card
  - name: outcome_reason
    description: Reason for the charge outcome
    tests:
    - not_null
    - accepted_values:
        values:
        - do_not_honor
        - insufficient_funds
        - lost_card
        - stolen_card
        - expired_card
        - invalid_card_number
        - invalid_cvc
        - card_not_supported
        - processing_error
        - fraudulent
        - generic_decline
        - card_velocity_exceeded
        - suspected_fraud
        - card_restricted
        - currency_not_supported
        - approved
        - partially_approved
        - authentication_required
        - incorrect_address
        - transaction_not_allowed
  - name: risk_level
    description: Risk level of the charge outcome
    tests:
    - not_null
    - accepted_values:
        values:
        - low
        - normal
        - medium
        - high
        - critical
  - name: seller_message
    description: Seller message for the charge outcome
    tests:
    - not_null
    - accepted_values:
        values:
        - do_not_honor
        - insufficient_funds
        - lost_card
        - stolen_card
        - expired_card
        - invalid_card_number
        - invalid_cvc
        - card_declined
        - processing_error
        - incorrect_pin
        - incorrect_zip
        - invalid_expiry_date
        - card_not_supported
        - fraudulent
        - pickup_card
        - restricted_card
        - security_violation
        - service_not_allowed
        - transaction_not_allowed
        - try_again_later
        - The bank returned the decline code `do_not_honor`.
  - name: outcome_type
    description: Type of the charge outcome
    tests:
    - not_null
    - accepted_values:
        values:
        - issuer_declined
        - approved
        - blocked
        - expired_card
        - insufficient_funds
        - lost_card
        - stolen_card
        - invalid_amount
        - invalid_number
        - fraud_suspect
        - processor_declined
        - authentication_required
        - card_not_supported
        - do_not_honor
        - duplicate_transaction
        - generic_decline
  - name: is_paid
    description: Indicates if the charge was successful
    tests:
    - not_null
  - name: payment_intent_id
    description: Unique identifier for the payment intent
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for the payment intent
        associated with each charge. While it's likely to be unique for each transaction
        in this table, it's possible that multiple charges could be associated with
        the same payment intent in some cases.
  - name: hashed_receipt_email
    description: Hashed email address for receipt
    tests:
    - not_null
  - name: is_refunded
    description: Indicates if the charge was refunded
    tests:
    - not_null
  - name: charge_status
    description: Current status of the charge
    tests:
    - not_null
    - accepted_values:
        values:
        - failed
        - succeeded
        - pending
        - refunded
        - canceled
        - disputed
        - authorized
        - captured
        - expired
        - requires_payment_method
        - requires_confirmation
        - requires_action
        - processing
  - name: calculated_statement_descriptor
    description: ''
    tests:
    - not_null
  - name: created_at
    description: Timestamp of charge creation
    tests:
    - not_null
  - name: invoice_id
    description: ID of associated invoice
    tests:
    - not_null
  - name: metadata
    description: Additional metadata for the charge
    tests:
    - not_null
  - name: receipt_number
    description: Receipt number if available
    tests:
    - not_null
  - name: receipt_url
    description: URL to access the receipt
    tests:
    - not_null
  - name: shipping_address_1
    description: First line of shipping address
    tests:
    - not_null
  - name: shipping_address_2
    description: Second line of shipping address
    tests:
    - not_null
  - name: shipping_carrier
    description: Name of shipping carrier
    tests:
    - not_null
  - name: shipping_city
    description: City in shipping address
    tests:
    - not_null
  - name: shipping_country
    description: Country in shipping address
    tests:
    - not_null
  - name: shipping_phone
    description: Phone number for shipping
    tests:
    - not_null
  - name: shipping_postal_code
    description: Postal code in shipping address
    tests:
    - not_null
  - name: shipping_recipient_name
    description: Name of recipient for shipping
    tests:
    - not_null
  - name: shipping_state
    description: State in shipping address
    tests:
    - not_null
  - name: shipping_tracking_number
    description: Tracking number for shipment
    tests:
    - not_null
  tests: []
9. stg_payment_intent_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_payment_intent_data
  description: The table is about payment intents. It includes details such as amount,
    currency, customer ID, payment method ID, and status. Each row represents a single
    payment intent with a unique ID. The table tracks information like creation date,
    capture method, and whether the payment succeeded. It also includes fields for
    errors and cancellations, though most are empty in these samples.
  columns:
  - name: payment_intent_id
    description: Unique identifier for the payment intent
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each payment intent.
        For this table, each row is for a single payment intent, and payment_intent_id
        is unique across rows.
  - name: amount_in_cents
    description: Payment amount in the smallest currency unit
    tests:
    - not_null
  - name: amount_capturable
    description: Amount available for capture
    tests:
    - not_null
  - name: amount_received
    description: Amount actually received
    tests:
    - not_null
  - name: application
    description: Associated application for the payment
    tests:
    - not_null
  - name: capture_method
    description: Method used to capture payment
    tests:
    - not_null
    - accepted_values:
        values:
        - automatic
        - manual
        - card
        - bank_transfer
        - cash
        - check
        - paypal
        - apple_pay
        - google_pay
        - cryptocurrency
        - wire_transfer
        - direct_debit
        - invoice
  - name: confirmation_method
    description: Method used to confirm payment
    tests:
    - not_null
    - accepted_values:
        values:
        - automatic
        - manual
        - email
        - sms
        - phone call
        - in-app notification
        - bank statement
        - receipt
        - invoice
        - credit card statement
        - payment gateway confirmation
        - third-party verification
  - name: currency_code
    description: Currency code for the payment
    tests:
    - not_null
  - name: customer_id
    description: Unique identifier for the customer
    tests:
    - not_null
  - name: description
    description: Description of the payment intent
    tests:
    - not_null
  - name: is_live
    description: Whether the payment is live or test
    tests:
    - not_null
  - name: payment_method_id
    description: ID of the payment method used
    tests:
    - not_null
  - name: receipt_email
    description: Email address for receipt
    tests:
    - not_null
  - name: status
    description: Current status of the payment intent
    tests:
    - not_null
    - accepted_values:
        values:
        - succeeded
        - processing
        - requires_payment_method
        - requires_confirmation
        - requires_action
        - canceled
        - requires_capture
  - name: canceled_at
    description: Timestamp of cancellation
    tests:
    - not_null
  - name: cancellation_reason
    description: Reason for cancellation if applicable
    tests:
    - not_null
  - name: created_at
    description: Timestamp of payment intent creation
    tests:
    - not_null
  - name: decline_code
    description: Decline code if payment was declined
    tests:
    - not_null
  - name: error_charge_id
    description: ID of charge with last error
    tests:
    - not_null
  - name: error_code
    description: Error code of last failed attempt
    tests:
    - not_null
  - name: error_doc_url
    description: URL to error documentation
    tests:
    - not_null
  - name: error_message
    description: Error message for last failed attempt
    tests:
    - not_null
  - name: error_param
    description: Parameter that caused the error
    tests:
    - not_null
  - name: error_source_id
    description: ID of source causing the error
    tests:
    - not_null
  - name: error_type
    description: Type of the last error
    tests:
    - not_null
  tests: []
10. stg_payment_method_card_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_payment_method_card_data
  description: The table is about payment method card details. It includes unique
    payment method IDs, a consistent brand identifier, and fingerprints for each card.
    The funding type is specified as credit for all entries. Some fields like charge_id,
    description, type, and wallet_type are empty. The table appears to store essential
    information for credit card payment methods.
  columns:
  - name: payment_method_id
    description: Unique identifier for the payment method
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each payment method.
        For this table, each row represents a distinct payment method, and the payment_method_id
        appears to be unique across rows.
  - name: payment_provider_id
    description: Identifier for the payment provider or card issuer
    tests:
    - not_null
  - name: card_fingerprint
    description: Unique identifier for the specific card
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each specific
        card. For this table, each row represents a distinct payment method, and the
        card_fingerprint appears to be unique across rows.
  - name: funding_type
    description: Type of funding source for the payment method
    tests:
    - not_null
    - accepted_values:
        values:
        - credit
        - debit
        - cash
        - check
        - wire transfer
        - cryptocurrency
        - gift card
        - store credit
        - loyalty points
        - prepaid card
        - mobile payment
        - bank transfer
  - name: digital_wallet_type
    description: Specifies the digital wallet used, if applicable
    tests:
    - not_null
  tests: []
11. stg_card_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_card_data
  description: The table is about payment methods. It contains details such as card
    ID, brand, country, currency, expiration date, last 4 digits, funding type, and
    creation date. Each row represents a unique payment method with its associated
    attributes. The table includes metadata and checks for address and CVC. Most fields
    are related to card information and payment processing details.
  columns:
  - name: issuing_country
    description: Country where the payment method was issued
    tests:
    - not_null
  - name: expiration_year
    description: Expiration year of the payment card
    tests:
    - not_null
  - name: currency
    description: Currency associated with the payment method
    tests:
    - not_null
  - name: payment_method_id
    description: Unique identifier for the payment method
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each payment method.
        For this table, each row represents a distinct payment method, and the payment_method_id
        appears to be unique across rows.
  - name: expiration_month
    description: Expiration month of the payment card
    tests:
    - not_null
  - name: payment_network
    description: Payment network processing the transaction
    tests:
    - not_null
    - accepted_values:
        values:
        - Visa
        - Mastercard
        - American Express
        - Discover
        - JCB
        - UnionPay
        - Diners Club
        - PayPal
        - Stripe
        - Square
        - Alipay
        - WeChat Pay
        - Apple Pay
        - Google Pay
        - Samsung Pay
        - Interac
        - Klarna
        - Affirm
        - Afterpay
        - Venmo
        - 553f65f270c86a4a05c964dc20e8cc70
  - name: funding_type
    description: Funding type of the payment method (e.g., credit, debit)
    tests:
    - not_null
    - accepted_values:
        values:
        - credit
        - debit
        - prepaid
        - gift card
        - bank transfer
        - cash
        - check
        - cryptocurrency
        - mobile payment
        - wire transfer
        - loyalty points
        - store credit
  - name: card_brand
    description: Brand or network of the payment card
    tests:
    - not_null
    - accepted_values:
        values:
        - Visa
        - Mastercard
        - American Express
        - Discover
        - JCB
        - Diners Club
        - UnionPay
        - Maestro
        - Visa Electron
        - China T-Union
        - RuPay
        - InterPayment
        - InstaPayment
        - UATP
        - Dankort
        - Mir
        - Troy
        - Elo
        - Hipercard
        - BC Card
        - 553f65f270c86a4a05c964dc20e8cc70
  - name: is_deleted
    description: Indicates if the payment method has been deleted
    tests:
    - not_null
  - name: cvc_verification
    description: Status of the Card Verification Code check
    tests:
    - not_null
    - accepted_values:
        values:
        - pass
        - fail
        - not_checked
  - name: card_fingerprint
    description: Unique identifier for the card number
    tests:
    - not_null
  - name: creation_datetime
    description: Date and time when the payment method was created
    tests:
    - not_null
  - name: last4_digits
    description: Last 4 digits of the payment card number
    tests:
    - not_null
  - name: metadata
    description: Additional information stored as key-value pairs
    tests:
    - not_null
  tests: []
12. stg_payment_method_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_payment_method_data
  description: The table is about payment method data. It contains details like ID,
    billing information, customer ID, and payment type. Billing details include address,
    email, name, and phone, but most fields are empty or encrypted. All entries are
    for card payments in live mode. The table tracks payment methods associated with
    customers, including creation date and unique identifiers.
  columns:
  - name: billing_postal_code
    description: Postal code of the billing address (encrypted)
    tests:
    - not_null
  - name: payment_method_id
    description: Unique identifier for the payment method
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each payment method.
        For this table, each row represents a distinct payment method, and payment_method_id
        is unique across rows.
  - name: billing_name
    description: Name associated with the billing details (encrypted)
    tests:
    - not_null
  - name: payment_method_type
    description: Type of payment method (e.g., card)
    tests:
    - not_null
    - accepted_values:
        values:
        - card
        - cash
        - bank transfer
        - check
        - digital wallet
        - cryptocurrency
        - mobile payment
        - wire transfer
        - money order
        - debit card
        - credit card
        - prepaid card
        - ACH
        - PayPal
        - Venmo
        - Apple Pay
        - Google Pay
        - gift card
        - store credit
  - name: customer_id
    description: Unique identifier for the customer
    tests:
    - not_null
  - name: billing_email
    description: Email address for billing (encrypted)
    tests:
    - not_null
  - name: is_live
    description: Indicates if the payment method is in live mode
    tests:
    - not_null
  - name: billing_address_1
    description: First line of the billing address
    tests:
    - not_null
  - name: billing_address_2
    description: Second line of the billing address
    tests:
    - not_null
  - name: billing_city
    description: City of the billing address
    tests:
    - not_null
  - name: billing_country
    description: Country of the billing address
    tests:
    - not_null
  - name: billing_state
    description: State of the billing address
    tests:
    - not_null
  - name: created_at
    description: Date and time the payment method was created
    tests:
    - not_null
  tests: []
13. stg_subscription_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_subscription_data
  description: The table is about subscription data. It contains details of individual
    subscriptions, including billing information, subscription status, customer ID,
    and pricing details. Key fields include subscription ID, billing cycle dates,
    cancellation info, customer ID, subscription status, and trial period dates. The
    metadata field stores additional custom information like external IDs.
  columns:
  - name: subscription_id
    description: Unique identifier for the subscription
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each subscription.
        For this table, each row represents a distinct subscription, and subscription_id
        should be unique across rows.
  - name: billing_method
    description: Billing type or method for the subscription
    tests:
    - not_null
    - accepted_values:
        values:
        - Credit Card
        - Debit Card
        - PayPal
        - Bank Transfer
        - Cash
        - Check
        - Apple Pay
        - Google Pay
        - Cryptocurrency
        - Invoice
        - Direct Debit
        - Wire Transfer
        - fdfjk
        - fdsiew
  - name: billing_threshold_amount
    description: Minimum amount to trigger a billing event
    tests:
    - not_null
  - name: reset_billing_cycle_on_threshold
    description: Indicates if billing cycle resets on threshold
    tests:
    - not_null
  - name: cancel_at_period_end
    description: Indicates if subscription cancels at period end
    tests:
    - not_null
  - name: customer_id
    description: Unique identifier for the customer
    tests:
    - not_null
  - name: days_until_due
    description: Number of days until payment is due
    tests:
    - not_null
  - name: default_payment_source_id
    description: ID of the default payment source
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if the subscription is in live mode
    tests:
    - not_null
  - name: subscription_quantity
    description: Quantity of the subscribed item or service
    tests:
    - not_null
  - name: subscription_status
    description: Current status of the subscription
    tests:
    - not_null
    - accepted_values:
        values:
        - active
        - inactive
        - pending
        - cancelled
        - expired
        - suspended
        - trialing
        - past_due
        - unpaid
        - on_hold
  - name: application_fee_percentage
    description: Percentage of the application fee charged
    tests:
    - not_null
  - name: billing_cycle_start
    description: Date/time when the billing cycle starts
    tests:
    - not_null
  - name: cancellation_date
    description: Date/time when the subscription was canceled
    tests:
    - not_null
  - name: creation_date
    description: Date/time when the subscription was created
    tests:
    - not_null
  - name: current_period_end
    description: End date/time of the current billing period
    tests:
    - not_null
  - name: current_period_start
    description: Start date/time of the current billing period
    tests:
    - not_null
  - name: end_date
    description: Date/time when the subscription ended
    tests:
    - not_null
  - name: metadata
    description: Additional custom information about the subscription
    tests:
    - not_null
  - name: scheduled_cancellation_date
    description: Scheduled date/time for subscription cancellation
    tests:
    - not_null
  - name: subscription_start_date
    description: Date/time when the subscription started
    tests:
    - not_null
  - name: tax_percentage
    description: Percentage of tax applied to the subscription
    tests:
    - not_null
  - name: trial_end_date
    description: End date/time of the trial period
    tests:
    - not_null
  - name: trial_start_date
    description: Start date/time of the trial period
    tests:
    - not_null
  tests: []
14. stg_plan_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_plan_data
  description: The table is about subscription plans. It contains details like plan
    ID, active status, pricing amount, currency, billing interval, created date, and
    product ID. Each row represents a unique plan with its specific attributes. The
    plans have different durations (monthly or multi-month) and prices. All plans
    use USD currency and are set to "licensed" usage type.
  columns:
  - name: plan_id
    description: Unique identifier for the plan
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each subscription
        plan. For this table, each row represents a distinct subscription plan. The
        plan_id appears to be unique across rows, as it uses a specific alphanumeric
        format (e.g., zbc001, abc002) that is likely designed to be unique for each
        plan.
  - name: is_active
    description: Indicates if the plan is currently active
    tests:
    - not_null
  - name: price_in_cents
    description: Price of the plan in cents
    tests:
    - not_null
  - name: billing_method
    description: Method used for billing calculation
    tests:
    - not_null
    - accepted_values:
        values:
        - per_unit
        - flat_rate
        - tiered
        - usage_based
        - subscription
        - value_based
        - time_and_materials
        - milestone
        - cost_plus
        - percentage_of_completion
  - name: currency_code
    description: Currency used for the plan pricing
    tests:
    - not_null
  - name: billing_interval
    description: Billing frequency (e.g., month)
    tests:
    - not_null
    - accepted_values:
        values:
        - day
        - week
        - month
        - quarter
        - year
  - name: billing_cycle_duration
    description: Number of intervals between billings
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the plan has been deleted
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if the plan is in live or test mode
    tests:
    - not_null
  - name: product_id
    description: Unique identifier of the associated product
    tests:
    - not_null
  - name: usage_type
    description: Type of usage for the plan
    tests:
    - not_null
    - accepted_values:
        values:
        - licensed
        - subscription
        - pay-per-use
        - freemium
        - perpetual
        - tiered
        - metered
        - floating
        - site
        - volume
        - concurrent
        - named-user
        - enterprise
        - academic
        - trial
  - name: creation_datetime
    description: Date and time when the plan was created
    tests:
    - not_null
  - name: plan_nickname
    description: Optional nickname for the plan (empty in this case)
    tests:
    - not_null
  - name: pricing_tier_mode
    description: Pricing tier structure (empty in this case)
    tests:
    - not_null
  - name: trial_period_days
    description: Number of trial days (empty in this case)
    tests:
    - not_null
  - name: usage_aggregation_method
    description: Aggregation method for metered usage (empty in this case)
    tests:
    - not_null
  - name: usage_transform_divisor
    description: Usage transformation divisor (empty in this case)
    tests:
    - not_null
  - name: usage_transform_rounding
    description: Usage transformation rounding method (empty in this case)
    tests:
    - not_null
  tests: []
15. stg_price_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_price_data
  description: The table is about pricing information. It includes details like price
    ID, active status, billing scheme, currency, and amount. The table also contains
    fields related to recurring pricing, such as interval and usage type. Additional
    information includes creation date, associated product ID, and metadata. The table
    seems to store comprehensive pricing data for various products or services.
  columns:
  - name: price_id
    description: Unique identifier for the price
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column is a unique identifier for each price. For this table,
        each row represents a distinct price entry. price_id is unique across rows
        as it's designed to be a primary identifier.
  - name: is_active
    description: Indicates if the price is currently active
    tests:
    - not_null
  - name: billing_scheme
    description: The pricing model for the product
    tests:
    - not_null
    - accepted_values:
        values:
        - per_unit
        - tiered
  - name: currency_code
    description: The currency code for the price
    tests:
    - not_null
  - name: invoice_item_id
    description: Associated invoice item identifier
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the price has been deleted
    tests:
    - not_null
  - name: is_live_mode
    description: Whether the price is in live or test mode
    tests:
    - not_null
  - name: product_id
    description: Identifier of the associated product
    tests:
    - not_null
  - name: price_type
    description: The type of pricing (one-time or recurring)
    tests:
    - not_null
    - accepted_values:
        values:
        - one_time
        - recurring
  - name: unit_amount
    description: Price amount in smallest currency unit
    tests:
    - not_null
  - name: creation_date
    description: Timestamp of when the price was created
    tests:
    - not_null
  - name: metadata
    description: Additional information about the price
    tests:
    - not_null
  - name: recurring_interval
    description: Billing frequency for recurring prices
    tests:
    - not_null
  - name: recurring_interval_count
    description: Number of intervals between billings
    tests:
    - not_null
  - name: recurring_usage_aggregation
    description: Usage aggregation for recurring prices
    tests:
    - not_null
  - name: recurring_usage_type
    description: Usage calculation for recurring prices
    tests:
    - not_null
  - name: tiers_mode
    description: Defines how tiers are handled
    tests:
    - not_null
  - name: unit_amount_decimal
    description: Decimal representation of unit amount
    tests:
    - not_null
  tests: []
16. stg_invoice_line_item_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_invoice_line_item_data
  description: The table is about invoice line items. It contains details such as
    the amount, currency, description, and time period for each item. It also includes
    information about associated plans, subscriptions, and discounts. The table stores
    metadata and unique identifiers for each line item. This data likely represents
    individual charges or services on a customer's invoice.
  columns:
  - name: line_item_id
    description: Unique identifier for the line item
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each line item
        on an invoice. For this table, each row is a separate line item, and the line_item_id
        should be unique across rows.
  - name: subscription_item_id
    description: ID of the specific subscription item
    tests:
    - not_null
  - name: alternate_item_id
    description: Another unique identifier for the item
    tests:
    - not_null
  - name: invoice_id
    description: ID of the associated invoice
    tests:
    - not_null
  - name: quantity
    description: Number of units for the line item
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if the item is in live mode
    tests:
    - not_null
  - name: currency
    description: Currency code for the amount
    tests:
    - not_null
  - name: subscription_id
    description: ID of the associated subscription
    tests:
    - not_null
  - name: plan_id
    description: ID of the associated plan
    tests:
    - not_null
  - name: is_prorated
    description: Indicates if the item is prorated
    tests:
    - not_null
  - name: description
    description: Brief description of the line item
    tests:
    - not_null
  - name: is_discountable
    description: Whether the item is eligible for discounts
    tests:
    - not_null
  - name: amount
    description: Monetary value of the line item
    tests:
    - not_null
  - name: billing_period_end
    description: End date of the billing period
    tests:
    - not_null
  - name: billing_period_start
    description: Start date of the billing period
    tests:
    - not_null
  - name: line_item_type
    description: Type of the line item
    tests:
    - not_null
  - name: metadata
    description: Additional custom data in JSON format
    tests:
    - not_null
  tests: []
17. stg_invoice_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_invoice_data
  description: The table is about invoice data. It contains details such as invoice
    ID, amount, currency, customer ID, date, description, and subscription information.
    The table includes fields for discounts, proration, quantity, and unit amount.
    It also tracks whether the invoice is deleted or in livemode. The data seems to
    represent individual line items on invoices, with information about the associated
    subscription and billing period.
  columns:
  - name: line_item_id
    description: Unique identifier for the line item
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each line item.
        For this table, each row represents a single line item on an invoice. line_item_id
        is likely to be unique across rows.
  - name: currency
    description: Currency of the amount charged
    tests:
    - not_null
    - accepted_values:
        values:
        - usd
        - eur
        - gbp
        - jpy
        - cad
        - aud
        - chf
        - cny
        - hkd
        - nzd
        - krw
        - sgd
        - inr
        - mxn
        - brl
        - sek
        - nok
        - dkk
        - pln
        - zar
        - thb
        - rub
        - try
  - name: customer_id
    description: Unique identifier for the customer
    tests:
    - not_null
  - name: description
    description: Description of the line item
    tests:
    - not_null
  - name: is_discountable
    description: Whether the item is eligible for discounts
    tests:
    - not_null
  - name: invoice_id
    description: Unique identifier for the invoice
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the item has been deleted
    tests:
    - not_null
  - name: is_live_transaction
    description: Indicates if the transaction is live or test
    tests:
    - not_null
  - name: is_prorated
    description: Indicates if the amount is prorated
    tests:
    - not_null
  - name: quantity
    description: Quantity of the item
    tests:
    - not_null
  - name: subscription_id
    description: Unique identifier for the subscription
    tests:
    - not_null
  - name: subscription_item_id
    description: Unique identifier for the subscription item
    tests:
    - not_null
  - name: amount
    description: Amount charged for the line item
    tests:
    - not_null
  - name: billing_period_end
    description: End date of the billing period
    tests:
    - not_null
  - name: billing_period_start
    description: Start date of the billing period
    tests:
    - not_null
  - name: transaction_date
    description: Date of the invoice or transaction
    tests:
    - not_null
  - name: unit_price
    description: Price per unit of the item
    tests:
    - not_null
  tests: []
18. stg_customer_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_customer_data
  description: The table is about customer information. It contains details like customer
    ID, account balance, address, email, phone number, and shipping information. The
    table also includes billing-related fields such as invoice settings, currency,
    and tax information. Additional fields cover customer status (e.g., delinquent,
    is_deleted) and system-related information like creation date and Salesforce user
    ID. Many fields are empty, suggesting incomplete or optional data.
  columns:
  - name: customer_id
    description: Unique identifier for the customer
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each customer.
        For this table, each row represents a distinct customer, and customer_id appears
        to be unique across rows.
  - name: is_delinquent
    description: Indicates if the customer's account is delinquent
    tests:
    - not_null
  - name: invoice_prefix
    description: Prefix used for customer's invoice numbers
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the customer record is deleted
    tests:
    - not_null
  - name: is_live_mode
    description: Indicates if the customer is in live or test mode
    tests:
    - not_null
  - name: customer_name
    description: Customer's name (possibly hashed)
    tests:
    - not_null
  - name: tax_exempt_status
    description: Customer's tax exemption status
    tests:
    - not_null
    - accepted_values:
        values:
        - none
        - exempt
        - partial
        - government
        - non-profit
        - educational
        - religious
        - charitable
        - military
        - diplomatic
  - name: salesforce_lead_id
    description: Corresponding Salesforce lead ID for the customer
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents the corresponding Salesforce lead ID for
        each customer. It appears to be unique in this sample and likely corresponds
        to a unique Salesforce record for each customer.
  - name: account_balance
    description: Customer's current account balance
    tests:
    - not_null
  - name: account_balance_duplicate
    description: Current balance of the customer's account
    tests:
    - not_null
  - name: creation_date
    description: Date and time when the customer record was created
    tests:
    - not_null
  - name: shipping_carrier
    description: Carrier used for shipping orders
    tests:
    - not_null
  - name: shipping_city
    description: City of customer's shipping address
    tests:
    - not_null
  - name: shipping_country
    description: Country of customer's shipping address
    tests:
    - not_null
  - name: shipping_line_1
    description: First line of customer's shipping address
    tests:
    - not_null
  - name: shipping_line_2
    description: Second line of customer's shipping address
    tests:
    - not_null
  - name: shipping_phone
    description: Contact phone number for shipping
    tests:
    - not_null
  - name: shipping_postal_code
    description: Postal code of customer's shipping address
    tests:
    - not_null
  - name: shipping_state
    description: State or province of customer's shipping address
    tests:
    - not_null
  - name: tracking_number
    description: Tracking number for shipped orders
    tests:
    - not_null
  tests: []
19. stg_sf_lead_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_lead_data
  description: The table is about sales leads. It contains detailed information on
    each lead, including personal data, contact information, lead source, conversion
    status, and various tracking and scoring metrics. The table also includes custom
    fields for specific business processes, marketing campaign data, and integration
    with third-party tools and services. It represents a comprehensive view of a lead's
    journey through the sales pipeline.
  columns:
  - name: owner_id
    description: ID of the lead owner
    tests:
    - not_null
  - name: last_modified_by_id
    description: ID of user who last modified the lead
    tests:
    - not_null
  - name: converted_contact_id
    description: ID of the contact after lead conversion
    tests:
    - not_null
  - name: lead_id
    description: ID of the lead
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column likely represents a unique identifier for each lead.
        For this table, each row is for a unique lead. The id should be unique across
        rows as it's typically used as a primary key in database systems.
  - name: photo_url
    description: URL of the lead's photo
    tests:
    - not_null
  - name: created_by_id
    description: ID of the user who created the lead
    tests:
    - not_null
  - name: is_converted
    description: Indicates if the lead has been converted
    tests:
    - not_null
  - name: is_unread_by_owner
    description: Indicates if the lead is unread by owner
    tests:
    - not_null
  - name: status
    description: Current status of the lead
    tests:
    - not_null
    - accepted_values:
        values:
        - New
        - Contacted
        - Qualified
        - Proposal Sent
        - Negotiation
        - Converted
        - Lost
        - Nurturing
        - On Hold
        - Unqualified
  - name: lead_industry
    description: Industry of the lead
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the lead has been deleted
    tests:
    - not_null
  - name: company_name
    description: Company name of the lead
    tests:
    - not_null
  - name: email
    description: Lead's email address
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column contains the lead's email address. In most business
        contexts, each lead would have a unique email address, making it a good candidate
        for a unique identifier.
  - name: lead_last_name
    description: Last name of the lead
    tests:
    - not_null
  - name: active_in_sequence
    description: Indicates if lead is active in a sequence
    tests:
    - not_null
  - name: clearbit_data_ready
    description: Indicates if Clearbit data is ready
    tests:
    - not_null
  - name: has_opted_out_of_email
    description: ''
    tests:
    - not_null
  - name: converted_salesforce_account_id
    description: ID of the account after lead conversion
    tests:
    - not_null
  - name: demo_scheduled_calendly
    description: Demo scheduled using Calendly
    tests:
    - not_null
  - name: marked_for_deletion
    description: Flag indicating if the lead should be deleted
    tests:
    - not_null
  - name: email_quality
    description: Email quality indicator
    tests:
    - not_null
  - name: email_bounced_c
    description: ''
    tests:
    - not_null
  - name: created_by_clearbit
    description: Indicates if created by Clearbit
    tests:
    - not_null
  - name: is_competitor
    description: Indicates if company is a competitor
    tests:
    - not_null
  - name: routing_action
    description: Routing action taken in LeanData
    tests:
    - not_null
    - accepted_values:
        values:
        - converted
        - assigned
        - routed
        - rejected
        - on hold
        - pending
        - returned
        - transferred
        - escalated
        - merged
        - deleted
  - name: search_index
    description: Search index in LeanData
    tests:
    - not_null
    - accepted_values:
        values:
        - amazon
        - ebay
        - walmart
        - etsy
        - aliexpress
        - shopify
        - wayfair
        - overstock
        - newegg
        - bestbuy
        - target
        - homedepot
        - lowes
        - macys
        - nordstrom
        - zappos
        - chewy
        - wish
        - rakuten
        - jd.com
  - name: reporting_matched_account_id
    description: Matched account ID for reporting in LeanData
    tests:
    - not_null
  - name: routing_status
    description: Current routing status in LeanData
    tests:
    - not_null
    - accepted_values:
        values:
        - converted
        - routed
        - pending
        - failed
        - unrouted
        - in_progress
        - on_hold
        - rejected
        - canceled
        - completed
  - name: do_not_route_lead
    description: Flag to prevent lead routing
    tests:
    - not_null
  - name: contact_stage
    description: Current stage of the contact in sales process
    tests:
    - not_null
    - accepted_values:
        values:
        - Prospect
        - Lead
        - Qualified Lead
        - Opportunity
        - Proposal
        - Negotiation
        - Closed Won
        - Closed Lost
  - name: prospect_routing_rules
    description: Prospect routing rules for marketing
    tests:
    - not_null
  - name: email_explicit_opt_in
    description: Explicit email opt-in status
    tests:
    - not_null
  - name: email_implicit_opt_in
    description: Implicit email opt-in status
    tests:
    - not_null
  - name: gdpr_opt_in_status
    description: Explicit GDPR opt-in status
    tests:
    - not_null
  - name: is_user_gem
    description: Indicates if the lead is a user gem
    tests:
    - not_null
  - name: last_interaction_description
    description: Last interesting moment description
    tests:
    - not_null
  - name: last_interaction_source
    description: Source of last interesting moment
    tests:
    - not_null
    - accepted_values:
        values:
        - Lead action
        - Email
        - Phone call
        - Meeting
        - Website visit
        - Form submission
        - Social media interaction
        - Event attendance
        - Webinar participation
        - Demo request
        - Quote request
        - Content download
        - Chat conversation
        - Referral
        - Product trial
        - Survey response
        - Newsletter subscription
  - name: last_interaction_type
    description: Type of last interesting moment
    tests:
    - not_null
    - accepted_values:
        values:
        - Milestone
        - First Purchase
        - Registration
        - Feature Adoption
        - Upgrade
        - Feedback Submission
        - Support Interaction
        - Referral
        - Content Creation
        - Goal Achievement
        - Login
        - Survey Completion
        - Social Share
        - Subscription
        - Cancellation
        - Reactivation
        - High Usage
        - Low Usage
        - Customization
        - Integration
  - name: lead_priority_score
    description: Lead priority score
    tests:
    - not_null
  - name: lead_urgency
    description: Urgency value of the lead
    tests:
    - not_null
  - name: cloudingo_agent_as
    description: Cloudingo agent AS field
    tests:
    - not_null
  - name: cloudingo_agent_les
    description: Cloudingo agent LES field
    tests:
    - not_null
  - name: marketo_sync_exclusion
    description: Flag to exclude lead from Marketo sync
    tests:
    - not_null
  - name: last_utm_campaign
    description: Most recent UTM campaign
    tests:
    - not_null
  - name: last_utm_content
    description: Most recent UTM content
    tests:
    - not_null
    - accepted_values:
        values:
        - LinkedIn
        - Facebook
        - Twitter
        - Instagram
        - TikTok
        - YouTube
        - Pinterest
        - Reddit
        - Snapchat
        - WhatsApp
        - Tumblr
        - Medium
        - Quora
        - Glassdoor
        - Indeed
        - Monster
        - CareerBuilder
        - SlideShare
        - Vimeo
        - Flickr
  - name: last_utm_medium
    description: Most recent UTM medium
    tests:
    - not_null
    - accepted_values:
        values:
        - paid_social
        - organic_social
        - email
        - cpc
        - display
        - affiliate
        - referral
        - organic_search
        - direct
        - video
        - ppc
        - retargeting
        - sms
        - push
        - podcast
        - banner
        - native
        - press_release
        - sponsorship
  - name: last_utm_source
    description: Most recent UTM source
    tests:
    - not_null
  - name: last_utm_term
    description: Most recent UTM term
    tests:
    - not_null
  - name: behavioral_score
    description: Behavioral score of the lead
    tests:
    - not_null
  - name: is_emea_event_routing
    description: EMEA event routing status
    tests:
    - not_null
  - name: csi_description
    description: Description of the CSI code
    tests:
    - not_null
  - name: attended_event
    description: Indicates if lead attended an event
    tests:
    - not_null
  - name: manual_route_trigger
    description: Flag for manual routing trigger in LeanData
    tests:
    - not_null
  - name: mql_reason
    description: Reason for Marketing Qualified Lead status
    tests:
    - not_null
    - accepted_values:
        values:
        - Website
        - Email Campaign
        - Social Media
        - Webinar
        - Trade Show
        - Referral
        - Content Download
        - Demo Request
        - Free Trial
        - Contact Form
        - Phone Inquiry
        - Chat
        - Partner Channel
        - Paid Advertising
        - Organic Search
        - Blog Subscription
        - Newsletter Signup
        - Product Usage
        - Survey Response
        - Event Attendance
  - name: enrichment_request
    description: Flag for data enrichment request
    tests:
    - not_null
  - name: fivetran_use_case
    description: Potential use case for Fivetran
    tests:
    - not_null
  - name: sales_email_opt_out_c
    description: ''
    tests:
    - not_null
  - name: created_by_user_gems
    description: Indicates if created by User Gems
    tests:
    - not_null
  - name: is_verified
    description: Indicates if the lead is verified
    tests:
    - not_null
  - name: startup_certification_eligible
    description: Startup certification eligibility
    tests:
    - not_null
  - name: email_double_opt_in
    description: Double opt-in confirmation status
    tests:
    - not_null
  - name: all_lead_source_categories
    description: Categories of all lead sources
    tests:
    - not_null
  - name: all_lead_sources
    description: All lead sources for the contact
    tests:
    - not_null
  - name: all_utm_campaigns
    description: All UTM campaign tags
    tests:
    - not_null
  - name: all_utm_mediums
    description: All UTM medium tags
    tests:
    - not_null
  - name: all_utm_sources
    description: All UTM source tags
    tests:
    - not_null
  - name: annual_revenue
    description: Annual revenue of the account
    tests:
    - not_null
  - name: contact_status
    description: Current status of the contact
    tests:
    - not_null
  - name: conversion_date
    description: Date when the lead converted
    tests:
    - not_null
  - name: conversion_object_name
    description: Name of the object after conversion
    tests:
    - not_null
  - name: conversion_object_type
    description: Type of object after conversion
    tests:
    - not_null
  - name: converted_date
    description: Date when the lead was converted
    tests:
    - not_null
  - name: converted_datetime
    description: Date and time of lead conversion
    tests:
    - not_null
  - name: converted_opportunity_id
    description: ID of the opportunity after lead conversion
    tests:
    - not_null
  - name: created_date
    description: Date when the lead was created
    tests:
    - not_null
  - name: email_bounce_date
    description: Date when email bounced
    tests:
    - not_null
  - name: email_bounce_reason
    description: Reason for email bounce
    tests:
    - not_null
  - name: engagio_first_engagement_date
    description: Date of first engagement in Engagio
    tests:
    - not_null
  - name: first_mql_date
    description: Date of first Marketing Qualified Lead status
    tests:
    - not_null
  - name: first_search_term
    description: First search term used by the lead
    tests:
    - not_null
  - name: first_search_type
    description: Type of first search performed
    tests:
    - not_null
  - name: fivetran_account_id
    description: Fivetran account ID
    tests:
    - not_null
  - name: fivetran_account_stage
    description: Stage of the Fivetran account
    tests:
    - not_null
  - name: fivetran_active_status
    description: Indicates if the record is active in Fivetran
    tests:
    - not_null
  - name: fivetran_association_date
    description: Date of Fivetran account association
    tests:
    - not_null
  - name: fivetran_user_id
    description: Fivetran user identifier
    tests:
    - not_null
  - name: fivetran_user_roles
    description: User roles in Fivetran account
    tests:
    - not_null
  - name: free_trial_confirmation_date
    description: Date when free trial email was confirmed
    tests:
    - not_null
  - name: intent_topics
    description: Topics of interest for the lead
    tests:
    - not_null
  - name: last_completed_cadence_step
    description: Last completed step in SalesLoft cadence
    tests:
    - not_null
  - name: last_interesting_moment_date
    description: Date of last interesting moment in Sales Insight
    tests:
    - not_null
  - name: last_modified_date
    description: Date when the lead was last modified
    tests:
    - not_null
  - name: last_modified_timestamp
    description: Last modification timestamp
    tests:
    - not_null
  - name: lead_bi_tools
    description: Business intelligence tools used by lead
    tests:
    - not_null
  - name: lead_comments
    description: Comments related to the lead
    tests:
    - not_null
  - name: lead_creation_datetime
    description: Date and time when the lead was created
    tests:
    - not_null
  - name: lead_notes
    description: Additional notes about the lead
    tests:
    - not_null
  - name: lead_number_c
    description: ''
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column appears to be a unique identifier for each lead.
        In the sample data, it has a distinct value (1305025). Assuming this is an
        auto-incrementing or uniquely generated number for each lead, it would be
        unique across all rows.
  - name: lead_tags
    description: Tags associated with lead in LeanData
    tests:
    - not_null
  - name: lead_url
    description: URL associated with the lead
    tests:
    - not_null
  - name: metadata_creation_date
    description: Date when the lead metadata was created
    tests:
    - not_null
  - name: partner_rep_email
    description: Email of partner representative
    tests:
    - not_null
  - name: partner_rep_name
    description: Name of partner representative
    tests:
    - not_null
  - name: partner_type
    description: Type of partnership
    tests:
    - not_null
  - name: past_account
    description: Past account information
    tests:
    - not_null
  - name: past_user_gems_info
    description: Past information from User Gems
    tests:
    - not_null
  - name: previous_company
    description: Previous company of the lead
    tests:
    - not_null
  - name: previous_job_title
    description: Previous job title of the lead
    tests:
    - not_null
  - name: previous_lead_source
    description: Previous lead source
    tests:
    - not_null
  - name: previous_lead_source_detail
    description: Details of previous lead source
    tests:
    - not_null
  - name: referral_account
    description: Referral account information
    tests:
    - not_null
  - name: referral_contact
    description: Referral contact information
    tests:
    - not_null
  - name: referral_email
    description: Email address of the referral contact
    tests:
    - not_null
  - name: referral_first_name
    description: First name of the referral
    tests:
    - not_null
  - name: referral_last_name
    description: Last name of the referral
    tests:
    - not_null
  - name: reporting_timestamp
    description: Timestamp for reporting in LeanData
    tests:
    - not_null
  - name: sales_email_opt_out_date_time_c
    description: ''
    tests:
    - not_null
  - name: sales_volume_millions
    description: Sales volume in millions
    tests:
    - not_null
  - name: twitter_url
    description: Twitter profile URL of the lead
    tests:
    - not_null
  - name: zoominfo_technologies
    description: Technologies used, from ZoomInfo
    tests:
    - not_null
  tests: []
20. stg_sf_opportunity_history_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_opportunity_history_data
  description: The table is about sales opportunity history. It contains details like
    opportunity ID, account ID, amount, close date, creation date, forecast category,
    probability, stage name, and owner ID. The data tracks various attributes of sales
    opportunities including whether they were won or lost, deleted, and had associated
    activities. It also includes fiscal period information and opportunity type.
  columns:
  - name: forecast_category_id
    description: Category for forecasting purposes
    tests:
    - not_null
  - name: is_closed
    description: Indicates if the opportunity is closed
    tests:
    - not_null
  - name: opportunity_category
    description: Classification or category of the opportunity
    tests:
    - not_null
  - name: opportunity_type_id
    description: Identifier for the type of sales opportunity record
    tests:
    - not_null
  - name: has_overdue_task
    description: Indicates if there's an overdue task
    tests:
    - not_null
  - name: opportunity_amount
    description: Monetary value of the opportunity
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the opportunity is deleted
    tests:
    - not_null
  - name: is_won
    description: Indicates if the opportunity was won
    tests:
    - not_null
  - name: opportunity_id
    description: Unique identifier for the opportunity
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each opportunity.
        For this table, each row is for a specific sales opportunity. The opportunity_id
        appears to be unique across rows, as it follows a consistent format (e.g.,
        '006q000000HddohAAB') and is typically used as a primary key in database systems.
  - name: is_active
    description: Indicates if the record is currently active
    tests:
    - not_null
  - name: salesforce_account_id
    description: Unique identifier for the associated account
    tests:
    - not_null
  - name: lead_source_id
    description: Source of the lead for this opportunity
    tests:
    - not_null
  - name: win_probability
    description: Likelihood of winning the opportunity
    tests:
    - not_null
  - name: stage_name
    description: Current stage of the sales opportunity
    tests:
    - not_null
    - accepted_values:
        values:
        - Lead
        - Prospect
        - Qualification
        - Needs Analysis
        - Proposal
        - Negotiation
        - Closed Won
        - Closed Lost
        - GavUFuuf4DrnQAoiRGlWpQ==
        - tXi3M8u3iPxq0ggxTSxMKw==
        - 9RN9J3tlxr89gDctReax5w==
  - name: has_line_items
    description: Indicates if line items are present
    tests:
    - not_null
  - name: owner_id
    description: Identifier of the opportunity owner
    tests:
    - not_null
  - name: forecast_category_name
    description: Name of the forecast category
    tests:
    - not_null
  - name: opportunity_name
    description: Name or title of the opportunity
    tests:
    - not_null
  - name: has_open_activity
    description: Indicates if there's an open activity
    tests:
    - not_null
  - name: campaign_id
    description: Identifier for associated marketing campaign
    tests:
    - not_null
  - name: close_date
    description: Date when the opportunity was closed
    tests:
    - not_null
  - name: created_date
    description: Date when the opportunity was created
    tests:
    - not_null
  - name: fiscal_quarter
    description: Fiscal quarter of the opportunity
    tests:
    - not_null
    - accepted_values:
        values:
        - '1'
        - '2'
        - '3'
        - '4'
  - name: fiscal_year
    description: Fiscal year of the opportunity
    tests:
    - not_null
    - accepted_values:
        values:
        - '2015'
        - '2016'
        - '2017'
        - '2018'
        - '2019'
        - '2020'
        - '2021'
        - '2022'
        - '2023'
        - '2024'
  - name: validity_end_date
    description: End date of the record's validity
    tests:
    - not_null
  - name: validity_start_date
    description: Start date of the record's validity
    tests:
    - not_null
  tests: []
21. snapshot_sf_account_history_data
Table catalog prepared by Cocoon
version: 2
models:
- name: snapshot_sf_account_history_data
  description: The table contains the latest version of Salesforce account data. It
    includes account details like name, address, industry, and metadata. Some fields
    are encrypted for security. Each row represents the most current information for
    a unique account. Deleted accounts are included but flagged. The table provides
    a snapshot of all accounts at the current point in time.
  columns:
  - name: account_name
    description: Name of the account
    tests:
    - not_null
  - name: shipping_country
    description: Country for shipping address
    tests:
    - not_null
  - name: account_source
    description: Origin or source of the account
    tests:
    - not_null
  - name: record_id
    description: Unique identifier for the record
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: Unique dimension key, derived from the slowly changing dimension
  - name: is_deleted
    description: Indicates if the record is deleted
    tests:
    - not_null
  - name: record_type_id
    description: ID of the record type
    tests:
    - not_null
  - name: industry
    description: Industry sector of the account
    tests:
    - not_null
  - name: master_record_id
    description: ID of the master record if merged
    tests:
    - not_null
  - name: encrypted_website
    description: Encrypted website URL of the account
    tests:
    - not_null
  - name: owner_id
    description: ID of the account owner
    tests:
    - not_null
  - name: billing_street
    description: Street address for billing
    tests:
    - not_null
  - name: description
    description: Additional details about the account
    tests:
    - not_null
  - name: billing_postal_code
    description: Postal code for billing address
    tests:
    - not_null
  - name: encrypted_account_type
    description: Encrypted account type or category
    tests:
    - not_null
  - name: is_active
    description: Indicates if the record is currently active
    tests:
    - not_null
  - name: employee_count
    description: Total number of employees in the company
    tests:
    - not_null
  - name: parent_account_id
    description: ID of the parent account if exists
    tests:
    - not_null
  - name: shipping_city
    description: City for shipping address
    tests:
    - not_null
  - name: shipping_postal_code
    description: Postal code for shipping address
    tests:
    - not_null
  - name: shipping_state
    description: State for shipping address
    tests:
    - not_null
  - name: shipping_street
    description: Shipping street address of the account
    tests:
    - not_null
  tests: []
22. stg_sf_task_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_task_data
  description: The table is about task data, likely from a CRM system. It contains
    details such as task ID, account ID, assigned user, task type, status, creation
    date, and completion date. The table also includes information about task priority,
    description, and associated contacts or opportunities. Some fields suggest integration
    with external tools like Sales Loft or Vidyard.
  columns:
  - name: salesforce_account_id
    description: Unique identifier for the associated account
    tests:
    - not_null
  - name: assigned_to_name
    description: Name of the person assigned to the task
    tests:
    - not_null
  - name: associated_person_count
    description: Count of associated persons (e.g., contacts)
    tests:
    - not_null
  - name: subject
    description: Subject or title of the task
    tests:
    - not_null
  - name: created_by_id
    description: ID of the user who created the task
    tests:
    - not_null
  - name: id
    description: Unique identifier for the task
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for each task. For
        this table, each row is a distinct task, and the id appears to be unique across
        rows.
  - name: is_archived
    description: Indicates if the task is archived
    tests:
    - not_null
  - name: last_modified_by_id
    description: ID of user who last modified
    tests:
    - not_null
  - name: priority
    description: Priority level of the task
    tests:
    - not_null
    - accepted_values:
        values:
        - Low
        - Normal
        - High
        - Urgent
        - Critical
  - name: record_type_id
    description: Unique identifier for the record type
    tests:
    - not_null
  - name: is_collections_hold
    description: Indicates if collections are on hold
    tests:
    - not_null
  - name: associated_object_id
    description: ID of the associated object (e.g., opportunity)
    tests:
    - not_null
  - name: meeting_type
    description: Type of meeting
    tests:
    - not_null
    - accepted_values:
        values:
        - Default Personal Meeting
        - Team Meeting
        - Client Meeting
        - Project Review
        - Brainstorming Session
        - One-on-One
        - Board Meeting
        - All-Hands Meeting
        - Training Session
        - Interview
        - Performance Review
        - Sales Pitch
        - Conference Call
        - Webinar
        - Workshop
  - name: meeting_name
    description: Name of the meeting
    tests:
    - not_null
    - accepted_values:
        values:
        - sync
        - reconnect
        - brainstorm
        - planning
        - review
        - kickoff
        - status update
        - training
        - onboarding
        - interview
        - performance review
        - project update
        - client meeting
        - team building
        - strategy session
        - decision making
        - problem solving
        - presentation
        - workshop
        - retrospective
  - name: description
    description: Description of the task
    tests:
    - not_null
  - name: has_vidyard_video
    description: Indicates if Vidyard video is associated
    tests:
    - not_null
  - name: is_no_show
    description: Indicates if there was a no-show
    tests:
    - not_null
  - name: status
    description: Current status of the task
    tests:
    - not_null
    - accepted_values:
        values:
        - Not Started
        - In Progress
        - On Hold
        - Completed
        - Cancelled
  - name: is_collections_plan_activity
    description: Indicates if it's a collections plan activity
    tests:
    - not_null
  - name: is_closed
    description: Indicates if the task is closed
    tests:
    - not_null
  - name: associated_object_count
    description: Count of associated objects (e.g., opportunities)
    tests:
    - not_null
  - name: is_high_priority
    description: Indicates if the task is high priority
    tests:
    - not_null
  - name: owner_id
    description: ID of the task owner
    tests:
    - not_null
  - name: is_recurring
    description: Indicates if the task is recurring
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the task is deleted
    tests:
    - not_null
  - name: associated_person_id
    description: ID of the associated person (e.g., contact)
    tests:
    - not_null
  - name: task_subtype
    description: Specific category or subtype of the task
    tests:
    - not_null
  - name: has_reminder
    description: Indicates if a reminder is set
    tests:
    - not_null
  - name: activity_date
    description: Date and time of the activity
    tests:
    - not_null
  - name: affect_layer_call_id
    description: Identifier for AffectLayer call
    tests:
    - not_null
  - name: attendance_number
    description: Number of attendees for the activity
    tests:
    - not_null
  - name: bizible_id
    description: Bizible identifier
    tests:
    - not_null
  - name: bizible_touchpoint_date
    description: Date of Bizible touchpoint
    tests:
    - not_null
  - name: call_disposition
    description: Outcome or result of the call
    tests:
    - not_null
  - name: call_disposition_custom
    description: Custom call disposition field
    tests:
    - not_null
  - name: call_disposition_secondary
    description: Secondary call disposition
    tests:
    - not_null
  - name: call_duration_seconds
    description: Duration of the call in seconds
    tests:
    - not_null
  - name: call_object
    description: Object related to the call
    tests:
    - not_null
  - name: call_recording
    description: Link or identifier for call recording
    tests:
    - not_null
  - name: call_type
    description: Type or category of the call
    tests:
    - not_null
  - name: campaign
    description: Associated campaign
    tests:
    - not_null
  - name: chorus_call_id
    description: Identifier for Chorus call
    tests:
    - not_null
  - name: co_sell_partner_account
    description: Co-sell partner account
    tests:
    - not_null
  - name: completed_date_time
    description: Date and time when the task was completed
    tests:
    - not_null
  - name: created_date
    description: Date and time when the task was created
    tests:
    - not_null
  - name: duration_minutes
    description: Duration of the activity in minutes
    tests:
    - not_null
  - name: event_name
    description: Name of the associated event
    tests:
    - not_null
  - name: invitee_uuid
    description: Unique identifier for the invitee
    tests:
    - not_null
  - name: is_co_sell_activity
    description: Indicates if it's a co-sell activity
    tests:
    - not_null
  - name: is_co_selling_activity
    description: Indicates if it's a co-selling activity
    tests:
    - not_null
  - name: last_modified_date
    description: Date of last modification
    tests:
    - not_null
  - name: recurrence_activity_id
    description: ID of the recurring activity
    tests:
    - not_null
  - name: recurrence_day_of_month
    description: Day of the month for recurring tasks
    tests:
    - not_null
  - name: recurrence_end_date
    description: End date for recurring tasks
    tests:
    - not_null
  - name: recurrence_instance
    description: Instance of the recurring task
    tests:
    - not_null
  - name: recurrence_interval
    description: Interval between recurring tasks
    tests:
    - not_null
  - name: recurrence_month
    description: Month of the year for yearly tasks
    tests:
    - not_null
  - name: recurrence_regeneration_type
    description: Type of regeneration for recurring tasks
    tests:
    - not_null
  - name: recurrence_start_date
    description: Start date for recurring tasks
    tests:
    - not_null
  - name: recurrence_timezone
    description: Time zone identifier for recurring tasks
    tests:
    - not_null
  - name: recurrence_type
    description: Type of recurrence pattern
    tests:
    - not_null
  - name: recurrence_weekday_mask
    description: Bitmask for days of the week
    tests:
    - not_null
  - name: sales_loft_cadence_id
    description: Sales Loft cadence ID
    tests:
    - not_null
  - name: sales_loft_cadence_name
    description: Name of Sales Loft cadence
    tests:
    - not_null
  - name: sales_loft_click_count
    description: Number of clicks in Sales Loft
    tests:
    - not_null
  - name: sales_loft_email_template_id
    description: Sales Loft email template ID
    tests:
    - not_null
  - name: sales_loft_email_template_title
    description: Title of Sales Loft email template
    tests:
    - not_null
  - name: sales_loft_external_id
    description: External identifier for Sales Loft
    tests:
    - not_null
  - name: sales_loft_reply_count
    description: Number of replies in Sales Loft
    tests:
    - not_null
  - name: sales_loft_step_day
    description: Day of Sales Loft step
    tests:
    - not_null
  - name: sales_loft_step_id
    description: Sales Loft step ID
    tests:
    - not_null
  - name: sales_loft_step_name
    description: Name of Sales Loft step
    tests:
    - not_null
  - name: sales_loft_step_type
    description: Type of Sales Loft step
    tests:
    - not_null
  - name: sales_loft_view_count
    description: Number of views in Sales Loft
    tests:
    - not_null
  - name: system_modstamp
    description: System modification timestamp
    tests:
    - not_null
  tests: []
23. snapshot_sf_contact_history_data
Table catalog prepared by Cocoon
version: 2
models:
- name: snapshot_sf_contact_history_data
  description: The table is about current contact information. It tracks the most
    recent version of personal and professional details for individuals. It includes
    names, email addresses, phone numbers, mailing addresses, job titles, and account
    associations. The table contains system-related data like last modified dates,
    owner IDs, and activity dates. It serves as a snapshot of up-to-date contact data
    for customer relationship management purposes.
  columns:
  - name: mailing_country
    description: Country in the mailing address
    tests:
    - not_null
  - name: lead_source
    description: Source of the lead or contact
    tests:
    - not_null
  - name: mailing_city
    description: City in the mailing address
    tests:
    - not_null
  - name: contact_id
    description: Unique identifier for the contact record
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: Unique dimension key, derived from the slowly changing dimension
  - name: last_name
    description: Last name of the contact
    tests:
    - not_null
  - name: owner_id
    description: ID of the user who owns the record
    tests:
    - not_null
  - name: mailing_country_code
    description: Country code in the mailing address
    tests:
    - not_null
  - name: mailing_state
    description: State in the mailing address
    tests:
    - not_null
    - accepted_values:
        values:
        - Alabama
        - Alaska
        - Arizona
        - Arkansas
        - California
        - Colorado
        - Connecticut
        - Delaware
        - Florida
        - Georgia
        - Hawaii
        - Idaho
        - Illinois
        - Indiana
        - Iowa
        - Kansas
        - Kentucky
        - Louisiana
        - Maine
        - Maryland
        - Massachusetts
        - Michigan
        - Minnesota
        - Mississippi
        - Missouri
        - Montana
        - Nebraska
        - Nevada
        - New Hampshire
        - New Jersey
        - New Mexico
        - New York
        - North Carolina
        - North Dakota
        - Ohio
        - Oklahoma
        - Oregon
        - Pennsylvania
        - Rhode Island
        - South Carolina
        - South Dakota
        - Tennessee
        - Texas
        - Utah
        - Vermont
        - Virginia
        - Washington
        - West Virginia
        - Wisconsin
        - Wyoming
  - name: last_modified_by_id
    description: ID of user who last modified the record
    tests:
    - not_null
  - name: email
    description: Email address of the contact
    tests:
    - not_null
  - name: full_name
    description: Full name of the contact
    tests:
    - not_null
  - name: mailing_street
    description: Street address in the mailing address
    tests:
    - not_null
  - name: account_id
    description: Unique identifier for the associated account
    tests:
    - not_null
  - name: is_active
    description: Indicates if the record is currently active
    tests:
    - not_null
  - name: description
    description: Additional notes or description about the contact
    tests:
    - not_null
  - name: primary_phone
    description: Primary phone number of the contact
    tests:
    - not_null
  - name: job_title
    description: Job title of the individual
    tests:
    - not_null
  - name: home_phone
    description: Home phone number of the contact
    tests:
    - not_null
  - name: individual_id
    description: Identifier for the individual (if different from contact)
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the record has been deleted
    tests:
    - not_null
  - name: last_activity_date
    description: Date of the most recent activity
    tests:
    - not_null
  - name: last_referenced_date
    description: Date the record was last referenced
    tests:
    - not_null
  - name: last_viewed_date
    description: Date the record was last viewed
    tests:
    - not_null
  - name: mailing_postal_code
    description: Postal code in the mailing address
    tests:
    - not_null
  - name: master_record_id
    description: ID of the master record if duplicates exist
    tests:
    - not_null
  - name: mobile_phone
    description: Mobile phone number of the contact
    tests:
    - not_null
  - name: reports_to_id
    description: ID of the person this contact reports to
    tests:
    - not_null
  tests: []
24. stg_sf_event_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_event_data
  description: The table is about event data. It contains details of various events
    or activities, including their type (e.g., Call, Meeting), duration, start and
    end times, associated accounts and contacts, and other metadata. The table includes
    fields for event description, location, recurrence information, and system details
    like creation and modification timestamps.
  columns:
  - name: salesforce_account_id
    description: Unique identifier for the associated account
    tests:
    - not_null
  - name: is_collections_hold
    description: Indicates if collections are on hold
    tests:
    - not_null
  - name: created_by_id
    description: ID of the user who created the record
    tests:
    - not_null
  - name: description
    description: Description of the event or activity
    tests:
    - not_null
  - name: duration_minutes
    description: Duration of the event in minutes
    tests:
    - not_null
  - name: event_subtype
    description: Subtype or category of the event
    tests:
    - not_null
  - name: is_collections_plan_execution
    description: Indicates collections plan execution activity
    tests:
    - not_null
  - name: group_event_type
    description: Type of group event
    tests:
    - not_null
  - name: event_id
    description: Unique identifier for the event
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents the unique identifier for each event.
        For this table, each row is an individual event, and event_id is designed
        to be unique for each event. It is likely to be unique across rows.
  - name: is_archived
    description: Indicator for archived status
    tests:
    - not_null
  - name: is_child_event
    description: Indicator for child event
    tests:
    - not_null
  - name: is_deleted
    description: Indicator for deleted status
    tests:
    - not_null
  - name: is_group_event
    description: Indicator for group event
    tests:
    - not_null
  - name: is_private
    description: Indicator for private event
    tests:
    - not_null
  - name: is_recurring
    description: Indicator for recurring event
    tests:
    - not_null
  - name: is_recurring_secondary
    description: Secondary indicator for recurring event
    tests:
    - not_null
  - name: is_recurrence_exception
    description: Indicator for recurrence exception
    tests:
    - not_null
  - name: is_recurrence_exclusion
    description: Indicator for recurrence exclusion
    tests:
    - not_null
  - name: has_reminder
    description: Indicator for reminder set
    tests:
    - not_null
  - name: last_modified_by_id
    description: ID of user who last modified
    tests:
    - not_null
  - name: is_no_show
    description: Indicator for no-show
    tests:
    - not_null
  - name: owner_id
    description: ID of the event owner
    tests:
    - not_null
  - name: show_as
    description: Availability status during event
    tests:
    - not_null
    - accepted_values:
        values:
        - Busy
        - Free
        - Tentative
        - Out of Office
  - name: subject
    description: Subject or title of the event
    tests:
    - not_null
  - name: event_type
    description: Type of event (e.g., Call, Meeting)
    tests:
    - not_null
    - accepted_values:
        values:
        - Call
        - Meeting
        - Conference
        - Presentation
        - Workshop
        - Webinar
        - Interview
        - Training
        - Seminar
        - Team Building
        - Brainstorming
        - Performance Review
        - Client Visit
        - Project Kickoff
        - Status Update
        - Demo
        - Product Launch
        - Networking Event
        - Board Meeting
        - Town Hall
  - name: vidyard_enabled
    description: Vidyard integration flag
    tests:
    - not_null
  - name: associated_object_count
    description: Count of associated objects
    tests:
    - not_null
  - name: associated_object_id
    description: ID of associated object
    tests:
    - not_null
  - name: associated_contact_count
    description: Count of associated contacts
    tests:
    - not_null
  - name: associated_contact_id
    description: ID of associated contact
    tests:
    - not_null
  - name: activity_date
    description: Date of the activity or event
    tests:
    - not_null
  - name: activity_datetime
    description: Date and time of the activity or event
    tests:
    - not_null
  - name: attendance_count
    description: Number of attendees for the event
    tests:
    - not_null
  - name: call_recording
    description: Link or identifier for call recording
    tests:
    - not_null
  - name: campaign_id
    description: Associated campaign identifier
    tests:
    - not_null
  - name: chorus_call_id
    description: Identifier for Chorus call
    tests:
    - not_null
  - name: created_datetime
    description: Date and time the record was created
    tests:
    - not_null
  - name: end_date
    description: End date of the event
    tests:
    - not_null
  - name: end_datetime
    description: End date and time of the event
    tests:
    - not_null
  - name: expected_payment_date
    description: Expected date of payment
    tests:
    - not_null
  - name: first_meeting_date
    description: Date of first meeting held
    tests:
    - not_null
  - name: invitee_id
    description: Unique identifier for the invitee
    tests:
    - not_null
  - name: is_co_sell_activity
    description: Indicator for co-sell activity
    tests:
    - not_null
  - name: is_co_selling_activity
    description: Indicates if it's a co-selling activity
    tests:
    - not_null
  - name: last_modified_date
    description: Date and time of last modification
    tests:
    - not_null
  - name: recurrence_activity_id
    description: ID of recurring activity
    tests:
    - not_null
  - name: recurrence_day_of_month
    description: Day of month for recurring events
    tests:
    - not_null
  - name: recurrence_day_of_week_mask
    description: Mask for recurring days of week
    tests:
    - not_null
  - name: recurrence_end_date
    description: End date for recurring events
    tests:
    - not_null
  - name: recurrence_instance
    description: Instance of recurring event
    tests:
    - not_null
  - name: recurrence_interval
    description: Interval between recurring events
    tests:
    - not_null
  - name: recurrence_month_of_year
    description: Month of year for recurring events
    tests:
    - not_null
  - name: recurrence_start_date_time
    description: Start date and time for recurring events
    tests:
    - not_null
  - name: recurrence_time_zone_id
    description: Time zone identifier for recurring events
    tests:
    - not_null
  - name: recurrence_type
    description: Type of recurrence pattern
    tests:
    - not_null
  - name: start_date_time
    description: Start date and time of event
    tests:
    - not_null
  - name: system_modstamp
    description: System modification timestamp
    tests:
    - not_null
  tests: []
25. stg_sf_user_data
Table catalog prepared by Cocoon
version: 2
models:
- name: stg_sf_user_data
  description: The table is about Salesforce user data. It contains personal and account
    details for users, including names, email addresses, roles, and preferences. Some
    fields are encrypted. The table tracks active status, login dates, and system
    settings for each user. It appears to be a comprehensive user profile database
    for a Salesforce instance.
  columns:
  - name: full_name
    description: User's full name
    tests:
    - not_null
  - name: first_name
    description: User's first name
    tests:
    - not_null
  - name: phone
    description: User's phone number
    tests:
    - not_null
  - name: manager_id
    description: Identifier for the user's manager
    tests:
    - not_null
  - name: small_banner_url
    description: URL for small-sized banner photo
    tests:
    - not_null
  - name: community_nickname
    description: User's nickname in the community
    tests:
    - not_null
  - name: group_notification_frequency
    description: Frequency of group notifications
    tests:
    - not_null
    - accepted_values:
        values:
        - Never
        - Immediately
        - Daily
        - Weekly
        - Monthly
        - Custom
        - jZwwfLfzxKMoIqUZItHOqg==
  - name: last_name
    description: User's last name (encrypted)
    tests:
    - not_null
  - name: forecast_enabled
    description: Indicates if forecasting is enabled
    tests:
    - not_null
  - name: username
    description: Unique username for Salesforce login
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents the unique username for Salesforce login.
        In Salesforce, usernames are required to be unique across the entire organization.
  - name: user_alias
    description: User's alternate name or nickname
    tests:
    - not_null
  - name: banner_photo_url
    description: URL of user's banner photo
    tests:
    - not_null
  - name: medium_banner_url
    description: URL for medium-sized banner photo
    tests:
    - not_null
  - name: email_encoding_key
    description: Key for encoding user's emails
    tests:
    - not_null
  - name: badge_text
    description: Text displayed on user's badge
    tests:
    - not_null
  - name: auto_bcc_enabled
    description: Auto BCC preference for emails
    tests:
    - not_null
  - name: is_photo_active
    description: Indicates if user's profile photo is active
    tests:
    - not_null
  - name: profile_id
    description: Identifier for the user's profile
    tests:
    - not_null
  - name: _fivetran_active
    description: ''
    tests:
    - not_null
  - name: locale_key
    description: Locale-specific identifier key
    tests:
    - not_null
  - name: role_id
    description: Unique identifier for user's role in Salesforce
    tests:
    - not_null
  - name: small_photo_url
    description: URL for small-sized profile photo
    tests:
    - not_null
  - name: is_active
    description: Indicates if the user record is active
    tests:
    - not_null
  - name: receives_admin_emails
    description: Indicates if user receives admin emails
    tests:
    - not_null
  - name: user_type
    description: Category of user (e.g., standard, partner, customer)
    tests:
    - not_null
    - accepted_values:
        values:
        - standard
        - partner
        - customer
        - admin
        - guest
        - premium
        - free
        - business
        - enterprise
        - developer
        - 622K5vICg3VbM5wNwnOYiw==
  - name: user_time_zone
    description: User's preferred time zone setting
    tests:
    - not_null
  - name: is_deleted
    description: Indicates if the user record is deleted
    tests:
    - not_null
  - name: user_id
    description: Unique identifier for the user
    tests:
    - not_null
    - unique
    cocoon_meta:
      unique_reason: This column represents a unique identifier for the user. User
        IDs in Salesforce are system-generated and guaranteed to be unique for each
        user.
  - name: receives_info_emails
    description: Indicates if user receives info emails
    tests:
    - not_null
  - name: email
    description: User's email address
    tests:
    - not_null
  - name: full_photo_url
    description: URL of user's full-size photo
    tests:
    - not_null
  - name: delegated_approver_id
    description: ID of user's delegated approver
    tests:
    - not_null
  - name: last_login
    description: Date and time of user's last login
    tests:
    - not_null
  - name: last_referenced
    description: Date the user was last referenced
    tests:
    - not_null
  - name: last_viewed
    description: Date the user last viewed content
    tests:
    - not_null
  - name: secondary_id
    description: Secondary identifier for the individual
    tests:
    - not_null
  tests: []

Step 2: Power Copilot with RAG

Ask any question about data warehouse. The copilot knows your large data warehouse, thanks to Cocoon RAG.

GitHub Logo

Cocoon is open-sourced

Need support or have questions? Contact Us