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'
);
Name | Required | Description |
id | Yes | Plugin ID (unique) |
author | No | Plugin author |
author_url | No | Plugin author website |
name | Yes | The plugin name |
description | Yes | The plugin description |
version | Yes | The plugin version |
namespace | Yes | The plugin php calss namespace |
API.php#
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 Name | Parameter | Description |
setup | $config | Pass the database configuration |
get_schemas | void | Return all the views |
get_datas | $shema | Return 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.
Now, we can make a new connection that use the plugin.
Field | Description |
Database Type | The data source plugin name |
Name | The name that identify the connection |
Database Name | Internal name that will pass to plugin |
Click "Submit" button, DbFace will create a new connection that use your data source plugin.
Click the "Sync" button to run the plugin.
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.