This directory contains comprehensive documentation for all Smyth Runtime Environment (SRE) connectors. Each connector provides a specific implementation for SRE subsystems, enabling different deployment scenarios and integration requirements.
The SRE uses a connector-based architecture where each subsystem can be implemented using different connectors. This allows for flexible deployment configurations, from local development to enterprise production environments.
The SRE ships with the following default connectors:
Subsystem | Default Connector | Purpose |
---|---|---|
Vault | JSONFileVault | Local encrypted secret storage |
Account | DummyAccount | Development user management |
Cache | RAM | In-memory caching |
Storage | LocalStorage | File storage on local filesystem |
Code | DummyConnector | Placeholder code executor |
NKV | LocalStorage | Named key-value storage |
VectorDB | RAMVec | In-memory vector database |
ModelsProvider | JSONModelsProvider | JSON-based model configuration |
AgentData | NullAgentData | No-operation agent data |
Component | LocalComponent | Local component loading |
ManagedVault | NullManagedVault | No-operation managed secrets |
Log | ConsoleLog | Console logging output |
Router | NullRouter | No-operation HTTP routing |
Note: LLM connectors are not included in the default configuration. They are configured dynamically through the ModelsProvider subsystem using models.json
files.
{
Vault: {
Connector: 'JSONFileVault',
Settings: { shared: 'development' }
},
Account: { Connector: 'DummyAccount' },
Cache: { Connector: 'RAM' },
Storage: { Connector: 'LocalStorage' },
Code: { Connector: 'DummyConnector' },
NKV: { Connector: 'LocalStorage' },
VectorDB: {
Connector: 'RAMVec',
Settings: {
embeddings: {
provider: 'openai',
model: 'text-embedding-3-small'
}
}
},
Component: { Connector: 'LocalComponent' },
ModelsProvider: { Connector: 'JSONModelsProvider' },
Log: { Connector: 'ConsoleLog' },
Router: { Connector: 'NullRouter' },
AgentData: { Connector: 'NullAgentData' },
ManagedVault: { Connector: 'NullManagedVault' }
}
{
Vault: {
Connector: 'SecretsManager',
Settings: {
region: 'us-east-1',
awsAccessKeyId: process.env.AWS_ACCESS_KEY_ID,
awsSecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
}
},
Account: {
Connector: 'AWSAccount',
Settings: {
region: 'us-east-1',
userPoolId: process.env.COGNITO_USER_POOL_ID,
clientId: process.env.COGNITO_CLIENT_ID
}
},
Cache: {
Connector: 'Redis',
Settings: {
name: 'mymaster',
password: process.env.REDIS_PASSWORD,
hosts: 'localhost:6379'
}
},
Storage: {
Connector: 'S3',
Settings: {
region: 'us-east-1',
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
bucket: 'production-storage'
}
},
VectorDB: {
Connector: 'Pinecone',
Settings: {
apiKey: process.env.PINECONE_API_KEY,
indexName: 'production-index',
embeddings: {
provider: 'openai',
model: 'text-embedding-3-small'
}
}
},
Component: { Connector: 'LocalComponent' },
ModelsProvider: { Connector: 'JSONModelsProvider' },
Code: {
Connector: 'AWSLambda',
Settings: {
region: 'us-east-1',
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
}
},
Log: { Connector: 'ConsoleLog' },
Router: {
Connector: 'ExpressRouter',
Settings: {
router: expressApp,
baseUrl: '/api'
}
},
AgentData: {
Connector: 'Local',
Settings: {
devDir: './agents',
prodDir: '/opt/agents'
}
},
ManagedVault: {
Connector: 'SecretManagerManagedVault',
Settings: {
region: 'us-east-1',
vaultName: 'production-vault',
awsAccessKeyId: process.env.AWS_ACCESS_KEY_ID,
awsSecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
}
}
}
Local/Development
Cloud/Production
Self-Hosted
High Performance
High Durability
Simple/Minimal
The SRE connector system is designed to be extensible. You can:
Refer to the extending connectors documentation for implementation guidelines.
For questions about specific connectors: