Generated banner for Databasehub CLI
Generated logo for Databasehub CLI

Databasehub CLI

MicrosoftOfficialPublished by Microsoft

  • Skill
  • Tool integration
  • Data and AI
  • MIT
  • No issues found

From the author

Analyzes Database Hub inventory, health, and security posture through Entra-authenticated Fabric APIs. Use for estate counts; SQL/PostgreSQL CPU, storage, and memory; Cosmos DB availability/RU; authentication/auditing/CMK warnings; and Fabric SQL inventory. Fabric SQL tuning routes to sqldb-cli; Warehouse/Lakehouse/Mirrored Database SQL to sqldw-cli. Triggers: data estate performance, database estate health, database security posture.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

databasehub-cli provides read-only analysis of a database estate through Fabric APIs. It enables users to query inventory counts, monitor performance metrics like CPU, storage, and memory for SQL and PostgreSQL, and check availability and RU consumption for Cosmos DB. The skill also reports on security posture, including authentication, auditing, and CMK warnings. It is designed for cross-engine estate visibility and routes specific tuning or deep-dive requests to specialized skills.

What it does

  • Retrieves estate-wide inventory counts and resource hierarchy information.
  • Analyzes health metrics including CPU, storage, and memory for SQL and PostgreSQL.
  • Reports Cosmos DB availability and normalized RU consumption.
  • Identifies security posture findings such as authentication, auditing, and CMK warnings.
  • Provides filtered health summaries based on saved-view scopes.
  • Routes specialized database tuning and deep-dive queries to appropriate product-specific skills.

When to use it

  • When you need a high-level inventory count of your database estate.
  • When investigating performance trends across multiple database engines.
  • When auditing security posture for Azure SQL and Arc SQL Server.
  • When checking Cosmos DB availability or RU saturation levels.
  • When you need to identify high or low usage resources across your data estate.

Advantages

  • Provides a unified view of cross-engine database health and security.
  • Enables granular drill-downs into specific resource performance.
  • Maintains strict read-only access for safe estate analysis.
  • Supports complex filtering through immutable snapshots for consistent reporting.

Usage examples

“Are there any performance issues I should know about in my data estate?”
The agent queries health families for SQL, PostgreSQL, and Cosmos DB, reports performance findings, and drills into high-usage resources.
“What should I fix first to improve security across my databases?”
The agent compares security issues related to authentication, auditing, and CMK posture, prioritizing affected resources.
“Show my database estate by engine and subscription.”
The agent retrieves inventory counts and groups resources by type and subscription.
“How is my CPU consumption looking across my databases recently?”
The agent queries CPU metrics for SQL and PostgreSQL and clarifies that Cosmos DB CPU metrics are not available.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/microsoft/databasehub-cli/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip databasehub-cli.zip -d .agents/skills

Documentation by Microsoft

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 LRO poll, fabric_lro and retry. Snippets omit it — add it anyway.

CRITICAL NOTES

  1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering

  2. To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering

  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 skill.

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.

Prerequisite knowledge

Select one mode

ModeUse when the request asks forRead next
consumptionestate counts, subscriptions, resource hierarchy, mixed or engine-specific inventory, saved-view membership, or Fabric SQL catalog entriesreferences/consumption.md
operationscross-engine performance, CPU/storage/memory, Cosmos DB availability/RU use, critical or monitored resources, issues/suggestions, or authentication/auditing/CMK posturereferences/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

RequestRoute to
Cross-engine estate inventory, health, findings, or security posturedatabasehub-cli
Query Store, DMVs, blocking, plans, indexes, T-SQL, or tuning for one Fabric SQL Databasesqldb-cli
Warehouse, Lakehouse SQL endpoint, or Mirrored Database SQL queries and queryinsightssqldw-cli
OneLake domains, labels, workspace/capacity governance, descriptions, endorsement, or tagsonelake-catalog-cli
Fabric workspace item search by name, description, workspace, or typesearch-consumption-cli
Eventhouse or KQL Database querieseventhouse-cli
Azure Monitor mirrored-catalog onboarding and business-impact correlationazmon-mirroredcatalogs-operations-cli

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. Before the first Database Hub call, read references/private-over-public-api.md and the selected mode reference. For named-resource or filtered health drill-downs, read references/health-drilldowns.md in addition to operations.md, not instead of it.

  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. Attempt independent required calls even when another route fails; collect each route's error instead of short-circuiting the workflow. Only a page that depends on a failed prior page/token may be skipped. 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.

  • Emit SQL and PostgreSQL health summaries only through the compact Select-Object projection in operations.md; never print raw summaries with their series arrays. A populated estate's raw summaries exceed the tool-output limit, and answering from partial file reads misattributes metrics.

  • For general cross-engine health/performance that includes Cosmos availability or RU, query Microsoft SQL, PostgreSQL, and Cosmos DB separately; preserve their different metric contracts in the answer. For a CPU-only request, query SQL and PostgreSQL and state that Cosmos CPU is not exposed by this contract.

  • For general cross-engine health/performance requests that include Cosmos availability/RU, and for all-findings requests, page Cosmos health with the filtered POST form until continuationToken is absent. A first-page Cosmos result is incomplete. Do not call Cosmos health for inventory-only or CPU-only requests.

  • In every Cosmos health answer, label processedAccounts and totalAccounts separately even when they are equal; do not compress them into one unlabeled account count. When they differ, literally label coverage partial or inconsistent. When totalAccounts is 0, report totalAccounts: 0, say there are no Cosmos DB accounts in scope and therefore no availability or normalized RU data, and do not call Cosmos healthy.

  • For CPU-only requests, report CPU evidence only. Do not add storage or memory counts merely because the summary response also contains them.

  • 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. Repeat the literal scope on each posture line: "Azure SQL + Arc SQL Server" for authentication and "Azure SQL only" for both auditing and CMK.

  • For "all issues and suggestions" output, report both totalFindingCount and totalAffectedResourceCount for every returned database family. Do not substitute affected-resource counts for finding totals.

  • 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. Do not rephrase saturation as a confirmed, likely, or potential throttling risk.

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.

Examples

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.
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.
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.
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.
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.

Files

references/operations.md

Database Hub operations mode

Use this mode for performance, health, issues/suggestions, and security posture. Read private-over-public-api.md first.

Contents

  • Cross-engine health workflow

  • Mandatory completion gates

  • Interpret health responses

  • Security posture workflow

  • Answer the frozen request shapes

  • Reporting contract

Mandatory completion gates

Broad requests must finish the required reads in the current response. Do not offer any required route as an optional next step.

Required reads in a workflow are independent unless a later page needs a token from an earlier page. If one independent route returns 4xx/5xx, still attempt the other required routes and report each route's outcome. Do not stop a cross-engine or posture workflow at the first error. If page 1 fails and no continuation token exists, do not invent or request page 2.

For every security-posture answer, preserve the denominator labels in the final response, even when summarizing only percentages:

  • authentication — Azure SQL databases + Arc SQL Server;

  • auditing — Azure SQL databases only; and

  • CMK — Azure SQL databases only.

Do not shorten these to unlabeled "estate" percentages.

Request shapeCalls required before answering
performance or health "across my estate"SQL health, PostgreSQL health, and fully paged Cosmos health
security fixes across databasessecurity issues + suggestions summaries, then auth + auditing + CMK counts
CPU across databasesSQL health + PostgreSQL health; state that Cosmos CPU is unavailable
all issues and suggestionsSQL + PostgreSQL + fully paged Cosmos health, security issues + suggestions summaries, and auth + auditing + CMK counts

For every fully paged Cosmos workflow:

  • use filtered POST with pageSize: 300;

  • pin one startTime and endTime across every page;

  • continue until continuationToken is absent; and

  • compare summed processedAccounts with totalAccounts; and

  • emit the across-page minimum availability and maximum normalized RU in the tool result before using either value in the answer.

If processed and total counts differ, label Cosmos coverage partial or inconsistent. Never report complete coverage from a non-null continuation token or mismatched counts. The final answer must state both the processed and total account counts; reporting only the page count or resourcesWithData is insufficient.

Do not answer a general cross-engine performance request that includes Cosmos availability/RU, or an all-findings request, until the compact Cosmos tool result contains minimumServiceAvailability, maximumNormalizedRu, processedAccounts, and totalAccounts. If an asynchronous command has not emitted all four fields, read its completion result or rerun the bounded read. Counts alone do not prove Cosmos health.

Choose one completed compact aggregate as the source of truth for the final coverage pair. Report that aggregate's exact processedAccounts and totalAccounts; do not combine counts from earlier retries or page snapshots into a range such as "depending on pass." Use both field names in the final answer even when the values are equal; "2,092 accounts" does not prove which count it represents. If earlier calls drifted, disclose that separately from the selected aggregate.

Cross-engine health workflow

For a general estate-wide health/performance question that includes Cosmos availability or RU, call all three engine families. CPU-only questions are the explicit exception: call SQL and PostgreSQL, then state that Cosmos CPU is not available. Keep the CPU-only answer focused on CPU; do not report unrelated storage or memory counts from the same summary payload. These contracts are intentionally different; do not merge them into a fabricated common metric.

FamilyMethod and routeCurrent metrics
Microsoft SQLGET /health/v2/summaryCPU, storage, memory
PostgreSQL Flexible ServerGET /postgreSql/health/v2/summaryCPU, storage, memory
Cosmos DBGET or filtered POST /cosmosDb/health/summaryminimum service availability, maximum normalized RU consumption

The health defaults are the previous 24 hours, hourly granularity, and maximum aggregation. Prefer explicit UTC StartTime, EndTime, Granularity, and AggregationType when the user supplies a timeframe or comparison intent. Health windows must be 31 days or less.

Always emit these two summaries through the projection below. Raw summaries carry hourly series arrays; on a populated estate the pair exceeds the tool-output limit and spills to a file, and reading that file in fragments leads to misattributed metrics.

$dbhBase = "https://api.fabric.microsoft.com/v1/databasehub/__private"
$sqlRaw = az rest --method get --resource "https://api.fabric.microsoft.com" `
  --url "$dbhBase/health/v2/summary" `
  --headers "x-ms-fabric-skill=databasehub-cli" | ConvertFrom-Json
$postgresRaw = az rest --method get --resource "https://api.fabric.microsoft.com" `
  --url "$dbhBase/postgreSql/health/v2/summary" `
  --headers "x-ms-fabric-skill=databasehub-cli" | ConvertFrom-Json
$metricNames = @{ '0' = 'cpu'; '1' = 'storage'; '2' = 'memory' }
function Get-HighUsage($summary) {
  $high = [ordered]@{}
  foreach ($usage in @($summary.usageCounts)) {
    $key = "$($usage.metricType)".ToLowerInvariant()
    if ($metricNames.ContainsKey($key)) { $key = $metricNames[$key] }
    $high[$key] = $usage.highCount
  }
  $high
}
@{
  sql = $sqlRaw | Select-Object startTime,endTime,granularity,totalDatabases,
    usageCounts,performanceIssueSummary,performanceEnhancementSummary,coverage,errors
  sqlHighUsage = Get-HighUsage $sqlRaw
  postgresql = $postgresRaw | Select-Object startTime,endTime,granularity,totalDatabases,
    usageCounts,performanceIssueSummary,performanceEnhancementSummary,coverage,errors
  postgresqlHighUsage = Get-HighUsage $postgresRaw
} | ConvertTo-Json -Depth 12

Report every non-zero sqlHighUsage and postgresqlHighUsage value with its engine and metric name. PostgreSQL findings come from postgresqlHighUsage; its performance summary objects are always null, which does not mean zero findings.

For an estate-wide Cosmos query, use the file-based POST pattern with overviewFilters: {} and pageSize: 300. Repeat the POST with the same body plus each returned continuationToken until the token is absent. Never answer a cross-estate question from the first account page alone; the GET form is only suitable for an explicitly requested first-page sample. Keep all page responses and emit a compact JSON summary from the tool call so the final answer remains grounded in totalAccounts, processedAccounts, resourcesWithData, availability, RU, and errors. A normalized RU peak can indicate saturation, but does not prove that requests were throttled. Do not rephrase saturation as a confirmed, likely, or potential throttling risk.

$cosmosPages = @()
$continuationToken = $null
$endTime = (Get-Date).ToUniversalTime()
$startTime = $endTime.AddHours(-24)
$bodyPath = Join-Path $env:TEMP (
  "databasehub-cosmos-health-{0}.json" -f [guid]::NewGuid().ToString("N"))
try {
  do {
    $body = @{
      startTime = $startTime.ToString("o")
      endTime = $endTime.ToString("o")
      granularity = "PT1H"
      overviewFilters = @{}
      pageSize = 300
    }
    if ($continuationToken) { $body.continuationToken = $continuationToken }
    [IO.File]::WriteAllText($bodyPath, ($body | ConvertTo-Json -Depth 20),
      [Text.UTF8Encoding]::new($false))
    $page = az rest --method post --resource "https://api.fabric.microsoft.com" `
      --url "$dbhBase/cosmosDb/health/summary" `
      --headers "x-ms-fabric-skill=databasehub-cli" "Content-Type=application/json" `
      --body "@$bodyPath" | ConvertFrom-Json
    $cosmosPages += $page
    $continuationToken = $page.continuationToken
  } while ($continuationToken)
} finally {
  Remove-Item -LiteralPath $bodyPath -ErrorAction SilentlyContinue
}
$availabilityPoints = @($cosmosPages | ForEach-Object { $_.serviceAvailability })
$ruPoints = @($cosmosPages | ForEach-Object { $_.normalizedRuConsumption })
$minimumAvailability = if ($availabilityPoints.Count -gt 0) {
  ($availabilityPoints | Measure-Object value -Minimum).Minimum
} else {
  $null
}
$maximumNormalizedRu = if ($ruPoints.Count -gt 0) {
  ($ruPoints | Measure-Object value -Maximum).Maximum
} else {
  $null
}
Write-Output "=== COSMOS SUMMARY ==="
@{
  pageCount = $cosmosPages.Count
  finalContinuationToken = $continuationToken
  totalAccounts = $cosmosPages[0].totalAccounts
  processedAccounts = ($cosmosPages | Measure-Object processedAccounts -Sum).Sum
  resourcesWithData = ($cosmosPages | Measure-Object resourcesWithData -Sum).Sum
  minimumServiceAvailability = $minimumAvailability
  maximumNormalizedRu = $maximumNormalizedRu
  errors = @($cosmosPages | ForEach-Object { $_.errors } | Where-Object { $_ })
} | ConvertTo-Json -Depth 10

Do not state an availability or RU value unless that compact aggregate appeared in the tool result. If resourcesWithData is 0 and both aggregate values are null, report that no Cosmos metric points were available; do not substitute zero-percent availability or RU. Aggregate across all pages, not only the last page. finalContinuationToken must be null; otherwise paging did not reach a terminal response and the result is incomplete. Do not replace the compact aggregate with a raw-page sample. It must retain all seven keys: pageCount, finalContinuationToken, totalAccounts, processedAccounts, resourcesWithData, minimumServiceAvailability, and maximumNormalizedRu.

Interpret health responses

Microsoft SQL and PostgreSQL

Both response shapes include:

  • startTime, endTime, and granularity;

  • totalDatabases;

  • series[] keyed by metricType, with peak usage data over time;

  • usageCounts[];

  • optional coverage;

  • optional continuationToken for filtered calls; and

  • errors[].

For these health responses, CLI JSON can serialize metricType numerically. Map the value explicitly: 0 = CPU, 1 = storage, and 2 = memory. Do not infer metric identity from array position, and do not swap storage and memory.

Microsoft SQL populates both highCount and lowCount, plus performanceIssueSummary and performanceEnhancementSummary. Its high bucket is 90% or above. The summary lowCount includes 10% (<= 10%), while UsageLevel=Low usage details use < 10%; the two counts can therefore differ for resources whose peak is exactly 10%.

PostgreSQL summary semantics differ: only highCount is populated; lowCount is always 0, and both performance summary objects remain null. Report PostgreSQL high usage from usageCounts[].highCount for each metricType; a null performance summary is not zero findings. Do not report lowCount: 0 as evidence that no PostgreSQL server is underutilized. A PostgreSQL UsageLevel=Low usage-details request performs the actual low-usage selection at 10% or below. Prefer returned classifications over recalculating them; usage-detail routes return named resources and dailyMaxUsagePercentage.

PostgreSQL metrics come through Azure Monitor. Missing Monitoring Reader access can produce partial coverage. Report permissionDeniedResources, resourcesWithData, partitionsFailed, metricsFailed, and errors rather than describing missing data as healthy.

Cosmos DB

The response includes totalAccounts, processedAccounts, resourcesWithData, serviceAvailability[], normalizedRuConsumption[], continuationToken, and errors.

State explicitly:

  • availability is the minimum service availability signal;

  • RU is maximum normalized RU consumption; and

  • this contract does not expose CPU, memory, storage, latency, throttled-request counts, or arbitrary metric history.

Do not describe a 100% normalized RU value as evidence of throttling or as a confirmed, likely, or potential throttling risk. State only that provisioned throughput was fully consumed at the reported peak; proving throttling requires a separate throttled-request metric that this contract does not return.

Security posture workflow

  1. Read both overview summaries:

    • /overviewFindings/security/issues/summaries

    • /overviewFindings/security/suggestions/summaries

  2. Read the three posture counts:

    • /auth/counts — Azure SQL databases plus Arc SQL Server;

    • /auditing/counts — Azure SQL databases only;

    • /cmk/counts — Azure SQL databases only.

  3. If a count is non-zero and named resources are needed, page the matching warning route with top and continuationToken:

    • /auth/warnings

    • /auditing/warnings

    • /cmk/warnings

  4. Rank actual issues before suggestions; within each, use affected-resource count, blast radius, returned reason, and the user's stated priorities.

  5. Recommend actions only. Do not remediate.

foreach ($route in "auth/counts", "auditing/counts", "cmk/counts") {
  az rest --method get `
    --resource "https://api.fabric.microsoft.com" `
    --url "$dbhBase/$route" `
    --headers "x-ms-fabric-skill=databasehub-cli"
}

Do not print the full overview targetSummaries for a posture overview. Project each family to databaseFamily, totalFindingCount, totalAffectedResourceCount, postureAffectedResourceCount, affectedResourceCounts, and errors; then emit the three posture count objects separately so entraIdOnlyCount, auditingEnabledCount, and cmkEnabledCount remain visible in the tool result.

Count response fields and denominators:

AreaScopeFields
AuthenticationAzure SQL databases + Arc SQL ServertotalDatabases, entraIdOnlyCount, entraIdWithSqlAuthCount, sqlAuthOnlyCount, unknownCount, percentageEntraIdEnabled
AuditingAzure SQL databases onlytotalDatabases, auditingEnabledCount, auditingDisabledCount, percentageAuditingEnabled
CMKAzure SQL databases onlytotalDatabases, cmkEnabledCount, cmkDisabledCount, percentageCmkEnabled

Entra-enabled means entraIdOnlyCount + entraIdWithSqlAuthCount; percentageEntraIdEnabled is that sum divided by totalDatabases. Report it as consistent with the counts, not as a discrepancy.

Warning pages return items[], totalWarningCount, hasMore, and continuationToken. Items include name, type, serverName, resourceId, the posture state, and an optional reason. Their scopes match the corresponding count route; do not label these warning totals as PostgreSQL, Cosmos DB, managed-instance, SQL VM, or whole-estate coverage.

Answer the frozen request shapes

Request shapeRequired evidence
performance issues across the estatethree health summaries, finding counts, high-usage drill-down where material, timeframe, and partial coverage
how databases are performingseparate Microsoft SQL, PostgreSQL, and Cosmos sections; do not substitute Cosmos RU for CPU
what to fix first for securitysecurity issue/suggestion summaries plus auth/auditing/CMK counts and warning resources
recent CPU consumptionMicrosoft SQL and PostgreSQL CPU evidence plus an explicit Cosmos CPU limitation
all issues and suggestionshealth issue/enhancement summaries plus security issue/suggestion summaries; use performance usage-details, posture warning routes, and specialized inventory flags for named resources

Reporting contract

  • Lead with material findings, not raw JSON.

  • State scope, timeframe, aggregation, and pagination completeness.

  • Separate issue instances, affected resources, and inventory totals.

  • For every family in an all-issues/all-suggestions answer, include both totalFindingCount and totalAffectedResourceCount; neither is a substitute for the other.

  • Label auth, auditing, and CMK denominators with their exact SQL/Arc scopes; cross-family overview summaries provide the broader PostgreSQL/Cosmos view. Put the literal scope on each line: authentication is Azure SQL + Arc SQL Server; auditing is Azure SQL only; CMK is Azure SQL only.

  • For each family, say whether data is complete, partial, unavailable, or empty.

  • For Cosmos, report both processedAccounts and totalAccounts. Call coverage complete only when the token is absent and the processed total matches. When totalAccounts is 0, write that there are no Cosmos DB accounts in scope and therefore no availability or normalized RU data.

  • Preserve returned resource names/types and include resource IDs only when needed for disambiguation or requested export.

  • If every call succeeds but no resources are returned, report "no matching resources in the authorized scope," not "the estate is healthy."

  • If a write is requested, state that this skill is read-only and identify the owning item skill or product workflow; do not execute the change.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/skills-for-fabric · skills/databasehub-cli · commit f8fac11
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
microsoft/skills-for-fabric

AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download databasehub-cli.zip