connectors
Skill646 starsChanged 37 days agoMITView on GitHub
Connect a Universal App to existing Fabric data sources: a Warehouse, SQL database, Lakehouse SQL analytics endpoint, or Power BI semantic model. Use whenever the user says "connect to", names an existing Fabric item, asks to query data that already exists, or needs to discover available sources. This skill owns the Universal App pack, source routing, and the handoff to the installed Rayfin connector catalog and package docs. It does not cover app-owned CRUD data (use `data-modeling`) or arbitrary external APIs (use `functions-capability`).
- Installs packages
4 other projects use a version of this.
Adopted by
Most recently taken up by
- stacksyncdata/skillstheir own version, first seen Oct 20, 2026
- autonomous-ai/lampOStheir own version, first seen Oct 15, 2026
- autonomous-ai/autonomous-ostheir own version, first seen Mar 30, 2026
- autonomous-ai/Physical-AI-Operating-Systemtheir own version, first seen Mar 30, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- autonomous-ai/autonomous-os★ 552same name
- autonomous-ai/lampOS★ 552same name
- autonomous-ai/Physical-AI-Operating-System★ 552same name
- stacksyncdata/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository76 other files it gives its agents.
- common/config/typedoc/AGENTS.mdAGENTS.md
- docs/site/AGENTS.mdAGENTS.md
- .github/skills/react-best-practices/AGENTS.mdAGENTS.md
- packages/docgen/AGENTS.mdAGENTS.md
- packages/guide/AGENTS.mdAGENTS.md
- packages/host-docs/AGENTS.mdAGENTS.md
- packages/tools/AGENTS.mdAGENTS.md
- packages/tools/cli/AGENTS.mdAGENTS.md
- packages/tools/cli/assets/agent-files/AGENTS.mdAGENTS.md
- packages/tools/common/AGENTS.mdAGENTS.md
- packages/tools/docs-lib/AGENTS.mdAGENTS.md
- packages/tools/mcp/AGENTS.mdAGENTS.md
- packages/tools/vscode/AGENTS.mdAGENTS.md
- packages/typescript-sdk/AGENTS.mdAGENTS.md
- packages/typescript-sdk/auth/AGENTS.mdAGENTS.md
- packages/typescript-sdk/core/AGENTS.mdAGENTS.md
- packages/typescript-sdk/data/AGENTS.mdAGENTS.md
- packages/typescript-sdk/storage/AGENTS.mdAGENTS.md
- packages/udf/udf-worker-extension/AGENTS.mdAGENTS.md
- samples/data-app/AGENTS.mdAGENTS.md
- samples/getting-started-auth/AGENTS.mdAGENTS.md
- samples/notes-app/AGENTS.mdAGENTS.md
- samples/todo-app/AGENTS.mdAGENTS.md
- samples/universal-app/template/AGENTS.mdAGENTS.md
- samples/welcome-app-react-auth/AGENTS.mdAGENTS.md
- samples/welcome-app-react-no-auth/AGENTS.mdAGENTS.md
- samples/welcome-app-typescript/AGENTS.mdAGENTS.md
- hotfix-releaseSkill
- launch-vscode-extensionSkill
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-bulk-archive-changeSkill
- openspec-continue-changeSkill
- openspec-exploreSkill
- openspec-ff-changeSkill
- openspec-new-changeSkill
- openspec-onboardSkill
- openspec-sync-specsSkill
- openspec-verify-changeSkill
- privacy-dfdSkill
- rayfin-cli-uxSkill
- vercel-react-best-practicesSkill
- react-clean-architectureSkill
- run-cli-e2e-locallySkill
- vscode-react-webview-architectureSkill
- vscode-webview-trpc-messagingSkill
- rayfin-connectorsSkill
- rayfin-functionsSkill
- rayfinSkill
- rayfin-storageSkill
- rayfin-getting-startedSkill
- app-designSkill
- app-validationSkill
- dax-authoringSkill
- fabric-cliSkill
- fabric-sdkSkill
- playwright-cliSkill
- query-designSkill
- schema-discoverySkill
- visualsSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 11 are distinctive, and 14 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Do not copy connector capabilities, operations, package versions, or client APIs from this skill.
- Distinctive: line 35
Read the installed, version-matched contracts before authoring:
- Very specific: line 37
Run npx rayfin connector types --json for the live type catalog.
- Very specific: line 41
After connector add, read the installed connector package's package.json, follow its rayfinDocs.dir, and use its entity-generation and …
- Distinctive: line 62
Do not substitute a nearby source type or sample data when the requested type is unavailable.
- Distinctive: line 69
If the user named a source but did not provide explicit IDs, search for it:
- Very specific: line 75
Before deployment there is no workspace scope to infer.
- Very specific: line 76
Use --all-workspaces for a tenant-wide scan, or replace it with --workspace-id <id> when the workspace is known.
- Very specific: line 79
Prefer --json so you can compare displayName, workspaceName, workspaceId, itemId, and connectorType without parsing a table.
- Distinctive: line 86
No match: say what you searched for and ask for a corrected name or explicit IDs.
- Distinctive: line 89
Never guess a source.
- Very specific: line 98
Use a short lower-camel-case alias such as salesWarehouse.
- Distinctive: line 108
Do not install them at the workspace root or create a nested lockfile.
- Very specific: line 113
Use rayfin/connectors/<alias>/metadata.json only through the installed package's generation contract.
- Distinctive: line 118
Do not recreate those package-owned contracts from memory.
- Very specific: line 127
After the aggregate schema exports <Name>Schema and connectorConfig, take ownership before editing by deleting that generated-marker line.
- Very specific: line 131
import <Name>Schema and connectorConfig from the aggregate schema.ts.
- Very specific: line 132
add <alias>: <Name>Schema to AppConnectorsSchema.
- Very specific: line 136
Do not rerun rayfin connector add --yes after authoring entities: --yes opts in to replacing the hand-authored aggregate schema.ts with a …
- Distinctive: line 138
If the CLI later reports manual wiring, merge its printed maps into the Builder-owned file instead of restoring the generated marker.
- Very specific: line 150
Use the typed client surface documented by the installed connector package for application reads and writes.
- Distinctive: line 159
Treat connector errors as configuration, permissions, or query errors to fix, not warnings to bypass.
- Distinctive: line 162
After wiring application code, run the normal project gates from the workspace root:
- Very specific: line 172
Before browser validation, follow the connector deployment-outcome invariant in app-deployment.
- Very specific: line 174
Do not treat overall rayfin up success as proof that a required connector was generated and applied.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Connect to an existing Fabric data source
First install the app-side connector support:
npm run pack:add -- connectorsThe rayfin connector command group is always available and requires no pack
or service flag.
This pack adds the frontend connector SDK and seeds
packages/frontend/src/lib/connectors.ts plus the composable Rayfin client.
It does not add services.connectors or declare a data source.
rayfin connector add owns the top-level connectors: configuration and the
per-source files under rayfin/connectors/.
Re-applying the pack is safe.
Read the live connector contracts
Do not copy connector capabilities, operations, package versions, or client APIs from this skill. Read the installed, version-matched contracts before authoring:
- Run
npx rayfin connector types --jsonfor the live type catalog. - Read
node_modules/@microsoft/rayfin-guide/assets/docs/cli/connectors/index.mdand the page for the command you are about to run. - After
connector add, read the installed connector package'spackage.json, follow itsrayfinDocs.dir, and use its entity-generation and typed-client pages.
The guide routes Category A details to
@microsoft/rayfin-connector-fabric-graphql.
Its installed docs own metadata.json, entity generation, aggregate
schema.ts, authorization, typed queries, and mutation behavior.
Route by source type
| User's source | Connector type or route |
| Fabric Warehouse | fabric-warehouse |
| Fabric SQL database | fabric-sqldatabase |
| Lakehouse SQL analytics endpoint | fabric-sqlanalytics |
| Power BI semantic model | npm run pack:add -- connectors, then npm run pack:add -- analytics |
| Kusto / KQL database | Check the live catalog; if it is absent, say it is unavailable and stop |
| External API, custom model endpoint, or Fabric data agent | npm run pack:add -- functions, then follow functions-capability |
The Lakehouse route is its SQL analytics endpoint, not direct access to files. Do not substitute a nearby source type or sample data when the requested type is unavailable.
Discover before connecting
Set <source-type> to the exact value from the table and confirm it still
appears in connector types --json.
If the user named a source but did not provide explicit IDs, search for it:
npx rayfin connector search "<name>" --type <source-type> --all-workspaces --jsonBefore deployment there is no workspace scope to infer.
Use --all-workspaces for a tenant-wide scan, or replace it with
--workspace-id <id> when the workspace is known.
Both explicit scopes require --type.
Prefer --json so you can compare displayName, workspaceName,
workspaceId, itemId, and connectorType without parsing a table.
Each result also carries a ready-to-run addCommand; prefer that command over
reconstructing connector add flags by hand.
- One unambiguous match: use it.
- Several plausible matches: show the workspace names and ask which one.
- No match: say what you searched for and ask for a corrected name or explicit IDs.
Never guess a source.
Add the connector
npx rayfin connector add --type <source-type> \
--workspace-id <workspaceId> --item-id <itemId> --name <alias>Use a short lower-camel-case alias such as salesWarehouse.
add records the connection in rayfin/rayfin.yml, creates
a placeholder rayfin/connectors/<alias>/schema.ts plus metadata.json when
schema discovery succeeds, and prints version-pinned package specifications.
Install those exact versions into the frontend workspace from the app root:
npm install -w @rayfin-app/frontend <printed-packages-and-versions>Do not install them at the workspace root or create a nested lockfile.
Generate and wire Category A entities
connector add discovers metadata but does not emit the entity files.
Use rayfin/connectors/<alias>/metadata.json only through the installed
package's generation contract.
Follow the installed
@microsoft/rayfin-connector-fabric-graphql docs to generate only the entities
the app needs and replace the placeholder aggregate schema.ts.
Do not recreate those package-owned contracts from memory.
The CLI-generated packages/frontend/src/lib/connectors.ts carries this
ownership marker:
// @generated by `rayfin connector add` — do not edit below this line.After the aggregate schema exports <Name>Schema and connectorConfig, take
ownership before editing by deleting that generated-marker line.
Then add the same connector name in all matching locations:
- import
<Name>SchemaandconnectorConfigfrom the aggregateschema.ts; - add
<alias>: <Name>SchematoAppConnectorsSchema; - add
<alias>: connectorConfigtoconnectorConfigs.
Category A needs no connectorRuntimes entry.
Do not rerun rayfin connector add --yes after authoring entities: --yes
opts in to replacing the hand-authored aggregate schema.ts with a placeholder.
If the CLI later reports manual wiring, merge its printed maps into the
Builder-owned file instead of restoring the generated marker.
Sample the source before building UI
List the real entities, then sample one through the read-only inspection path:
npx rayfin connector inspect --name <alias>
npx rayfin connector inspect --name <alias> --entity <entity> --rows 1Use the typed client surface documented by the installed connector package for
application reads and writes.
That is the generated client.connectors.<alias>.<Entity> surface, not a raw
query operation invented in application code.
Category A SQL connectors do not use connector invoke as their authoring
workflow.
This CLI sample proves source access and shape only.
It does not replace deployed browser validation from
app-validation.
Treat connector errors as configuration, permissions, or query errors to fix,
not warnings to bypass.
After wiring application code, run the normal project gates from the workspace root:
npm run typecheck
npm run build
npm run lint
npm testBefore browser validation, follow the connector deployment-outcome invariant in
app-deployment.
Do not treat overall rayfin up success as proof that a required connector was
generated and applied.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

