Component: Custom Fields¶
Custom Fields are additional metadata fields that are added to Dataiku DSS objects such as datasets, recipes, etc.
To start adding Custom Fields, we recommend that you use the plugin developer tools (see the tutorial for an introduction). In the Definition tab, click on “+ ADD COMPONENT”, choose ”Custom Fields”, and enter the identifier for your new Custom Fields. You’ll see a new folder custom-fields
and will have to edit the custom-fields.json
file.
A basic Custom Fields’s definition looks like
{
"meta" : {
"label" : "Custom fields test",
"description" : "Custom Fields",
"icon" : "icon-puzzle-piece"
},
"customFields" : [
{
"applyToObjects" : {
"mode": "SOME",
"includedObjectTypes": ["PROJECT", "DATASET"]
},
"field": {
"name": "custom_field_1",
"type": "SELECT",
"defaultValue": "UNSURE",
"selectChoices": [
{
"value": "YES",
"label": "Yes"
},
{
"value": "UNSURE",
"label": "Not sure"
},
{
"value": "NO",
"label": "No"
}
]
}
}
]
}
The “meta” field is similar to all other kinds of DSS components.
Defining a set of Custom Fields¶
The “customFields” field is an array listing all the Custom Fields you want to add. The definition of one Custom Fields is composed of two main fields that are mandatory: “applyToObjects” and “field”.
Objects definition¶
A Custom Field can be applied to several types of object in Dataiku DSS among:
PROJECT
DATASET
RECIPE (including visual and code recipes)
SQL_NOTEBOOK
JUPYTER_NOTEBOOK
ANALYSIS
SAVED_MODEL
INSIGHT
MANAGED_FOLDER
LAMBDA_SERVICE (an API Designer service)
SCENARIO
DASHBOARD
WEB_APP
REPORT (a Rmarkdown report)
ARTICLE (a wiki article)
CONNECTION (a Dataiku DSS connection)
COLUMN (a column within a dataset)
There are 3 modes on how to assign a Custom Field to Dataiku DSS object:
ALL : include all types of objects
SOME : include the types of objects listed in the
includedObjectTypes
fieldEXCLUDING : include all types of objects except the ones listed in the
excludedObjectTypes
field
For instance:
"applyToObjects" : {
"mode": "ALL"
}
"applyToObjects" : {
"mode": "SOME",
"includedObjectTypes": ["PROJECT", "DATASET"]
}
"applyToObjects" : {
"mode": "EXCLUDING",
"excludedObjectTypes": ["PROJECT", "DATASET"]
}
Custom Field definition¶
The fields defining a Custom Field are the following:
name : the unique name of the field
type : the type of the field among:
STRING : a single-line text
INT : an integer number
DOUBLE : a floating-point number
BOOLEAN : a binary (yes/no) choice
PASSWORD : a hidden single-line text
SELECT : a selection between multiple choices
COLUMN : a selection of a column from an input schema (in a recipe context)
COLUMNS : a multiple selection of columns from an input schema (in a recipe context)
MAP : a complex object
KEY_VALUE_LIST : a key/value pair list
TEXTAREA : a multiple-line text
ARRAY : a complex objects list
PROJECT : a selection of a project
DATASET : a selection of a dataset
DATASETS : a multiple selection of datasets
DATASET_COLUMN : a selection of a column from a specific dataset
DATASET_COLUMNS : a multiple selection of columns from a specific dataset
CONNECTIONS : a multiple selection of connections
FOLDER : a selection of a managed folder
MODEL : a selection of a saved model
SCENARIO : a selection of a scenario
API_SERVICE : a selection of an API service
API_SERVICE_VERSION : a selection of a version of a specific API service
BUNDLE : a selection of a bundle
VISUAL_ANALYSIS : a selection of an analysis
CLUSTER : a selection of a cluster
SEPARATOR : an horizontal line that is used to separate a list of fields that has no input value
label : a short label of the field
description : a longer description of the field
defaultValue : the default value of the field
mandatory : true or false whether the field should be mandatory
canSelectForeign : true of false whether suggested datasets include foreign datasets (for DATASET and DATASETS types)
minD : the minimum possible value (for DOUBLE type)
maxD : the maximum possible value (for DOUBLE type)
minI : the minimum possible value (for INTEGER type)
maxI : the maximum possible value (for INTEGER type)
columnRole : the input role of a recipe that is used to retrieve the columns of the corresponding input dataset (for COLUMN and COLUMNS types)
visibilityCondition : a condition run in the UI that can be used to hide or display the field
datasetParamName : the Custom Field name which contains the dataset from which columns are suggested (for DATASET_COLUMN and DATASET_COLUMNS types)
apiServiceParamName : the Custom Field name which contains the API service from which API service version are suggested (for API_SERVICE_VERSION type)
iconInDatasetPreview : the CSS icon class that is displayed next to the dataset name in the dataset UI (for SELECT type)
selectChoices : a list of possible choices composed of the following fields (for SELECT type)
value : the value of the choice
label : a short label of the choice
icon : an icon for the choice
color : a color for the choice
showInColumnPreview : true or false whether to display the field value in the explore UI if the field has this value
clusterPermissions : a list of permissions among (USE, UPDATE, MANAGE_USERS) (for CLUSTER type)
For instance:
{
"field" : {
"name": "number_of_models",
"type": "INT",
"label": "Enter the number of models",
"description": "Enter the number of models",
"defaultValue": 0,
"minI": 0,
"maxI": 10
}
}
{
"field" : {
"name": "project_state",
"type": "SELECT",
"label": "Project state",
"description": "Which state in the lifecycle is the project?",
"defaultValue": "BEGINNING",
"selectChoices": [
{
"value": "BEGINNING",
"label": "Beginning!"
},
{
"value": "WORK_IN_PROGRESS",
"label": "Work in progress..."
},
{
"value": "FINISHED",
"label": "Finished :)"
}
]
}
}
{
"field" : {
"name": "main_project",
"type": "PROJECT",
"label": "Main project",
"description": "Which project is the main project of the instance?"
}
}