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.

Zur Installation springen

Quellinformationen

Repository
open-metadata/docs-om
Letzte Quellaktivität
24. August 2026 um 15:26
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
14

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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)
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen