Skip to main content

connector-doc-review

Review and fix OpenMetadata connector documentation against JSON schema and source code. Validates availableFeatures, permissions, yaml.mdx configuration, and overall completeness. Automatically fixes gaps.

Ir para a instalação

Informações da origem

Repositório
open-metadata/docs-om
Última atividade na origem
24 de agosto de 2026 às 15:26
Idioma detectado do SKILL.md
inglês
Estrelas
2
Forks
14

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
connector-doc-review
description
Review and fix OpenMetadata connector documentation against JSON schema and source code. Validates availableFeatures, permissions, yaml.mdx configuration, and overall completeness. Automatically fixes gaps.
user-invocable
true
argument-hint
<connector-name> [--service-type=database|pipeline|dashboard|messaging|storage|search|mlmodel] [--version=v1.13.x|v2.0.x|v2.1.x-SNAPSHOT|all] [--dry-run]
allowed-tools
["Bash","Read","Glob","Grep","Edit","Write","Agent"]
# Connector Documentation Review & Fix Skill ## When to Activate When a user asks to review, validate, audit, or fix connector documentation — checking it against the actual JSON schema and ingestion source code. ## Arguments - **connector-name** (required): Name of the connector (e.g., `redshift`, `dynamodb`, `bigquery`, `airflow`, `looker`, `kafka`) - **--service-type** (optional): One of `database`, `pipeline`, `dashboard`, `messaging`, `storage`, `search`, `mlmodel`. Default: auto-detect from connector name. - **--version** (optional): Which version to review. Default: `all` (reviews v1.13.x, v2.0.x). - **--dry-run** (optional): Only report issues, don't fix them. ## Directory References ``` DOCS_ROOT = . # The docs-om repo (current working directory) OM_ROOT = ../OpenMetadata # Sibling directory to docs-om SCHEMA_ROOT = ${OM_ROOT}/openmetadata-spec/src/main/resources/json/schema/entity/services SOURCE_ROOT = ${OM_ROOT}/ingestion/src/metadata/ingestion/source ``` ## Review Process ### Phase 1: Gather Ground Truth from Code #### Step 1.1: Read the JSON Schema Read the connector's JSON schema to extract the canonical list of capabilities and configuration fields. ``` Schema file: ${SCHEMA_ROOT}/connections/${service_type}/${connectorName}Connection.json ``` Extract: 1. **All properties** — field names, types, descriptions, required fields, defaults 2. **`supports*` boolean flags** — these define what the connector can do 3. **Filter pattern fields** — `schemaFilterPattern`, `tableFilterPattern`, `storedProcedureFilterPattern`, etc. 4. **`sampleDataStorageConfig`** — presence indicates Sample Data support 5. **Authentication references** — `$ref` to auth schemas (basicAuth, iamAuthConfig, awsCredentials, gcpCredentials, etc.). Build a list of supported authentication types (e.g., "Basic Auth", "IAM Auth", "OAuth2", "API Key", "GCP Credentials") from the `authType` property's `oneOf`/`anyOf` references. 6. **SSL configuration** — `sslMode`, `sslConfig`, `verifySSL` 7. **Required fields** — the `required` array Also read the parent service schema to verify the connector is registered: ``` Service schema: ${SCHEMA_ROOT}/${serviceType}Service.json ``` #### Step 1.2: Read the Source Code Read these files for the connector: ``` ${SOURCE_ROOT}/${service_type}/${connector_name}/metadata.py — Source class, capabilities ${SOURCE_ROOT}/${service_type}/${connector_name}/connection.py — Connection, test steps, permissions ${SOURCE_ROOT}/${service_type}/${connector_name}/service_spec.py — Service spec (lineage, usage, profiler classes) ``` Extract: 1. **Test connection steps** — the `test_fn` dictionary in `test_connection()`. Each key represents a permission/capability the connector validates. 2. **Service spec classes** — which source classes are registered (lineage_source_class, usage_source_class, profiler_class). Their presence confirms feature support. 3. **Source class mixins/base classes** — what the source extends (e.g., `LifeCycleQueryMixin`, `MultiDBSource`, `CommonNoSQLSource`) 4. **Owner extraction** — search for `yield_tag` or owner-related methods in the source to determine if Owners/Tags are supported 5. **Any permission-related comments or docstrings** — hints about required IAM roles, database grants, etc. Also check for: ``` ${SOURCE_ROOT}/${service_type}/${connector_name}/queries.py — SQL queries (for permission requirements) ${SOURCE_ROOT}/${service_type}/${connector_name}/client.py — API client (for REST connectors) ``` #### Step 1.3: Build the Feature Truth Table Using the schema and code, build a definitive feature map: **For Database Connectors:** | Schema Signal | Available Feature String | Unavailable Feature String | |---|---|---| | `supportsMetadataExtraction: true` | "Metadata" | — | | `supportsUsageExtraction: true` | "Query Usage" | "Query Usage" if false | | `supportsLineageExtraction: true` | "View Lineage" or "Lineage" | "Lineage" if false | | `supportsViewLineageExtraction: true` | "View Column-level Lineage" or "Column-level Lineage" | "Column-level Lineage" if false | | `supportsProfiler: true` | "Data Profiler" | "Data Profiler" if false | | `supportsDBTExtraction: true` | "dbt" | "dbt" if false | | `supportsDataDiff: true` | "Data Quality" | "Data Quality" if false | | `storedProcedureFilterPattern` present | "Stored Procedures" | "Stored Procedures" if absent | | `sampleDataStorageConfig` present | "Sample Data" | "Sample Data" if absent | | `supportsProfiler: true` (implicit) | "Auto-Classification" | "Auto-Classification" if profiler false | | Check source code for owner extraction | "Owners" if supported | "Owners" if not | | Check source code for tag extraction | "Tags" if supported | "Tags" if not | **For Pipeline Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "Pipelines" | | Check code for status extraction | "Pipeline Status" | | `supportsLineageExtraction: true` or lineage source in spec | "Lineage" | | Check code for owner extraction | "Owners" | | Check code for usage tracking | "Usage" | | Check code for tag extraction | "Tags" | **For Dashboard Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "Dashboards", "Charts" | | Check code for datamodel extraction | "Datamodels" | | Check code for project support | "Projects" | | `supportsLineageExtraction: true` or lineage source in spec | "Lineage" | | Check code for column lineage | "Column Lineage" | | Check code for owner extraction | "Owners" | | Check code for usage tracking | "Usage" | | Check code for tag extraction | "Tags" | **For Messaging Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "Topics" | | Check for sample data support | "Sample Data" | **For Storage Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "Metadata" | | Check code for structured containers | "Structured Containers" | | Check code for unstructured containers | "Unstructured Containers" | **For Search Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "Search Indexes" | | Check for sample data support | "Sample Data" | **For ML Model Connectors:** | Schema Signal | Available Feature String | |---|---| | Always | "ML Features" | | Check for hyperparameters | "Hyperparameters" | | Check for ML store | "ML Store" | ### Phase 2: Read Current Documentation For each version being reviewed (v1.13.x, v2.0.x): #### Step 2.1: Read the Main Connector Page ``` ${DOCS_ROOT}/${version}/connectors/${service_type}/${connector_name}.mdx ``` Extract: 1. **`availableFeatures`** array from `<ConnectorDetailsHeader>` 2. **`unavailableFeatures`** array from `<ConnectorDetailsHeader>` 3. **`stage`** value (PROD or BETA) 4. **Requirements section** — documented permissions, grants, IAM policies 5. **Connection details section** — documented configuration fields 6. **Sections present** — which optional sections exist (Query Usage, Lineage, Data Profiler, Data Quality, dbt, Troubleshooting) 7. **Authentication type callout** — check if an `<Info>` callout listing supported authentication types exists near the top of the page (after the intro text, before the table of contents) #### Step 2.2: Read the YAML Page ``` ${DOCS_ROOT}/${version}/connectors/${service_type}/${connector_name}/yaml.mdx ``` If it exists, extract: 1. **YAML example** in the CodePanel — all configuration fields shown 2. **ContentSection definitions** — field descriptions in the ContentPanel 3. **Optional sections** — Query Usage, Lineage, Data Profiler, Auto-Classification, Data Quality 4. **ConnectorDetailsHeader** — should match the main page #### Step 2.3: Check Navigation Registration ``` ${DOCS_ROOT}/docs.json ``` Verify: 1. The main connector page is registered in navigation 2. The yaml.mdx page is registered (if it exists) 3. Pages are in the correct version section ### Phase 3: Compare and Identify Issues Run these validation checks and categorize findings: #### Check 1: Available Features Accuracy Compare `availableFeatures` in docs against the truth table from Phase 1. - **MISSING**: Feature should be available (per schema/code) but is NOT in `availableFeatures` - **INCORRECT**: Feature is in `availableFeatures` but should NOT be (per schema/code) - **WRONG_LIST**: Feature is in `unavailableFeatures` but should be in `availableFeatures`, or vice versa Severity: **WARNING** for each mismatch. #### Check 2: Unavailable Features Completeness Verify that features NOT supported are listed in `unavailableFeatures`. A feature that is neither available nor unavailable is confusing to users. Severity: **SUGGESTION** for missing entries in unavailableFeatures. #### Check 3: Permission Documentation Compare documented permissions against: - Test connection steps (from `connection.py`) - SQL queries executed (from `queries.py`) - API calls made (from `client.py` or source code) Check for: - **MISSING_PERMISSION**: A permission required by code but not documented - **EXTRA_PERMISSION**: A permission documented but not actually needed - **UNCLEAR_PERMISSION**: Permission listed without explanation of why it's needed For database connectors, verify documented SQL grants match the queries. For cloud connectors (AWS/GCP/Azure), verify IAM policy actions match API calls. Severity: **WARNING** for missing permissions, **SUGGESTION** for unclear ones. #### Check 4: YAML Configuration Completeness Compare the YAML example in `yaml.mdx` against the JSON schema properties: - **MISSING_FIELD**: A schema property (especially required ones) not shown in YAML example - **EXTRA_FIELD**: A field in YAML that doesn't exist in schema - **WRONG_DEFAULT**: Default value in YAML doesn't match schema default - **MISSING_DESCRIPTION**: A ContentSection is missing for a documented field - **OUTDATED_DESCRIPTION**: ContentSection description doesn't match schema description Severity: **WARNING** for missing required fields, **SUGGESTION** for optional ones. #### Check 5: Section Completeness Based on the feature truth table, verify the documentation has the right sections: - If `supportsUsageExtraction: true` → Query Usage section should exist - If `supportsLineageExtraction: true` → Lineage section should exist - If `supportsProfiler: true` → Data Profiler section should exist - If `supportsDBTExtraction: true` → dbt section or link should exist - If `supportsDataDiff: true` → Data Quality section should exist Severity: **WARNING** for missing sections. #### Check 6: Cross-Version Consistency If reviewing all versions, check that features and permissions are consistent across versions (unless a known version difference exists). Severity: **SUGGESTION** for inconsistencies. #### Check 7: Authentication Type Highlighting Verify that the supported authentication types are highlighted at the top of the page using an `<Info>` callout. This callout should appear after the intro text and before the table of contents, listing each authentication method the connector supports (derived from the `authType` property in the JSON schema). Expected format: ```jsx <Info> **Supported Authentication Types:** - **Basic Auth** — Username and password authentication - **IAM Auth** — AWS IAM-based authentication with automatic temporary credential retrieval (supports both Provisioned Clusters and Serverless Workgroups) </Info> ``` Common authentication type labels by schema reference: - `basicAuth.json` → **Basic Auth** — Username and password authentication - `iamAuthConfig.json` → **IAM Auth** — AWS IAM-based authentication with automatic temporary credential retrieval - `awsCredentials.json` → **AWS Credentials** — AWS access key, secret key, and optional session token - `gcpCredentials.json` → **GCP Credentials** — Google Cloud service account authentication - `azureCredentials.json` → **Azure Credentials** — Azure service principal or managed identity authentication - OAuth2 references → **OAuth 2.0** — Token-based authentication - API key/token references → **API Key** — API key or token authentication Check for: - **MISSING_AUTH_CALLOUT**: No `<Info>` callout with authentication types exists at the top - **INCOMPLETE_AUTH_CALLOUT**: Callout exists but is missing authentication types that the schema supports - **STALE_AUTH_CALLOUT**: Callout lists authentication types not supported by the schema Severity: **WARNING** for missing callout, **SUGGESTION** for incomplete/stale. This check applies to both the main page and the yaml.mdx page. ### Phase 4: Report Findings Present a structured report: ```markdown ## Connector Documentation Review: {connector_name} ### Ground Truth (from schema + code) **Service Type**: {service_type} **Schema File**: {path} **Source Files**: {paths} **Supported Features**: [list] **Unsupported Features**: [list] **Required Permissions**: [list with explanations] **Required Configuration Fields**: [list] ### Findings #### {version} | # | Check | Severity | Finding | Current | Expected | |---|-------|----------|---------|---------|----------| | 1 | Features | WARNING | Missing "Data Quality" in availableFeatures | [...] | [...] | | 2 | Permissions | WARNING | Missing dynamodb:DescribeTable | - | Required for metadata extraction | | ... | | | | | | ### Summary - **Warnings**: {count} (should fix) - **Suggestions**: {count} (nice to have)
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub