You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

In Progress



The REST Connector can be configured using the Rest API. It requires the following entities to be created:

  • Credential
  • Connection
  • Connector
  • Seed

Below are the examples of how to create the Credential, Connection and the Seed. For the Connector, please check this page.

Create Credential

We support these authentication types of crawled repositories:

  • Basic - see here
  • Bearer - see here
  • API Token - can be used as an alternative for Bearer. It is about sending configured header field as a part of each request
  • None

FieldRequiredDefaultMultipleNotesExample
typeYes-NoThe value must be "rest-api"."rest-api"
descriptionYes-NoName of the credential object."My REST Credential"
propertiesYes-NoConfiguration object
typeyes-NoAuthentication type: basic, apiToken, bearer, none,basic
type: basic




loginAccountYes-NoUser name."admin"
passwordYes-NoPassword (can be encrypted in Aspire fashion)"adminPassword"
type: apiToken




headerNameyes-NoThe name of HTTP header field to be sent with a request"tokenName1"
headerValueyes-NoThe value of the "headerName" field"tokenValue1"
type: bearer




preExpirationLimitInMsYes0NoPre expiration limit. The time (in ms) used for calculating when to ask for the new accessToken5000
queryyes-NoJSON object representing the query to be sent for getting the accessToken
urlTemplateyes-NoThe context path of the URL"/login"
methodyes-NoHTTP method. Must be POST in this version"POST"
bodyyes-NoThe query body. Fields  ${loginAccount}, ${password} are expected to be used as a part of the body."{"username" : "${loginAccount}","password" : "${password}"}"
queryTypeyes-NoUse the value "metadataExtraction" here"metadataExtraction"
resultFieldyes-NoThe field in the response with the access token"accessToken"
loginAccountYes-NoUser name. Used as a value for ${loginAccount} query body field"admin"
passwordYes-NoPassword. Used as a value for ${password} query body field"adminPassword"

Example

POST aspire/_api/credentials
{
    "type": "rest-api",
    "description": "My credential",
    "properties": {
        "type": "bearer",
        "query": {
            "urlTemplate": "/login",
            "method": "POST",
            "body": "{\"username\" : \"${username}\",\"password\" : \"${password}\"}",
            "queryType": "metadataExtraction",
            "resultField": "accessToken"
            "username": "admin",
            "password": "encrypted:xxxxx",
         }
    }
}

Create Connection


FieldRequiredDefaultMultipleNotesExample
typeYes-NoThe value must be "rest-api"."rest-api"
descriptionYes-NoName of the connection object."My REST Connection"
throttlePolicyNo-NoId of the throttle policy that applies to this connection object."6b235b333a1b"
routingPoliciesNo[ ]YesThe ids of the routing policies that this connection will use.["17f75ce7d0c7", "d42780003b36"]
credentialYes-NoId of the credential"6b235b333a1b"
propertiesYes-NoConfiguration object
baseUrlYes-NoYour rest service API url"https://your-service/api/v2/"
trustAllCertificatesYesfalseNoIf selected, no HTTPS certificate validation will be done.true

Example

POST aspire/_api/connections
{
    "type": "rest-api",
    "description": "Rest conn 3",
    "credential": "0b6fd9c8-d722-4874-aca1-e57c6eff2089",
    "properties": {
        "baseUrl": "http://aspire_manager:50443/aspire/_api"
    }
}

Update Connection


FieldRequiredDefaultMultipleNotesExample
idYes-NoId of the connection to update"d442adcab4b0",
descriptionNo-NoName of the connection object."My REST Connection"
throttlePolicyNo-NoId of the throttle policy that applies to this connection object."b3a9-6b235b333a1b"
routingPoliciesNo[ ]YesThe ids of the routing policies that this connection will use.["17f75ce7d0c7", "d42780003b36"]
credentialNo-NoId of the credential"6b235b333a1b"
propertiesNo-NoConfiguration object
(see create connection)




Example

PUT aspire/_api/connections/89d6632a-a296-426c-adb0-d442adcab4b0
{
   "id": "89d6632a-a296-426c-adb0-d442adcab4b0",
   "description": "REST connection",
     "properties": {
        "baseUrl": "http://aspire_manager:50443/aspire/_api"
    } 
}

Create Connector


For the creation of the Connector object using the Rest API check this page

Update Connector


For the update of the Connector object using the Rest API check this page

Create Seed


FieldRequiredDefaultMultipleNotesExample
seedYes-NoThe name of the database. It will replace the marker {DATABASE} used in the field jdbcUrl of connection object"test_db"
typeYes-NoThe value must be "rdb-snapshot"."rdb-snapshot"
descriptionYes-NoName of the seed object."My RDB Seed"
connectorYes-NoThe id of the connector to be used with this seed. The connector type must match the seed type."e3ca414b0d31"
connectionYes-NoThe id of the connection to be used with this seed. The connection type must match the seed type."e4a663fe9ee6"
workflowsNo[ ]YesThe ids of the workflows that will be executed for the documents crawled.["5696c3f0bda4"]
throttlePolicyNo-NoId of the throttle policy that applies to this seed object."6b235b333a1b"
routingPoliciesNo[ ]YesThe ids of the routing policies that this seed will use.["17f75ce7d0c7", "d42780003b36"]
tagsNo[ ]YesThe tags of the seed. These can be used to filter the seed["tag1", "tag2"]
propertiesYes-NoConfiguration object
fullSQLYes (this or discoverySQL + extractionSQL)-NoThe "SELECT" query to be run to retrieve all documents. This query is used for full or incremental scans. The "WHERE" clause can be used to specify any required condition for crawling the desired documents. Any change to any column selected in this SQL will cause the document to be re-indexed. For example "SELECT idCol, col1, col2, col3 FROM data_table" When slicing is enabled, add a "WHERE" clause containing "{SLICES}". For example "SELECT idCol, col1, col2, col3 FROM data_table WHERE {SLICES}" ."SELECT * FROM table"
discoverySQLYes (this or fullSQL)-NoThe "SELECT" query to run for discovering documents. This query is used for full or incremental scans. A "WHERE" clause can be used to specify any required condition for crawling the desired documents. A change to any column selected in this SQL will cause the document to be re-indexed. For example: "SELECT idCol, lastModifiedDate FROM data_table". When slicing is enabled, add a "WHERE" clause containing "{SLICES}". For example: "SELECT idCol, col1 FROM data_table WHERE {SLICES}"SELECT id, lastModified FROM table"
extractionSQLYes (this or fullSQL)-No

"SELECT" query for extracting all data for each document found in the Discovery SQL. At the least, you MUST include a "WHERE" clause containing the expression "idColumnName IN {IDS}", where idColumnName corresponds to a unique key field name. {IDS} is replaced automatically by the connector with the corresponding unique key values. For example: "SELECT col1, col2, col3 FROM data_table WHERE idCol in {IDS}" You must not include the {SLICES} condition here.

"SELECT * FROM table WHERE id IN {IDS}"
idColumnYes-NoThe column name that holds the unique key. The default name of the column which holds the value to use as the document id. This column must be present in both discoverySQL and extractionSQL. SQL aliases are NOT supported."id"
stringIdColumnNofalseNoCheck if the unique key is a string valuetrue
quoteIdNodoNotQuoteNoQuote id column - use if you have a name clashing with RDBMS keywords. You can use one of the values: doNotQuote, `, "doNotQuote




ACL
aclColumnYes (aclColumn or aclSQL)-NoThe column name that holds the ACLs. Each ACL must be separated by semi-colons and must follow this format: my-domain\userOrGroup@NT"acl"
aclSQLYes (aclColumn or aclSQL)-NoThe query to use for extracting and building ACLs. This query depends of the Database engine, so the syntax could vary. For example on Oracle: SELECT 'my-domain\\' || user || '@NT;' FROM myTable"SELECT * FROM table_acl"

Example

POST aspire/_api/seeds
{
  "seed":"test_db",
  "type":"rdb-snapshot",
  "description" : "RDB_TEST",
  "properties" : {
      "idColumn" : "film_id",
      "stringIdColumn" : false,
      "aclSQL" : null,
      "aclColumn" : "acl",
      "quoteId" : "doNotQuote",
      "discoverySQL" : "SELECT film_id, title FROM film",
      "extractionSQL" : "SELECT * FROM film WHERE film_id IN {IDS}",
      "fullSQL" : null"
  }
}

Update Seed


FieldRequiredDefaultMultipleNotesExample
idYes-NoId of the seed to update"2f287669-d163-4e35-ad17-6bbfe9df3778"
(see the "Create seed" for other fields)




Example

PUT aspire/_api/seeds/2f287669-d163-4e35-ad17-6bbfe9df3778
{
  "id": "2f287669-d163-4e35-ad17-6bbfe9df3778",
  "seed":"test_db",
  "description" : "RDB_TEST",
  "properties" : {
      "idColumn" : "film_id",
      "stringIdColumn" : false,
      "aclSQL" : null,
      "aclColumn" : "acl",
      "quoteId" : "doNotQuote",
      "discoverySQL" : "SELECT film_id, title FROM film",
      "extractionSQL" : "SELECT * FROM film WHERE film_id IN {IDS}",
      "fullSQL" : null"
  }
}
  • No labels