Please be sure of your agent type and version and pick the right documentation accordingly.
This is the documentation of the forest-express-sequelize and forest-express-mongoose Node.js agents that will soon reach end-of-support.
forest-express-sequelize v9 and forest-express-mongoose v9 are replaced by v1.
Please check your agent type and version and read on or switch to the right documentation.
This is still the latest Ruby on Rails documentation of the forest_liana agent, you’re at the right place, please read on.
This is the documentation of the django-forestadmin Django agent that will soon reach end-of-support.
If you’re using a Django agent, notice that django-forestadmin v1 is replaced by v1.
If you’re using a Flask agent, go to the v1 documentation.
Please check your agent type and version and read on or switch to the right documentation.
This is the documentation of the forestadmin/laravel-forestadmin Laravel agent that will soon reach end-of-support.
If you’re using a Laravel agent, notice that forestadmin/laravel-forestadmin v1 is replaced by v3.
If you’re using a Symfony agent, go to the v1 documentation.
Please check your agent type and version and read on or switch to the right documentation.
Create Charts with AWS Redshift
This example shows you how to create a graph based on AWS Redshift.
This could be useful if you want to avoid making graphs directly from your production database.
This tutorial is based on .
We'll create 2 charts:
Number of users (single value chart)
Top 5 buyers (leaderboard chart)
Connect to a Redshift Database
Install the for your Forest Admin project
node install node-redshift --save
Create the database client and set up the credentials variables cf. package documentation: .
var Redshift = require('node-redshift');
var clientCredentials = {
host: process.env.REDSHIFT_HOST,
port: process.env.REDSHIFT_PORT,
database: process.env.REDSHIFT_DATABASE,
user: process.env.REDSHIFT_DB_USER,
password: process.env.REDSHIFT_DB_PASSWORD,
};
const redshiftClient = new Redshift(clientCredentials);
Configure your database credentials in your env variables
Create the Single Value Chart
Step 1 - Create a Single Value Smart Chart in the Forest Admin Project Dashboard.
Step 2 - Create the route to handle the Smart Chart
routes/dashboard.js
const express = require('express');
const router = express.Router();
const Liana = require('forest-express');
...
router.post('/stats/nb-users', Liana.ensureAuthenticated, async (request, response) => {
const query = `
SELECT count(*) as nb
FROM users
`;
const data = await redshiftClient.query(query);
let json = new Liana.StatSerializer({
value: data.rows[0].nb
}).perform();
response.send(json);
});
Create the Leaderboard Chart
Step 1 - Create a Leaderboard Smart Chart in the Forest Admin Project Dashboard.
Step 2 - Create the route to handle the Smart Chart
routes/dashboard.js
const express = require('express');
const router = express.Router();
const Liana = require('forest-express');
...
router.post('/stats/top-5-buyers', Liana.ensureAuthenticated, async (request, response) => {
const query = `
SELECT firstname || ' ' || lastname AS key, total_quantity AS value
FROM (SELECT buyerid, sum(qtysold) total_quantity
FROM sales
GROUP BY buyerid
ORDER BY total_quantity desc limit 5) Q, users
WHERE Q.buyerid = userid
ORDER BY Q.total_quantity desc
`;
const data = await redshiftClient.query(query);
let leaderboard = data.rows;
let json = new Liana.StatSerializer({
value: leaderboard
}).perform();
response.send(json);
});