- name
- databasehub-cli
- description
- Use this skill when the user asks for tenant-wide Database Hub inventory, cross-engine SQL/PostgreSQL/Cosmos health, security posture, auditing or CMK warnings, or Fabric SQL catalog inventory through Entra-authenticated Fabric APIs. Do not use it for one-database SQL tuning or Warehouse/Lakehouse/Mirrored Database SQL.
> **Telemetry - MANDATORY.** Every `api.fabric.microsoft.com` call must carry
> `x-ms-fabric-skill: databasehub-cli` (`az rest`: `--headers "x-ms-fabric-skill=databasehub-cli"`),
> including every retry and page request. Snippets omit it only when the header
> is already shown in the surrounding command.
> **CRITICAL NOTES**
> 1. To find workspace details from a workspace name, list workspaces and filter
> by `displayName`.
> 2. To find item details from a workspace ID, item type, and item name, list
> items of that type in the workspace and filter by `displayName`.
> 3. Database Hub estate routes are tenant-scoped and usually need neither a
> workspace nor an item ID. Apply notes 1-2 only when resolving a Fabric SQL
> catalog item or handing off to an item-specific capability.
# Database Hub CLI
Read-only analysis of the database estate exposed through Database Hub. This
skill executes live API calls; it does not answer estate questions from generic
best practices or from files in the current directory.
Claims in this skill were verified on 2026-09-22 against `assessment.json` and
`final-matrix-adjudication-v2.json`; those artifacts cover sealed fixture
behavior, while live Fabric execution remains pending.
## When to use
Use this skill for tenant-wide or cross-engine questions about:
- database counts, subscriptions, hierarchy, and mixed estate inventory;
- Microsoft SQL and PostgreSQL CPU, storage, and memory health;
- Cosmos DB availability and normalized RU coverage;
- security findings plus authentication, auditing, and CMK posture; and
- Fabric SQL catalog inventory.
Do not use it for Query Store, DMVs, execution plans, blocking, indexes, T-SQL,
warehouse `queryinsights`, OneLake governance, Eventhouse queries, or resource
changes. Route those requests to the owning capability described below.
## Prerequisite knowledge
- Before issuing any Database Hub request, open the [Private-over-public API contract](references/private-over-public-api.md)
for identity, route selection, pagination, partial-result, error, and
read-only safety rules.
- Open [Fabric API and CLI basics](references/fabric-api-basics.md) when signing
in, validating the tenant or token audience, adding request attribution, or
resolving Fabric workspaces and items.
- Review [Database Hub in Fabric documentation](https://learn.microsoft.com/fabric/database/hub/)
and use the [Microsoft Learn MCP server](https://learn.microsoft.com/api/mcp) for official docs.
## Select one mode
| Mode | Use when the request asks for | Read next |
| --- | --- | --- |
| `consumption` | estate counts, subscriptions, resource hierarchy, mixed or engine-specific inventory, saved-view membership, or Fabric SQL catalog entries | [references/consumption.md](references/consumption.md) |
| `operations` | cross-engine performance, CPU/storage/memory, Cosmos DB availability/RU use, critical or monitored resources, issues/suggestions, or authentication/auditing/CMK posture | [references/operations.md](references/operations.md) |
For a request spanning both modes, establish inventory scope first, then run
operations against that scope. Read each reference before issuing its calls.
## Scope and routing boundaries
| Request | Owning capability |
| --- | --- |
| Cross-engine estate inventory, health, findings, or security posture | `databasehub-cli` |
| Query Store, DMVs, blocking, plans, indexes, T-SQL, or tuning for one Fabric SQL Database | an item-level Fabric SQL database skill such as `sqldb-cli` |
| Warehouse, Lakehouse SQL endpoint, or Mirrored Database SQL queries and `queryinsights` | a warehouse SQL skill such as `sqldw-cli` |
| OneLake domains, labels, workspace/capacity governance, descriptions, endorsement, or tags | a OneLake governance skill |
| Fabric workspace item search by name, description, workspace, or type | a Fabric catalog search skill |
| Eventhouse or KQL Database queries | an Eventhouse/KQL skill |
| Azure Monitor mirrored-catalog onboarding and business-impact correlation | an Azure Monitor mirrored-catalog skill |
The named sibling skills are capability owners from the source collection and
may not be installed in every AgentSkills bundle. If the owning sibling is not
available, explain the boundary and stop; do not make Database Hub perform that
sibling's work.
Fabric SQL support here is **catalog inventory only**. Do not claim Database Hub
health or posture coverage for Fabric SQL items. Do not substitute a
single-database diagnostic skill for a cross-engine estate request.
## Execution contract
1. Confirm the active Entra identity and requested scope. Portal-provided
subscriptions, resource filters, or time range are query hints, never
authorization.
2. Read the shared API contract and the selected mode reference.
3. Run the documented live calls through `https://api.fabric.microsoft.com`.
4. Follow every continuation token needed for the requested scope.
5. Report timeframe, aggregation, engine coverage, pagination completeness,
`coverage`, and sanitized `errors`.
6. For prompts containing "all", "across", or "estate", complete every required
summary/posture call in the selected workflow before answering. Do not defer
required calls as an optional follow-up.
7. If a route or permission is unavailable, state the exact missing coverage;
never invent data, switch to a workload host, or query ADX directly.
## Must / Prefer / Avoid
### MUST
- Remain read-only. Decline create, deploy, enable, disable, update, delete, or
remediation requests and route them to the owning product flow or skill.
- Use a delegated Entra user token for the Fabric API and include
`x-ms-fabric-skill: databasehub-cli` on every request.
- For cross-engine health, query Microsoft SQL, PostgreSQL, and Cosmos DB
separately; preserve their different metric contracts in the answer.
- For requests covering the estate, all resources, or databases "across" the
estate, page Cosmos health with the filtered POST form until
`continuationToken` is absent. A first-page Cosmos result is incomplete.
- Treat HTTP 200 with non-empty `errors`, incomplete `coverage`, or remaining
continuation tokens as partial, not complete success.
- Label posture denominators exactly: authentication counts cover Azure SQL
databases plus Arc SQL Server, while auditing and CMK counts cover Azure SQL
databases only.
- State that Cosmos DB exposes availability and normalized RU consumption here,
not CPU, memory, storage, latency, or throttled-request diagnostics.
- State normalized RU saturation and explicitly say it does **not** prove
throttled requests because this contract exposes no throttling metric.
### PREFER
- Start with summary/count routes, then drill into only the affected population.
- Use server-provided finding summaries and high/low usage classifications
instead of inventing thresholds.
- Project compact typed summaries from API responses. Do not dump full metric
series or finding `targetSummaries` unless the user asks for them; oversized
tool output is harder to ground reliably.
- Group results by database family and priority, with affected counts and named
examples only when the user asks for detail.
- Reuse an immutable filter snapshot across pages and related filtered calls.
### AVOID
- Direct calls to ADX, Kusto, `arcdataservices.com`, workload regional hosts, or
any MWC-token flow.
- Agent-authored KQL, schema discovery, or arbitrary telemetry queries.
- Claiming IO support; the current health contract exposes CPU, storage, and
memory for Microsoft SQL/PostgreSQL.
- Inferring throttled requests or throttling from normalized RU consumption
alone. This contract reports RU saturation, not throttling events.
- Treating an empty response as healthy when authorization, coverage, paging,
or partial errors are unresolved.
## Check it worked
Run a bounded count request to verify authentication, the public host, and
request attribution before a larger estate workflow:
```powershell
az rest --method get `
--resource "https://api.fabric.microsoft.com" `
--url "https://api.fabric.microsoft.com/v1/databasehub/__private/databases/count" `
--headers "x-ms-fabric-skill=databasehub-cli" `
--output json
```
A successful response contains a numeric `totalCount` and a `countByType`
object. For the requested workflow, also confirm:
- every required database family or posture route returned a typed result;
- the reported timeframe and aggregation match the request;
- every required continuation token was consumed, unless the user requested an
exact bounded number of pages;
- `coverage` and `errors` are disclosed as complete, partial, unavailable, or
empty rather than silently ignored; and
- no create, update, delete, enable, disable, remediation, direct ADX, or
workload-token operation was attempted.
If the count request returns 401 or 403, recheck the delegated user, tenant, and
Fabric audience. If expected fields are absent or paging remains incomplete, do
not report a complete estate result; follow the error and partial-result rules
in the API contract.
## Examples
```text
User: Are there any performance issues I should know about in my data estate?
Mode: operations
Action: Query all three health families, report performance findings and partial coverage, then drill into high-usage SQL/PostgreSQL resources when needed.
```
```text
User: What should I fix first to improve security across my databases?
Mode: operations
Action: Compare security issues with authentication, auditing, and CMK posture; prioritize affected resources without changing them.
```
```text
User: Show my database estate by engine and subscription.
Mode: consumption
Action: Read counts, page the requested inventory, and group returned resources by type and subscription.
```
```text
User: How is my CPU consumption looking across my databases recently?
Mode: operations
Action: Query Microsoft SQL and PostgreSQL CPU coverage and explicitly note that this Database Hub Cosmos contract has no CPU metric.
```
```text
User: Give me a breakdown of all issues and suggestions across my data estate.
Mode: operations
Action: Combine health finding summaries with security issue/suggestion summaries and list affected resources through read-only drill-down routes.
```
Ver no GitHub