This the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Welcome to DbFace!

DbFace is an efficient database driven applications development environment that helps you to create chart reports & dashboards applications via web. With the straightforward interface,you do not need to write PHP, HTML, CSS or other frontend/backend code to generate full-featured query applications, operation applications, and extensive report dashboard applications.

Who is DbFace for?

DbFace is right for you if:

  • Pull data from existing databases(SQL or NoSQL) and render them as tabular or charts
  • Clear and Instant way to make your databases accessiable
  • Build BI platform instantly
  • Convert SQL query to chart report (Visualize SQL query)
  • Much many more your database use-case

Mission Statement

Gives every user full control of their data instantly.

Or in short:

Liberate Data Application Platform

You already prepared your data for analysis? Your data might be stored in MySQL, SQL Server, PostgreSQL, Firebird/Interbase, Cubrid or even MongoDb. DbFace will pull your data from these data sources and show you chart reports (Pie, Line, Bar, Treemap and many other forms), dashboards, story reports or other types of applications.

DbFace is a cloud or on-premises solution, you do not need to download any software. Create an account on our website for free, and choose a subscription plan, then you will get all worked.

DbFace plugs directly into your databases and lets you build chart reports, dashboards, storyboards and many other database driven applications without programming.

You can also host DbFace on your own webserver with On-premises version.

DbFace is coinages from “Database” and “Face” composed, it can be used as a pretty face for your SQL/NoSQL databases or working as a database CMS solution.

DbFace is a super easy report builder for MySQL, PostgreSQL, Oracle and many other datasources

Resources

Please follow us on Facebook or Twitter to get informed about the latest updates of DbFace.

If you have issues or inquiries, you can also post a new discussion at our forum.

1 - Getting Started

What does your user need to know to try your project?

The account is the only user credential to enter DbFace system. The DbFace account is comprised of username, password and e-mail address. You can sign in DbFace through username or e-mail address.

Sign Up

Use the browser to open DbFace website, Tap “Sign Up” link to enter the account registration page.

create new account in DbFace

In this page enter your email address , username, password and click on the “Sign me up” button to create your DbFace account. Please make sure your email address is correct.

After the account created, DbFace will send you a welcome email, click the link in that email to activate your DbFace account.

You can also use Google or Facebook account to login directly (no need to register and activate).

Accessing DbFace

After the account was created, you can login DbFace system using your account. On DbFace website click on the “login” link to enter the login page. (If you choose the “Remember Password” button, the system will record the encrypted account information in your current machine Cookie, in the next 30 days, opening the landing page will automatically enter the system).

Sign In DbFace

If you want to use Google or Facebook account to log in, tap the corresponding social login button without entering account information.

Subscription Plans

DbFace provides 4 types of subscriptions and up to 14-days trial period. You can upgrade or downgrade your account at anytime.

  • Basic
    Basic package includes 5 sub-account, create up to 2 database connections, and up to 100 applications.

  • Premium
    Premium version does not apply the limitation to the number of sub-accounts, database connections and applications.

  • Enterprise
    Enterprise version allows you run updated DbFace on a managed VPS host, we will keep your DbFace always updated. Cloud code, PHP reports and other advanced features are only available on Enterprise plan.

  • On-Premise
    You can also host DbFace in your own environment with On-premise plan. On-premise license is lifetime, it means DbFace will never expired in your environment, but you still need to pay the upgrade fee (the license fee) to get the update after 1 year.

Click here to get information about Which plan should I use?

Click on “Settings” button in the current window, select the “subscription” tab to enter the subscription page. On this page, you can view your current subscription/trial status and expiration date, you can also renew or modify your subscription.

Choose subscription plan of DbFace

Note: This page might be different depending on your region.

Edit Profile

Click on “Settings” and select “User Profile” to edit your user profile. You can change your password, your profile avatar, email, username on this page.

Sign in DbFace

Cancel Account

If you do not want to use DbFace service anymore, you can cancel your account at anytime. The account information stored in DbFace server will be fully deleted and unrecoverable, Please use caution.

When you cancel your account, we invite you to give us feedback so that we can improve our products. Your feedback will really help us make a better product for you and others like you.

On-Premises

You can also host DbFace on your own web server with On-Premises version. Please refer this page to get how to install DbFace in Docker environment.

Here is a video show you how to install DbFace On-premise on Docker:

If you already have prepared PHP5.3+(PHP5.3, PHP5.4, PHP5.5, PHP5.6, PHP7) webserver, you can also download DbFace zip file from the following URL, and install manually.

https://www.dbface.com/download-dbface

Unzip the file into your web server directory, use the browser to navigate to the URL, that will guide you how to install DbFace.

Click here to learn more information about manual installation.

Backup an On-Premises Installation

All DbFace applications data(sub-accounts, applications, settings, etc.) are stored in the user/ directory. You can backup the full user directory.

If you want to update to the latest version, you can copy the backup user directory to the new installation, all your DbFace data will be recovered safely.

1.1 - Install DbFace On-premises

Install DbFace On-premises.

Installation of DbFace is a trivial process. In fact, there is no real installation.

DbFace is a web product written by PHP. To install DbFace on your own environment, please make sure the following requirements:

To support all the features, DbFace requires PHP7.2.5+. However, you can still use most of the features on PHP 7.1+.

  • PHP7.2.5+ enabled webserver, such as Apache, Nginx, IIS, etc.
  • PHP extension: SQLite3.
  • PHP extension: IonCube Loader.
  • Database PHP extensions:
    php_mysqli: Required for working with MySQL
    php_pdo_pgsql: Required for working with PostgreSQL
    php_pdo_firebird: Required for working with Firebird/Interbase
    php_pdo_sqlsrv_72_ts: Required for working with SQL Server
    php_oci8_11g: Required for working with Oracle
    php_cubrid: Required for working with Cubid
    php_mongodb: Required for Mongodb Support

Please follow the following instructure to install:

Step1: Uploading Files

Upload the corresponding product zip file (e.g. dbface_php7.2.zip) to your web folder.

Step 2. Uncompressing downloaded file

Unzip dbface product archive. If you do not want to use the default folder name, you can create your own and move all the files to your new folder.

Step 3. Setting Directory Permissions.

Make sure the following directories writable:

  • user

DbFace will store all files (logs, cache, temp etc.) in user/ directory, so please make sure user directory writable, 0755 should work well.

Step 4. Start the installation process.

open the browser and access the DbFace to start the installation process.

Example: http://server/dbface

If SQLite3 extension installed, DbFace will try it’s best to do the typical installation, otherwise, DbFace will ask you where to save it’s configuration.

The default Administrator username and password are admin/admin. You need to modify the account information to activate on-premise installation at the user profile page.

Please follow us on Facebook or Twitter to get informed about the latest updates of DbFace.

If you have issues or inquiries, you can also post a new discussion at our forum.

2 - Data Sources

DbFace supports MySQL, PostgreSQL, Clickhouse, Google BigQuery and most of SQL or NoSQL databases.

DbFace needs to get data from your database to display and manipulate. So DbFace needs to know how to connect to your database servers.

DbFace supports MySQL, PostgreSQL, Clickhouse, SQL Server, Oracle, Firebird/Interbase, CUBRID, MongoDB and other SQL/NOSQL database servers. You can also upload CSV files as data sources. For other data sources ( in-house data), you can create your own API connector or Data Source Plugin to make it work with DbFace.

Steps to Take Before Connecting

  • Ensure that the database is publicly addressable and currently up & running.

  • Verify that the database is not hosted on a local machine. DbFace cannot connect to databases hosted on local machines (e.g. laptops, PCs, etc.).

  • Ensure that DbFace supports the database type attempting to be connected. A list of supported integrations is available here.

Connect to database

To create a connection to your database, please login DbFace with the Administrator account, find the “Connections” section in the dashboard, there will list all the database connections you have created.

database connections in DbFace

Click “Add new connection” button to enter “create a database connection” page:

Connect to database via DSN

We are always working on to support more database types.

Some database drivers (such as IBM DB2, 4D) might require a full DSN string to be provided. If that is the case, you should use the ‘dsn’ configuration setting, as if you’re using the driver’s underlying native PHP extension, like this:

// PDO
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$db['default']['dsn'] = '//localhost/XE';

Edit database connection

Log in as Administrator, find the “Connections” section in the dashboard, click on “Edit” button, then enter the database connection editing page.

!!! warning If your database schema changed, all applications will be affected.

Remove database connection

Log in as Administrator, find the “Connections” in dashboard page, click “Delete” button, After confirmation, the database connection will be removed.

!!! warning “Be careful” Deleting a database connection will delete all applications using this database connection!

Sync data source

For API Connector, DbFace provides a quick way to sync the remote data to DbFace server on the fly. After tapped the “Sync” button, DbFace will get the updated data from your server via the API Connector.

Sync API connector

Default connection

Click the “Select” button to change the default database connection. DbFace will only show applications that using default connection in the left menu.

If you want to show all applications, you can change the option at System Settings page.

  • Tap Settings, and tap “Preference” menu
  • Select “System Settings” page
  • Find “Only show applications in default database connection.” and uncheck it
  • Click “Save Changes” to save your settings.

Manage database structure

For MySQL, CSV Files, API Connector data sources, DbFace provide database structure management tool.

Click here to learn more information about Structure Management Tool.

SQL workshop

You can test SQL queries in SQL workshop, and save them as favorite. You can pick a tested SQL query while building an application.

Click here to learn more information about SQL Workshop.

SQL Terminal

SQL Terminal provides you a console emulator to execute SQL query quickly.

Click here to learn more information about SQL Terminal.

2.1 - MySQL or MariaDB

Connect to MySQL or MariaDB in DbFace

MySQL is one of the most popular open-source databases in the world, used by some of the top companies everywhere.

To create a database connection to MySQL or MariaDB,

  • Log in DbFace with the Administrator account.
  • Find the “Connections” section, and tap “Add new connection” button
  • Select “MySQL or MariaDb” in the Database Type dropdown list.

  • Database Type:
    The database driver that use to connect your database, here we choose “MySQL or MariaDB”. DbFace will use “mysqli” driver to connect to MySQL or MariaDB databases.
  • Name:
    The name to identify this connection, used only in DbFace.
  • Host:
    Your database host domain/IP. If you are not using the default port, should input host:port in the “Host” field.
  • Username:
    The database username.
  • Password:
    The database password.
  • Database Name:
    The database that you want to connect. Tap the “Pick” button to populate all database names that have permissions.

Ensure that all information is correct, click “Submit” button, DbFace will use the provided information to try to connect the database and create the connection if successfully.

Congratulations! You have successfully built your first database connection.

Tips

We recommend you create a sperated username/password for dbface to connect to your database, for MySQL:

create user 'thenewusername'@'52.221.20.99' identified by 'thenewuserpassword';
grant all privileges on thedatabase.* to 'thenewusername'@'52.221.20.99'

2.2 - PostgreSQL

Connect to PostgreSQL in DbFace

Choose the database type from the “Database Type” drop down.

  • Database Type:
    The database driver that use to connect your datatabase, choose PostgreSQL here.
  • Name:
    The name to identify this connection, used only in DbFace
  • Host:
    Your database host domain/IP. If you are not using the default port, should use host:port as your hostname
  • Username:
    The database username.
  • Password:
    The database password.
  • Database Name:
    The database that you want to connect. The “Pick” button is not available for PostgreSQL connection.

For on-premise installation, you need to enable pdo_pgsql extension to enable postgreSQL database connection, check php.ini

extension=php_pdo_pgsql.dll

Ensure that all information is correct, tap “Submit” button, DbFace will use the provided information to try to connect to the database, and create the connection if successfully.

We recommend you create a sperated username/password for dbface to connect to your database, for MySQL:

create user 'thenewusername'@'52.221.20.99' identified by 'thenewuserpassword';
grant all privileges on thedatabase.* to 'thenewusername'@'52.221.20.99'

!!! tip “Recommend” If you just creating query applications which only access the databases, please create readonly database users for the databases.

!!! note “Be careful” Please update your server’s firewall to allow DbFace to connect to your database server. If you’ve got any issues, please contact us to get free support.

2.3 - Clickhouse

Connect to Clickhouse in DbFace

ClickHouse is a fast open-source OLAP database management system. DbFace the Http port (default 8123) to connect to clickhouse.

Connect to Clickhouse

2.4 - Microsoft SQL Server

Connect to Microsoft SQL Server in DbFace

Choose the database type from the “Database Type” drop down.

screenshot

  • Database Type: The database driver that use to connect your datatabase
  • Name: The name to identify this connection, used only in DbFace
  • Host: Your database host domain/IP. If you are not using the default port, should use host:port as your hostname
  • Username: The database username.
  • Password: The database password.
  • Database Name: The database that you want to connect

For SQL Server, make sure the PHP PDO SQLSRV extension loaded, check php.ini

extension=php_pdo_sqlsrv_54_ts.dll

please enter the SQL Server address in the host field, it should be like:

JSDING-WIN8\MSSQLSERVER2014

Ensure that all information is correct, click “Submit” button, DbFace will use the provided information to try to connect the database, and create the connection if successfully.

Congratulations! You have successfully built your first database connection.

!!! Tip “Recommend” If you just creating query applications which only access the databases, please create readonly database users for the databases.

!!! note “Be careful” Please update your server’s firewall to allow DbFace to connect to your database server. If you’ve got any issues, please contact us to get free support.

2.5 - Oracle

Connect to Oracle in DbFace

Choose the database type from the “Database Type” drop down.

screenshot

  • Database Type:
    The database driver that use to connect your datatabase
  • Name:
    The name to identify this connection, used only in DbFace
  • Host:
    Your database host domain/IP. If you are not using the default port, should use host:port as your hostname
  • Username:
    The database username.
  • Password:
    The database password.
  • Database Name:
    The database that you want to connect.

For oracle, make sure the PHP oci8 extension loaded, check php.ini

extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client

please enter the oracle SID in the host field, it should be like:

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=xe)))

Ensure that all information is correct, click “Submit” button, DbFace will use the provided information to try to connect the database, and create the connection if successfully.

Congratulations! You have successfully built your first database connection.

!!! Tip If you just creating query applications which only access the databases, please create readonly database users for the databases.

!!! note “Be careful” Please update your server’s firewall to allow DbFace to connect to your database server. If you’ve got any issues, please contact us to get free support.

2.6 - IBM DB2

Connect to IBM in DbFace

IBM DB2

We are working hard on this section. It is coming soon!

2.7 - MongoDB

Connect to MongoDB in DbFace

Connect to MongoDB

Sign in DbFace with Administrator account, and tap “Add New Connection” in the dashboard. Connect to MongoDB

After fillout all the required fields, click “Submit” button, DbFace will try to connect to MongoDb with your input information. You will be redirect to the “Database Structure” page. Manage views for MongoDB

You can always click the “Views” button to enter this page. Manage views for MongoDB

Create Views

After connected to MongoDB, you need to create views using JSON query language. Manage views for MongoDB Click the “Create View” button in the “Database Structure” page. Create view from MongoDB

Click the “Save View” to open the “Save View” dialog. Config view

Sync data to DbFace from MongoDB

Click the “Sync” button to update the MongoDb data. Sync data from MongoDB

You can make as many views as you want.

Build Applications for MongoDB

Now you can create application reports in DbFace like MySQL or any other databases.

2.8 - SQLite3

Connect to SQLite3 in DbFace

Since SQLite3 is a file based database, we do not provide SQLite3 support on the cloud version, but you can still connect to SQLite3 on the premise installation.

To create SQLite3 connection

  • STEP 1: Find the “Connections” section in the dashboard
  • STEP 2: Tap “Add New Connection” button
  • STEP 3: Select “SQLite3” in the Database Type drop down.
  • STEP 4: Enter the SQLite3 absolute path in the “Database Name” field. If your SQLite3 is password protected, please enter the username and password in the corresponding form fields.
  • STEP 5: Tap “Submit” button to save the connection

DbFace connect to SQLite3

2.9 - Presto Db

Connect to Presto Db in DbFace

Presto Db

Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.

With Presto, you can build visulization applications to Apache kafka and many other Presto supported connectors.

2.10 - Google BigQuery

Connect to Google BigQuery in DbFace

Google Big Query

We are working hard on this section. It is coming soon!

2.11 - Firebird

Connect to Firebird in DbFace

DbFace use PHP interbase driver to connect FireBird/Interbase database. You need to enable php-interbase extension. Open php.ini, and find

extension=php_interbase.dll

Click the Settings -> Connections and go to “Connections” section, click “Add New Connection” button, enter your firebird database information:

Connect to firebird in DbFace

Your firebird database are powered by DbFace now.

Build reports and dashboards for Firebird in DbFace

2.12 - Cubrid

Connect to Cubrid in DbFace

DbFace use PHP CUBRID driver to connect CUBRID database. You need to enable php_cubrid extension. Open php.ini, and find

extension=php_cubrid.dll

Click the Settings -> Connections and go to “Connections” section, click “Add New Connection” button, enter your CUBRID database information:

Connect to CUBRID in DbFace

Your firebird database are powered by DbFace now.

Build reports and dashboards for CUBRID in DbFace

2.13 - Apache HBase

Connect to Apache HBase in DbFace

Apache HBase

We are working hard on this section. It is coming soon!

2.14 - Apache Cassandra

Connect to Apache Cassandra in DbFace

Apache Cassandra

Install DataStax PHP Driver

We use DataStax PHP Driver to connect to apache cassandra database. Please refer this linke to get how to install this driver: https://github.com/datastax/php-driver

  • Install DataStax PHP Driver
git clone https://github.com/datastax/cpp-driver.git
cd cpp-driver
mkdir build
cd build
cmake ..
make 
make install
pecl install cassandra

2.15 - Amazon DynamoDB

Connect to Amazon DynamoDB in DbFace

Amazon DynamoDB

We are working hard on this section. It is coming soon!

2.16 - CSV Files

Connect to CSV Files in DbFace

DbFace also supports uploading CSV files as datasource.

upload CSV file as DbFace datasource

After uploading the CSV files, DbFace will show you a preview of your CSV File: fields, data types. you can edit the fields names and data types and click the “Submit” button to create the database connection.

DbFace will make a copy of your CSV files at DbFace server.

Edit field names and data types of the CSV files

2.17 - API Connector

Connect to API Connector in DbFace

DbFace only supports relational data sources, but you can also refine your No-SQL or any other data sources and make them work with DbFace.

DbFace provides a flexible user defined data source API that allows the extraction of data that is not stored in a database or when there is no standard connector available.

You can create your own API connector to make any data sources work with DbFace.

DbFace API connector connect to No-SQL databases

DbFace will curl your data via the API connector and make a copy of the response. You can always click the “Sync” button to let DbFace get the fresh data from your data source. The API connector must fit the JSON schema for working with DbFace:

{
   "table1": {
      "schema": [
         {
            "name": "field1",
            "type": "text"
         },
         {
            "name": "field2",
            "type": "text"
         }
      ],
      "data": [
         {
            "field1": "d11",
            "field2": "d12"
         },
         {
            "field1": "d21",
            "field2": "d22"
         }
      ]
   }
}

Supported data types:

  • text
  • integer
  • real

Here is a sample response that works with DbFace.

https://dashboard.dbface.com/?module=Sample&action=rest

If you need help to make your own API connector, please contact us.

2.18 - Plugin Application Data

Plugin Application Data in DbFace

!!! Tip Data Source Plugin only works on On-premises installation or Enterprise Plan.

If your data does not store in databases or even there is no data store. DbFace also works for your case with Data Source Plugin.

Write Data Source Plugin

Each data source plugin requires 2 entry files: plugin.setup.php and API.php
You can get the Sample Data Source plugin from: https://github.com/jsding/dbface-plugins

plugin.setup.php

<?php
return array(
  'id'              => 'sample_plugin',
  'author'          => 'DbFace',
  'author_url'      => 'https://www.dbface.com/',
  'name'            => 'Sample Data Source Plugin',
  'description'     => 'Sample data source plugin that help you build DbFace plugin that make your application work with DbFace. <a href="https://github.com/jsding/dbface-plugins">https://github.com/jsding/dbface-plugins</a>',
  'version'         => '0.9.0',
  'namespace'       => 'Plugin\Datasource\Sample'
);
NameRequiredDescription
idYesPlugin ID (unique)
authorNoPlugin author
author_urlNoPlugin author website
nameYesThe plugin name
descriptionYesThe plugin description
versionYesThe plugin version
namespaceYesThe plugin php calss namespace

API.php

!!! warning “Please Note” The API class namespace must be the namespace value in plugin.setup.php.

<?php
// Must match the namespace value in plugin.setup.php
namespace Plugin\Datasource\Sample;
/**
 * Apache Log Analytics Plugin for DbFace - by DbFace
 *
 * @package		plugins/datasources/apache-log
 * @author		DbFace 
 * @copyright	Copyright (c) 2017 DbFace, Inc.
 * @link		https://www.dbface.com
 * @since		Version 1.0
 */
class API {
  private $database;
  
  /**
	 * accept data source configuration
	 *
   * 
	 * @return array schemas array
	 */
  public function setup($config = array()) {
    $this->database = $config['database'];
  }
  
  /**
	 * get schemas of this data source
	 *
   * 
	 * @return array schemas array
	 */
  public function get_schemas() {
    // TODO: do your business and get the schemas finally
    return array(
      'sample_view1' => array(
        'fields' => array(
          'id' => array('type'=> 'integer', 'pk'=>1),
          'comment' => array('type'=> 'string')
        )
      )
    );
  }
  
  /**
	 * get datas of this specific schema
	 *
	 * @return array datas of the schema
	 */
  public function get_datas($schema) {
    // TODO: do your business and finally get the resultset for $schema
    $result = array(
      array('id'=>0, 'comment'=>'this is string1'),
      array('id'=>1, 'comment'=>'this is string2'),
      array('id'=>2, 'comment'=>'this is string3'),
      array('id'=>3, 'comment'=>'this is string4')
    );
    return $result;
  }
}

Method NameParameterDescription
setup$configPass the database configuration
get_schemasvoidReturn all the views
get_datas$shemaReturn all json data of the specific schema

Use Data Source Plugin

Once you finished your data source plugin, place all the files in plugins/datasources folder, DbFace will scan all the subfolders and list all the available plugins in the Plugin category. All data source plugins

Now, we can make a new connection that use the plugin. Use the data source plugin

FieldDescription
Database TypeThe data source plugin name
NameThe name that identify the connection
Database NameInternal name that will pass to plugin

Click “Submit” button, DbFace will create a new connection that use your data source plugin. Use the data source plugin

Click the “Sync” button to run the plugin.

!!! warning “Please Note” Do not forget to click “Sync” button to let DbFace know the data source changes.

Now, you can use the data source to create report applications just like MySQL or any other database connections in DbFace.

2.19 - Microsoft Access

Connect to Microsoft Access in DbFace

Microsoft Access

Microsoft Access is only supported at on-premise installation on Windows. DbFace use PHP ODBC driver to connect to Access.

To connect to Access, you need to create ODBC data source first

  • Open the ODBC Data Source Administrator (How to?)
  • On the User DSN tab or the System DSN tab, click Add to add a user data source or a system data source.

Now, you can use the DSN in DbFace on the Access connection page:

Connect to Access using ODBC driver in DbFace

2.20 - Warehouse

DbFace internal warehouse

Warehouse

DbFace warehouse feature provides a way to do cross database reporting applications, even your database located at different hosts.

Warehouse Database Settings

DbFace stores all warehouse data in local SQLite3 database (the file will be created in dbface user directory). You can also configure it to existing remote MySQL database to gain better performance.

Click the gear icon button at the top right corner of Warehouse page, Change Warehouse settings

At the popup dialog, change the hosting to Remote MySQL Change Warehouse to MySQL

Warehouse API

3 - Data Module

Access database tables.

After connected to a database, DbFace will create data module for the database connection. Data module lets you manage data as easy as possible.

Data module provides the functions such as CRUD (creating, updating, deleting), filtering, paging the original database table, etc.

DbFace built-in data module is powerful:

DbFace provides a super easy way to navigate and sort table data page by page. Open the selected table:

MySQL table data navigation and sorting

Delete Row

To delete a row, click the “Delete” icon at the left, will remove the row.

Delete row in table editor

The database table require a primary key to make delete function work.

Update Row

Double click the row data, will open the row updating dialog, at this dialog, change the row data, and click “Save Change” button to apply the row changes.

Open row data editor

Insert Row

At the table editor page, click the “New Record” link to open the row data editor, you can select a single row of data, DbFace will copy the seclected row data to the editor automatically.

new record in table editor

After edited the row data, click “Save Change” button to apply this new row data.

Filter

Click the “Filter” button to open the filter condition editor.

apply filter conditions in data module

Save filter conditions

You can save your frequently-used filter conditions.

Save filter conditions in DbFace

You might want to navigate to other tables by value, this feature helps you to do this easily. Click the “Field Settings” link at the column, at the “Field Settings” page, select the table column your want to link, click “Save” button to apply this change.

Build table links

After this change, the value will convert to link, click value to navigate to other table with the selected data value.

DbFace table links

Field Formatter and Validatter

You can code your own formatter functions for fields in DbFace.

Click “Settings” and open the “Customization” page, select the “Functions(javascript)” tab, here you can code global javascript functions, DbFace will load these codes while page loaded. We define a function that convert timestamp to readable date string.

function timestamp_to_date(UNIX_timestamp){
  var a = new Date(UNIX_timestamp * 1000);
  var year = a.getFullYear();
  var month = a.getMonth() + 1;
  var date = a.getDate();
  var hour = a.getHours();
  var min = a.getMinutes();
  var sec = a.getSeconds();
  var time = year + '-' + month + '-' + date + ' ' + hour + ':' + min + ':' + sec ;
  return time;
}

define custom javascript functions to extend DbFace

Now you apply the “timestamp_to_date” function to an unix timestamp field.

apply custom function as field formatter

Export Data

To export the current data, choose format, and click the corresponding button, you can export data to CSV, PDF and email.

Export data to CSV, PDF format

Data Toolbar

Tap the data, DbFace will popup a smart toolbar that you can

  • Display data detail
  • Open Edit form
  • Copy the value to clipboard
  • Filter the table by this value

Data module toolbar

Column Background and Text Format

This section will learn how to define Background & Text Colors for a Column.

To format a column data, click the Dropdown icon and click Format menu. Format Colummn

You can set default column background color, text format or define background colors that apply under specified conditions.

Format Column Background & Text The screenshot below is showing the Conditional Background Colors applied on Records in the Grid. Column Format Sample

3.1 - MongoDB Data Module

View Mongodb connections in DbFace.

DbFace powerful data module also available on MongoDB. With Data Module for MongoDB, you can browser collections, edit collections data or filter on the fly.

4 -

How to build DbFace applications.

The Application builder workspace is where you build new applications and modify existing applications.

With the easiness Drag & Drop interface, you can build tabular report, summary reports, line chart, pie chart and many other application types in just some mouse clicks.

This section will show you how easy it is to build your own queries and charts using our intuitive drag & drop interface.

Basic Information

Basic Information of DbFace

  • Connection:
    The database connection that the application used. All applications require a valid database connection.

  • Name:
    The application name, which is displayed in the main menu.

  • New:
    Click the “New” button, redirect to “Setup new database connection” page.

Publish

Publish DbFace Application

  • Save Draft:
    Save this application as a draft, draft application will not be shown in the left menu and can not be used in dashboard applications.

  • Preview:
    Preview the current application.

  • Publish:
    After you fixed all application issues, click the “Publish” button to set the application to published status. Published applications will be shown in the main menu.

  • Revision

    DbFace will save all your application changes as revision, if you made a wrong change, and want to revert to the latest changes, click “Revision” button to open the change logs, find the right revision, and click the “Apply” button.

    Application Revison

Form Builder

DbFace Form builder helps you generate user interface that produce query parameters. You can attach one form to any DbFace applications, including dashboard and storyboard applications.

To learn how to make a DbFace form, please follow the Form Builder section.

Visualization

DbFace supported visualization types

DbFace provides many application types and counting. DbFace provides HTML report and PHP application, that you can define your own application templates.

  • Visualization Type:
    Tap the corresponding application type button, the builder will be changed to corresponding application builder interface.

  • SQL Mode Checkbox:
    SQL mode allows you to write custom SQL against your database. SQL Mode can be useful for complex queries that aren’t feasible in Drag & Drop Mode due to complex joins, subqueries, etc.

If you want to switch to SQL mode, click to check the “SQL Mode” checkbox, then you can write your SQL query in the SQL script editor.

Data Source

screenshot

Select a table from the list, you can also join multiple tables to make a more complex data source.

Data source section only available in Drag & Drop mode, if you switch to Script mode, this section will be hidden.

Drag-drop Report Builder

Drag & Drop report builder in DbFace

Application Script

If you want to build application from scripts, Check the “Scripts” checkbox at the top corner of “Visualization”.

Build application from application script directly

Additional Parameters

Additional Parameters option allow us to provide additional variables to current application script by an ini file.

Click the Additional Parameters button, DbFace will open an ini file editor, we input

; Additional variables for this application script
event_token = iap_purchased
package_name = com.flamingo.games

Now we can use event_token and package_name in the application script

select created_at_date, sum(revenue) from event where event_token='{$event_token}' 
and package_name='{$package_name}' group by created_at_date

Options

screenshot

  • Title:
    The title will be displayed as application title. This is optional, if not defined, the application name will be used.

  • Description:
    The application description, describe the application more detail. This is optional.

  • Custom Css:
    You can add a CSS style to the application, You can define css class should be defined in Customization section.

  • Script:
    Script allow you to add your own code to DbFace application. The javascript will run when application opened. !!! Tip Do not use the script tag in the Script text area; just enter your JavaScript.

  • ** Chart Options:**
    For chart report, you can define the chart height, the default value is 300px.

  • ** Drilled In:**
    For chart report and number report, you can define the application drilled in application. Only sub application can be drilled in.

  • Confirm Message:
    Confirm Message only available for SQL Edit Application. It will be shown before the actural queries executed.

screenshot

Category

screenshot

The DbFace applications are organized by categories. If no category set, the Default category will be used.

** Sub Application** category is a special category. Sub-applications can not be opened directly, but you can embed them in container applications(dashboard, story, gallery).

Permissions

screenshot

Application user permissions section displays all sub-accounts under your account (developer accounts have permissions to all applications).

HTML Report Builder

HTML Report Builder provides a flexible way to make HTML report template as a DbFace application. You can embed Global parameters or Form variables in the HTML report template.

screenshot

PHP Application Builder

PHP Application only available on Enterprise or On-premise installation.

If the default report types not work for you. You can define your own reports by PHP coding. DbFace provides a raw PHP online editor, you can write your own PHP code there.

Dashboard Builder

Dashboard application allows you to have a instant view on your selected data. You can also make dashboard application using the Gallery Builder. screenshot

Story Builder

Story report allow you navigate DbFace applications page by page. DbFace story report builder

Gallery builder provides a flexible way to build gallery pages and dashboard applications. Gallery builder in DbFace

Free Form Application Builder

Freeform display application is an advanced dashboard application type, Freeform display allows you combine applications, widgets(Text, Web page, Image) into one page, and combine pages in tabs.

Application comments

Comments are notes you attach to dbface applications that can be viewed by anyone who has access to the application.

Comments you’ve written in the past can be edited or deleted at any time.

4.1 - Application Script

DbFace application script.

DbFace script is purpose-built query language based on SQL, powered by smarty template engine (with YAML front-matter supported).

---
event_token: 'iap_purchased'
date: '2020-10-06'
---
select count() from event where event_token='{$event_token}' and created_at_date = '{$date}';
sql-query-2;
sql-query-3

DbFace will simply split the queries by ;, and run theses queries one by one, and combine (join) all the result set into one result set.

If the big SQL query contains ;, and you want to force DbFace run the query by one batch, please add {config-one-query} tag, or use one_query front matter.

---
event_token: 'iap_purchased'
date: '2020-10-06'
one_query: true
---
{config-one-query}
select count() from event where event_token='{$event_token}' and created_at_date = '{$date}';
sql-query-2;
sql-query-3

Script Features

  • Accept GET, POST, SESSION parameters as variables
  • Accept YAML front-matter
  • Auto join multiple scripts query result, and combine them as one result

Using smarty template engine to extend SQL script achieves the function that user form variables can be dynamically inserted in SQL scripts and the scripts can be dynamically rewritten according to the input.

Before all the scripts submitted to the database, all the variables will be replaced with the value of the current form.

Form variable value ​​can be applied to the script.

For example, a tabular report query application script:

select OrderData, Status, ColumnName from Orders where Status = '{$status}'

Considering a form that has a form field named “status”, if user input “Shipped”, the final query should be

select OrderData, Status, ColumnName from Orders where Status = 'Shipped'

The final statement may vary depending on the the choice of different data sources.

For example:

use form variables in filter condition

About advanced usage of the script, please refer to Smarty template.

Form script

Form variables used in the script

Depending on the control, form controls may output two types of data: Single value and a value list.

  • Single value

Single Line, Multi Line, Drop down, and Radio Group submit only one value.

If it’s single value, please insert it into the scripts in the form** {$Field Name}** . Considering a Single Line named Status, you can insert it into the filter condition or the scripts in the form {$status}. Such as:

select orderDate, status where status = '{$status}'

Please note: when this variable is included in the script, you need to add quotes. When parsing script, Dbface will not automatically determine the type of the field.

  • Multiple value

Checkbox and Multi Select will submit multiple value.

Multi-value control used in the filter condition is the same with Single value control, meaning that: a match to meet the conditons.

Multi-value control used in script mode is different from Single value control, such as the search condition.

... Where status = '{$status}'

Dbface will not retrieve the data, because {$status} is an array so that it will be forced to be converted to a string ‘Array’. The correct usage should be:

... Where status in ({$status|join})

{$status | join} Syntax will automatically expand and split this value.

Data Source script

Considering some form controls having limited value, such as DropDown, Multi Select, Checkbox, RadioGroup, you can use data source scripts to specify their limited value. When executing, DbFace will dynamically execute data source script to get the value of form controls.

Data source script can output one or two fields, the remaining fields will be ignored.

If there are two fields: the contents of the first field as submitted value ​​(data is applied in the script), the second field as the displayed value ​​(data is only for display).

As

select value from table where ...

Or

select key, value from table where ...

To use the data source scripts, click the “Edit” button in Forms controls having limited value. Click the “Script” button in the edit box of pop-up window field, the input textbox “Data source script” will be displayed, where you can enter the data source script and save it.

screenshot

** Do not forget to use the data source script generator, click on the generator icon behind the “script” button, all tables of current links and their fields will pop up. Check the required fields to generate queries.**

Form field onchange script

After editing the form field, you can set a query script. When the input is completed and the focus is lost, the script will automatically execute and fetch data form the final database. The data obtained will be mapped by name to the current form control one by one.

To change the script, click on the “Edit” button, the field property edit box pops up, click on the “Onchange Scripts” button, enter the script in the expanded textbox, then save it.

You can use the current form variable to change form field script.

screenshot

## Form loading script

Users can specify a loading script (query) for user form to initialize the form data value.

After the application opened, DbFace will detect whether the current form has the loading script, if so, Dbface will automatically execute this loading script and map the query result to the current form one by one. If the query returns multiple data, Dbface will provide the “Browse” button, then you can select the required data for the form control value.

To create a form loading script, click the Form Editor “Properties” button, then the property editbox pops up, where you can enter the loading script and save it.

screenshot

Tips

Script Plugins

DbFace provides many script plugins that help you to build complex application source.

config

You can use config function to assign variables to current application script.

{config key1=value1 key2=value2}

Now, you can use {$key1}, {$key2} in the application script.

For loading multiple fixed variables, you can also create ini file

{config file="your-ini-file-which-located-in-dbface-system-folder"}

DbFace will try to load the ini file and assigned all variables in the ini file. To create ini file, please open Settings menu and click Cloud Code link, then click “Start Development Workspace”, then click “New File” in system folder.

create_variable

As you already known, you can create Global Variables in Parameters section. All available variables will be assigned in every appliction script.

You can also create local variable that only available in current application script.

{create_variables name="local-variable-name" value="value" sql=""  func="" url=""}

value, sql, func and url should be (and only one) assigned.

  • value: assigned fixed value to {$local-variable-name}

  • sql: DbFace wil try to use the sql to query application database, and assigne the result set to {$local-variable-name}

  • func: DbFace will execute the function and assign the function result to {$local-variable-name}

  • url: DbFace will try to call the URL and assign the http response body to {$local-variable-name}

snippet

snippet plugin helps you refer tagged application script into current application script.

{snippet name='your-tagged-sql-query'}

purge_cache

Purge DbFace cache data.

{purge_cache}

Front-matter

Front matter allows you to keep metadata attached to an application. i.e., embedded inside a variable. DbFace application script can contains a YAML front matter block.

---
event_token: 'iap_purchased'
---
select count() from event where event_token='{$event_token}'

This script will be compiled to

select count() from event where event_token='iap_purchased'

You can also define yaml files in user directory, and import them into current application script.

import: config/my-yaml-file.yaml

or

import:
  - config/my-yaml-file1.yaml
  - config/my-yaml-file2.yaml

DbFace will try to load these yaml files and merge variables into current application script.

DbFace supports four formats for front matter, each with their own identifying tokens.

TOML identified by opening and closing +++.

YAML identified by opening and closing —.

Quick Filter Options

Quick Filter Options is an inline form attached to the DbFace application. DbFace quick filter options form

You can define quick filter options in Front-matter, DbFace support select, date and daterange as quick filter options.

quick_filters: 
  country:
    type: select (date or daterange)
    multiple: true (only valid for select)
    selected: usa 
    list: (select control value list)
      - USA (or usa:USA)
      - UK
      - CN
      - RU
  search_date:
    type: date
    value: today

We can use quick filter options in current application script by smarty manner.

We can also use !script tag to make DbFace query the select value

quick_filters: 
  country:
    type: select (date or daterange)
    multiple: true (only valid for select)
    selected: usa 
    list: !script select distinct country_name from country
  search_date:
    type: date
    value: today

DbFace will query the target database

select distinct country_name from country

and use the result to render the country drop list.

---
quick_filters: 
  search_date:
    type: date
    value: today
---
WITH (
  select sum(revenue) from event where package_name='com.test.package' and event_token='iap_purchased' and 
  created_at_date='{$search_date}'
) as total_payment

select roleId,count() as "Order Numbers",round(sum(revenue), 2) as "Payment", round(total_payment,2) as "Revenue", concat(toString(round(sum(revenue) * 100/total_payment, 2)), '%') as "Percent" from event 
where package_name='com.test.package' and event_token='iap_purchased' and created_at_date='{$search_date}'
group by roleId

Quick filter option in application script

---
quick_filters: 
  search_date:
    type: daterange
    value: last7days
---
WITH (
  select sum(revenue) from event where package_name='com.test.package' and event_token='iap_purchased' and 
  created_at_date>='{$search_date|from}' and created_at_date<='{$search_date|to}'
) as total_payment

select roleId,count() as "Order Numbers",round(sum(revenue), 2) as "Payment", round(total_payment,2) as "Revenue", concat(toString(round(sum(revenue) * 100/total_payment, 2)), '%') as "Percent" from event 
where package_name='com.test.package' and event_token='iap_purchased' and created_at_date='{$search_date}'
group by roleId

Chart Total Widget Script

We can attach a total widget at DbFace chart reports. If we do not specify Total Widget Script, DbFace will collect all series data and caculate the summary value for this widget. If the total widget script specified, DbFace will use the script to query series summary value. Chart Total Widget

Chart Detail Table

At Chart Options settings, check “Display Detail Table”, DbFace will display the original chart data source using tabular.

Table Calculated Fields

We can append new fields for table report using Caculated Fields in application script.

---
calculated_fields:
  ARPPU: row['Payment'] / row['Payers']
---

WITH (
  select sum(revenue) from event where package_name='com.flamingogames.gok' and event_token='iap_purchased' and 
  created_at_date='{$date_range|from}'
) as total_payment

select visitParamExtractString(params, 'sid') as sid,count() as "Order Numbers", count(distinct roleId) as "Payers",round(sum(revenue), 2) as "Payment", round(total_payment,2) as "Total Revenue", concat(toString(round(sum(revenue) * 100/total_payment, 2)), '%') as "Percent" from event 
where package_name='com.test' and event_token='iap_purchased' and created_at_date='{$date_range|from}'
group by sid

The table will append a caculated ARPPU field, that value

row['Payment'] / row['Payers']

Append caculated fields in table We can use row, data, and row_index in the expression

  • row: current row data
  • data: the whole result set
  • row_index: current row index (start with 0)

Table Sort Fields

We can use sort_fields in script front matter to re-sort the result table columns.

---
calculated_fields:
  ARPPU: row['Payment'] / row['Payers']

sort_fields: ['sid', 'Payers', 'Order Numbers', 'Payment', 'Total Revenue', 'Percent', 'ARPPU']
---

WITH (
  select sum(revenue) from event where package_name='com.flamingogames.gok' and event_token='iap_purchased' and 
  created_at_date='{$date_range|from}'
) as total_payment

select visitParamExtractString(params, 'sid') as sid,count() as "Order Numbers", count(distinct roleId) as "Payers",round(sum(revenue), 2) as "Payment", round(total_payment,2) as "Total Revenue", concat(toString(round(sum(revenue) * 100/total_payment, 2)), '%') as "Percent" from event 
where package_name='com.test' and event_token='iap_purchased' and created_at_date='{$date_range|from}'
group by sid

The result table will display fields using the sort_fields in front matter.

4.2 - Tabular Report

DbFace application script.

Tabular Report (Table View Report) displays the data in rows and columns, which is the easiest way to show the data. We offer many different options to customize how they appear.

Use a tabular report when you want to see the data in rows and columns.

You can also attach a Form to the tabular report.

Sample tabular report in DbFace

Table format accepted

The tabular report accepts an unlimited number of measures and dimensions.No formatting restrictions.

Column 1Column 2Column 3...
Row 1 Row 1 Row 1 ...
Row 2 Row 2 Row 2 ...
Row 3 Row 3 Row 3 ...
... ... ... ...
## Interactive Mode

STEP 1: choose “Tabular Report” in “Visualization” section

Sample tabular report in DbFace

STEP 2: Select or Join tables to make data sources

Select a table or join tables to make tabular data source. Sample tabular report in DbFace

STEP 3: Drag Select Columns from Field List

Sample tabular report in DbFace
  • Select Columns:
    The tabular report header titles
  • Order Columns:
    The default order conditions, this field is optional.
  • Label Column:
    You can click the field to label the column.
Label the column
  • Make Custom Column
    Click the dropdown of a column, and select “Custom” to make custom column.

STEP 4: Apply filter conditions

You can also use form variables or global parameters in filter condition, e.g. if the tabular has a form that contains a input field that named status, you can use {$status} value in the filter condition. Sample tabular report in DbFace

STEP 5: Preview the tabular report

Click “Preview” button to preview the tabular report, if there are errors, you need to correct them, and preview again.

STEP 6: Save the tabular report

Click “Publish” button to publish the tabular report. Click “Draft” button to save the current tabular report and you can edit later.

S Mode

Script mode provides you more flexible way to build tabular report.

Check the “Script Mode” checkbox to switch to Code mode to build tabular report. DbFace will try to generate correct SQL query(or JSON query for Mongodb) from the Report builder, but you still need to check the SQL query.

Here is a sample tabular report script:

SELECT
  `licensecode`,
  `clientcode`,
  `email`,
  `version`,
  `ip`,
  `httprefer`,
  min(`date`) as FirstVisit,
  max(`date`) as lastvisit
FROM
  `dbfacephp_license`
WHERE
  licensecode != ''
GROUP BY
  licensecode

!!! tip “Tips & Tricks” You can find more tips and tricks for tabular report at our knowledge base.

Tabular Options

DbFace provides several options to help you customize the table report appearance. Table report options

Table Header

Table header options

Optional Scripts

Series Options

Drilled In Applications

Table Row Action

4.3 - Summary Report

DbFace application script.

Summary reports are similar to tabular reports, but also allow users to group rows of data,

Summary Report adds up the corresponding cell data of multiple reports which have the same structure and different data. screenshot

How to build Summary Report?

Like the tabular report, you can also build a summary report in Drag & Drop mode or Script mode.

Drag & Drop mode

STEP 1: Select “Summary Report” visualization type

screenshot

STEP 2: Deside the Group and Summarized fields

You can summarized multiple fields. screenshot

STEP 3: Label fields and apply filter conditions

Choose appropriate label for fields, these label names will show as summary report header title.

STEP 4: Preview, correct issues and publish Summary Report

Click the “Preview” button to see what the summary report looks.

How summary report works in DbFace?

Script mode

Script mode provides a more flexible and advanced way to build summary report.

Check the “Script” checkbox to switch to Script mode, DbFace will try to generate SQL query that you already build, but you still need to correct it if contains issues.

Here is a sample summary report script:

SELECT
  YEAR(requiredDate) as `Year`,
  COUNT(orderNumber) as `Order Number`,
  COUNT(DISTINCT customerNumber) as `Customer Number`
FROM `orders`
GROUP BY `Year`

4.4 - Pivot Report

DbFace application script.

Many results are presented in tables that can be pivoted interactively. That is, you can rearrange the rows, columns, and layers.

Pivot reports(Crosstab reports) provide another perspective on the same data you see in the list report.

screenshot

screenshot

  • Columns
  • Rows
  • Data

4.5 - Number Report

Build KPI Number Report Widget in DbFace.

DbFace provides “Number Report” to highlight a single data value, like total payment of all the orders, total customers in a quarter.

Use a Number Report visualization when you want to see the total for a measure or the count for a categorical column.

screenshot

Table format accepted

Number report supports One column with one row, other rows and columns of the result set will be ignored.

Column 1
Single Value

Number report also supports Two columns with one row, it allows you to compare your Single Value against another value. It adds an up or down arrow next to the single value and shows the percent change, based on the comparison value.

Column 1Column 2
Single Value Single Value 2

How to build Number Report?

Interactive Mode

STEP 1: select “Number Report” visualization type

STEP 2: Choose field you want to highlight

Drag filed that you want to highlight to the “Select Columns” field. Only the first column will be used to summarized, other columns you dropped will be ignored.

Click the caret button, you can apply “Count”, “Sum”, “Avg” function to the column.

Click the selected column to change the label name of the field.

STEP 3: Preview to test and save.

After you finished your application, you can click the “Preview” button to see what the number report looks, correct any issues, and publish the number report.

SQL Mode

You can also build number report from SQL Query directly.

Click the “Script” checkbox at the top-right corner of “Visualization” section to switch to Script mode. DbFace will try to generate SQL query that you already built. But you might also need to correct issues.

Option: Script

For Number Report, you can define

function __format_label(label) {
  var newlabel = label;
  // TODO: apply format to the label
  return newlabel;
}

and

function __format_value(value) {
  var newvalue = value;
  // TODO: apply format to the value
  return newvalue;
}

function in the Script code area to format label and value of the number report.

Here is an example that bold the label and makes the value color to blue:

function __format_label(label) {
    return "<b style='color:red'>" + label + "</b>";
}

function __format_value(value) {
    return "<span style='color:blue'>" + value+"</span>";
}

4.6 - Pie Chart

Build Pie Chart in DbFace.

A pie chart (or a circle chart) is a circular statistical graphic, which is divided into sectors to illustrate numerical proportion. Displays tooltips when hovering over slices

Create pie chart in DbFace

Data format

Pie chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-Axis...
Label 1 Row 1 ...
Label 2 Row 2 ...
Label 3 Row 3 ...
... ... ...

4.7 - Column Chart

DbFace application script.

A column chart is a graphic representation of data. Column charts display vertical bars going across the chart horizontally, with the values axis being displayed on the left side of the chart.

screenshot

Data format

Bar chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-Axis...
Label 1 Row 1 ...
Label 2 Row 2 ...
Label 3 Row 3 ...
... ... ...

4.8 - Application

DbFace application script.

The DbFace application is an available execution unit, could be a database query / operation, a form report, a summary report, a line chart,or a pie chart,etc.

DbFace applications include a user input form (optional), one or more execution scripts. When users enter data, click the “submit” button, DbFace submits them to the target database to perform, then outputs corresponding data (such as data tables, summary tables, pie charts, line graph, etc.). Dashboard and Story are special types of application. They can display more than one applications in one page. DbFace supports the following application types:

Login as administrator or developer , the browser will display the application list, where you can edit or delete applications.

Edit application

In the application list, select the application you want to edit, click the “Edit” button to enter the edit page. When editing the application, you aren’t allowed to modify the data source. How to edit application, please refer to “Application Builder” above.

Edit DbFace application

Clone application

Click the “Clone” button to make a copy of the selected application.

Delete application

In the application list, select the application you want to delete, click the “delete” button, after confirmation the application will be deleted.

Delete application in DbFace

Share application

In the dashboard, tap the “Embed” button, DbFace will open the “Widgetize the application in your websites in an IFRAME” dialog, in this dialog, you can get the public URL of this application, please check the “Embed” button, copy the Direct Link or Embed Iframe code and click the “Confirm” button the save the settings.

Share DbFace application

Do not forget check the “Embed” checkbox, otherwise the Direct Link will not become active.

4.9 - Application Form

DbFace application script.

DbFace support to specify a form for the application to accept user’s input.

You can build DbFace form from Design Mode or Code Mode.

Drag & Drop Builder

DbFace has two major types of form controls: layout control and form control.

All form controls must be placed in layout controls.

drop and drop form builder in DbFace

Form fields

DbFace Form Fields

Single Line

Single Line allows the user to enter a single line of string data, the user can specify the data type in the property editor. If you specify a data type, before form submission, Dbface will check the input items whether the input items are the specified type, if not, the form will not be submitted.

Date Range

You can input 2020-05-01 ~ 2020-06-30 to initialize the date range control. As default, Date Range control will use the last 30 days.

Multi Line

Multi Line allows the user to enter multiple lines of text.

Drop Down allows the user to select a data in a value list. Drop-down box needs to be specified the data source.

Radio Group

Radio Group displays a list of all the values, and allows the user to select one value as the form data to submit.

Checkbox

Checkbox displays a list of all the values, and allows the user to check multiple data to submit.

Multi Select

Multi Select displays a list of all the values, and allows the user to select multiple values to ??submit.

Static Label

Static label displays static data that can not be edited.

Text

The text control can be used as the form description. DbFace integrates CKEditor as rich text editor.

Form field Properties

DbFace Form Fields Property Editor

To edit the form field properties, click on the “Edit” button, and open the property editor.

Label

Labels ar text items in front of form field, which can be used for user to identify this form field.

Name

Form field script name can be used as variables in application scripts by Smarty manner. Such as: {$status}

Required

This form field must be required. Before submitting, Dbface will check whether the value of this field is empty, if it is, the form will not be allowed to submit.

Disable

This item can not be edited. Users can not edit this item.

Data Sources

Only limited value form fields (such as Drop Down, Multi Select, Checkbox, etc.) have datasource options. DbFace supports two kinds of ways to use the datasource: Enter value directly and mapping script. (“Unrestricted” is generally used to preview the script, in fact, generally do not use this.)

Enter value directly:

the user input datasource directly, one value per line. The value supports “key: value” division format. If this format is detected, Dbface will automatically take the previous value as the form value,the succeeding value as data displayed in the form. Value as a form before submitting value, the latter value data as displayed in the form inside.

!!! Tip Do not forget to use the data picker to help choose the data from the database.

Mapping Script:

Users can use a query to set the data source.

Onchange Script

Onchange script is general SQL query script.

When the user completes the input and focus are lost, the scripts will be executed and the result will be mapped to the current form control.

Build Form from Code

If you need to build a form where Checkbox C is revealed If Checkbox B is Checked “No” or any combination of javascript actions and behaviors normally used in form building to make the Form “Smart”.

Diving into source code, you can build logic embedded into options & choices for Forms.

4.10 - Bar Chart

Create Bar chart in DbFace.

A bar chart or bar graph is a chart that presents grouped data with rectangular bars with lengths proportional to the values that they represent.

Like all DbFace charts, bar charts display tooltips when the user hovers over the data.

screenshot

Data format

Bar chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-Axis...
Label 1 Row 1 ...
Label 2 Row 2 ...
Label 3 Row 3 ...
... ... ...

4.11 - Category

application category.

DbFace organizes all the applications by categories. The default category name is “Default”. All the applications that do not have a category are automatically attributed to the default category.

screenshot

Create category

Log in as Administrator, find “Category” in the Dashboard. You will find all categories in “Category” section.

create category for applications in DbFace

On this page, enter a category name, cofirm “Create a new directory” button to create a category. Category names are not allowed to be duplicate.

For convenience, when creating or editing an application, you can also make a new category name for it.

Edit category

In the category list, click the category name, a small window will pop up, where you can modify the category name. Enter a new category name, then confirm.

Edit category name and icon in DbFace

You can also specify or update the icon of the cateogry.

Delete category

To delete a category, click the “Delete” button in the category list. Don’t worry, delete the category does not lead to delete the applications in the category. All applications in the deleted category will be automatically moved to the default category(Application).

Edit category permission

DbFace categories are virtual folders that organize applications. Edit category permission does mean bulk edit application permissions that in the category.

Tap the “Edit user permissions” button to open a dialog that list all user accounts under your account. Edit category user permissions

4.12 - Form Library

DbFace application script.

Form library tool helps you fetch other application forms into the current application, so you do not need to build a form again and again.

Form library in DbFace

  • Open Form Library
    Click the “Form Library” button to open Form Library dialog. Form Library dialog will display all forms you have created (draft or published).

  • Preview Form
    Click the Eye button to preview the form

  • Choose Form
    Click the Correct button to fetch the form into current application

The Form library only displays forms that in the same database connection.

4.13 - Navigation Features

DbFace application script.

4.14 - Parameters

DbFace application script.

Parameters are used to store values that can be obtained in applications.

Parameters (Variables) are reusable pieces of information that can be created once and used in multiple places, such as filter conditions, SQL queries, and HTML applications. DbFace store includes a large number of predefined attributes, and also gives you the ability to create your own custom variables.

You can define fixed or dynamic variable(by SQL query or Code) in this section, all variables can be used in all applications.

If you bind a connection to the parameters, these parameters will be only available in applications that using the connection.

Define Global parameters

Tap the “Parameters” menu to open the “Global Parameters” page.

Open global parameters page in DbFace

Create new parameter

Tap “Create new parameter” button to open the “Create new parameter” dialog. DbFace supports fixed and dynamic parameters.

Fixed Value

Global parameters in DbFace

Dynamic Value

Please notice that DbFace only supports single value. DbFace will execute the SQL query, and make the dynamic value equal the first row and first field value. Global parameters in DbFace

If SQL query only return 1 field and 1 row, the column data will treated as the value, other then, the resultset associate array will be the dynamic value.

  • TTL
    You can specified a TTL (time to live) value for dynamic value, DbFace will refresh the value when the time expired automatically.

If you want to force build the dynamic value, you can click the “Refresh” button at the parameters list page.

Public global parameter

You can access “Public Global Parameter” in external webpages without having to log in DbFace. Each public paramater has a public URL. i.e.

http://localhost/dbface/user/jsding/value/now

You can load the value in your webpage:

$('#span_now').load("http://localhost/dbface/user/jsding/value/now");

Edit Global Parameter

Tap the “Edit” button to open the “Update Parameter” dialog. In the dialog, you can edit the parameter settings.

Edit global parameter in DbFace

Remove Global Parameter

Tap the “Delete” button to remove the global parameters.

Remove global parameter in DbFace

Refresh Dynamic Parameter Value

You can tap the “Refresh” button to force DbFace to refresh dynamic parameter value. Since fixed value never changes, this function is not available for “Fixed Parameter”. Refresh parameter value in DbFace

Use Global parameters

You use “Global Parameter” in DbFace applications just like the form field.

simple sample that use global parameter in DbFace

Use dynamic array value

Use dynamic array variables in DbFace

Predefined Variables

DbFace also store several predefined variables that you can use directly.

VariableValue
_now_ Current timestamp
_date_ Current date (2016-12-08)
_account_name_ The current login username
_account_email The current login user email
_today_ date('Y-m-d')
_today_minus_7_ date('Y-m-d', strtotime('-7 days'))
_today_minus_30_ date('Y-m-d', strtotime('-30 days'))
_today_plus_7_date('Y-m-d', strtotime('+7 days'))
_today_plus_30_date('Y-m-d', strtotime('+30 days'))
_first_day_of_month_date('Y-m-01')

You can also predefined variables on on-premises version, open config/config.inc.php and edit predefined_variables entry

$config['predefined_variables'] = array(
  'status_deleted' => 100
);

You might also want to define dynamic predefined variables in hooks.php, find api_get_predefined_variables function in config/hooks.php

数据字典

4.15 - Table Editor

DbFace application script.

!!! note “Depreciate” We generated Table Editor Applications for every tables automatically when the database connected. So you do not need create table editor application anymore.

Table editor provides the functions such as CRUD (creating, updating, deleting), filtering, paging the original database table, etc.

screenshot

DbFace built-in table editor is powerful:

  • Navigate data by page
  • Sort by field(multi-field)
  • Delete the line
  • Open line editor
  • Insert line: the user selects a single row of data, then open the line editor, Dbface will copy the seclected row data to the editor automatically. Very convenient.
  • Filter data by field. Click the “Filter” button to open the filter condition editor.

DbFace will generate Table Editor Application for every tables in the database connection. Please refer Data Module section to get more information about Table Editor Application

4.16 - YAML Script

DbFace application script.

To build complex dbface applications, you might need to do not only one query to the target databases, some of them to fetch values, and use this values in the result application script.

---
vars:
    var1: !script execute-sql-query-to-get-value
    var2: !func execute-php-function-to-get-value
    var3: !url http://your-rest-url-to-fetch-this-value
    var4: !var var
    var5: !get get-value
    var6: !post post-value
    var7: !input get-or-post-value
    var8: direct-value
process: your-php-process-functions
app: script
---
data: php_function_name

4.17 - Line Chart

DbFace application script.

A line chart or line graph is a type of chart which displays information as a series of data points called ‘markers’ connected by straight line segments.

screenshot

Here is a video that showing you how to build a chart report:

Data format

Line chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-Axis...
Label 1 Row 1 ...
Label 2 Row 2 ...
Label 3 Row 3 ...
... ... ...

4.18 - Scatter Plot

DbFace application script.

A scatter plot, scatterplot, or scattergraph is a type of mathematical diagram using cartesian coordinates to display values for two variables for a set of data.

screenshot

Data format

Scatter plot chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-AxisMeasure Y-Axis 2...
Label 1 Value 1 Value 2 ...
Label 2 Value 1 Value 2 ...
Label 3 Value 1 Value 2 ...
... ... ... ...

4.19 - Area Chart

DbFace application script.

An area chart or area graph displays graphically quantitive data. It is based on the line chart. The area between axis and line are commonly emphasized with colors, textures and hatchings.

Data format

Area chart accepts two or more columns. The second through the last column must be numeric.

Dimension (X Axis)Measure Y-AxisMeasure Y-Axis 2...
Label 1 Value 1 Value 2 ...
Label 2 Value 1 Value 2 ...
Label 3 Value 1 Value 2 ...
... ... ... ...

4.20 - Bar Line Chart

Create bar line chart in DbFace

Bar Line Charts use a bar and a line to visualize a data set with both a continuous and a categorical metric.

Data format

Bar line accepts three or more columns. The second through the last column must be numeric. The last column will be considered as line chart.

Dimension (X Axis)Measure Y-AxisColumn 3...
Label 1 Row 1 Row 1 ...
Label 2 Row 2 Row 2 ...
Label 3 Row 3 Row 2 ...
... ... ... ...

4.21 - Word Cloud

DbFace application script.

Use a word cloud visualization when you want to see a text-based visualization of a given column. The text height represents the scale. The name itself is the different members of the column.

Word Cloud report in DbFace

Data format

Word Cloud accepts two columns with multiple rows. The second column must be numeric.

Column 1Column 2
Label 1 Row 1
Label 2 Row 2
Label 3 Row 3
... ...

4.22 - Funnel widget

DbFace application script.

Funnel charts are a type of chart, often used to represent stages in a sales process and show the amount of potential revenue for each stage. This type of chart can also be useful in identifying potential problem areas in an organization’s sales processes. A funnel chart is similar to a stacked percent bar chart.

Data format

Funnel widget accepts two columns. The second column must be numeric.

Dimension (X Axis)What to measure (Y Axis)
Label 1 Row 1
Label 2 Row 2
Label 3 Row 3
... ...

4.23 - Treemap chart

DbFace application script.

Use a treemap visualization to identify patterns and exceptions in a large, complex data asset.

Data format

Treemap chart accepts two columns with multiple rows. The second column must be numeric.

Column 1Column 2
Label 1 Row 1
Label 2 Row 2
Label 3 Row 3
... ...

4.24 - Radar Chart

DbFace application script.

As known as: Spider Chart, Web Chart, Polar Chart, Star Plots.

Radar Charts are a way of comparing multiple quantitative variables. This makes them useful for seeing which variables have similar values or if there are any outliers amongst each variable. Radar Charts are also useful for seeing which variables are scoring high or low within a dataset, making them ideal for displaying performance.

Each variable is provided an axis that starts from the center. All axes are arranged radially, with equal distances between each other, while maintaining the same scale between all axes. Grid lines that connect from axis-to-axis are often used as a guide. Each variable value is plotted along its individual axis and all the variables in a dataset and connected together to form a polygon.

Build Radar chart in DbFace

4.25 - Gauge widget

DbFace application script.

A Gauge widget is a simple status indicator that displays a needle that moves within a range of numbers displayed around its edge.

Data format

Gauge widget supports One column with one row, other rows and columns of the result set will be ignored.

Label
Gauge Value

4.26 - Google Map

DbFace application script.

Google Map report allows you to create markers on google map report.

Data format

Google Map report accepts two or more columns.

AddressMarker Description1Marker Description2...
USADescription1Description1...
UKDescription1Description1...
............

DbFace uses Google Maps Geocoding API service to decode the address field to real GEO locations. If the query result contains “lat” and “lng” fields, DbFace will use these two fields as geo location for each data.

latlngMarker Description1Marker Description2...
80-80Description1Description1...
50-50Description1Description1...
...............

You can also use JSON string in address field:

Lng & LatMarker Description1Marker Description2...
[80, -80]Description1Description1...
[80, -80]Description1Description1...
............

or

Lng & LatMarker Description1Marker Description2...
{lat: 80, lng: -80}Description1Description1...
{lat: 80, lng: -80}Description1Description1...
............

How to build a Google Map Report?

Follow the steps below to create a Google Map report.

  • Click the “Create New Application in Admin Console
    Login in DbFace with Administrator or Developer accounts. and click the “Create New Report” button in the application list section.

  • Select “Google Map Report”
    In the report builder page, find the “Visualization” section, and click the “Google Map” icon to start building Google Map report. Use Google Map Visualization

  • Select Google Map Report Type
    Drag “Address” Fields Drag the map address fields to “Address” fields, you can drag 1 or more fields to create detail map address Drag “Markers” Fields Address and Markers fields for Google Map Report in DbFacePHP The settings will create the following Google Map Report:

You can also build Google Map Report in SQL Query Mode.

The first column will treat as the “Address” field and other columns treat as markers fields.

Gallery builder in DbFace

Google Map Options

__get_map_options
DbFace uses this function to override the default Google Map Options.

Please refer Google Map Options to get information about Google Map Options.

Here is an example that configure the initial Map zoom level to 16.

function __get_map_options() {
  var result = {zoom: 16};
  return result;
}

get_marker_icon(address, content)
Define this function to create your own markers.

function get_marker_icon(address, content) {
  return "http://maps.google.com/mapfiles/ms/icons/green-dot.png";
}

Google Map Options

4.27 - Query Snapshot

DbFace application script.

What is Query Snapshot Application?

Query Snapshot Application helps you save current query resultset snapshot. You can view all snapshots of query result sets by date time.

You can monitor your Query result sets time by time using Query Snapshot Application.

  • Flat List View
    Snapshot application

  • Calendar View
    Snapshot application

!!! warning The snapshot size is limited to 1KB, please double check your requirement. If you want to use larger snapshot size, please contact us.

How to build a Query Snapshot Application?

This section will show you how to build a Query Snapshot Application to monitor your query result sets.

Step 1: Choose the “Query Snapshot Application”

Choose the Query Snapshot type in visualization section

Step 2: Build SQL Query

Build SQL Query using the Drag&Drop wizard

Drag & Drop mode to build SQL Query

Write SQL Query directly

You can also build your SQL Query directly in Application Script Editor.

Write SQL Query directly

Step 3: Publish

Input the “Application Name”, and click “Publish” button to publish the application. Now, the new created Query Snapshop Application should be available on the dashboard page.

Using Query Snapshot Application

Capture a Snapshot

Tap the “Capture Snapshot” button to capture the result sets of the query.

Remove a Snapshot

Tap the “Delete” button to remove the snapshot.

Flat List View and Calendar View

You can view snapshots in flat list view and calendar view mode.

Sample Query Snapshot Application

4.28 - Calendar application

DbFace application script.

Calendar application displays query data in a full calendar.

Calendar application in DbFace

How to build Calendar Application?

You can create calendar application in Drag & Drop mode and Script mode.

Calendar application in DbFace

STEP 1: select “Calendar Application” in Visualization section

Please click the “Calendar Application” button to open the Calendar Application Builder.

STEP 2: Choose a base date field.

Drag the date field from the left field list top the Date field. If your fields do not contain “Date” field, you can also format string field to “YYYY-mm-dd HH:ii:ss” to get correct result.

You can only drag one date column to the Date field.

STEP 3: Choose the data fields

Drag the data fields from the left field list.

Calendar application in DbFace

Script mode

You can also build calendar applications in Script mode.

Tap the “Script” checkbox to switch to Script mode, DbFace will try to generate correct query you already built.

Your SQL query’s first column should be Date field or date formatted field.

e.g.

SELECT
  DATE_FORMAT(orderDate, '%Y-%m-%d') as `Date_of_orderDate`,
  `orderNumber`,
  `status`,
  `customerNumber`,
  `comments`
FROM
  `orders`

4.29 - SQL Edit Application

DbFace application script.

What is SQL Edit Application?

SQL Edit Application allows you execute one or more SQL queries one by one. These SQL queries usually used to update table data.

Typical SQL Edit Applications in DbFace

Typical SQL Edit Application are composed of

  • User input form (optional)
  • Confirm message
  • SQL queries

When opened an SQL Edit application, DbFace displays the user input form. The user fills the form, click on “Submit” button, the confirmation message (input data can be contained) will be displayed. Click on the “Confirm” button, DbFace will execute the scripts line by line, and show the final execution result.

DbFace tries to execute all scripts in a transaction. Only all the scripts are executed, all the queries will be committed, otherwise the queries will all be rolled back. (The database should support transaction feature.)

How to build an SQL Edit Application?

This section will show you how to build an SQL Edit Application in DbFace.

Step1. Choose the “SQL Edit Application”

At the “Visualization” section, choose the “SQL Edit Application” type

choose SQL Edit Application in the Visualization section

Step2. Build a form

Build a Form, which allows application users input required information. Here, we build a form that contains a textbox named “licensecode”.

Build a form for SQL edit application

Step3. Write SQL Edit queries

Now, you can edit the SQL Edit Application queries, you can use the form fields by Smarty template manner.

Build a form for SQL edit application

Step4. Input Confirm Message

Enter a confirm message for the SQL Edit application, you can also use form fields’ variables by Smarty template manner.

Confirm message for SQL Edit Application

Now, you have built an SQL Edit Application in DbFace.

Sample SQL Edit Application in DbFace

4.30 - HTML Report

DbFace application script.

An HTML Report lets you create a custom report using HTML, inline CSS, and one or more series of data.

DbFace provides a full-featured HTML editor, users can edit the content on the fly. HTML also supports dynamic contents by Smarty template engine.

You can define variables in the “Parameters” section, and use these variables in HTML reports to build dynamic pages.

4.31 - PHP Application

DbFace application script.

If the other report types not work for you. You can define your own reports by PHP coding.

DbFace’s PHP development environment is based on CodeIgniter Framework, so you can benefit from all CodeIgniter features especially the Database Active Record.

You can get more information from CodeIgniter Documentation.

Build PHP Application

Sign in DbFace with Administrator or Developer account. Click the “PHP Application” button in the “Visualization” section. DbFace workspace will show you PHP code editor.

Input your PHP code, and press CTRL + Enter or click Preview button to preview the PHP application.

Controller-View Application

DbFace already integrates Smarty template engine.

Create smarty template

Tap Settings -> Cloud Code to enter cloud code page, click the “Create Template” button to create new smarty template: Create Smarty template in DbFace

Here, we build a simple sample Smarty template, we use [{}] as the variable delimiter:

Sample Smarty template

Use smarty template in PHP Application

<?php
  $smarty->assign('variable', 'Hello world!');
  $smarty->display('sample.tpl');
?>

The application result:
Sample Controller-View PHP application in DbFace

4.32 - Chain Application

DbFace application script.

What is chain application?

DbFace is a general platform to visualize any data from any data source, including application data. Chain application allows you create json response in your existing application system (which might writen JAVA, Python, PHP, etc.) and visulize them in DbFace.

Chain Application Settings

At the Application Builder page, click the “Chain Application”, DbFace will display Chain Application Settings section: Chain Application Settings

  • Application URL

DbFace will post (or get) application data from the Application URL. You can use http:// or https:// schema to get your remote application. You can also use file:// schema to get static files in DbFace public directory.

You can use variables in this area. You can define applicationURL variable in the Global Parameters, and input {$applicationURL}.

  • Form Query

Additional form data.DbFace will post the form data to the Application URL. Global parameters are also accepted in this input field.

  • Callback

If leave this setting empty, DbFace will try to show the application type depends the response data.

How to make chain application?

4.33 - Story report

DbFace application script.

Story report helps you navigate sub reports page by page smoothly via carousel component.

screenshot

4.34 - Column based Dashboard Application

DbFace application script.

Dashboard application allows you to have an instant view on your selected data. Dashboards are a simple way to organize together and manage multiple charts that share the same underlying data.

Dashboard application can seamlessly integrate the above-mentioned three types of applications into a single page. DbFace provides full-featured layout editor that allows users to drag and drop existing applications to the layout.

DbFace uses a simple clean way to arrange the applications in a dashboard. It provides 9 kinds of layouts(and counting), you just need to choose one layout for your dashboard, and drag & drop reports in the dashboard to build new dashboard.

!!! Tip Gallery Builder also provides a flexible way to build dashboard applications.

To build a dashboard application:

  • check “Dashboard Application” in the Visualization section

Open dashboard application builder page

  • Change dashboard layout

Tap the “Change dashboard layout” button to choose a appropriate layout template for your dashboard. Choose a layout template for your dashboard application

  • Place reports into the dashboard

Tap the “Add a widget” button to explore all existing applications Place existing applications into the dashboard

Here is a sample dashboard: Sample dashboard application

4.35 - Gallery application

DbFace application script.

Gallery builder provides a flexible way to build gallery pages and dashboard applications.

Gallery application provides a fluid container that you can place applications, menu items in sections.

Gallery application in DbFace Gallery builder in DbFace Dashboard application using Gallery Builder Gallery builder in DbFace
  • 1. App/Link
    Displaying applications directly or displaying application menu link.
  • 2. Change background Color
    Change the menu link background color, this option does not affected if displaying application directly
  • 3. Choose application icon
    Change the application icon, only available displaying menu link.
  • 4. Expand the size
    Expand the section size
  • 5. Reduce the size
    Reduce the section width
  • 6. Remove the application
    Remove the application from the container
  • 7. Add new application
    Add new existing application into the container. The new placed application will append into the container.
  • 8. Open the application in new page or dialog
    Click to swith the application opened style.

4.36 - Predefined Script Application

DbFace application script.

Build DbFace application by TOML scripts.

4.37 - Query Application

Build DbFace applications for SQL Guru.

Query Application

Query Application is the most simple workflow to build application by SQL in DbFace. We type SQL and choose an application type, then all set down. DbFace Query Application

5 - Coding

DbFace allows you creating your own API by PHP for public access. DbFace use CodeIgniter Framework to provide a flexible PHP development environment.

Create or edit Cloud code

  • Sign in DbFace with Administrator or Developer account
  • Tap “Settings” -> “Cloud Code”

You will see all available cloud code you already created in the selected database connection.

Cloud code list page

Tap the “Create API Code” button to create a new API code.

Cloud code list page

  • API Name: this will be the Public URL for accessing the cloud
  • Disabled: if you want disable the public URL temporarily, you can check the “Disable” checkbox
  • Open: open the cloud code in debug mode
  • Save Changes: after editing the cloud code, do not forget click “Save Changes” button to save the cloud code

Access Cloud Code

You will find the cloud code public URL in the list page.

Get Cloud code public URL

Cloud Code Alerts

Cloud Code Alerts can be configured to run either on an interval or at a scheduled time.

To run a Cloud Code Alert on an interval, select the interval option and choose from every 10 minutes, 30 minutes, 1 hours, 4 hours, 12 hours, or 24 hours. Run cloud code alert on an interval

By selecting the ‘Schedule’ option, cloud code alerts can be set to run at a specific time in specific timezone.
Run cloud code alert on an schedule You can change the timezone at config/config.inc.php file

$config['crontab_schedule_timezone'] = date_default_timezone_get();

You can find all the available timezone here.

Enable Cloud Code Alerts

You need to enable crontab to enable Cloud Code Alerts feature.

php index.php crontab crontab_key

The crontab_key can be found in config/config.inc.php

$config['crontab_execution_key'] = '6193rW3iTjXo7N3S27t2I2GA6OJjo03S';

Please modify the default crontab_execution_key, or other people can invoke the crontab if they know your dbface installation URL.

We recommend you run the cron application every 10 minutes.

sudo crontab -e

add

*/10 * * * * php /var/www/dbface/index.php cron 6193rW3iTjXo7N3S27t2I2GA6OJjo03S

Disabling Cloud Code Alerts

Cloud Code Alerts can be disabled by turning off the “Enable Alerts” switch under the Cloud Code footer.
Disable cloud code alert

!!! tip “Please Notice” Cloud Code only be available on On-premises installation or Enterprise plan.

Templates

You can also create your own Smarty templates that can be used in Cloud Code or PHP Report. Create templates

!!! tip “Please Notice” Use {$ and } in templates. We already put predefined variables, parameters and other global variables into the smarty instance.

Use templates in Cloud Codes

We already create $smarty variable and put all available variables into the smarty instance. You can also use $db variable that point to your current database connection.

$smarty->display('my-template.tpl');

Use templates in PHP reports

$smarty->display('my-template.tpl');

Scheduled Jobs

Scheduled Jobs As default, All scheduled jobs are executed by 10 minutes. You can drag the “Drag” icon to order the scheduled jobs.

Triggers

Edit Triggers

Edit Triggers Functions

User Login

/**
 * Trigger function when user sign in DbFace successfully.
 *
 * @param $params
 *
 * @return bool
 */
function _trigger_login($params) {
  return TRUE;
}

Pre Application

/**
 * trigger function before user execute an application
 *
 * @param $params: appid, creatorid, userid
 */
function _trigger_pre_application($params) {
  return TRUE;
}

Post Application

/**
 * trigger function after user execute an application
 *
 * @param $params: appid, creatorid, userid
 */
function _trigger_post_application($params) {
  return FALSE;
}

Custom Menu for Viewers

You can define custom menu for viewers in DbFace by an editable YAML file.

DbFace Modules

DbFace modules are pure php applications that be able to installed in DbFace. You can install DbFace modules as DbFace menu items. So we can access these php applications in DbFace navigation system.

5.1 - Auto Load Code

Auto Load Code.

DbFace will load all auto load code globally. So all functions defined in auto load code will available in all scripts.

We can define auto load code and use the php function in them in Parameters, then use them in DbFace application or create elastic dashboard widgets.

5.2 - Coding workspace

DbFace Coding Workspace

DbFace integrates full featured PHP project editor that you can define cloud code directly using web browser.

To open the IDE, click Settings, tap Cloud Code menu item, and find the “Start Development Workspace” button, Open DbFace Coding Workspace

the IDE will open. DbFace Coding Workspace

5.3 - FAQs

DbFace Coding FAQs.

DbFace Coding FAQs

DbFace provides many internal PHP and javascript functions to help you access the features, we list functions that you can use in your PHP or HTML report here:

PHP Functions

You can use PHP functions in PHP reports or Cloud Code.

import_var

PHP function to get global parameters value created in DbFace

<?php
  // get all global parameters created in DbFace
  $vars = import_var();

  // get total lost user value 
  $var = import_var('total_lost_user');
?>

import_db

PHP function to get database connection object to specific connection

  $db = import_db('Clash_of_rome');

call_http_service($url, $params = array(), $method = “POST”, $ignore_error = FALSE)

PHP function to get remote http response body

  $result = call_http_service('https://www.dbface.com');

Javascript Functions

5.4 - Insights

Insights

Smart Insights! Analyzes your data and automatically generates multiple dbface applications.

We are working hard on this section. It is coming soon!

5.5 - Jobs

Jobs.

Jobs

There is no background job functionality in DbFace. If you have scheduled jobs, port them over to a system cron job.

*/10 * * * * php /your-dbface-installation-directory/index.php cron your-cron-job-key >> /your-dbface-installation-directory/user/logs/cronlog.log

You will find your-cron-job-key in config/config.inc.php.

// crontab execution key
$config['crontab_execution_key'] = 'your-cronjob-execution-key';

Please consider to change this value for security reason.

5.6 - Managed DbFace

Managed DbFace.

Managed DbFace

With Managed DbFace, you do not need to care about hosting. We will host the latest DbFace on Amazon AWS for you.

To get your managed DbFace installation.

Open https://www.dbface.com/pricing and subscibe Enterprise version. We will setup your instance in 24 hours.

Your installation URL should be https://apps.dbface.com/[your-payment-name]. To use your own domain for the DbFace installation, please open a new ticket at our ticket system.

5.7 - Query Builder

Query Builder.

Query builder helps you generate complex SQL query without direct coding work.

It takes just a few clicks to add conditions and build the query. No complex SQL constructs to deal with - just a visual interface that looks like a human language sentence.

Query builder tool in DbFace

You can open DbFace Query Builder in the following page:

  • Tap the “Query Builder” button in SQL Workshop
    Open Query Builder tool in SQL Workshop

  • Tap the “Query Builder” button in the application builder page.
    Open Query Builder tool in Application Builder Page

5.8 - Query Stats

Query Stats.

Query Stats

Query stats page shows you the latest queries and queries performance. Click Settings, tap Query Stats, DbFace will go to this page. DbFace Query Stats

  • Start Time
    The query start time

  • Query
    The query statement, if the statement is too long, click the icon to display the whole statement

  • Elapse(s)
    Seconds to get the query result. We can use check this field to get bottlelack of the application.

5.9 - Remote API Monitor

Remote API Monitor.

We are working hard on this section. It is coming soon!

5.10 - Script Library

As the same as the Form Library, you can also reuse the script queries of other applications using the same database connection.

Script library in DbFace

  • ** Open Script Library**
    Tap the “Script Library” button at the top corner of Application Script Editor will open the Script Library.

  • ** Preview Script**
    At the opened Script Library dialog, Click the “Info” button will highlight the Script Query.

  • Copy Script into the current application
    Double click the Script will paste the selected script query into the application editor.

5.11 - Snapshots

Snapshots.

Snapshots

Snapshots allow you backup and recover full work in DbFace. To view snapshots files, click Settings and click “Snapshots” menu item. Snapshot in DbFace

You will see all existing snapshots. Snapshot Manager in DbFace

  • Create Snapshot

DbFace will collect all current work in DbFace, and zip them in a zip file. You will find snapshot files in user/snapshots directory.

  • Upload Snapshot

Upload snapshot file into DbFace. You can use the feature to move snapshot file created in other installation into this installation.

  • Download Snapshot

Download the snapshot zip file. We recommend you download import snapshot files and backup in multiple places.

  • Recover Snapshot

Recover DbFace from the snapshot file, DbFace will create snapshot file from current state automatically.

  • Delete Snapshot

Removed the snapshot file.

5.12 - SQL Terminal

SQL Terminal.

SQL Terminal helps you to execute and test SQL query on the fly. Click the “SQL Terminal” button to open SQL Terminal dialog:

SQL Terminal in DbFace

5.13 - Story board

Story board.

We are working hard on this section. It is coming soon!

5.14 - Table Row Action Script

Table Row Action Script

Table Row Action Script

We can use table row action script to add additional buttons for each row of tabular report. Additional Table Row action

Create Table Row Action Button

Create table row action

  • Action button label

  • Application Type

  • Application script when clicking the table row button
    When user click the action button, all columns of the row will pass to the application script.

5.15 - Notebook

A short lead description about this content page. It can be bold or italic and can be split over multiple paragraphs.

Notebook

We are working hard on this section. It is coming soon!

5.16 - Optional Script

All DbFace application contains one main script. You can attach more optional scripts in one DbFace application. DbFace will render other scripts in tab. When user click optional script tab, the option script will executed to render the application.

Optional script

6 - Working with Application

Working with Application.

Login as Administrator or developer , the browser will display the application list, where you can edit or delete applications.

Edit application

In the application list, select the application you want to edit, click the “Edit” button to enter the edit page. When editing the application, you aren’t allowed to modify the data source. How to edit application, please refer to “Application Builder” above.

Edit DbFace application

Clone application

Click the “Clone” button to make a copy of the selected application.

Delete application

In the application list, select the application you want to delete, click the “delete” button, after confirmation the application will be deleted.

Delete application in DbFace

Share application

In the dashboard, tap the “Embed” button, DbFace will open the “Widgetize the application in your websites in an IFRAME” dialog, in this dialog, you can get the public URL of this application, please check the “Embed” button, copy the Direct Link or Embed Iframe code and click the “Confirm” button the save the settings.

Share DbFace application

Do not forget check the “Embed” checkbox, otherwise the Direct Link will not become active.

7 - Embedding

Integrate DbFace into your own environment.

7.1 - Bundle Product

The “product” feature allows you re-package applications created in DbFace as a standalone web product.

Web product works as a standalone application which has its own URL, brand, menu, and login system. You can even choose a prebuilt theme for the web product.

Export applications created in DbFace as web product

Product Builder

DbFace provides you a super easy way to pick existed applications and combine them into menu items.

Sign in DbFace with the administrator account. Tap the “All Product” icon at the right-top corner. You can see all the web products under your account.

Web products under my account

Tap the “Create new product” button to enter Product builder interface, if you want to edit the existing web product, tap the “Edit” button.

Web product builder interface in DbFace

Settings

Web product Settings

  • Name
    The web product internal name. If you do not provide Brand name, it will also be considered as the brand name.

  • URL
    The web product URL suffix. DbFace will generate the web product URL based on the DbFace installation and the web product URL field.

  • Description
    The web product description text.

  • Design Theme
    DbFace provides several prebuilt color themes for your web products. You can even custom the final product theme based on the prebuilt theme by editing CSS code.

  • User Logins
    Select the “Public” radio button, web product does not require user logins to access all the applications. If your DbFace installed on a public web server, that means anyone can access these applications in the web product.

  • Active this product
    The web product can not be accessed until you check the “Active this product” checkbox.

Applications

In the “Applications” section, you pick applications under your account and combine them into menu items.

Web product Menu builder in DbFace

Misc Settings

Web product misc settings

  • Brand
    The web product brand name.

  • ** Brand URL**
    People tap the brand will open the brand URL.

  • Menu Type
    Use static and fixed top navbar.

  • Menu Position
    Place the menu left or right.

  • Container
    The application container responsive fixed width or full width of the viewport.

Styles

You can use CSS code and Javascript to customize the behavior of the web product. Your CSS code will override the default styles. The javascript code will be loaded and executed after the web product loaded.

Web product Styles and Javascript

Preview Area

!!! tip Please notice that the preview area does not show you the REAL look of the web product. You need to click “Preview” button to see what the web product looks in actuality.

Web product preview area

Preview & Save

Tap the Preview button, you can check what the web product real look. You need to input URL field in the settings section before you tapping the Preview button.

Tap the “Save” button to save the web product. You can find the web product URL in the list page.

7.2 - Single Sign On

Enable SSO in DbFace.

SSO allows you access DbFace without having to log in. Users can log-in DbFace with their username and password from an existing backend system

DbFace implements Single Sign­On using JWT (JSON Web Token), JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

You are required to develop and expose an HTTP endpoint (SSO login URL) which will pass login information to DbFace.

Request flow

This is SSO happens:

  1. You embed DbFace IFrame Link into your web page.
  2. DbFace IFrame Link will redirect to SSO login URL (HTTP endpoint implemented by you and hosted on your domain)
  3. Your HTTP endpoint valid current login status, and make JWT object which includes the user’s email and name. You redirect to DbFace IFrame Link with token parameter, the token value is just the JWT object.
  4. DbFace will unpack and valid the JWT object and full authenticated and final redirect into DbFace.

Enable SSO in DbFace

To enable SSO in DbFace, sign in DbFace with Administration account, click Settings -> Preference -> SSO. Enable SSO in DbFace

Here is a sample SSO login URL implemented by PHP:

// The DbFace IFrame Link will be provided by the ssocallback parameter
$ssocallback = $_GET['ssocallback'];

// SSO Secret Token configured in DbFace
$key = 'SSO Secret Token';

// JWT PHP library: https://github.com/firebase/php-jwt
require(APPPATH."third_party/php-jwt/vendor/autoload.php");

// the email and name should already created in DbFace
// Your DbFace account or sub-account
// rand field make token unique everytime
$token = array(
  'email' => 'my-email@my-company.com',
  'name' => 'my-name',
  'rand' => time()
);
$jwt = JWT::encode($token, $key);

// OK, now we redirect to the DbFace IFrame Link with the token parameter
redirect($ssocallback.'?token='.urlencode($jwt));

Token Definition

Field NameDescription
emailRequired: the email address of the signed in user
nameRequired: The username of the signed in user
permissionOptional: permission of the signed user, user or developer, no affect to the existed user
groupOptional: user group, no affect to the existed user
passwordOptional: password for the created user, no affect to the existed user

Create DbFace Account via SSO

You do not need to create SSO account in DbFace one by one. Only View and Developer account can be created.

$token = array(
  'email' => 'my-email@my-company.com',
  'name' => 'my-name',
  'permission' => 'user or developer',
  'group' => 'user group name: optional',
  'password' => 'specified password, if not set, will generated random',
  'rand' => time()
);
$jwt = JWT::encode($token, $key);

If DbFace does not find account by email and name, it will create this account with a random password automatically. To disable this feature, please open config/config.inc.php and edit

// auto create user, please attach permission field: developer or user
$config['sso_autocreate_account'] = FALSE;

7.3 - REST API

REST API.

DBFace API Access

To configure DbFace API Access, please click Settings -> API Service. DbFace API Access Settings

  • Enable
    Enable or disable API service.
  • Public
    DbFace API will be public available if switch on. DbFace will NOT check the master key if set to public.
  • Master Key
    If set to Public, the master key will not be used. To use the API key, you must put the following into the header for your query: HTTP-X-DBFACE-AUTH:
  • IP Whitelist
    Only ip in the ip whitelist able to access DbFace API.

7.4 - dbface-helper.js

If you want to embed applications, cloud codes, products, variables created in DbFace into your external webpages. DbFace provies you an effective way:

You can always access dbface-helper.js with the URL below:

https://assets.dbface.com/dbface-helper.js

Add the following code into your HTML head tag:

 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js?v=7.7"></script>

If your pages already includes jquery, you can remove the jquery line.

Here is a sample page that embeding web product into app_container:

<html>
<head>
 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js"></script>
</head>
<body>
  <div id="app_container" 
       dbface-root="https://dashboard.dbface.com/" 
       dbface-widget="product" 
       dbface-pid="p_58469fc4f4218">
  </div>
</body>
</html>

Dom attributes

Attribute NameDescription
dbface-rootDbFace installation URL (default: https://v7.dbface.com/)
dbface-widgetAllowed value: app | variable | code | product
dbface-appApplication embed code
dbface-codeCloud code API name
dbface-teamTeam name
dbface-valuenameVariable name

You can also visit dbface-helper function via javascript directly:

  $('#dom_id').dbface({
    root: 'https://dashboard.dbface.com/',
    widget: 'app|variable|code|product',
    app: 'dbface-embed-code',
    code: 'dbface-code-name',
    team: 'admin',
    valuename: 'now'
  });

Embed Applications

DbFace helper will create an iframe and insert into the DOM. If the dom is and iframe tag, it will modify the src to the application embed URL.

Embed dbface application via dom attributes

<html>
<head>
 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js"></script>
</head>
<body>
  <div id="app_container" 
       dbface-root="https://dashboard.dbface.com/" 
       dbface-widget="app" 
       dbface-app="C6B478EE13E11927E0968CD405DEFF9E">
  </div>
</body>
</html>

Embed dbface application via javascript

$('#app_container').dbface({
  root: 'https://dashboard.dbface.com/',
  widget: 'app',
  app: 'C6B478EE13E11927E0968CD405DEFF9E'
});

Embed variables

Embed dbface variables via dom attributes

<html>
<head>
 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js"></script>
</head>
<body>
  <div id="app_container" 
       dbface-root="https://dashboard.dbface.com/" 
       dbface-widget="variable" 
       dbface-team="admin"
       dbface-valuename="now">
  </div>
</body>
</html>

Embed dbface variables via javascript

$('#app_container').dbface({
  root: 'https://dashboard.dbface.com/',
  widget: 'variable',
  team: 'admin',
  valuename: 'now'
});

Embed Cloud codes

Embed dbface cloud codes via dom attributes

<html>
<head>
 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js"></script>
</head>
<body>
  <div id="app_container" 
       dbface-root="https://dashboard.dbface.com/" 
       dbface-widget="code" 
       dbface-team="admin"
       dbface-code="all_players">
  </div>
</body>
</html>

Embed dbface cloud codes via javascript

$('#app_container').dbface({
  root: 'https://dashboard.dbface.com/',
  widget: 'code',
  team: 'admin',
  valuename: 'all_players'
});

Embed Product

Embed dbface web product via dom attributes

<html>
<head>
 <!-- if already include jquery, please remove this line -->
 <script src="https://assets.dbface.com/jquery.js"></script>
 <script src="https://assets.dbface.com/dbface-helper.js"></script>
</head>
<body>
  <div id="app_container" 
       dbface-root="https://dashboard.dbface.com/" 
       dbface-widget="product" 
       dbface-pid="p5846a13c25da9">
  </div>
</body>
</html>

Embed dbface web product via javascript

$('#app_container').dbface({
  root: 'https://dashboard.dbface.com/',
  widget: 'product',
  pid: 'p5846a13c25da9'
});

7.5 - Re-branding/White labeling DbFace

Custom Re-branding/White labeling in DbFace

This section explains on how to customize the DbFace by changing the organization name, header logo, favorite icon, email logo, time zone, and date time display formats.

DbFace can be rebranded/white-labeled with the organization name, header logo, favorite icon, email logo, time zone, and date time format.

8 - Elastic Dashboards

Elastic Dashboards.

Elastic Dashboard The DbFace application is an available execution unit, could be a database query / operation, a form report, a summary report, a line chart,or a pie chart,etc.

DbFace applications include a user input form (optional), one or more execution scripts. When users enter data, click the “submit” button, DbFace submits them to the target database to perform, then outputs corresponding data (such as data tables, summary tables, pie charts, line graph, etc.). Dashboard and Story are special types of application. They can display more than one applications in one page. DbFace supports the following application types:

Login as administrator or developer , the browser will display the application list, where you can edit or delete applications.

8.1 -

DbFace Data Board

Data Board is a simple way to put html snippets, variables and other JSON format data into dashboard application.

9 - Administration

9.1 - Command Interface

Connect to MySQL or MariaDB in DbFace

DbFace Command Interface

9.2 - Configuration

DbFace provides many configuration items to make it work as you like.

DbFace provides many configuration items to make it work as you like.

You can change the logo at the left top area. The default is text: DbFace. Image (HTML code) is allowed here. for example:

<img src="//www.dbface.com/logo.png"/>

will place the logo image at the left top.

Language

We are working on supporting more languages now.

If you want DbFace supports your local language, you can download the language file and translate every entries into your language, and sent it to support@dbface.com. After confirmation, we will make this language file to your DbFace instance.

IP Whitelist


If your have a fixed IP or IP ranges, we recommend you set the IP whitelist. After setting the white list, the non-white list IP addresses access to your account or sub-account will be rejected. To set or modify the whitelist, please log in as an administrator, the current user information click on the small window in the upper right corner of the “Settings” button to open the “System Settings” tab, Fill IP whitelist, save the changes take effect.

192.168.0.1-192.168.0.24,211.157.2.99′

you may have known, only 192.168.0.1 ~ 192.168.0.24 and 211.157.2.99 allowed to access the service.

The ip whitelist supports different formats. Network ranges can be specified as:

  1. Wildcard format: 1.2.3.*
  2. CIDR format: 1.2.3/24 OR 1.2.3.4/255.255.255.0
  3. Start-End IP format: 1.2.3.0-1.2.3.255

!!! note If you set your current IP to non-whitelist eventually, you will not be able to access DbFace. Please contact support@dbface.com to request to reset your whitelist information.

Skin

You can choose 12 color skins. Try them and choose the skin you like.

The default menu position is left, you can also make the menu at top position.

Welcome page

Welcome page is used for Users sub accounts. You can also set an application report in the welcome page.

Embed Protection key

At some cases, you need protection for embedded charts. Ideally should be option so checks if authenticated. Only want logged in sessions on you site to see embedded. However don’t want to have users go to dbface but instead should be through our admin backend on site.

You can open config/config.inc.php file, and edit

$config['embed_session_key'] = FALSE;

to

$config['embed_session_key'] = 'YOUR-PROTECTION-KEY';

You need to add the following key into session to allow your website to embed dbface applications

$_SESSION['_EMBED_KEY'] = 'YOUR-PROTECTION-KEY';

This configuration only available on On-premise version.

Disable SQL Edit application

SQL Edit application allow you create application that modify database tables vis SQL Query, if you do not want this application feature, you can disable in server configuration file.

Open config/config.inc.php and edit:

$config['disable_sql_edit_application'] = TRUE;

Disable PHP application

PHP application allows you create applications that can do anything on your webserver. You might want to disable this feature for security reason.

Open config/config.inc.php and edit:

$config['disable_phpreport'] = TRUE;

Disable public access parameters

You can enable access global parameters defined in DbFace publicly. If you do not want this feature, you can disable in the server config file.

Open config/config.inc.php and edit:

$config['disable_public_access_parameters'] = TRUE;

config/hooks.php

We also provides many options to allow you customization on the server side. You can open config/hooks.php file and write your own hook functions to customize the DbFace behavior.

_hook_fc_start_

This function allows you inject any initialize code into DbFace.

function _hook_fc_start_() {
  date_default_timezone_set('America/Los_Angeles');
  define('ENVIRONMENT', 'production');
}

config/functions.php

Define your functions in config/functions.php, all functions defined in this file can be accessed in cloud codes or PHP report applications.

<?php
  // define your custom functions here
  // all functions can be used in the Cloud Code
  

9.3 - Context Selector

Connect to MySQL or MariaDB in DbFace

9.4 - Data Dictionary

Connect to MySQL or MariaDB in DbFace

9.5 - DbFace Plugins

Connect to MySQL or MariaDB in DbFace

Plugins

A plugin is a piece of software containing a group of functions that can be added to a DbFace application. They can extend functionality or add new features to your DbFace applications.

DbFace plugins are written in the PHP programming language and integrate seamlessly with DbFace.

Register Plugins

At the Settings Panel, switch to Script tab, and click Application Plugin to list all available plugins. register dbface plugins

Create Plugin

How Plugins works?

Each DbFace application plugin contains a getSubscribedEvents function, DbFace will call this function to initialize the plugin, and call the event function when executing at that point in core. Here is an example.

<?php
class HelloworldPlugin extends Plugin {
  public static function getSubscribedEvents()
    {
        return [
            'onAppQueryResult'  => ['onQueryResult', 0],
            'onPageInitialized' => ['onPageInitialized', 0],
            'onPageEnd' => ['onPageEnd', 0],
            'onShutDown' => ['onShutDown', 0]
        ];
    }

    function onPageInitialized($event) {
      return $event;
    }
    
    function onPageEnd($event) {
      return $event;
    }
    
    function onShutDown() {
    }
    
    function onQueryResult($event) {
      $fields = $event->offsetGet('fields');
      $data = $event->offsetGet('data');
      
      // append fields
      $new_data = array();
      foreach($fields as $field => $v) {
        $new_data[$field] = 'test';
      }
      $data[] = $new_data;
      
      $event['data'] = $data;
     
      return $event;
    }
}

Plugin Hooks Interface

When DbFace running at a specific point in the execution of Core, DbFace will fire an event to run plugins. Plugins can hook at this point, get all data in event parameter, modify data, and write back the modified data into the event return object.

onApplicationInitialized

onPluginInitialized

onAppTemplateInitialized

onAppQueryResult

Use this hook to modify the result set of application query result. The following plugin will modify all data to test. You can also append new field at this point.

function onQueryResult($event) {
  $fields = $event->offsetGet('fields');
  $data = $event->offsetGet('data');
  
  // append fields
  $new_data = array();
  foreach($fields as $field => $v) {
    $new_data[$field] = 'test';
  }
  $data[] = $new_data;
  
  $event['data'] = $data;
  
  return $event;
}

onSortFields

Use this hook to sort fields for tabular report.

onChartData

onShutDown

9.6 - Extra Tools

Connect to MySQL or MariaDB in DbFace

DbFace brings a set of built-in tools to help you make applications easier.

9.7 - SQL workshop

Connect to MySQL or MariaDB in DbFace

Many DbFace users request to add a SQL workshop for database connections, so they can test SQL scripts on the fly. you can find SQL Workshop in the database connections section.

Here is a video that shows how the SQL workshop work.

Open SQL workshop

To open SQL workshop, click the “SQL Workshop” button in the connection list table. Open SQL workshop in DbFace

You will enter the SQL workshop page. SQL workshop in DbFace

SQL Terminal

Click this button to open the SQL Terminal tool, SQL Terminal provides a easy way to fire SQL query.

Query Builder

Quer builder helps you drag to generate SQL query, so you do not require handy work to create SQL query.

Publish

Publish the SQL Query to exchange marketplace, so you can pick it later in the application builder interface.

Tag SQL Query

You can name the SQL query in the SQL Editor. All named SQL Queries will be listed in the tagged group. Double click the SQL query in the tagged group will copy the SQL Query into the SQL Editor. SQL workshop in DbFace

You can pick out the Tagged SQL query in the application builder page in the Script Library dialog.

9.8 - config.inc.php

Raw configuration for webmaster.

The config.inc file

The config.inc file, found in your user/data directory contains special settings for to your own DbFace installation. This file is unique to your installation and it’s the only file in the script that you need to edit.

!!! tip “Enterprise Plan” If you are using Enterprise Plan, please edit the config.inc.php file and send to support@dbface.com. We will be arranged to upload the config.inc.php file to your DbFace installation.

; ini file to config dbface installation
// Auto detect the Base URL
$config['dbface_app_url_base'] = FALSE;
// use the default timezone
$config['default_timezone'] = date_default_timezone_get();
// the default schema cache is never expired (seconds) 0: disable cache
$config['cache_schema'] = 3600;
// report never auto expired (seconds), 3600 means 1 hour, 0: disable cache
$config['cache_app'] = 3600;
// the sql query cache ttl
$config['cache_sql_query'] = 600;
// the app process will be termiated 60s
$config['ExecTimeLimit'] = 60;
// Max memory 64M for each app execution
$config['MemoryLimit'] = "64M";
// the generate app access URL ttl, false: never expired, number: timeout to expired
$config['ttl_access_url'] = FALSE;
// hide the online support widget
$config['enable_onlinesupport'] = TRUE;
// if use the database to store session data
$config['sess_use_database']	= FALSE;
if ($config['sess_use_database']) {
  $config['sess_save_path'] = 'df_sessions';
} else {
  // session save path, comment this, if you want use the default folder in php.ini
  $config['sess_save_path'] = FCPATH.'user'.DIRECTORY_SEPARATOR. "cache";
}
// default category name
$config['default_category_name'] = 'Default';
// default data category name
$config['default_data_category_name'] = 'Data';
// menu style: normal or horizontal
// you can also overwrite this settings in System Settings (dropped)
$config['menu_style'] = 'normal';
// Use your Google Appkey to generate Google Map
$config['google.appkey'] = 'AIzaSyBImzyugJzPWt1cQC0bWbUznaVUIc805eU';
// the max rows for picked sample data
$config['max_sample_rows'] = 100;
// Enable error_report, the error does not include any app data
$config['enable_error_report'] = TRUE;
// define the default title of DbFace
$config['df.title'] = 'DbFace - Online Application Builder for Any Data Source.';
// the assets URL
if ($config['production']) {
  $config['df.static'] = "//d3krtd5frfbrx5.cloudfront.net/assets/v79";
  // thirdparts assets URL, set this to gain better performance
  $config['assets_base_url'] = '//d3krtd5frfbrx5.cloudfront.net/assets/v79';
} else{
  $config['df.static'] = "./static";
  // thirdparts assets URL, set this to gain better performance
  $config['assets_base_url'] = './static';
}
$config['product_assets_url'] = '//d3krtd5frfbrx5.cloudfront.net/assets/v79';
// DbFace will use third part cdn to improve js loading performance
$config['use_assets_cdn'] = TRUE;
// product base URL, if FALSE, we will detect automatically based on the installation
$config['product_base_url'] = FALSE;
// checkpoint max_size bytes
$config['cp_max_size'] = 1024;
// enable / disable gravatar
$config['enable_gravatar'] = TRUE;
// disable PHP report
$config['disable_phpreport'] = FALSE;
// hide edit application
$config['disable_sql_edit_application'] = FALSE;
$config['disable_public_access_parameters'] = FALSE;
$config['Access-Control-Allow-Origin'] = FALSE;
// DbFace only access public schema, you can also switch to other schema for pgsql database only
// Since V6.6, you can add schema option for pgsql database
$config['pgsql_default_schema'] = FALSE;
// if password mismatch 3 times, the ip will blocked 24 hours, set FALSE disable this feature
$config['daily_retry_login_times'] = 50;
$config['daily_retry_login_time_duration'] = 86400;
// the max num of last opened apps
$config['history_app_num'] = 6;
// max favorite num
$config['favorite_app_num'] = 10;
// enable ipwhitelist, set to FALSE to disable ip whitelist check
$config['enable_ipwhitelist'] = TRUE;
// If you want to use DbFace to create database for you, enable this
// let dbface create database in your hostdb
$config['enable_createdatabase'] = TRUE;
// AUTO: for self host, dbface will use sqlite3, otherwise will use the hostdb conguration.
$config['hostdb'] = 'AUTO';
// whether creating new database user for the newly created database
$config['create_sperated_user_for_hostdb'] = TRUE;
// the created database user host, % for any location, or set ip address for security
// $config['hostdb_user_host'] = 'localhost';
// predefined variables
$config['predefined_variables'] = FALSE;
// Login logo settings
// position: left | right | center | hidden, hidden will hide the navbar at login page
// array(
//   'url' => '//www.dbface.com',
//   'position' => 'right',
//   'img' => $config['df.static'].'/website/dbface_logo.png'
// );
$config['login_logo_settings'] = FALSE;
// Additional css files (for remote customization theme)
// you can get the css url from DbFace Support Team (Licensed User + Gold Support)
// the css file will include to override the default style
$config['customer_additonal_css'] = FALSE;
// default tooltip border width
$config['chart_tooltip_border_width'] = 1;
// allow forget password on the login page for all users
$config['allow_reset_password_on_premise'] = TRUE;

// USE CAUTIOUS
// force reset the username & password to this entry string
// if you have forgot the admin password, please set this entry to reset password
// and do not forget recover to false 
// sample
// $config['force_reset_accounts'] = array(
//   array('email'=> 'admin@dbface.com', 'passowrd'=> 'my new password')
// );
$config['force_reset_accounts'] = FALSE;
// MongoDb list collection parameters
$config['mongo_options_listCollection'] = array(
);
// crontab schedule date timezone
$config['crontab_schedule_timezone'] = date_default_timezone_get();
// crontab execution key
$config['crontab_execution_key'] = '6193rW3iTjXo7N3S27t2I2GA6OJjo03S';
// world map name map
$config['worldmap_namemap'] = array(
);
// The email settings for sending reports or notification
// The function mail() in Cloud Code also use this settings
// we already binding a public smtp settings, if it not work for you, please use your own 
// mail server settings
// uncomment the email_settings email_settings_from will override the default smtp server
/*
$config['email_settings'] = array(
  'useragent'	=> 'dbface',
	'protocol'=> 'mail',
  'mailpath' => '/usr/sbin/sendmail',
	'smtp_host'=> '',
	'smtp_user'=> '',
	'smtp_pass'=> '',
	'smtp_port' => '25',
  'crlf' => '\r\n',
  'newline' => "\r\n",
  'mailtype' => 'html',
  'smtp_crypto' => "ssl",
  'validate' => false,
  'charset' => 'utf-8',
  'wordwrap' => true
);
*/
$config['email_settings_from'] = array(
  'from'=> 'support@dbface.com',
  'name'=> 'DbFace',
  'reply' => 'support@dbface.com'
);
// capture service URL
// If you have Gold Support, you can use your own capture service
$config['capture_service_url'] = "http://capture.dbface.com:8891/";
// capture app access key
$config['app_access_key'] = 'dbface@accesskey!j';
// default ttl (seconds) for URL parameter
$config['default_parameter_ttl'] = 3600;
// check update automatically
$config['check_update'] = TRUE;

// internal db that store mongodb and plugin cached data
// set to FALSE to use the default sqlite3 implementation
// The user should be able to create new database
/*
$config['internal_cache_db'] = array(
  'dsn'	=> '',
  'hostname'=> 'cache_db_host',
  'username'=> 'root',
  'password'=> '',
  'database'=> 'mysql',
  'dbdriver' => 'mysqli',
  'dbprefix' => '',
  'pconnect' => TRUE,
  'db_debug' => TRUE,
  'cache_on' => FALSE,
  'cachedir' => '',
  'char_set'=> 'utf8',
  'dbcollat' => 'utf8_general_ci',
  'swap_pre' => '',
  'autoinit' => FALSE,
  'stricton' => FALSE,
  'failover' => array()
);
$config['internal_cache_db_by_connid'] = array(
);
*/
$config['internal_cache_db'] = FALSE;
// enable Tsv format, use excel to open the csv file, use UTF-16LE encoding, if set to FALSE, use UTF-8
$config['csv_excel_compatible'] = TRUE;
if ($config['csv_excel_compatible']) {
  $config['export_csv_settings'] = array(
    'delimiter' => "\t",
    'newline' => "\n",
    'enclosure' => '"'
  );
} else {
  $config['export_csv_settings'] = array(
    'delimiter' => ",",
    'newline' => "\n",
    'enclosure' => '"'
  );
}
// enable or disable command api, default FALSE
// command api allow user to create account or other jobs via /cmd/action URL
$config['enable_command_api'] = FALSE;
// This field should not empty if enabled command api, appenc key=$command_security_key to let DbFace protect the command api
$config['command_security_key'] = '';
// check user access app permission
$config['strict_check_user_permission'] = TRUE;
// Form date and datetime format
$config['form_date_format'] = 'YYYY-MM-DD';
$config['form_datetime_format'] = 'YYYY-MM-DD HH:mm:ss';
// disable google analytics
$config['disable_analytics'] = TRUE;
// invite colleage email subject
$config['invite_colleages_subject'] = 'Welcome to DbFace - It is amazing to have you on board!';
// app max revision
$config['max_app_revision'] = 50;
// use this config to encrypt the connection password
// set to FALSE, will use plain text to store the connection password
$config['db_password_encrypt'] = TRUE;
// use for encrypt/decrypt the connection password, if FALSE or empty, people will find the database connection password without encrypt in sqlite3 file
$config['connection_encrypt_key'] = 'dbface.conn.2018';
// enable/disable dbface api
$config['feature_dbface_api'] = TRUE;
// enable context selector in the menu bar
// administrator and developer can select connection id as context
$config['enable_conn_context_selector'] = TRUE;
// cron job executor: pageview or crontab (default crontab)
$config['cronjob_executor'] = 'crontab';
// cron job executor interval seconds
$config['cronjob_executor_interval'] = 600;
// enable mobile access
$config['enable_mobile_viewer_access'] = TRUE;
// account access url ttl
$config['account_access_url_ttl'] = 86400;
//
$config['chain_app_access_key'] = '6193rW3iTjXo7N3S27t2I2GA6OJjo03S';
// email titles
$config['email_title_forgotpassword'] = 'DbFace password';
// use estimate row count for mysql innodb large tables
$config['estimate_table_rows_for_innodb'] = FALSE;
// directory for saving snapshots, FALSE: disable this feature
$config['snapshot_dir'] = USERPATH.'snapshots'.DIRECTORY_SEPARATOR;
// proxy to connect remote database, used in connected: Google Big Query
$config['https_proxy'] = '127.0.0.1:1080';
// Table Row Action Header
$config['row_actions_header'] = 'Actions';
// IP2LOCATION_DATABASE
define('IP2LOCATION_DATABASE', USERPATH . 'data'.DIRECTORY_SEPARATOR.'IP2LOCATION-LITE-DB3.BIN');

9.9 - Customization

Page customization.

Header Template

You can define javascript code, javascript includes, style codes in Header template to customize and extend DbFace. DbFace will simply include the header template content in HEAD tag.

!!! Tip Style codes in header template will overwrite the default settings.

Header template : customization in DbFace

To define your own Header template

  • STEP1: Expand the Settings menu
  • STEP2: Click “Customization” menu
  • STEP3: Edit the Header Template
  • STEP4: Click the “Save Changes” button to save your header template.

How to save header template in DbFace

Functions(javascript)

Functions section allows you define your own javascript codes for DbFace. These functions are loaded globally, it means you can use them in every applications.

Define javascript functions in DbFace

To define your own Javascript Functions

  • STEP1: Expand the Settings menu
  • STEP2: Click “Customization” menu
  • STEP3: Select the “Functions(Javascript Tab)” and enter your code there
  • STEP4: Click the “Save Changes” button to save your Functions.

We do not offer CSS/Javascript support or training directly, but there are a TON of great resources on the web to get you started into learning more about HTML, CSS and Javascript. There is a learning curve, but they are very valuable and reusable skill.

!!! tip “Tips & Tricks” You can find more tips and tricks for customization at our knowledge base.

9.10 - Backup & Restore

DbFace backup and restore.

All your works in DbFace are saved in user directory. For on-premises installation, you can simply backup and restore user directory to continue all the work in DbFace.

Backup DbFace

For On-premises installation and Enterprise plan, you can backup all your work in DbFace and restore it later.

To get started, click the Preference menu in the left, select the “System Settings” tab, scroll to the “Backup & Restore” section. Backup and restore dbface pane Click “Download Backup” button, DbFace will generate a zip file that contains all your work in DbFace, save the zip file locally.

Restore DbFace

At the “Backup & Restore” pane, click the “Select files” button and choose a backup file of DbFace. DbFace will restore to the backup state.

Please notice, all your work in DbFace after the backup date will be lost.

9.11 - Database Structure

Database Structure.

10 - Accounts

DbFace Accounts

DbFace provides 3 account roles. Administrator account was created while installing. You can create Developer or Viewer sub accounts with the Administrator account.

Administrator

Administrator can access the management settings. Administrator can create and manage users and connections, change system settings, define SSO, and more. Each On-premise installation has one Administrator.

Each On-premise installation has 1 Administrator account, you can not create new Administrator account.

DbFace will create admin/admin account while installing, you need to edit the account name and email to activate on-premise installation.

Developer (Manage Applications)

Developer role has all permissions on all connections. Developers can create, edit applications.

  • Manage all applications on all the connections
  • Manager all tables on all connections

Viewer (Access Applications)

  • Viewers can only access applications that have access permission.

Viewer Group

If you have many viewers in your team, you can create User Group to manage them effectively.

Edit Users or User Groups permission

Tap the Permission button to edit users or user groups application permission. Edit users or user groups permission

Check the checkbox to allow the viewer to access the application. Edit users or user groups permission

You can also choose permission at the application builder page: Edit users or user groups permissions at application builder page

10.1 - MFA

Active multi-factor authentication in DbFace.

Multi-factor authentication (MFA)

Use MFA to increase the security of your DbFace environments. Signing in to MFA-protected accounts requires a user name, password, and an authentication code from an MFA device.

Activate MFA

To enable multi-factor authentication, please click the Settings menu item at the top-right corner of DbFace. Open User profile page

At the User profile page, expand the Multi-factor authentication (MFA) panel. Activate MFA

Click the Activate MFA button to open MFA settings MFA settings

Follow the steps to setup the MFA options for your DbFace account.

Please note the sign in MFA option, Login MFA options

  • Always use password and MFA code
    You will require MFA code and password to sign in

  • Only MFA
    Only MFA code required to sign in DbFace.

Deactive MFA

Click the “Deactivate MFA” button to disable MFA settings, after deactivated, the old MFA devices are disabled. You need to follow the activation steps again to reactivate MFA.

11 - Change Logs

DbFace changelogs

The release notes of DbFace. We continue to update our changelogs here. Please also refer the detail changelogs

Version 9.8 (20210103)

Version 9.6 (20201004)

DbFace V9.6 released at 2020/10/04

  • Added Improve application accessiable, we added an history application quick access bar, so you can navigate to other applications more easier.
  • Introduce DbFace Application Plugin system. People will code plugin to extend DbFace or DbFace applications later. The feature is still improving, and might be changed
  • Added Custom PHP libraries import, in the user directory, you can use composer require command to import third-party php libraries. this libraries are imported automatically, and can be use in PHP Code directly.
  • Many styles and minor issues fixed

Version 9.4 (20200829)

DbFace V9.4 released at 2020/08/28

  • Many styles and minor issues fixed

Version 9.4

DbFace V9.4 released at 2020/07/24

Version 9.3

DbFace V9.3 released at 2020/06/26

  • [FEATURE] We can make comments on applications now

  • [FIX] Input SQL and generate Table or Chart in Notebook

  • [FIX] Improved filter features

  • [IMPROVE] Improve SQL Editor (You can edit multiple queries at the same time now)

  • [FEATURE] AMI first release, DbFace support AMI to support build full-featured applications now

  • [IMPROVE] Many styles fixes and improves

Version 9.2

DbFace V9.2 released at 2020/05/22

  • [NEW] Data dictionary, now we can build data dictionary to customize the data diplay for code
  • [FIX] Several styles and bug fixes

Version 9.1

DbFace V9.1 released at 2020/04/06

  • [FIX] Several styles and bug fixes.

Version 9.0

DbFace V9.0 released at 2020/02/06

  • [NEW] Clickhouse initialize supported
  • [NEW] XTerm: introduced to make changes by hand
  • [NEW] Module: use React or custome program dbface page
  • [NEW] Story product
  • [IMPROVE] Many styles fixes and improves.

Version 8.7

DbFace V8.7 released at 2019/09/10

  • [NEW] Presto initialize supported

Version 8.0

DbFace V8.0 released at 2018/12/30

  • [NEW] Google Big Query initialize support
  • [NEW] Data Board allows put variables in a dashboard
  • [NEW] Scheduled Jobs
  • [NEW] Snapshots: backup whole DbFace in local file system.
  • [NEW] Initialize integrations & Plugins support, Facebook Ads comming soon.

Version 7.6

DbFace V7.6 released at 2018/05/13, you can get more information about this release from [DbFaceV7.6 Release Notes]

We continue to update our changelogs here.

Version 6.9

DbFace V6.9 released at 2017/04/01, you can get more information about this release from DbFaceV6.9 Release Notes

  • [NEW] MongoDB connection supported
  • [NEW] Table sharing features
  • [NEW] New product theme with side bar
  • [FIX] Minor style improvements
  • [NEW] Conditional format in Data module
  • [FIX] Bug fixed in V6.8

Version 6.8

DbFace V6.8 released at 2017/02/15, you can get more information about this release from DbFaceV6.8 Release Notes

  • [NEW] Viewer users groups
  • [NEW] Initialize exchange marketplace
  • [NEW] Initialize the Radar Chart
  • [NEW] Redesigned the options system
  • [NEW] Building smarty templates in Cloud code
  • [FIX] Bug fixed in V6.7

Version 6.7

DbFace V6.7 released at 2017/01/06

  • [NEW] Template editor, you can add your own templates and use them in PHP reports
  • [NEW] Batch edit sub accounts’ application permissions
  • [NEW] Advanced options for connections (e.g. Default schema, encoding)
  • [FIX] Minor style fixes

Version 6.6

DbFace V6.6 released at 2016/12/25

  • [IMPROVE] Allow column resizing for data module
  • [NEW] Allow multiple columns for number report
  • [NEW] Submit static lable of form
  • [NEW] HTML templates
  • [NEW] More predefined variables
  • [FIX] Minor style fixes

Version 6.5

DbFace V6.5 released at 2016/12/05.

  • [NEW] Product feature: package applications in DbFace to product
  • [FIX] Minor style fixes

Version 6.4

DbFace V6.4 released at 2016/11/29.

  • [NEW] Add new option for X-Axis, you can set label rotation now
  • [BUG] At data module, the second linked data viewer does not contain a close button
  • [BUG] Javascript exception when click the columns at Data Module
  • [NEW] X-Axis data type: category, time, value, log
  • [MINOR] Css ajust for Data tables
  • [MINOR] Popup error dialog if the application preview fail
  • [BUG] Free form display issues
  • [NEW] Add Gauges widget visualization type
  • [BUG] SSO bug, sso will redirect to DbFace login page in some cases.
  • [NEW] Stacked option for chart report, you can make multiple series bar, line chart stacked.
  • [NEW] Custom Gauge Options: Min, Max, StartAngle, EndAngle
  • [IMPROVE] Calendar and Date Range control support

Version 6.3.1

Quick fix for V6.3

  • [Bug] The public url will be lost after edited parameters.
  • [Improve] Changed the default font to more clear Open Sans
  • [Improve] Use space as tab, and set tab size to 2 for all editor.

Version 6.3

DbFace V6.3 released at 2016/11/07

  • [Feature] Free form display application (advanced dashboard application introduced)
  • [Improve] Appearance settings for DbFace applications
  • [Feature] Public access URL for global parameters defined in DbFace

Version 6.2

DbFace V6.2 released at 2016/10/18.

  • [Feature] Query Snapshot Application Supported
  • [Improve] Calendar Application Supported
  • [Improve] Removed foot toolbar in Gallery
  • [Improve] We changed to use source editor for HTML report.
  • [Improve] Global Parameters (Variables) now support Array

Version 6.1

DbFace V6.1 released at 2016/10/14.

  • [Feature] Cloud Code Support On-premise
  • [Improve] Javascript exception might crash the App builder, we handle them more reasonable
  • [Improve] Form OnChange script now can apply resultset to Drop down and Multi-select

Version 6.0

DbFace V6.0 released at 2016/10/03. Since V6.0, You can install DbFace on prepared PHP 5.3+ (PHP5.3, PHP5.4, PHP5.5, PHP5.6, PHP7) ready webserver(Apache, IIS, Nginx).

  • [Feature] New Application Type: Application gallery application
  • [Feature] New Application Type: Funnel Widget supported
  • [Feature] New Application Type: TreeMap Widget supported
  • [Feature] Single Sign-on now available
  • [Feature] SQL Terminal
  • [Feature] Application logs for debug
  • [Feature] Define global dynamic parameters
  • [Feature] Batch edit user permissions for applications in category.
  • [Feature] Firebird/Interbase Supported
  • [Feature] Define global variables (fixed or dynamic)
  • [Feature] Multiple CSV files supported
  • [BUG] Fixed connection issues on Microsoft SQL Server
  • [Improve] Many other minor improves.

Version 5.9

DbFace V5.9 released at 2016/09/19

  • [Feature] Enhanced SQL workshop that you allow test your SQL queries on the fly.
  • [Feature] Query Builder
  • [BUG] Oracle Support

Version 5.8

DbFace V5.8 released at 2016/09/08

  • [Feature] We have changed Custom Css to Header template.

Custom DbFace header template

  • [Feature] Pick linked field data in Data module

Pick linked field data with ease

  • [Feature] Form support for HTML & PHP report
  • [BUG] Minor bug fixed

Version 5.7

DbFace V5.7 released at 2016/08/20

  • [BUG] Customization CSS can not apply to embed applications (20160831)
  • [BUG] Generate wrong SQL query switching to SQL query mode
  • [BUG] Can not apply form variables in Drag Drop mode
  • [Feature] Support raw html form builder, building Form using Javascript, HTML.
  • [Feature] Custom dashboard layout
  • [Feature] API Connector, connect DbFace to your No-SQL database
  • [Feature] Customization javascript code custom reports behaviour by javascript

Version 5.5

DbFace V5.5 released at 2016/05/18

  • [Improve] New application categories system.
  • [Improve] Support category icon
  • [Improve] Column links in Table Editor (navigate tables by column value)
  • Minor other bugs fixed

Version 5.3

DbFace V5.3 released at 2016/03/14

  • [FIX] Dashboard builder fixes.
  • [Improve] Show/Hide Data module
  • [Improve] Option for showing all applications of all database connections
  • Minor other bugs fixed

Version 5.2

DbFace V5.2 released at 2016/02/25

  • [Feature] Story report, navigate reports page by page.
  • [Improve] SQL Server supported
  • [Improve] PostgreSQL supported
  • [Improve] Oracle supported
  • Minor other bugs fixed

Version 5.0

DbFace V5.0 released at 2016/01/18

  • [Improve] Redesigned menu system
  • [Improve] Cloud Code (beta)
  • [Improve] Database structure manager (only available for MySQL)
  • Many other bugs fixed

12 - FAQs

DbFace FAQs.

General

What is DbFace?

DbFace is a report and dashboard builder tool for SQL databases like MySQL, PostgreSQL, SQLite3 (MS SQL Server etc.). DbFace provides you a creative way to build database driven application on the fly.

What is the system requirements for On-premise installation?

You need a PHP7.2+ (PHP7.2, PHP7.3, PHP7.4) webserver (apache, nginx, etc) with SQLite3 extension installed.

PHP5.6+ supported webserver SQLite3 PHP extension Ioncube Loader

All modern brownsers(desktop or mobile device) are cool, Firefox, Chrome, Safari.

if you have desired product customizations or other inquires, please contact us.

How is the product licensed?

A single website require one license. A website is defined as a single domain including sub-domains that operate as a single entity. Additional software licenses must be purchased in order to install and use the software on additional websites.

Does On-premises license expire?

The on-premise license is lifetime. Therefore it won’t expire.

Can you help me to install it on my server freely?

Yes, we can help you to install DbFace on your server freely after the order received. Please make sure your webserver fits the system requirements.

Can I use the same license for more than one machine/server?

No, the licenses can only be installed once, for one machine/server.

How do I register the license code?

You can input your license key in Settings -> Preference -> Billing page.

How is the DbFace On-premise Delivered?

DbFace On-premise can be downloaded for free and it becomes a registered version once a license key/serial number is registered

Features

What are the supported databases (datasources)?

MySQL, Oracle, MS-SQL Server, DB2, Informix, ProstGreSQL, Access, Interbase, Firebird and others ODBC or OLEDB patterns. You can also upload CSV file as database source, for other data sources (Mongodb, No-SQL, Google Analytics etc.), you can write your own API connector.

I update the db an not refresh the changes in the reports, why?

DbFace caches all the report data by default. You can click the icon at bottom-right corner at a report widget to flush report. If you do not want the cache feature, open the config/config.php and change the app cache time value.

Pricing

Can I change plans anytime?

Absolutely. DbFace is a month-to-month, pay-as-you-go service. You can upgrade or downgrade plans anytime. If you’re unsatisfied for any reason, you can cancel your account within the first seven days and request a full refund, no questions asked. Please notice the return policy does NOT apply to DbFace Server.

What forms of payment do you accept?

We accept PayPal payment, please notice you can still checkout with your creditcard through PayPal without a PayPal Account. Please contact support@dbface.com if you require payment methods other than PayPal.

Do you offer a trial period?

Yes! If you’re unsatisfied for any reason, you can cancel your account within the first seven days and request a full refund, no questions asked.

What are differents between PREMIUM and ENTERPRISE?

Enterprise version provide a managed VPS sandbox that contains sperated environment. You can execute your PHP code. Click here to get more information.

Support

How to contact you if I have more questions?

You can open new ticket in our ticket system. Please feel free to drop a mail to support@dbface.com, or post your question at our forum.

Do you offer a trial period?

Yes! If you’re unsatisfied for any reason, you can cancel your account within the first seven days and request a full refund, no questions asked.

Is the Technical Support included in the licensing price?

For technical issues such as bugs, connection to your datasource, installation, version migration/upgrade, our technical Support will be provided with no additional costs.

Technical

I got “No input file selected” error?

FastCGI + apache htaccess might cause this issue, The goocher was no RewriteBase, please edit .htaccess file (located in the root directory) to


DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RedirectMatch 404 /\\.(svn|git|hg|bzr|cvs)(/|$)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|static|www|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
Options -Indexes

How to use MySQL to store DbFace own data?

DbFace stores all the own data in the user directory, especially, user/data/dbface.db (SQLite3 file). We recommend to move the MySQL for production use to gain more stable performance.

  • Create database dbface and execute SQL file config/schema.sql
  • Copy the following file (database.php) into user/data directory
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$active_group = 'default';

$query_builder = TRUE;

$db['default'] = array(
	'dsn'		=> '',
	'hostname'	=> 'your-mysql-database-host',
	'username'	=> 'your-mysql-username',
	'password'	=> 'your-mysql-password',
	'database'	=> 'your-mysql-database-name',
	'dbdriver' 	=> 'mysqli',
	'dbprefix' 	=> '',
	'pconnect' 	=> FALSE,
	'db_debug' 	=> TRUE,
	'cache_on' 	=> FALSE,
	'cachedir' 	=> '',
	'char_set'	=> 'utf8',
	'dbcollat' 	=> 'utf8_general_ci',
	'swap_pre' 	=> '',
	'autoinit' 	=> TRUE,
	'stricton' 	=> FALSE,
	'failover' 	=> array()
);

Now, DbFace will use the MySQL to store application data.

How to use Form variables in applications?

DbFace use Smarty as internal template engine. You can use simply {$form_field_name} in application script, filter conditions to delegate the form field value.

Let’s see a simple example:

We build a form which contains 2 input textbox: fromDate, endDate. Sample DbFace form

You can use the form fields in application scripts Sample DbFace form

How to host static files in DbFace?

DbFace hosting feature helps you hosting editable json files, html files or any other static files for your applications. So you do not need to setup a web server for this simple job.

Expand the Settings menu, and click Hosting menu to open hosting page: Hosting static files in DbFace

Click the plus icon or edit button to edit the static files in DbFace UI. Editing hosted files

As default settings, all hosted files are public available. You can also set X-DBFACE-MASTER-KEY, or ip whitelist to protect the hosted files. Hosting files access settings

13 -

DbFace License

Version : 9.8 (Release Notes)

Build ID: 20201227

Copyright by DbFace Co, LTD, All Rights Reserved. Visit our website to get more information

http://www.dbface.com.

Any Question, Please feel free to send a mail to support@dbface.com.

This product includes software developed by EllisLab, Inc

http://codeigniter.com/.

This product includes software developed by jQuery Team

http://www.jquery.com.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

13.1 -

Billings and Plans

DbFace support managed and on premises installation. For more pricing information, please visit https://www.dbface.com/pricing

Cloud Hosting

If you only need the data visualization features in DbFace, you can subscribe our cloud hosting.

Managed DbFace

We will help you to host DbFace in AWS. All managed hosting customers have their own CPU and memory resources.

On-premises installation

If your databases or applications only be accessable from your local intranet. You can use On-premises installation, please download the right PHP version DbFace from https://www.dbface.com/download-dbface and install it in your own web server.

13.2 -

Terms and Conditions

EFFECTIVE AS OF JULY 26, 2016

Leku Co, Ltd (“DbFace”) provides DbFace services for database application builder services (collectively “services”) to registered commercial users (hereinafter called “users”) via dbface.com.

This Agreement governs the use of the dbface web application and related client-end software (the “Software”), and any other services, software, data, and other materials made available through dbface’s services. The following Terms of Service are valid for every use of dbface’s services.

1. APPLICABILITY

1.1. These Terms of Service shall apply to all services provided by dbface. The agreement constitutes a legal binding agreement for all of dbface’s services received by its users.

1.2. The user’s general terms and conditions shall not apply, unless they are approved by dbface through a written agreement. By using this service in any manner; including, but not limited to, visiting the site or contributing content, information, or other materials to the site, you agree to be bound by this Agreement.

2. REGISTRATION AND CONDITIONS OF USE

2.1. The use of the services requires the registration as a user. The services are offered exclusively to commercial customers, therefore the registration of private persons is not permissible.

2.2. The user is obliged to provide true, accurate, current and complete registration data, and to maintain this by promptly updating the registration data, and other mandatory disclosures including payment information, when necessary. If you provide any information that is untrue, inaccurate, not current or incomplete; or if dbface has reasonable grounds to suspect that such information is untrue, inaccurate, not current, or incomplete; dbface has the right to suspend, or terminate your account and prevent your access to potentially all of the services and, or content (or other users’ access to your content), and refuse any future use of the service (or any portion thereof), or content.

2.3. If you are entering into this agreement on behalf of a company or other legal entity, you confirm that you have the authority to bind such entity to these terms and conditions, in which case the terms “you” or “your” shall refer to such entity. If you do not have such authority, or if you do not agree with these terms and conditions; you must not accept this agreement, nor use the service.

2.4. dbface’s services are online services; therefore all communications including notices, or other information will be delivered electronically, or as an announcement via the users account. The user is obliged to ensure that emails sent to the email address specified, can be received and agrees to check his email inbox at least once each working day. The user has to ensure that the settings of his email account are set accordingly, so that dbface’s emails will not be sorted out by the spam filter.

2.5. There exists no right to register with dbface. dbface reserves the right to reject any registration request without stating reasons.

3. DESCRIPTION AND MODIFICATIONS OF SERVICES

3.1. dbface provides software for database application builder as a web service via its websites (Software-as-a-Service). These services are offered exclusively online, via dbface’s interface. The user has no right to download or install the software on his systems, nor devices.

3.2. The functional range of dbface’s services complies with the current product description published on the website www.dbface.com. The use of the services is limited to the respectively ordered number of databases and user licenses. dbface may offer you additional packages for the use of further databases, or user licenses. The termination of the ordered service also applies to the additionally ordered packages.

3.3. The quality and reliability of the application results depend on the quality of the underlying data, and execution of the inner SQL query. The user is solely responsible for both the quality and the execution of the inner SQL query, as he provides the database and performs the SQL query. dbface does not review or assess the data.

3.4. If the user instructs dbface to copy the data or databases from the user’s servers to dbface’s own servers, then this is exclusively for the purpose of reducing the load of the user’s systems, and accelerating the performed analysis. dbface does not guarantee the availability and integrity of the copied data. As these data will be transferred exclusively for analysis purposes, dbface is entitled to edit or modify this data for own purposes (e.g. converting the data into another format, rounding up numbers, merging data), without providing a backup copy of the original data. The user is solely responsible for the availability and integrity of the original data.

3.5. dbface’s services consist of complex hardware and software components. All components interact with each other and are subject to permanent change due to enhancements; changing legal conditions and security updates. dbface will execute any adjustment to the hardware and software components in the best technical and professional manner as possible, but cannot guarantee any uninterrupted availability of services. dbface guarantees an average annual availability of 98% for the service platform, and an average annual availability of 95% for single services.

3.6. dbface’s services are partially based on software developed by third parties (e.g. analysis tools, scripting languages, query languages, database systems, etc.) and depend on such software regarding its functionalities. dbface has no influence on adjustments made to software from third parties. In certain cases it is possible that dbface will not be able to offer single functions of its own services anymore if the functionality of underlying third party software changed, or if certain functions and software can no longer be used due to security reasons. dbface reserves the right to adapt its services and to make any necessary changes in interest of the user in such cases.

3.7. If dbface will offer new services, or advanced functionalities of existing services within the duration of the agreement; then, the same terms of service shall apply to such new or extended services offered by dbface.

3.8. dbface is entitled to reasonably adjust the prices of its services due to changes in functionalities of these services at the beginning of the next term. dbface is obliged to announce such adjustments in pricing in written form stating the reasons for the price changes, at least 30 days prior to the next term.

4. THIRD PARTY SERVICES

dbface may offer its users analytical services of third parties. Such services will be declared as third party offers. Solely, the terms and conditions and privacy policies of these third parties apply to the use of their respective services.

  1. THIRD PARTY SERVICES dbface may offer its users analytical services of third parties. Such services will be declared as third party offers. Solely, the terms and conditions and privacy policies of these third parties apply to the use of their respective services.

5. TRIAL PERIOD

5.1. dbface may offer its users a cost-free and limited version of its services (“Free Trial”). This free trial is offered on a temporary basis and automatically ends after the free trial period has expired. If the user purchases a subscription to the service within the duration of the free trial period, the free trial ends with the order of the paid services.

5.2. A free trial will under no circumstances be automatically turned into a paid contract. Paid services have to be explicitly ordered by the user.

6. USER OBLIGATIONS

6.1. The user is obliged to maintain the confidentiality of his login, password and account details, and shall not disclose this information to third parties. The user is fully responsible for all activities that occur under his password or account. If the user becomes aware or believes that this personal information has been disclosed to an unauthorized third party, then he is obliged to immediately change this data.

6.2. The user is responsible; that he is authorized under the respective legislation and internal company guidelines, to provide dbface with the login details of the user’s company servers and systems that dbface requires, in order to make the requested analysis available. Same applies, if the user assigns dbface to copy the data stored in the systems of the user, for analytical purposes.

6.3. The user shall instruct dbface only with legitimate evaluations of data that he has lawfully collected, or otherwise obtained lawfully by the user, or by the user’s company. It is the user’s sole responsibility to ensure the compliance with the applicable data privacy laws.

7. RIGHTS OF USE

7.1. dbface grants the user, and the agreed number of additional users, for the duration of the contract, a non-exclusive and limited right of use, of the purchased services to the agreed extent via dbface’s website.

7.2. The parties agree to grant each other the use of their logo and company name as a reference on the other party’s website, or within company presentations. Each party might decline the use of their logo and company name at any time for a specific case, or generally with effect for the future. An objection requires the written form.

8. RIGHTS OF dbface IN CASE OF BREACH OF THE TERMS OF SERVICE

8.1. In case a third party can prove credibly that they have been violated in their rights, while dbface is providing its services on behalf of the user (e.g. due to access to a database, database mirroring or analysis of this database), dbface is authorized to terminate its services on its own behalf to avoid any liability until the legal situation is satisfactorily clarified.

8.2. dbface reserves the right to close the account of any user and terminate the contract, in case the user repeatedly breaches or seriously violates this terms of service.

8.3. The claim for fees of dbface persists in the case of a justified account cancellation, according to the provisions set out above.

##9. DURATION AND TERMINATION

9.1. The duration of the booked services is determined by the offer chosen. Normally the duration is two years, one year, or six months.

9.2. The booked services shall extend automatically by the original requested duration, unless otherwise agreed, or terminated by one of the parties in due time. In case the first contract term is more than a year, the renewal period will be one year.

9.3. The notice period for the termination of services is eight weeks prior to the end of the contract for a term of six months, twelve weeks for a term of one year and sixteen weeks for a term of two years.

9.4. Termination must be in writing; transmission via email must be sent to support@dbface.com. Alternatively, dbface may entitle its users to terminate their contract via their user account.

9.5. dbface has an exceptional right of termination if the user contradicts to a technical required change of service, according to 3.7.

10. TERMS OF PAYMENT

10.1. Payment must be made monthly, quarterly or yearly, in advance; unless otherwise mutually agreed upon in an order form, or within an individual written agreement between both parties.

10.2. dbface shall provide the user with an electronic invoice.

10.3. If the user cannot make the payment on the agreed date, dbface reserves the right to temporarily deny access to the user’s account, and to discontinue the services. dbface is entitled to demand reimbursement of all costs and expenses arising from the delayed payment of a user (e.g. fees for charge backs, collection expenses).

11. AVAILABILITY OF SERVICES

11.1. If the unavailability of services, or of a single service is based on intent or gross negligence on parts of dbface, or of one of dbface’s agents; dbface cannot refer to the compliance to availability commitments according to section 3.6.

11.2. dbface is not responsible for nonconformity with the availability commitments according to section 3.6, if the inaccessibility is based on; force majeure, technical problems on parts of third parties that are not agents of dbface, or due to an illegal attack on dbface, or one of dbface’s commissioned service providers.

12. LIABILITY

12.1. dbface shall be liable without limitation to pay compensation for violation of contractual and non-contractual obligations, only in case of intent or gross negligence.

12.2. dbface shall only be held liable for cases involving the intent and gross negligence of non-executive agents, if such agents have violated essential contractual obligations.

12.3. dbface shall not be liable for breaches of nonessential contractual obligations through simple negligence by its management bodies, executive officers, employees, or other agents.

12.4. Essential obligations are obligations, that are essential for the due, and proper implementation and fulfillment of the contract, and with those contract partners can reasonably and regularly rely on.

12.5. In case of infringements of important contractual obligations, the liability shall be limited to the foreseeable loss for such type of contract.

12.6. The above limitations of liability do not apply to dbface’s liability with regards to; intent or gross negligence, guaranteed quality features, injury to life, body or health, or product liability laws.

13. DATA PRIVACY

13.1. dbface’s data privacy policy applies to the use of dbface’s services.

13.2. dbface creates anonymized user statistics for user-oriented design of services, error detection, and marketing purposes. The user statistics do not contain any personal data of the user, or related data from the user’s databases. The user has the right to object the anonymized analysis of his user behavior in written form, with effect for the future. Such objection shall be sent to support@dbface.com.

13.3. dbface is obliged to automatically delete any personal data of the user at latest 30 days after expiration of the contract unless there are legal storage periods in individual cases.

14. GENERAL

14.1. dbface’s employees are not authorized to make any verbal agreements with the user, which are not conform to these Terms of Service Agreement.

14.2. If any provision of these Terms and Conditions be or become invalid, the validity of the remaining provisions shall remain unaffected. Instead of the ineffective regulation, an effective regulation whose economic purpose is as close as possible to the parties, shall apply.

14.3. To the extent that the user is a merchant, a legal entity under public law or a public special asset; China is the place of jurisdiction for all disputes arising from contractual relationships between the user and dbface.

13.3 -

On-premises License

DbFace End-User License Agreement

IMPORTANT – READ CAREFULLY: This End-User License Agreement (“EULA”) is a legal agreement between you and DbFace Corp to regulate your use of the DbFace software and its related components. If you do not agree to all of the terms of this EULA, you should not download, install or use the DbFace software and its related components. If you have already downloaded or installed the DbFace Software, you should remove it from your system and destroy all copies thereof.

1. Definitions in this EULA

“Licensor” means DbFace Corporation. “Licensee” means an individual or a legal entity exercising rights under, and complying with all of the terms and conditions of this EULA or future versions of this EULA. “Software” means the software program known as DbFace Enterprise edition in binary form, including its documentation, any third party software programs that are owned and licensed by parties other than Licensor and that are either integrated with or made part of Software (collectively, “Third Party Software”). “License Certificate” means evidence of a license provided by Licensor to Licensee in electronic or printed form, and defininig the optional rights related to the Software. “License Key” means a unique key-code file, provided by Licensor or its authorized representatives, that enables the Licensee to use the Software.

2. Ownership

The Software is the property of Licensor or its suppliers. The Software is licensed, not sold. Title and copyrights to the Software, in whole and in part, all copies thereof and all modifications, enhancements, derivatives and other alterations of the Software regardless of who made any modifications, if any, are, and will remain, the sole and exclusive property of Licensor.

3. Third Party libraries

The Software may contain third party libraries which may require notices and/or additional terms and conditions. You have to read and accept a driver EULA in the libraries settings dialog appearing before the first usage.

4. Grant of Rights

According to the License Certificate, Licensor grants Licensee a non-exclusive, non-transferable rights to use the Software, and sub-sequent versions thereof, under certain obligations and limited rights as set forth in this EULA. Licensee may: Use each License Key on more than one computer system, as long as it is always used by the same user. Each new user of the Software requires an additional License Key. Make copies of the Software and the License Key as reasonably necessary for the use authorized by this EULA, including backup and/or archival purposes. No other copies may be made. Each copy must reproduce all copyright and other proprietary rights notices on or in the Software Product. Notwithstanding the non-transferability, Licensee may transfer a license to another user in the same organization, when, and only when, the designated Licensee (user) moves to non-database tasks or leaves the organization.

5. Evaluation License

A time limited version of the Software, Evaluation License, is provided for a period of fourteen (14) days (“Trial Period”) from the date of issuing a temporary evaluation License Key. The time limited version is subject to all terms set forth in this EULA with the exception that the Evaluation License is not for general commercial use. The Software contains a feature that will automatically disable the Software after the Evaluation Period has expired. Licensee may not disable, destroy, or remove this feature of the Software, and any attempt to do so will be in violation of this EULA and immediately terminate this agreement.

6. License Restrictions

Licensee may not: Reverse engineer, decompile, disassemble, modify, translate, attempt to discover the source code of the Software in whole or in part. Distribute, copy, publish, assign, sell, bargain, convey, transfer, pledge, lease or grant any further rights to use the Software. Modify or create derivative work based Software in whole or in part Tamper with, alter, disable or circumvent the Software’s built-in license verification and enforcement capabilities. Remove of alter any trademark, copyright, logo or other proprietary notices in the Software. Disclose the License Key in any way.

7. Disclaimer of Warranty

Unless specified in this EULA, all express or implied conditions, representations and warranties, including any implied warranty of fitness for a particular purpose are disclaimed, except to the extent that these disclaimers are held to be legally invalid.

8. Limitation of Liability

To the extent not prohibited by law, in no event will Licensor (or any third-party-developer) be liable for any lost revenue, profit or data, or for special, indirect, consequential, incidental or punitive damages, however caused regardless of the theory of liability, arising out of or related to the use of or inability to use Software, even if Licensor has been advised of the possibility of such damages. In no event will Licensor’s liability to Licensee, whether in contract, tort (including negligence), or otherwise, exceed the amount paid by Licensee for Software under this EULA. The foregoing limitations will apply even if the above stated warranty fails of its essential purpose. Some states do not allow the exclusion of incidental or consequential damages, so some of the terms above may not be applicable to Licensee.

9. Termination

This EULA is effective until terminated. Licensee may terminate this EULA at any time by destroying all copies of Software. This agreement may be terminated by either party if the other party commits a material breach. Either party will have thirty (30) calendar days following the receipt of written notice to remedy any material breaches. Immediately upon termination, any Accessible Code in possession, custody or control of Licensee must be destroyed and written confirmation of such destruction provided to Licensor. Licensee agrees that upon termination of this EULA for any reason, Licensor may take actions so that Software no longer operates.

10. Severability

If any provision of this EULA is held to be unenforceable, this EULA will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this EULA will immediately terminate.

11. Integration

This EULA is the entire agreement between Licensee and Licensor relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this EULA. No modification of this EULA will be binding, unless in writing and signed by an authorized representative of each party.

12. Reservation of rights

All rights not expressly granted in this EULA are reserved by Licensor. Licensor reserves the right at any time to cease the support of the Software and to alter prices, features, specifications, capabilities, functions, licensing terms, release dates, general availability or other characteristics of the Software.

13. Licensor Representations

Licensor represents, warrants, and covenants that it and each of its affiliates and their respective agents and subcontractors (i) use and will continue to use commercially reasonable efforts to ensure that there is no slavery, human trafficking, and/or child or forced labor in any part of their respective businesses or supply chain; (ii) have not, and their respective directors, officers, and employees have not, been convicted of any offense involving slavery, human trafficking, and/or child or forced labor; and (iii) are not currently and have not in the past been the subject of any investigation, inquiry, or enforcement proceedings in relation to an alleged offense in connection with slavery, human trafficking, and/or child or forced labor.

13.4 -

Privacy Policy