Skip to content

Snowflake Object Inventory

Purpose: Complete map of every Snowflake database, schema, and table/view in production. Claude Code uses this to avoid naming conflicts and understand the current state of the warehouse.

Last Updated: 2026-03-02 Maintained by: Keep this current when adding new databases, schemas, or tables.


How to Update This File

When you create a new Snowflake object (via schemachange migration or dbt), add it here immediately. This prevents duplicate names, aids debugging, and gives Claude Code accurate context for every session.


Databases

Database Client Environment Owner Purpose
WBP_DB Warby Parker Production XO_DATA_ENGINEER Medallion layers: Bronze → Silver → Gold
WBP_DB_DEV Warby Parker Development XO_DATA_ENGINEER Dev/testing (mirrors WBP_DB structure)
CND_DB Condé Nast Production XO_DATA_ENGINEER Medallion layers: Bronze → Silver → Gold
CND_DB_DEV Condé Nast Development XO_DATA_ENGINEER Dev/testing
CORE_DB Shared Production XO_DATA_ENGINEER Shared resources: employee rosters, shared dims
CORE_DB_DEV Shared Development XO_DATA_ENGINEER Dev/testing
OPERATIONS Legacy Production XO_DATA_ENGINEER Legacy reporting DB — being deprecated

WBP_DB (Warby Parker)

BRONZE Schema

All Bronze tables: all VARCHAR columns, batch_replace loading strategy.

Table Source System Load Strategy DAG Schemachange Version
GLADLY_CONTACT_TIMESTAMPS Gladly API batch_replace warbyparker_gladly_daily V1.1.0
GLADLY_CONVERSATION_TIMESTAMPS Gladly API batch_replace warbyparker_gladly_daily V1.1.0
GLADLY_WORK_SESSIONS Gladly API batch_replace warbyparker_gladly_daily V1.3.0
GLADLY_AGENT_DURATIONS Gladly API batch_replace warbyparker_gladly_daily V1.4.0
GSHEETS_CSAT Google Sheets incremental warbyparker_gsheets_daily V1.5.0
GSHEETS_QA Google Sheets incremental warbyparker_gsheets_daily V1.5.0

SILVER Schema

All Silver tables: dbt dynamic tables, typed columns, deduplicated by RECORD_KEY.

Table Source Bronze Table dbt Model Grain
CONTACT_TIMESTAMPS GLADLY_CONTACT_TIMESTAMPS silver/warbyparker/contact_timestamps.sql One row per CONTACT_ID
CONVERSATION_TIMESTAMPS GLADLY_CONVERSATION_TIMESTAMPS silver/warbyparker/conversation_timestamps.sql One row per CONVERSATION_ID
WORK_SESSIONS GLADLY_WORK_SESSIONS silver/warbyparker/work_sessions.sql One row per AGENT_ID + SESSION_START
AGENT_DURATIONS GLADLY_AGENT_DURATIONS silver/warbyparker/agent_durations.sql One row per AGENT_ID + STATUS_START
INBOX_GLOSSARY External / Manual N/A (managed separately) One row per INBOX_ID

GOLD Schema

Object Type dbt Model Source Grain
FCT_CONTACTS Dynamic Table gold/warbyparker/fct_contacts.sql SILVER.CONTACT_TIMESTAMPS + CORE_DB.SILVER.ROSTER_WARBYPARKER One row per CONTACT_ID
AGG_AGENT_DAILY_CONTACTS Dynamic Table gold/warbyparker/agg_agent_daily_contacts.sql FCT_CONTACTS One row per (AGENT_ID, CONTACT_DATE)
RPT_EMAIL_DAILY View gold/warbyparker/rpt_email_daily.sql AGG_AGENT_DAILY_CONTACTS One row per (AGENT_ID, DATE)
AI_AGENTS Seed Table seeds/ai_agents.csv Static CSV One row per agent (AI wave enablement dates)

CND_DB (Condé Nast)

BRONZE Schema

Table Source System Load Strategy DAG
SPROUT_MESSAGES Sprout Social API incremental condenast_sprout_messages_incremental

SILVER Schema

Table Source dbt Model Grain
(To be documented as Silver layer is built)

GOLD Schema

Object Type Notes
(To be documented as Gold layer is built)

CORE_DB (Shared Resources)

SILVER Schema

Shared resources used by all client Gold layers.

Table Purpose Updated By Notes
ROSTER_WARBYPARKER WBP XO agent roster — name, team, IS_XO_AGENT core_ph_hr_roster_daily DAG Source: BambooHR / PeopleHub
ROSTER_CONDENAST CND XO agent roster core_ph_hr_roster_daily DAG Source: BambooHR / PeopleHub

GOLD Schema

Object Purpose
(Shared Gold dimensions — to be populated as shared dims are built)

OPERATIONS (Legacy — Multi-Client Analytics DB)

This database contains legacy multi-client analytics objects. Actively maintained for ad hoc analysis and reporting; no _DEV variant exists — all queries run against prod data.

Schema Objects Purpose Naming pattern
STAGING ~9 dynamic tables Intermediate transformation layer STAGE_{CLIENT}_{OBJECT}
ODS ~15 dynamic tables Cross-client operational data store XOS_*, {CLIENT}_*
AGGREGATE ~45 dynamic tables + ~36 views Pre-computed metrics and dashboards {CLIENT}_{METRIC}, {CLIENT}_RPT_*
BAMBOOHR ~7 dynamic tables Employee roster source (feeds CORE_DB) ROSTER_{CLIENT}

Do not create new objects in OPERATIONS. For new analytical surfaces, build in the medallion architecture (WBP_DB/CND_DB GOLD layer). Existing objects are read-only for analysis.


Airflow Connections → Snowflake Mapping

Airflow Connection ID Snowflake Database Role Used By
snowflake_loader_prod WBP_DB, CND_DB, CORE_DB XO_DATA_LOADER xo-foundry load tasks
snowflake_dbt_prod WBP_DB, CND_DB, CORE_DB XO_DBT_ROLE dbt transformations (via Cosmos)
snowflake_loader_dev WBP_DB_DEV, CND_DB_DEV XO_DATA_ENGINEER_DEV Local development

Naming Constraints

Before creating any new Snowflake object, verify: 1. Table name doesn't already exist in this inventory 2. Follows naming convention from ADR 009 3. Lives in the correct database — per-client data in client DB, shared data in CORE_DB 4. Schemachange migration file created — DDL must go through version control


See also: architecture-summary.md | rbac-permission-matrix.md | ADR 009