An adapter facilitates the integration of a third-party application with EdgeCore. The application definition file, appdef.json
, primarily encapsulates all the metadata required to extend EdgeCore. It defines the connection and feed types to be made available to administrative users of EdgeCore to be used for configuring the pipeline.
The Application:AppDefDO
The application definition encapsulates all the definitions. Some of the top-level fields are used to generate a connection type for the adapter.
Attribute | Required | Type | Default | Description |
name |
Yes | String | n/a | A unique identifier for this application. This will be used as the name of the Connection type for this application. |
connectionTypeName |
No | String | GenericWebContentConne ction | Name of the Connection type which this one will extend. Refer to the table below for a list of the connection types edgeSuite defines. |
feedDefs |
No | List<AppFeedDefDO> | empty list | The pool of Feed type definitions available to be used with each version. This is a separate list to avoid having to repeat definitions for Feed types that are used in multiple versions (probably the case for most types). |
serverActionDefs |
No | List<ServerActionD efDO> | empty list | The pool of Server Action type definitions available to be used with each version. This is a separate list to avoid having to repeat definitions for Server Action types that are used in multiple versions (probably the case for most types). |
versionDefs |
No | List<AppVersionDef DO> | empty list | Definitions of distinct versions. For each version of the target application where a different set of feeds types should be made available, or different authentication and/or content rules need to be applied. |
versionMappings |
No | List<AppVersionMap pingDO> | empty list | Some versions of the application are equivalent from the point of view of our integration artifacts (feed type definitions, authentication, and content rules), but we want them to be listed explicitly when configuring a connection. One reason for this is that a common rule can be used for two different versions, but we might have conditional logic within the rule that depends on the value of the application version property. |
defaultVersion |
No | String | null | When a new connection for this application is created, which application version should be selected by default. |
edgeSuite Connection Types
These are the connection types edgeSuite defines as part of the core product.
Type Name | Abstract | Category | Description |
GenericWebContentConn ection | No | Web | A generic web content connection with no specific authentication or content handling. All web adapters extend this type, and normally define their own SSO handler and specific content-handling rules. |
Web Data | No | Data | Web Data connections for HTTP-based APIs. |
Database Basic Connection | Yes | Data | Support custom DB types where Datasource-based configuration can be used. |
Database Urlbuilder Connection | Yes | Data | Support custom DB types where Datasource-based configuration is not available. |
DB2 | No | Data | IBM DB2 connections. Extend this for applications that have a DB2 backend. |
H2 | No | Data | H2 database. Extend this for applications that have an H2 backend. |
MySQL | No | Data | MySQL database. Extend this for applications that have a MySQL backend. |
Oracle URL | No | Data | Oracle database. Extend this for applications that have an Oracle backend. |
Oracle | No | Data | Oracle database. Extend this for applications that have an Oracle backend. |
Postgres | No | Data | Postgres database. Extend this for applications that have a Postgres backend. |
SQLServer | No | Data | MS SQLServer database. Extend this for applications that have an SQLServer backend. |
Sybase | No | Data |
Sybase database. Extend this for applications that have a Sybase backend. |
ServerFilesystem | No | Data | A connection to the local server filesystem. |
jSONAR | No | Data |
Connect to a jSONAR backend. |
ShellExec | No | Data |
Execute shell commands on the server operating system. |
Javascript Connection |
No | Data |
Execute JavaScript to generate arbitrary datasets. |
Feed Types: AppFeedDefDO
The feedDefs
field of the top-level AppDefDO
is a list of AppDefFeedDO-derived
objects.
Attribute | Required | Type | Default | Description |
name |
Yes | String | n/a | A unique identifier for this feed type. |
displayName |
Yes | String | n/a | |
extendsType |
No | String | GenericWebContentFe ed | Name of the feed type which this type will extend. |
startUri |
No | String | (inherited) | Default value for the Start URI property when a feed of this type is created |
rule |
No | String | (inherited) | Default selected rule when a feed of this type is created. Though strictly speaking this is not required, the value specified here should be consistent with the list of rules for each related AppVersionDefDO. |
ssoSessionScope |
No | String | (inherited) | Default value for the Session Scope property when a feed of this type is created. |
appProperties |
No | List<AppPropertyD efDO> | empty list | List of properties specific to this feed type (and those that extend it). |
nodeVars |
No | List<AppFeedNodeV arDefDO> | empty list | List of node variables that need to be created for this feed type. Normally these will be referenced in one or more of the default values for properties of feeds of this type. |
Web Feed Types
Web – content and data – feeds have the following fields in common:
Attribute | Required | Type | Default | Description |
uri |
No | String | (inherited) | Default value for the Start URI property when a feed of this type is created |
rule |
No | String | (inherited) | Default selected rule when a feed of this type is created. Though strictly speaking this is not required, the value specified here should be consistent with the list of rules for each related AppVersionDefDO . |
Web content feed types are represented by the WebContentFeedDefDO
class. Web data feed types are represented by the WebDataFeedDefDO
class. In addition to the fields above, the web data feed types are defined by the fields below:
Attribute | Required | Type | Default | Description |
parserType |
Yes | String | n/a | The parser to be used for feeds of this type. Can be one of:
|
headers
|
No | KeyValuePairsDO | n/a | A list of header names and values to be specified by default for feeds of this type. Each element of the list is a KeyValuePairDO , which has two string fields: key and value . |
Any other properties of the feed type being extended (typically the generic web data feed), or the specified parser type, can be overridden by specifying the appProperties
field.
FileFeedDefDO and ShellFeedDefDO
Both FileFeedDefDO
and ShellFeedDefDO
allow the specification of a parser. Any other properties can be overridden, or added, via the appProperties
field.
Attribute | Required | Type | Default | Description |
parserType |
Yes | String | n/a | The parser to be used for feeds of this type. Can be one of:
|
SqlFeedDefDO
The SqlFeedDefDO
feed definition doesn’t have any special fields, but it does imply a value – “SQL
” – for the extendsType
field. As with the other feed definitions, additional properties can be overridden or added using the appProperties
field.
Server Action Types
The serverActionDefs
field of the top-level AppDefDO
is a list of AbstractServerActionDefDO
-derived objects.
Attribute | Required | Type | Default | Description |
name |
Yes | String | n/a | A unique identifier for this feed type. |
displayName |
Yes | String | n/a | |
extendsType |
No | String | Action Base | Name of the feed type which this type will extend. |
appProperties |
No | List<AppPropertyD efDO> | empty list | List of properties specific to this feed type (and those that extend it). |
nodeVars |
No | List<AppFeedNodeV arDefDO> | empty list | List of node variables that need to be created for this feed type. Normally these will be referenced in one or more of the default values for properties of feeds of this type. |
Web Data Action Types: WebDataServerActionDefDO
Attribute | Required | Type | Default | Description |
uri |
No | String | (inherited) | Default value for the URI property when a feed of this type is created |
rule |
No | String | (inherited) | Default selected rule when a feed of this type is created. Though strictly speaking this is not required, the value specified here should be consistent with the list of rules for each related AppVersionDefDO . |
headers |
No | KeyValuePairsDO | (inherited) | A list of header names and values to be specified by default for feeds of this type. Each element of the list is a KeyValuePairDO , which has two string fields: key and value . |
SQL Action Types:SqlServerActionDefDO
Like the SqlFeedDefDO
feed definition, the SQL Action Type Definition doesn’t have any special fields, but it does imply a value – “SQL Action
” – for the extendsType
field. As with the other feed definitions, additional properties can be overridden or added using the appProperties
field.
ShellExec Action Types: ShellExecServerActionDefDO
Like the SQL Action Type, most of the definition can be achieved via the appProperties
field, but like the ShellExec Feed Type Definition, there is an environmentVars
field for convenience.
Attribute | Required | Type | Default | Description |
environmentVars |
No | KeyValuePairsDO | (empty) | Environment variables (key-value pairs) to be set before executing the script executed by this Server Actions of this type. |
JavaScript Action Types: JavascriptServerActionDefDO
The main field that is likely to be specified for application-specific JavaScript Action Type Definitions is the script – it might be useful to provide a template (or perhaps a generic script) for easier deployment of edgeCore Pipeline configurations. The other fields are provided for convenience (they can also be specified via the appProperties
), but might be more difficult to provide sensible defaults for.
Attribute | Required | Type | Default | Description |
script |
No | String | (empty) | A default (JavaScript) script to be |
jsLibs |
No | List<String> | (empty) | A default list of JavaScript libraries required actions of this type. |
javaLibs |
No | List<String> | (empty) | A default list of Java libraries required actions of this type. |
secVars |
No | List<String> | (empty) | Unlikely to be used, but it is possible to |
Additional Properties: AppPropertyDefDO
Note that additional properties with the same name as an additional property in the extended feed or action type (or ancestor) will override the definition from the extended type. Any fields not specified here will be inherited – if specified – from the extended type.
Attribute | Required | Type | Default | Description |
name |
Yes | String | n/a | A unique identifier (within the feed type’s properties) for this property |
type |
Yes* | String | n/a | Only required if this is the original definition of this property (ie. not required if overriding a property defined in a supertype). Can be one of:
String Boolean Integer Credentials JSString KeyValuePair |
scope |
No | String | n/a | Only used for connections. Can be ‘connection’ or ‘endpoint’ |
required |
No | Boolean | true | Is the property required to have a value? |
unique |
No | Boolean | false | Must the property’s value be unique across all instances of the type it is part of? |
helpText |
No | String | “” | Text to be displayed when the administrator requests context help for this property. |
displayName |
No | String | “” | The name to use for the property in the pipeline editors. This can be a message catalog key, as in the example above. |
constraints
|
No | Object | null |
Allow this property to be constrained by others. |
isParseable
|
No | Boolean | true |
Node Variables: AppFeedNodeVarDefDO
Attribute | Required | Type | Default | Description |
name |
Yes | String | n/a | A unique identifier for this node variable. |
defaultValue |
Yes | String | n/a | A sensible default value for the variable, so that the administrator is not forced to provide one. |
constraintName |
Yes | String | GenericWebContentFeed | The name of the variable constraint by which this variable should be bound. |
Distinct Application Versions: VersionDefDO
Attribute | Required | Type | Default | Description |
version |
Yes | String | n/a | The (unique) version of the application that this definition represents. |
rules |
Yes | List<String> | n/a | A list of the names of content rules that apply to feeds from connections of applications of this version. These must reside in either the product, module, or user area under the adapter’s subdirectory. |
feedTypeNames |
No | List<String> | n/a | A list of the names of the Feed types that can be created from Connections with this version. Each name in the list should correspond to the name field of an AppFeedDefDO. |
defaultFeedTypeName (deprecated) |
No | String | n/a | The default feed type selected when adding a feed to a connection with this version. This must come from the list of names in feedTypeNames. |
serverActionTypeNames |
No | List<String> | n/a | A list of the names of the Server Action types that can be created from Connections with this version. Each name in the list should correspond to the name field of an Abstract ServerActionDefDO. |
templateBundleDefs |
No | List<TemplateBundl eDefDO> | n/a | A list of metadata for prepackaged content bundles that apply to this version of the application. A TemplateBundle DefDO has only one required field: name. The optional fields are displayName, description, and prefix. The last field specifies the alphanumeric prefix used for the names of entities in the bundle that should be substituted with what the administrator specifies when deploying the bundle. |
Web – both content and data – application versions are defined with the WebConnectionVersionDefDO
subclass of VersionDefDO
. This class has a few more fields that specify property values that are potentially specific to an application version:
Attribute | Required | Type | Default | Description |
destination |
Yes | String | A default value for the connection destination property. | |
ssoHandler |
Yes | String | n/a | The name of the authentication handler to be used for connections of this type. This can be either a built-in authentication handler, or the name of a JavaScript SSO rule. Normally set to the name of the JavaScript authentication rule written for this adapter. |
credentialsType |
Yes | String | UserPass | The type of credentials that the authentication handler requires for this application version. The default valid values are:
If custom credential types have been defined, the names assigned to these can also be used. |
rules
|
Yes |
List<String> |
n/a | A list of the names of content rules that apply to feeds from connections of applications of this version. These must reside in either the product, module, or user area under the adapter’s subdirectory. |
Equivalent Application Versions: AppVersionMappingDO
Attribute | Required | Type | Default | Description |
version |
Yes | String | n/a | The (unique) version of the application that this definition represents. This must correspond to a value of version in one of the AppVersionDefDO objects for this adapter, otherwise, the mapsTo field must be specified. |
mapsTo |
No | String | n/a | For versions that don’t have a definition in the versionDefs for this adapter, this value must correspond to the version value of another object in this list. |
Custom Credential Types: CredentialTemplateDO
Attribute | Required | Type | Default | Description |
id |
Yes | String | n/a | The (unique) identifier for this type of credentials. The built-in types have values of ‘UserPass’ and ‘UserDomainPass’. |
name |
Yes | String | n/a | Can just be the same as ID, but is intended to be a more human readable/friendly name for this type of credentials. |
credentialFields |
Yes | List<CredentialDe fFieldDO> | n/a | A list of the fields used to specify a value of this credential type. |
The credentialFields
field of CredentialTemplateDO
is a list of CredentialDefFieldDO
objects:
Attribute | Required | Type | Default | Description |
key |
Yes | String | n/a | The (unique) name for this field within the fields of the credential type to which this field belongs. |
isPassword |
Yes | Boolean | n/a | Indicates whether this field is a ‘secret’. The normal implication of this is that the field will be masked whenever it is presented to an edgeSuite user. |
isRequired |
No | Boolean | false | Indicates whether this field is required to form a valid credential value for the type to which this field belongs. |