Knowledge Base

General

Basics

What is Forest?

Forest-only

Forest is a universal admin interface designed to manage all your application data and business operations. Forest helps developers to focus on their product instead of wasting time building and maintaining an outdated DIY admin.

How does Forest work?

Forest-only

Forest is comprised of an agent (Liana) and a front-end application (UI). Once you install the agent on your app, it will scan your ORM, retrieve the models, and generate an admin REST API that will communicate with the admin UI. Then, when the user logs on to our web app (http://app.forestadmin.com), it queries both the Forest’s server (to get the UI configuration) and your application (to retrieve the data).

What is Lumber?

Lumber-only

Lumber is a CLI that generates an admin interface out of an existing MySQL or Postgres database. You can then start using and customizing your new admin microservice in no time.

How does Lumber work?

Lumber-only

Lumber generates the admin REST api automatically based on your database schema. We only host the UI (http://app.forestadmin.com). It is up to you to decide on where the admin miscroservice is hosted. It means that your data will never reach our servers. You can test your admin on your local environment with a local database and then deploy it to your production environment.

Is it open source?

All products

Everything related to your data or business logic is open source, available freely on our GitHub account.

We host the admin UI. No data from your application ever reaches our servers as requests are initiated directly from your browser, to your application.

Does it rely on a DSL?

All products

Forest is based on a standard REST API. You don’t need to learn any DSL to customize the backend. Moreover, you are free to extend the API for all your particular needs.

How does it access the data from my collections?

Forest-only

The Liana (gem in Rails, package in Node, etc.) you install on your app will analyze the structure of your models and generate a dedicated admin REST API that handles all your common tasks such as CRUD actions, search & filters, sorting, pagination, charts, etc.

Can I simply point Forest at a database rather than plug it into my app?

All products

Yes. This is exactly what Lumber does: http://www.forestadmin.com/lumber. Lumber generates an ExpressJS admin microservice, isolated from your app.

Forest vs Lumber

What’s the difference between Forest and Lumber?

All products

Lumber is a generator that creates an admin microservice after scanning the structure of your database. Forest is an agent that you install directly on your app, where it analyzes the structure of your models. In the end, both generate a REST API that allows you to operate on your data via Forest’s UI.

Hosting

Do you offer a self-hosted, on-premise version of Forest?

All products

No, but you can always contact our Enterprise team.

Forest is installed directly within your application (or in the microservice with Lumber). It generates an admin REST API automatically, so that your app can communicate with the UI, that is hosted on our side (http://app.forestadmin.com). It’s the only part of the product that’s on our servers.

We chose this architecture for two main reasons:

  • your data never reaches our servers.
  • we can continue to develop great features and implement them in the UI.

Note we can also help you setup a custom DNS to get a legible URL for your end users.

Pricing

How does the pricing work?

All products

Forest is completely free, see our blog post. That applies to projects and teams of all sizes. Our Enterprise plan is for bigger companies with particular needs (SLA, dedicated support, etc.): http://www.forestadmin.com/enterprise

Product

Supported technologies

Does Lumber works with MongoDB?

Lumber-only

Not yet. Lumber needs to scan the DB structure to generate the admin microservice. With MongoDB, all the informations about data structure are in the ORM schemas, which makes the scanning process more difficult. So far Lumber supports MySQL and Postgres DBs. The standard version of Forest supports Express/Mongoose.

Do you have other frameworks support?

Forest

We’ve developed Lumber, an admin microservice generator that creates for you an admin microservice built to run Forest. For the moment, it’s compatible with any MySQL & Postgres databases. Check it out!

Data Privacy & Security

How secure is Forest?

Forest-only

Forest’s architecture is designed to make it impossible for us to access your data. Forest env secret is used to identify the project on Forest. The auth secret is used to secure requests to the admin API using JWT (https://jwt.io).

By default, all requests to your application data are secured (using SSL if available) and authenticated with a token that only you can generate.

What kind of information do you collect?

All products

The architecture of Forest is designed to make it impossible for us to access your actual data. Forest Lianas (our framework-specific agents) need to scan the schemas in order to generate the UI views.

Here is the complete list of information we collect or store in our database:

  • user info (email, encrypted Forest password, name)
  • project info (name, environments and API endpoints, mapping of the schema/models)
  • your Forest configuration (one configuration being specific to a team/project pair)
  • activity info (an auditable trail of every action performed within Forest)

How to setup HTTPS on Forest?

All products

Forest is adapting to your application protocol following the url provided in your environments settings. To setup HTTPS on Forest, simply provide a https application url in your environments settings.

Migrate to Forest

I have a lot of custom business logic that basic scaffolding won’t be able to handle…

All products

We wrote a blog post about this concern. We designed Forest from day one to handle all specific use cases, operations, and business logic. If you already have implemented custom logic to fit your own needs, it’ll only take a few lines of code to expose them to Forest and have them readily available in your admin.

Environments

Is it possible to have a separate Forest interface for both dev and prod environments?

All products

Yes. UI configurations are specific to environments. By default, you run Forest in the dev environment. You can create a new environment in the project settings.

Maintenance

Is it maintained?

Forest-only

Yes, Forest is funded and actively maintained. It is used by many teams, including all the projects from the startup studio eFounders. We host the front-end app on http://app.forestadmin.com, so you don’t have to maintain it. We continuously improve upon it. We provide open source packages to install Forest and generate the admin API automatically. They’re all available on our Github account: https://github.com/ForestAdmin

Performance

What is Forest bandwidth consumption? Is it hosted by Forest or the client?

Forest-only

Forest is hosted on your side. We do our best to reduce the number of queries and are constantly working on the optimization of those (both HTTP and database queries). This way, Forest should use less resources than home-made admins, and thus be more performant overall than any other custom-built solution. You can always isolate Forest in a completely separated part of your app in order to control the scope of your app and your admin independently.

Activity Log

Is it possible to use Forest to track users’ actions?

Forest-only

As long as you have data in your database, it is possible to act on them via Forest or display them in a dashboard. If you’re looking for tools specifically to track users’ behavior in your application, Forest will not be fitting. We recommend using tools such as Segment, Mixpanel or Heap. That being said, we’re working on integrations to bring those data back in your Forest.

Users, roles and permissions

What are the different users roles and rights in Forest?

All products

User roles determine the access level or permissions of your teammates. Forest Admin allows you to setup three different kinds of users or ‘Roles’.

  • Admin - can access project settings (manage teams, users roles and environments), customize the admin UI (activate layout editor) and manage data.
  • Editor - can customize the admin UI (activate layout editor) and manage data.
  • User - can manage data only.

Where can I manage users roles?

All products

You can define users roles in your project settings. Go to Settings -> Users and assign roles to each of your teammates.

roles

Technical

Installation

How do I install it?

All products

Head over to http://www.forestadmin.com where you can start the installation process by entering your email and then Get started.

Accessibility

Why is there two login pages?

All products

The first one (with email + password) logs you in your Forest account. The second one (password only) authenticates you to your own application, to access your data. This process is necessary to keep the promise that Forest never have access to your data, as the second login generates the token with which every single one of our requests is authenticated.

CORS issue

I can’t unlock my account, I’m seeing a CORS error

Forest-only

That’s if you see something like the following in your browser’s console:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://app.forestadmin.com' is therefore not allowed access. The response had HTTP status code 404.

That happens when your CORS configuration is secured enough to the point that it does not allow our UI to reach your application. To solve this issue, simply whitelist http://app.forestadmin.com and https://app.forestadmin.com in your CORS configuration.

Update

How can I update Forest to the newest version?

Forest-only

Depending on your stack, you’ll have to run one of the following commands:

  • in Rails, run $ bundle update --source forest_liana
  • in Express/Sequelize, run $ npm install --save forest-express-sequelize@latest
  • in Express/Mongoose, run $ npm install --save forest-express-mongoose@latest

How can I update Lumber to the newest version?

Lumber-only

Simply run the following command $ npm install -g lumber-cli@latest

JSON Web Token

What about supporting custom authentification?

All products

The admin API generated is protected using a JWT. You can use your own authentication strategy for your app’s API (JWT or not). Both authentication strategies are completely isolated.

Uninstall

How do I uninstall Forest?

Forest-onlyRails

If you made a clean install of Forest in a separate git commit, you can simply roll back to a previous commit.

Otherwise, you can always uninstall Forest manually:

  • if you created custom actions, collections, fields or charts: remove lib/forest_liana and the corresponding routes and files in app/controllers/forest
  • remove the Forest route created in your config/route.rb file
  • remove config/initializers/forest_liana.rb
  • remove the gem from your gem file
  • run bundle update

Integrations

Stripe integration

All products

To enable the Stripe integration, make sure you have the following: