Common

A feature provider is defined in a configuration file by an object with the following properties. Properties without default are mandatory.

NameDefaultDescriptionTypeSince
id
Unique identifier of the entity, has to match the filename. Allowed characters are (A-Z, a-z), numbers (0-9), underscore and hyphen.
string
v2.0
providerType
Always FEATURE.
string
v2.0
providerSubType
SQL for SQL DBMS as data source, WFS for OGC Web Feature Service as data source.
string
v2.0
featureProviderType
Deprecated See providerSubType.
string
v2.0
nativeCrs
CRS84
Coordinate reference system of geometries in the dataset. The EPSG code of the coordinate reference system is given as integer in code. forceAxisOrder may be set to use a non-default axis order: LON_LAT uses longitude/east as first value and latitude/north as second value, LAT_LON uses the reverse. NONE uses the default axis order and is the default value. Example: The default coordinate reference system CRS84 would look like this: code: 4326 and forceAxisOrder: LON_LAT.
object
v2.0
nativeTimeZone
UTC
A timezone ID, such as Europe/Berlin. Is applied to temporal values without timezone in the dataset.
string
v2.0
typeValidation
NONE
Optional type definition validation with regard to the data source (only for SQL). NONE means no validation. With LAX the validation will fail and the provider will not start, when issues are detected that would definitely lead to runtime errors. Issues that might lead to runtime errors depending on the data will be logged as warning. With STRICT the validation will fail for any detected issue. That means the provider will only start if runtime errors with regard to the data source can be ruled out.
string
v2.0
labelTemplate
string
v2.0
extensions
[]
Definition of extensions, see Extensions.
array
v2.0
types
{}
Definition of feature types. The entries have to be schema definitions with type: OBJECT and at least one property with role: ID.
object
v2.0
fragments
{}
Definition of reusable schema fragments that can be referenced using schema in types. The entries are arbitrary schema definitions.
object
v2.0
auto
false
Option to derive types definitions automatically from the data source. When enabled types must not be set.
boolean
v2.0
autoPersist
false
Option to persist definitions generated with auto to the configuration file. The Store must not be READ_ONLY for this to take effect.
boolean
v2.0
autoTypes
[]
List of source types to include in derived types definitions when auto: true. Currently only works for SQL.
array
v2.0

Schema Definitions

NameDefaultDescriptionTypeSince
refType
string
v2.0
refUriTemplate
string
v2.0
sourcePath
The relative path for this schema object. The syntax depends on the provider types, see SQL or WFS.
string
v2.0
path
Deprecated See sourcePath.
string
v2.0
sourcePaths
[sourcePath]
The relative paths for this schema object. The syntax depends on the provider types, see SQL or WFS.
array
v2.0
type
STRING/OBJECT
Data type of the schema object. Default is OBJECT when properties is set, otherwise it is STRING. Possible values: - FLOAT, INTEGER, STRING, BOOLEAN, DATETIME, DATE for simple values. - GEOMETRY for geometries. - OBJECT for objects. - OBJECT_ARRAY a list of objects. - VALUE_ARRAY a list of simple values.
string
v2.0
role
null
ID has to be set for the property that should be used as the unique feature id. As a rule that should be the first property ion the properties object. Property names cannot contain spaces (" ") or slashes ("/"). Set TYPE for a property that specifies the type name of the object.
string
v2.0
valueType
STRING
Only needed when type is VALUE_ARRAY. Possible values: FLOAT, INTEGER, STRING, BOOLEAN, DATETIME, DATE
string
v2.0
geometryType
null
The specific geometry type for properties with type: GEOMETRY. Possible values are simple feature geometry types: POINT, MULTI_POINT, LINE_STRING, MULTI_LINE_STRING, POLYGON, MULTI_POLYGON, GEOMETRY_COLLECTION and ANY
string
v2.0
objectType
Optional name for an object type, used for example in JSON Schema. For properties that should be mapped as links according to RFC 8288, use Link.
string
v2.0
label
Label for the schema object, used for example in HTML representations.
string
v2.0
description
Description for the schema object, used for example in HTML representations or JSON Schema.
string
v2.0
unit
The unit of measurement of the value, only relevant for numeric properties.
string
v2.0
constantValue
null
Might be used instead of sourcePath to define a property with a constant value.
string
v2.0
scope
null
Optional scope for properties that should only be used when either reading (QUERIES) or writing (MUTATIONS) features.
string
v2.0
schema
null
Reference to an external schema definition. The default resolver will resolve references to entries in fragments e.g. #/fragments/example. For additional resolvers see Extensions.
string
v2.0
ignore
false
Option to completely ignore this schema object. Main purpose is to ignore parts of schemas referenced with schema.
boolean
v2.0
transformations
[]
Optional transformations for the property, see transformations.
array
v2.0
constraints
{}
Optional description of schema constraints, especially for JSON schema generation. See Constraints.
object
v2.0
forcePolygonCCW
true
Option to disable enforcement of counter-clockwise orientation for exterior rings and a clockwise orientation for interior rings (only for SQL).
boolean
v2.0
isQueryable
see description
Properties that are not of type OBJECT or OBJECT_ARRAY are by default eligible as queryables. This setting can be used to declare a property as ineligible, for example, if the property is not optimized for use in queries. If an eligible property can actually be queried is decided by the provider implementation, that might not be feasible due to technical reasons.
boolean
v2.0
isSortable
see description
Only the direct properties of a feature type that are of type STRING, FLOAT, INTEGER, DATE, or DATETIME are eligible as sortables. This setting can be used to declare a property as ineligible, for example, if the property is not optimized for use in queries. If an eligible property can actually be used as sortable is decided by the provider implementation, that might not be feasible due to technical reasons.
boolean
v2.0
isLastModified
see description
Identifies a DATETIME property as a property that contains the timestamp when the feature was last modified. This information is used in optimistic locking to evaluate the pre-conditions, if a mutation request includes a Last-Modified header.
boolean
v2.0
properties
Only for OBJECT and OBJECT_ARRAY. Object with the property names as keys and schema objects as values.
object
v2.0
merge
[]
If only some of the properties are defined in an external schema, or if some of the properties should be mapped to a different table, this provides a convenient way to define these properties alongside the regular properties. The option takes a list of schema objects, but only sourcePath, schema and properties are considered. For details see Mapping Operations.
array
v2.0
allOf
[]
Deprecated See merge.
array
v2.0
coalesce
[]
If the value for a property may come from more than one sourcePath, this allows to choose the first non-null value. This takes a list of value schemas, for details see Mapping Operations.
array
v2.0
concat
[]
If the values for an array property may come from more than one sourcePath, this allows to concatenate all available values. This takes a list of value or value array schemas, for details see Mapping Operations.
array
v2.0

Connection Info

For data source specifics, see SQL and WFS.

Example Configuration (SQL)

See the feature provideropen in new window of the API Vineyards in Rhineland-Palatinate, Germanyopen in new window.

Mapping Operations

Mapping operations may be needed when the source and target schema structure diverge too much.

Merge

If only some of the properties are defined in an external schema, or if some of the properties should be mapped to a different table, this provides a convenient way to define these properties alongside the regular properties.

Examples

Define only some properties using an external JSON schema

example:
  sourcePath: /main
  type: OBJECT
  allOf:
  - properties:
      id:
        sourcePath: id
        type: INTEGER
        role: ID
  - sourcePath: '[JSON]names'
    schema: names.json

Using columns from a joined table in the main feature

example:
  sourcePath: /main
  type: OBJECT
  allOf:
  - properties:
      id:
        sourcePath: id
        type: INTEGER
        role: ID
  - sourcePath: '[id=id]names'
    properties:
      name1:
        sourcePath: name1
        type: STRING
      name2:
        sourcePath: name2
        type: STRING

Coalesce

If the value for a property may come from more than one sourcePath, this allows to choose the first non-null value.

Example


foo:
  type: OBJECT
  properties:
    bar:
      type: VALUE
      coalesce:
      - sourcePath: bar_stringValue
        type: STRING
      - sourcePath: bar_integerValue
        type: INTEGER
      - sourcePath: bar_booleanValue
        type: BOOLEAN

Type compatibility

Constraints on the types of inner properties depending on the type of the outer property are shown in the table below.

Outer typeValid inner typesRemarks
VALUE
INTEGER, FLOAT, STRING, BOOLEAN, DATETIME, DATE
INTEGER
INTEGER
FLOAT
FLOAT
STRING
STRING
BOOLEAN
BOOLEAN
DATETIME
DATETIME
DATE
DATE
OBJECT
OBJECT
Different objectType with different schemas can be used
FEATURE_REF
FEATURE_REF
Different refType can be used

Concat

If the values for an array property may come from more than one sourcePath, this allows to concatenate all available values.

Example


foo:
  type: OBJECT
  properties:
    bar:
      type: FEATURE_REF_ARRAY
      concat:
      - sourcePath: '[id=foo_fk]baz1/id'
        refType: baz1
      - sourcePath: '[id=foo_fk]baz2/id'
        refType: baz2
      - sourcePath: '[id=foo_fk]bazn/id'
        refType: bazn

Type compatibility

Constraints on the types of inner properties depending on the type of the outer property are shown in the table below.

Outer typeValid inner typesRemarks
VALUE_ARRAY
VALUE_ARRAY, INTEGER, FLOAT, STRING, BOOLEAN, DATETIME, DATE
OBJECT_ARRAY
OBJECT_ARRAY, OBJECT
Different objectType with different schemas can be used
FEATURE_REF_ARRAY
FEATURE_REF_ARRAY, FEATURE_REF
Different refType can be used