LA.001Docs · Data plane
LA.001Docs · Data plane

Where the data actually goes.

Not a stage of the spine. Client data has its own path: pulled on a schedule into a fenced landing zone, shaped by thin transforms, served through cache tables the portal reads, with a freshness meter beside every source. The acceptance standard: every displayed number names its source pull, its freshness and its client boundary.

LA.002The five lanes
LA.002The five lanes

Sources, ingest, landing, shape, serve.

01 · SOURCESwhere the data is made02 · INGESThow it gets pulled03 · LANDINGraw, fenced, untouched04 · SHAPEmade useful, per board05 · SERVEwhat a person seesSTRAIGHT TO CACHE · THE ONES THAT COST TO MOVEPLATexternalThe platformsAds, GA4, SearchConsole, Meta, ClarityAIRscheduledAirbyteSelf-hosted · every newsource enters hereWRKlegacyOps-machine workersThe proven set · no newonesRAWfencedraw_* schemasOwn role, no CREATE,never exposedCHruled: noClickHouseNo second databaseuntil volume earns oneTFMthin SQLTransformsFour chains today · oneper boardCACHEsmallCache tablesWhat the portalactually readsHUBRLSThe HubRow-level security isthe whole storyMETERper sourceSync meterLast pull, rows,freshness
01 · SOURCES · where the data is made
  • The platformsAds, GA4, Search Console, Meta, Clarity
02 · INGEST · how it gets pulled
  • AirbyteSelf-hosted · every new source enters here
  • Ops-machine workersThe proven set · no new ones
03 · LANDING · raw, fenced, untouched
  • raw_* schemasOwn role, no CREATE, never exposed
  • ClickHouse · plannedNo second database until volume earns one
04 · SHAPE · made useful, per board
  • TransformsFour chains today · one per board
  • Sync meterLast pull, rows, freshness
05 · SERVE · what a person sees
  • Cache tablesWhat the portal actually reads
  • The HubRow-level security is the whole story
How client data reaches the Hub. The dashed warehouse is ruled out for now, not queued.
  1. 01

    Sources

    Where the data is made. Ads, GA4, Search Console, Meta, Clarity.

  2. 02

    Ingest

    Airbyte, self-hosted, on a schedule. Every new source enters here. The proven legacy workers remain for the few sources it doesn't cover, and no new ones are written.

  3. 03

    Landing

    Raw schemas with their own role, no CREATE, never exposed through the public API. Proven by a negative-access probe before a source carries real data.

  4. 04

    Shape

    Thin SQL transforms, one chain per board. Four chains today: analytics daily, search daily, search query, page-speed mart.

  5. 05

    Serve

    Small cache tables the portal reads, a sync meter per source (last pull, rows, freshness), and row-level security as the whole story.

LA.003Honest data
LA.003Honest data

Three rules the numbers live under.

01

Freshness is a node, not a hope

A per-source meter records last pull, what it brought and how old it is, so stale numbers show as stale. Built for covered sources; not every number meets the standard yet, and a probe enumerates which still fail it.

02

A cost that isn't known is left blank

Never shown as zero. A usage counter once turned an empty string into 0 and summed unrecorded rows. That's a closed bug and a standing rule.

03

No warehouse until volume earns one

A second database is a recorded no for now. One shared clean layer per source inside the existing database.

LA.004Connections
LA.004Connections

Connections are Nango's job. Calls are the broker's.

A connection is an OAuth grant or an API key for one platform, filed under one organisation. Nango owns the consent screen, the token and the refresh lifecycle, so the client never sees the plumbing: Connect Google in Hub, the provider's consent screen, done. The broker then makes every outbound call under a scoped, short-lived grant, so a token Nango holds is still never in an agent's hands. Read-only analytics keys live with Airbyte, where they're used, because they're low stakes and revocable in minutes.