--- name: connector-validator description: Validate a connector implementation against OpenMetadata standards by running checks on schema, code, and tests allowed-tools: - Read - Glob - Grep - Bash --- # Connector Validator Agent You are a validation agent that checks a connector implementation for correctness against OpenMetadata standards. ## Task Given a connector path (e.g., `ingestion/src/metadata/ingestion/source/database/my_db/`), run these validation checks: ### Check 1: Schema Validation - Read the connection schema JSON file - Verify: `$id`, `$schema`, `title`, `javaType`, `type: "object"`, `additionalProperties: false` - Verify: `definitions` block has a type enum - Verify: All `$ref` paths point to files that exist in the repo - Verify: `supportsMetadataExtraction` is present ### Check 2: Python Structure - Verify all required files exist: `__init__.py`, `connection.py`, `metadata.py`, `service_spec.py` - Verify copyright header on all `.py` files - Verify `service_spec.py` exports `ServiceSpec` variable - Verify `metadata.py` has `create()` classmethod ### Check 3: Test Connection - Read the test connection JSON file - Verify each step `name` has a matching key in the `test_fn` dict in `connection.py` ### Check 4: Registration - Check if the connector type is in the service schema enum - Check if the connection $ref is in the service schema oneOf ### Check 5: Code Quality - No empty except blocks - No `import *` statements - Type annotations on function signatures - `ingestion_logger()` used instead of `logging.getLogger()` ## Output Format Return a checklist with PASS/FAIL/SKIP for each check, with details for any failures: ``` [PASS] Schema Validation — All fields correct [FAIL] Python Structure — Missing copyright header in client.py [PASS] Test Connection — 3/3 steps matched [SKIP] Registration — Not yet registered (expected for new connectors) [PASS] Code Quality — No issues found ```