The Sequelize datasource allows importing collections from a Sequelize instance, preserving your ORM configuration including scopes, hooks, associations, and validations.
Basic usage
import { createAgent } from '@forestadmin/agent';
import { createSequelizeDataSource } from '@forestadmin/datasource-sequelize';
import { Sequelize, Model, DataTypes } from 'sequelize';
// Initialize Sequelize
const sequelize = new Sequelize('postgresql://user:pass@localhost:5432/mydb');
// Define your models
class User extends Model {}
User.init(
{
username: DataTypes.STRING,
birthday: DataTypes.DATE,
},
{ sequelize, modelName: 'user' }
);
// Add to agent
const agent = createAgent(options);
agent.addDataSource(createSequelizeDataSource(sequelize));
Features
The Sequelize datasource automatically preserves your ORM configuration:
- Sequelize scopes - Mapped to Forest segments
- Sequelize hooks - Continue to execute as configured
- Associations - Relationships are automatically recognized
- Validations - Model validations are enforced
Live Query support
Enable SQL-based reporting by setting a connection identifier:
agent.addDataSource(
createSequelizeDataSource(sequelize, {
liveQueryConnections: 'main_database'
})
);
This allows authorized users to create Live Query charts, analytics, and segments that execute custom SQL directly against your database.
Live Queries execute raw SQL. Ensure proper access controls and review queries before deploying to production.
Source code
This connector is open source. Browse the code or contribute on GitHub: @forestadmin/datasource-sequelize.