@forzalabs/remora
Version:
A powerful CLI tool for seamless data translation.
249 lines • 8.84 kB
JSON
{
"$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
}
]
}