Address a Provider table
{connector} is the technical connector slug exposed by the Provider Plugin,
such as google, github, or linear. {table} is the projected stream name.
Examples include:
providers.google.usersproviders.github.pull_requestsproviders.linear.issues
USE statement or search_path.
A table appears only when its Provider is configured for the Workspace and
its stream has registered. It can be present before the first sync produces
rows. Use catalog discovery
instead of assuming that an example table exists.
Query one Provider
Active Google Workspace directory users:Understand projected names
A Provider stream can project one or more tables:- Field names are lowercased:
primaryEmailbecomesprimaryemail. - Flattened object paths use
__:assignee.emailbecomesassignee__email. - Arrays can become child tables named
{table}__{path}.
providers.github.issues__labels. The parent ID repeats across child rows, and
the child table has its own logical key. Do not use SELECT DISTINCT on the
parent ID to remove expected child records.
The Provider Plugin owns this projection. See the
Provider Plugins primer for how a custom Plugin
defines streams, schemas, and projection behavior.
Read row state
Every Provider table carries state columns beside the Provider’s own fields:
A table that holds the current state of each record, such as
providers.google.users, writes a row only when a load changes it: the load
contains the record, the record goes missing for the first time, or it is
first marked deleted. A record missing from later loads keeps the dt and
_parable_seal_id of the day it went missing. WHERE dt = '<latest day>'
therefore returns the rows that changed that day, not the whole table. Read
current state from the whole table and filter on the state columns:
Join people by semantic email
Columns marked with theContact.Email semantic scalar represent compatible
email values. They can be joined across Providers and to
workspace.users.email.
id columns and expect a person match.
Resolve accounts when emails differ
Directory streams can contribute to theproviders.identity schema. It
appears after at least one identity directory stream has synced.
Associations preserve the Provider-native account ID, its type, the match
method, and match confidence. Identity resolution is best-effort; service
accounts and shared mailboxes can receive identities too.