Fulcrum Desktop Plugins

Fulcrum Desktop was designed to be easily extended via a plugin architecture. The core function of Desktop is an intelligent synching mechanism, which can be extended to build out custom integrations with databases, web services, and more.

Database Plugins

Fulcrum Desktop syncs with an internal SQLite database, similar to the database embedded within the mobile applications. This internal fulcrum.db database is not very user-friendly, so you will likely want to install one of the database plugins, which include more user-friendly app record views.

PostgreSQL

PostgreSQL is a popular and powerful, open source object-relational database management system (ORDBMS) with an emphasis on extensibility and standards compliance. Combined with the PostGIS spatial database extension, Postgres powers Fulcrum’s back-end database.

Once this plugin is installed, the sync command will keep your PostgreSQL database in sync with your Fulcrum Organization. Source code on GitHub.

Options:

Option

Description

Required

Default

--version

Show version number

false

na

--help

Show help

false

na

--org

organization name

true

na

--pg-host

postgresql server host

false

localhost

--pg-port

postgresql server port

false

5432

--pg-user

postgresql user

false

na

--pg-password

postgresql password

false

na

--pg-database

postgresql database name

false

fulcrumapp

--pg-schema

postgresql schema for the data

false

public

--pg-schema-views

postgresql schema for the friendly views

false

public

--pg-before-function

postgresql function to call before the sync starts. It’s invoked as SELECT function_name();

false

na

--pg-after-function

postgresql function to call after the sync finishes. It’s invoked as SELECT function_name();

Install the plugin:

OS

Command

macOS / Linux

fulcrum install-plugin --name postgres

Windows

.\fulcrum.cmd install-plugin --name postgres

Setup the database:

Be sure you have a database already created with the PostGIS extension installed. You can name your database “fulcrumapp” to use the default settings, and execute the following query to enable PostGIS: CREATE EXTENSION postgis;

Keep the database in sync with your Organization:

GeoPackage

GeoPackage is an open, standards-based, platform-independent, portable, self-describing, compact format for transferring geospatial information. Built on the SQLite platform, the GeoPackage standard defines the schema for a GeoPackage, including table definitions, integrity assertions, format limitations, and content constraints.

Once this plugin is installed, the sync command will keep your GeoPackage database in sync with your Fulcrum Organization. Source code on GitHub.

Options:

Option

Description

Required

Default

--version

Show version number

false

na

--help

Show help

false

na

--org

organization name

true

na

--gpkg-name

the name of the .gpkg file (not a full file path, just the name)

(org name)

na

--gpkg-path

the path to the directory to create the .gpkg file

(depends on OS)

na

--gpkg-drop

drop and re-create the tables

true

na

--gpkg-underscore-names / --no-gpkg-underscore-names

create the views with underscored names instead of the app name

false

na

--gpkg-user-info / --no-gpkg-user-info

add user info to the app views (updated_by_email and created_by_email), incurs a significant performance penalty for large accounts. This data can still be joined via SQL if it’s omitted.

true

na

--gpkg-joined-names / --no-gpkg-joined-names

add the project name and assigned to email to the app views (_assigned_to_email and _project_name), incurs a significant performance penalty for large accounts. This data can stil be joined via SQL if it’s omitted.

Note:

If you come across this error while installing a plugin on older Windows operating systems - it may mean that your system needs support for Transport Layer Security (TLS) 1.1 and TLS 1.2. Consider reviewing (particularly the Easy fix section and download) that page for a possible update.