This is a Koop provider that transforms ArcGIS Knowledge Server graph entity data into GeoJSON Feature Collections by entity type. Common usage would be to use the Koop Geoservices output plugin to reflect the entity GeoJSON Feature Collections as an ArcGIS Server Feature Service with layers (contains geometry) and tables.
To support ArcGIS Enterprise authentication token pass through, the following Koop Output plugins are required
- Koop Geoservices Output Plugin v3.1.0+
- Koop FeatureServer Output Plugin v3.2.0+
- Install the Koop CLI
- Create an application
koop new app demo-app cd demo-app
- Add the Koop Provider for ArcGIS Knowledge Server
koop add provider koop-provider-knowledge
- Configure the Provider in the Koop Config
- Start Koop
koop serve
- Install the provider
npm install koop-provider-knowledge
- Add Provider to the application
const knowledgeProvider = require('koop-provider-knowledge') koop.register(knowledgeProvider)
Adding an authInfo object to the koop config will allow a token service url to be specified so that clients can directly get a token from ArcGIS Enterprise. This is the recommended configuration to use the ArcGIS Knowledge Koop Provider. This is a feature of the Koop Geoservices Output Plugin v3.1.0+
{
"authInfo":{
"isTokenBasedSecurity" : true,
"tokenServicesUrl" : "<token url>"
}
}
Example
{
"port": 8080,
"authInfo":{
"isTokenBasedSecurity" : true,
"tokenServicesUrl" : "https://myserver.domain.com/portal/sharing/rest/generateToken"
},
"provider-knowledge":{
...
}
}
Named ArcGIS Knowledge Services are added to the koop configuration, while not recommended a token can be specified. This token will need to be a long lived token and updated by an administrator.
{
"provider-knowledge": {
"sources": {
"<key>": {
"url": "<url>",
"token": "<token>" // not recommended
}
}
}
}
Examples with and without token
{
"port": 8080,
"authInfo":{
...
},
"provider-knowledge": {
"sources": {
"MyKnowledgeService": {
"url": "https://myserver.domain.com/server/rest/services/Hosted/MyKnowledgeService/KnowledgeGraphServer"
},
"MyKnowledgeServiceWithToken": {
"url": "https://myserver.domain.com/server/rest/services/Hosted/MyKnowledgeService/KnowledgeGraphServer",
"token": "<Token Generated from ArcGIS Enterprise>"
}
}
}
}
The following is a sample configuration file showing most capabilities in the recommended configuration, if using the Koop CLI look under config/default.json
{
"port": 8080,
"authInfo":{
"isTokenBasedSecurity" : true,
"tokenServicesUrl" : "https://myserver.domain.com/portal/sharing/rest/generateToken"
},
"provider-knowledge": {
"sources": {
"MyKnowledgeService": {
"url": "https://myserver.domain.com/server/rest/services/Hosted/MyKnowledgeService/KnowledgeGraphServer"
}
}
}
}