Connector Catalog & Dynamic Forms
Matih provides a seamless connector experience powered by Airbyte's 600+ connectors. Instead of raw JSON configuration, the platform renders dynamic forms driven by each connector's JSON Schema specification.
How It Works
User selects connector → Platform fetches JSON Schema spec from Airbyte
→ Frontend renders typed form with groups, validation, and conditional fields
→ User fills form → Platform validates against spec → Source createdConnector Catalog API
Browse All Connectors
GET /api/v1/connectors/catalogReturns 600+ connectors with metadata:
[
{
"sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
"name": "Postgres",
"dockerRepository": "airbyte/source-postgres",
"dockerImageTag": "3.7.2",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/postgres",
"icon": "postgresql.svg",
"releaseStage": "generally_available",
"supportLevel": "certified",
"matihCapabilities": {
"supportsCDC": true,
"supportsIncremental": true,
"hasMCPServer": true,
"availableModes": ["ingest", "live"]
}
}
]Get Connector Spec (Dynamic Form Schema)
GET /api/v1/connectors/postgres/specReturns the JSON Schema that drives form rendering:
{
"type": "object",
"required": ["host", "port", "database", "username"],
"properties": {
"host": {
"type": "string",
"title": "Host",
"description": "Hostname of the database.",
"order": 0,
"group": "db"
},
"port": {
"type": "integer",
"title": "Port",
"default": 5432,
"minimum": 0,
"maximum": 65536,
"order": 1,
"group": "db"
},
"password": {
"type": "string",
"title": "Password",
"airbyte_secret": true,
"order": 5,
"group": "auth"
},
"replication_method": {
"type": "object",
"title": "Update Method",
"display_type": "radio",
"oneOf": [
{
"title": "CDC (Write-Ahead Log)",
"properties": {
"method": {"const": "CDC"},
"replication_slot": {"type": "string"},
"publication": {"type": "string"}
}
},
{
"title": "Xmin System Column",
"properties": {
"method": {"const": "Xmin"}
}
}
]
}
},
"groups": [
{"id": "db"},
{"id": "auth"},
{"id": "security", "title": "Security"},
{"id": "advanced", "title": "Advanced"}
]
}Validate Configuration Before Creating
POST /api/v1/connectors/postgres/validate
{
"host": "db.example.com",
"port": "not-a-number",
"database": "mydb"
}Response:
{
"connectorType": "postgres",
"valid": false,
"errors": [
"Port must be an integer (got: not-a-number)",
"Missing required field: Username"
]
}JSON Schema Extensions
Airbyte extends standard JSON Schema with custom properties that control UI rendering:
| Extension | Purpose | Example |
|---|---|---|
order | Field display order | "order": 0 (first field) |
group | Groups fields into UI cards | "group": "auth" |
airbyte_secret | Masks field value (password) | "airbyte_secret": true |
always_show | Show optional field by default | "always_show": true |
display_type | Radio vs dropdown for oneOf | "display_type": "radio" |
multiline | Multi-line text input | "multiline": true |
airbyte_hidden | Hide from UI, keep in API | "airbyte_hidden": true |
pattern_descriptor | Human-readable format hint | "pattern_descriptor": "YYYY-MM-DD" |
Supported Connector Categories
| Category | Examples | Count |
|---|---|---|
| Databases | PostgreSQL, MySQL, MongoDB, Oracle, SQL Server | 50+ |
| Cloud Data Warehouses | Snowflake, BigQuery, Redshift, Databricks | 10+ |
| SaaS Applications | Salesforce, HubSpot, Jira, Zendesk, Stripe | 200+ |
| Cloud Storage | S3, GCS, Azure Blob, SFTP | 15+ |
| APIs | REST API, GraphQL, custom HTTP | 100+ |
| Streaming | Kafka, Kinesis, Pub/Sub | 10+ |
| Files | CSV, JSON, Parquet, Excel, Avro | 10+ |
RBAC
| Operation | Permission |
|---|---|
| Browse catalog | sources:read |
| View connector spec | sources:read |
| Validate config | sources:read |
| Refresh cache | ingestion:admin |