Intalink for dbt
Use the table relationships Intalink discovers in your data while you write dbt SQL in VS Code.
- JOIN completion: after
on, complete o.customer_id = c.customer_id using your aliases. After join, get related models and sources, with or without the condition.
- Lineage inheritance: Intalink usually explores source tables. Models such as
stg_orders inherit their relationships when columns pass through unchanged, including renames, cast, CTEs, select * and nested ref().
- Evidence: every suggestion shows its inclusion rate, distinct counts, inferred cardinality, review status and source.
- Confidence grading: discovery compares values, so coincidences happen (auto-increment IDs, enums, names). Relationships are graded as key relationship, direction corrected, shared values or likely coincidence, with reliable ones first. When a relationship points at the wrong table, the correct target is derived.
- Join fan-out warnings: JOINs on a non-unique column are marked as you type, so amounts are not counted twice.
- Relationship view: overview, column-level graph, data catalog and the evidence for each relationship.
- Team decisions: confirm or stop suggesting a relationship. Decisions are saved in
.intalink/relationships.json and shared through your code.
- Generate dbt files: relationship tests and source declarations, previewed first. Tests start as
severity: warn, and existing files are never rewritten.
The extension reads sealed relationship sets from Intalink. It does not run discovery, connect to your data warehouse or read row data. Completion and hover use the local cache, so they also work offline. The one exception is Verify with dbt: when you click it, your own dbt connection queries the minimum, maximum and distinct count of two columns.
Requirements
- VS Code 1.96 or later
- A dbt project with
target/manifest.json (run dbt parse to create it)
- An Intalink account with at least one sealed relationship set
Tested on test projects with dbt 1.7 (MySQL) and dbt 1.10 (Postgres).
Getting started
- In Intalink, go to Settings → Account and security → Access tokens and create a token with the purpose VS Code extension. It is shown only once.
- Click the Intalink icon in the activity bar and paste the token. The server address is filled in for the Intalink cloud service. The token is stored in the system keychain, not in settings.
- Choose the relationship sets to sync. Sets that match your dbt project are recommended.
- Write SQL. Type
join or on to see suggestions, or open Open relationship graph from the home view.
When development and production schemas differ
Discovery usually runs on a shared schema such as analytics, while your models build into one such as dbt_dev. The extension offers to map them when it notices this, or you can set it yourself:
"intalinkForDbt.mapping.schemas": { "dbt_dev": "analytics" }
Settings
| Setting |
Default |
Description |
intalinkForDbt.serverUrl |
https://ari-intalink.arisyn.com |
Server address. HTTPS only (http://localhost works for local development) |
intalinkForDbt.sync.relationshipSets |
[] |
Relationship sets to sync. When empty, sets are recommended from the dbt project |
intalinkForDbt.sync.autoRefreshMinutes |
60 |
Sync interval. 0 means manual only |
intalinkForDbt.dbt.projectPath |
automatic |
Set it when the workspace has several dbt projects |
intalinkForDbt.mapping.dataSources |
{} |
dbt database → Intalink data source ID |
intalinkForDbt.mapping.schemas |
{} |
dbt schema → schema used for discovery |
intalinkForDbt.completion.minInclusionRatio |
0.9 |
Relationships below this inclusion rate are left out of completion |
intalinkForDbt.completion.includePending |
true |
Include relationships that are not confirmed yet (their status is shown). Excluded ones are never completed |
intalinkForDbt.diagnostics.joinFanout |
true |
Mark JOINs that multiply rows |
intalinkForDbt.dbt.command |
dbt |
The dbt command used by Verify with dbt |
Language
The extension follows the VS Code display language: English (default), Simplified Chinese and Traditional Chinese. To change it, run Configure Display Language in VS Code. Generated YAML is always in English because it is committed and shared.
Token and cache
- When a token is revoked or expires, or its account is disabled, the next sync removes the local token and cache and asks you to reconnect.
- Disconnect deletes the token and all cached data. Caches are separated by server, workspace and user.
Support
Questions or feedback: Hello@arisyn.com · www.arisyn.com
License
Proprietary. The license terms are in LICENSE.md, included with the extension.
| |