Getting Started

This is the official documentation of the @forestadmin/agent Node.js agent.

Customization refers to a series of actions that enable you to personalize your agent, data source, or collection.

An agent is an HTTP server that serves the Forest Admin front-end application. A data source is a database or an API that you want to connect to Forest Admin. A collection is a set of data that you want to manage in Forest Admin.

Among other things, you can modify your agent by incorporating data sources, using plugins, customizing collections, and adding charts. Additionally, you can personalize your data sources by offering choices that cater to all data source types. Lastly, you can adapt your collections by including actions, fields, relations, segments between the data sources and other functionalities.

Customizing collections

The available customizations are listed in the sections below: actions, charts, fields, hooks, pagination, plugins, relationships, search and segments.

Using them always starts with the same step: use the customizeCollection method on the collection you want to customize.

It takes two arguments: the collection name and a callback function.

const { createAgent } = require('@forestadmin/agent');

createAgent()
  // Add your data source.
  .addDataSource(createSqlDataSource('mariadb://localhost:3808/example'))

  // Customize the 'task' collection from the added data source.
  .customizeCollection('task', taskCollection => {
    // Add a Smart Action
    taskCollection.addAction('send-email', { ... });

    // Add a computed field
    taskCollection.addField('title', { ... });

    // ...
  });

Removing collections

You may want collections to be imported into your Forest Admin agent, but not exposed to the end-users. To do so, you can use the removeCollection method.

All relations to this collection will be removed as well, but the collection will still be available in the Forest Admin agent and can be used in your code

Using the include/exclude options of addDataSource ensures that a collection is not imported in the first place. In that case, it won't be available in your code.

const { createAgent } = require('@forestadmin/agent');

createAgent()
  // Add your data source.
  .addDataSource(createSqlDataSource('mariadb://localhost:3808/example'))

  // Remove the 'task' collection from your user's admin-panel.
  .removeCollection('task')

  // You can still use the collection in your code
  .customizeCollection('task', taskCollection => {
    // ...
  });

Auto-completion & Typings & Best practices

You may refer to this section to activate auto-completion and typings.

Last updated