Skip to main content
Version: 1.0.6

Data Connections

Connect DataCrate to external databases, APIs, and storage systems to sync and manage test data.

Mock Services

Coming Soon

This feature is currently in development.

Supported Connections​

Databases​

DatabaseTypeFeatures
PostgreSQLRelationalFull CRUD, schemas
MySQLRelationalFull CRUD, views
SQL ServerRelationalFull CRUD, stored procs
MongoDBDocumentCollections, aggregation
RedisKey-ValueCache, session data
ElasticsearchSearchFull-text search

Cloud Storage​

ServiceFeatures
AWS S3File storage, versioning
Azure BlobContainer management
Google Cloud StorageBucket operations
MinIOS3-compatible

APIs​

TypeAuthentication
RESTAPI Key, OAuth, JWT
GraphQLBearer token
SOAPWS-Security

Creating Connections​

Database Connection​

Connection:
name: Production Clone
type: postgresql
host: db.example.com
port: 5432
database: test_db
username: ${DB_USER}
password: ${DB_PASSWORD}
ssl: required
pool_size: 10

API Connection​

Connection:
name: User Service
type: rest_api
base_url: https://api.example.com
auth:
type: oauth2
client_id: ${CLIENT_ID}
client_secret: ${CLIENT_SECRET}
headers:
X-API-Version: '2.0'

Cloud Storage Connection​

Connection:
name: Test Data Bucket
type: aws_s3
region: us-east-1
bucket: test-data-bucket
credentials:
access_key: ${AWS_ACCESS_KEY}
secret_key: ${AWS_SECRET_KEY}

Connection Operations​

Sync Data​

DirectionDescription
ImportPull data from source
ExportPush data to target
Two-WayBidirectional sync

Sync Configuration​

Sync:
source: production_db
target: test_dataset
table: users

options:
mode: incremental # full, incremental
key: updated_at
batch_size: 1000

transform:
- mask: [email, phone]
- anonymize: [name]
- exclude: [password, ssn]

Query Execution​

Run queries against connected databases:

-- Read data
SELECT * FROM users WHERE status = 'active' LIMIT 100

-- Parameterized queries
SELECT * FROM orders
WHERE user_id = :userId
AND created_at > :startDate

Data Masking​

Masking Rules​

Protect sensitive data during sync:

Field TypeMasking Method
Emailjohn@*** .com
Phone--1234
SSN*--6789
Credit Card**-**-****-1234
NameJ*** D**

Configuration​

Masking:
email:
method: partial
show_first: 3
show_domain: true

phone:
method: partial
show_last: 4

ssn:
method: hash
algorithm: sha256

name:
method: fake
generator: faker.name()

Scheduling​

Sync Schedules​

FrequencyUse Case
Real-timeCritical test data
HourlyFrequent updates
DailyRegular refresh
WeeklyStatic datasets
On-demandManual trigger

Schedule Configuration​

Schedule:
name: Nightly User Sync
connection: production_db
cron: '0 2 * * *' # 2 AM daily

sync:
tables: [users, profiles]
mode: incremental

notifications:
on_success: slack
on_failure: email

Security​

Credentials Management​

StorageSecurity Level
VaultEnterprise secrets
Env VariablesEnvironment-based
Encrypted ConfigFile-based secrets

Access Control​

Connection:
name: Production Data

permissions:
admin: full
developer: read, sync
tester: read

restrictions:
tables:
- users: read_only
- payments: masked
- audit_logs: deny

Audit Logging​

Track all connection activities:

  • Connection attempts
  • Queries executed
  • Data synced
  • Errors and failures

Monitoring​

Connection Health​

MetricDescription
StatusConnected/Disconnected
LatencyResponse time
ThroughputRecords per second
ErrorsFailed operations

Alerts​

Configure alerts for:

  • Connection failures
  • Sync errors
  • Performance degradation
  • Security events

Best Practices​

Security​

  • Use environment variables for credentials
  • Enable SSL/TLS connections
  • Implement least-privilege access
  • Audit connection usage

Performance​

  • Use connection pooling
  • Optimize query performance
  • Schedule syncs during off-hours
  • Monitor resource usage

Maintenance​

  • Regularly test connections
  • Update credentials before expiry
  • Document connection purposes
  • Review access permissions