Skip to main content

Set of gooddata-flight-server methods to host custom functions for GoodData Cloud

Project description

GoodData FlexFun

The GoodData FlexFun package is a GoodData Flight Server-compatible extension that provides a framework for hosting custom pluggable functions called FlexFuns. These can be used to act as a dataset for GoodData FlightRPC data sources.

What is a FlexFun?

In essence, FlexFun is a class that provides a set of methods that can be called by the GoodData Cloud when data is requested from the corresponding FlightRPC data source dataset.

Each FlexFun provides a name used to identify the FlexFun in the GoodData Cloud. FlexFuns can provide a set of metadata that can further influence when and how they are called by GoodData Cloud. They also provide a schema (defined in terms of pyarrow.Schema) that describes the shape of data that the FlexFun can provide. Finally, they provide a set of methods that can be called to provide data in response to queries:

  • call - called to provide data in response to a query
  • cancel - called to cancel a query if GoodData Cloud decides to stop requesting data (e.g. if there is a timeout)
  • on_load - called when the FlexFun is created before any call or cancel methods are called

Getting Started using the FlexFun Template

The easiest way to get started writing FlexFuns is to use the template repository. It provides a simple example of a FlexFun that can be used as a starting point for your own FlexFun with all the necessary infrastructure in place. It also has a README that explains how to get started with the template and some general tips on how to write FlexFuns.

Getting started using the FlexFun package directly

Install the package alongside the gooddata-flight-server using pip:

pip install gooddata-flight-server gooddata-flexfun

Next, update the GoodData Flight Server configuration to load the FlexFun methods.

[flexfun]

# specify one or more modules that contain your FlexFun implementations
#
functions = [
    "flexfun.your_function"
]

Then when running the GoodData Flight Server, use the --methods-provider option to load the FlexFun methods. For example:

#!/bin/bash

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
SERVER_CMD="${SCRIPT_DIR}/.venv/bin/gooddata-flight-server"

export PYTHONPATH="${SCRIPT_DIR}/src"
export CONFIG_ENV="${1:-dev}"

$SERVER_CMD start \
              --methods-provider gooddata_flexfun \
              --config \
                config/${CONFIG_ENV}.server.toml \
                config/flexfun.config.toml \
              --logging-config config/default.logging.ini \
              --dev-log

This will start the GoodData Flight Server with the FlexFun methods loaded.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gooddata_flexfun-1.29.1.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

gooddata_flexfun-1.29.1-py3-none-any.whl (47.6 kB view details)

Uploaded Python 3

File details

Details for the file gooddata_flexfun-1.29.1.tar.gz.

File metadata

  • Download URL: gooddata_flexfun-1.29.1.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for gooddata_flexfun-1.29.1.tar.gz
Algorithm Hash digest
SHA256 754a069ece1f194b3a62bb0dbfa7efe67dd9238958625c11ee6ea40dc428d982
MD5 0d6858ffa70a5e837e96dd85253b4b07
BLAKE2b-256 b94f8a8d31e8b0d3d7652c32983a2425f32cbd0a6206d01274363b5fc58257dd

See more details on using hashes here.

File details

Details for the file gooddata_flexfun-1.29.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gooddata_flexfun-1.29.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e4ef1799ac7e6076ec3c80c25227f59b60219b1ec8c5be732dba409ead9318a
MD5 a9d8e8a728b525a435bb1a765cd7659b
BLAKE2b-256 896663040154543a236690577e2bd8e9f1028f7e50716033c6d942b69b9e3db0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page