UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

249 lines 8.84 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Source Schema", "description": "Schema for defining data sources and their authentication methods", "type": "object", "properties": { "$schema": { "type": "string", "format": "uri" }, "name": { "type": "string", "description": "The name of the data source" }, "description": { "type": "string", "description": "Optional description of the data source" }, "engine": { "type": "string", "enum": [ "aws-redshift", "aws-dynamodb", "aws-s3", "postgres", "local", "delta-share", "http-api" ], "description": "The type of data engine" }, "authentication": { "type": "object", "description": "Authentication details for connecting to the data source. You can use environment variables by using the {your-env-var} notation", "properties": { "method": { "type": "string", "enum": [ "iam", "username-password", "access-secret-key", "arn", "implicit", "bearer-token", "api-key", "none" ], "description": "The authentication method to use" }, "host": { "type": "string", "description": "Hostname or endpoint of the data source" }, "user": { "type": "string", "description": "Username for authentication" }, "password": { "type": "string", "description": "Password for authentication" }, "database": { "type": "string", "description": "Database name" }, "workgroup": { "type": "string", "description": "Workgroup name" }, "schema": { "type": "string", "description": "Database schema name" }, "table": { "type": "string", "description": "Table name (used by some engines like delta-share)" }, "port": { "type": "string", "description": "Port number for the connection" }, "accessKey": { "type": "string", "description": "AWS access key ID" }, "secretKey": { "type": "string", "description": "AWS secret access key" }, "sessionToken": { "type": "string", "description": "AWS session token (if required)" }, "region": { "type": "string", "description": "AWS region" }, "bucket": { "type": "string", "description": "S3 bucket name" }, "iamProfile": { "type": "string", "description": "IAM role or profile name" }, "clusterId": { "type": "string", "description": "Redshift cluster identifier" }, "path": { "type": "string", "description": "The folder path" }, "share": { "type": "string", "description": "Delta Sharing share name" }, "bearerToken": { "type": "string", "description": "Bearer token used for authentication (Delta Sharing or HTTP API)" }, "url": { "type": "string", "format": "uri", "description": "Base URL for HTTP API sources" }, "headers": { "type": "object", "description": "Custom HTTP headers for API requests", "additionalProperties": { "type": "string" } }, "queryParams": { "type": "object", "description": "Default query parameters for API requests", "additionalProperties": { "type": "string" } }, "httpMethod": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"], "description": "HTTP method to use for API requests", "default": "GET" }, "apiKey": { "type": "string", "description": "API key for api-key authentication method" }, "apiKeyHeader": { "type": "string", "description": "Header name for API key (defaults to X-API-Key)", "default": "X-API-Key" }, "timeout": { "type": "number", "description": "Request timeout in milliseconds", "default": 30000, "minimum": 1000 } }, "required": ["method"] }, "_version": { "type": "number", "description": "Version number of the source configuration" } }, "required": [ "name", "engine", "authentication" ], "additionalProperties": false, "examples": [ { "name": "Production PostgreSQL Database", "description": "Main production database for customer data", "engine": "postgres", "authentication": { "method": "username-password", "host": "prod-db.example.com", "user": "app_user", "password": "password123", "database": "customers", "schema": "public", "port": "5432" }, "_version": 1 }, { "name": "Data Lake", "description": "AWS S3 bucket containing analytics data", "engine": "aws-s3", "authentication": { "method": "access-secret-key", "accessKey": "AKIAIOSFODNN7EXAMPLE", "secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "region": "us-east-1", "bucket": "analytics-data" }, "_version": 2 }, { "name": "Redshift Data Warehouse", "engine": "aws-redshift", "authentication": { "method": "iam", "host": "redshift-cluster.region.redshift.amazonaws.com", "database": "analytics", "port": "5439", "iamProfile": "redshift-access-role", "region": "us-west-2", "clusterId": "analytics-cluster" }, "_version": 1 }, { "name": "REST API with Bearer Token", "description": "HTTP API source with bearer token authentication", "engine": "http-api", "authentication": { "method": "bearer-token", "url": "https://api.example.com", "bearerToken": "{API_BEARER_TOKEN}", "headers": { "Accept": "application/json" }, "timeout": 30000 }, "_version": 1 }, { "name": "Public REST API", "description": "Public HTTP API with no authentication", "engine": "http-api", "authentication": { "method": "none", "url": "https://api.publicapis.org", "headers": { "Accept": "application/json" }, "httpMethod": "GET" }, "_version": 1 } ] }