Configuration File Format

The definition for one or more integrations is stored in a single configuration file in JSON format.

The extension of an AIF configuration file must be .conf.

As an developer, you can upload the configuration file and make it available to users. See Understand the Application Integration Framework (AIF).

Note:

When using a private instance or any network environment with limited access, you'll need to provide users access to any third-party locations so they can use any custom actions.

A sample configuration file for one application follows. All keys and values in the configuration are case-sensitive.

{
	"id": "ExampleCoPublishing",
	"name": "APP_SUBMIT_TO_PUBLISH_DOCS_NAME",
	"description": "APP_SUBMIT_TO_PUBLISH_DOCS_DESC",
	"category": "CUSTOM",
	"supportEmail": "support@example.com",
	"baseUrl": "http://www.example.com/",
  "info": {             
     "documentation": "Opens a URL with a description of the app in a popup window",
	},
  "info": {
		"presentation": {
			"view": "POPUP"
		},
		"invoke": {
			"method": "GET",
			"url": "http://www.example.com/ExampleCoDescr.jsp",
			"data": ""
		}
	},
	"tenantPrefs": {
		"presentation": {
			"view": "POPUP"
		},
		"invoke": {
			"method": "GET",
			"url": "http://www.example.com/ExampleCoAdmin.jsp",
			"data": ""
		}
	},
	"userPrefs": {
		"presentation": {
			"view": "POPUP"
		},
		"invoke": {
			"method": "GET",
			"url": "http://www.example.com/ExampleCoUser.jsp?user={user.id}",
			"data": ""
		}
	},
	"actions": [
		{
			"id": "submitToPublish",
			"name": "ACTION_SUBMIT_TO_PUBLISH_NAME",
			"description": "ACTION_SUBMIT_TO_PUBLISH_DESC",
			"type": "UI",
			"trigger": "MENU",
			"presentation": {
				"view": "POPUP",
				"popupWidth": 700,
				"popupHeight": 400
			},
			"evaluate": "type=='folder' && user.isMember && user.role=='owner' && !isReservedByAnotherUser",
			"invoke": {
				"method": "GET",
				"url": "http://www.example.com/ExampleCoSubmit.jsp?user={user.id}&ids=[{id},]&names=[{name},]"
			},
			"multi": false
		},
		{
			"id": "showPublishStatus",
			"name": "ACTION_SHOW_PUBLISH_STATUS_NAME",
			"description": "ACTION_SHOW_PUBLISH_STATUS_DESC",
			"type": "UI",
			"trigger": "SELECT",
			"presentation": {
				"view": "POPUP",
				"popupWidth": 300,
				"popupHeight": 200
			},
			"evaluate": "type=='file' && user.isMember && user.role=='owner' && _.contains(['doc','','docx','xls','xlsx','ppt','pptx','tif','png'], extension) && (_.isEmpty(reservedById) || reservedById === user.id)",
			"invoke": {
				"method": "GET",
				"url": "http://www.example.com/ExampleCoSubmit.jsp?user={user.id}&ids=[{id},]&names=[{name},]"
			},
			"multi": false
		},
		{
			"id": "publishDirect",
			"name": "ACTION_PUBLISH_DIRECT_NAME",
			"description": "ACTION_PUBLISH_DIRECT_DESC",
			"type": "DIRECT",
			"trigger": "MENU",
			"presentation": {
				"view": "CLIENT",
				"popupWidth": 500,
				"popupHeight": 100
			},
			"evaluate": "type=='folder' && user.isMember && user.hasPrivilegesAs(item, 'owner')",
			"invoke": {
				"method": "GET",
				"url": "http://www.example.com/ExampleCoMenuAction.jsp"
			},
			"multi": false
		}
	],
	"stringsMap": {
		"en": {
			"APP_SUBMIT_TO_PUBLISH_DOCS_NAME": "ExampleCo Publishing Technical Articles",
			"APP_SUBMIT_TO_PUBLISH_DOCS_DESC": "Submit an article for the ExampleCo technical knowledge base.",
			"ACTION_SUBMIT_TO_PUBLISH_NAME": "Publish",
			"ACTION_SUBMIT_TO_PUBLISH_DESC": "Submits the selected document for review and approval to ExampleCo publishing.",
			"ACTION_SHOW_PUBLISH_STATUS_NAME": "Select ExampleCo",
			"ACTION_SHOW_PUBLISH_STATUS_DESC": "Shows currently selected row info in ExampleCo Publishing",
			"ACTION_PUBLISH_DIRECT_NAME": "Audit",
			"ACTION_PUBLISH_DIRECT_DESC": "Sends an audit event to ExampleCo when document is selected"
		}
	}
}

The Application Integration Framework supports simple use of the JavaScript underscore library (http://underscorejs.org); however, AIF does not allow defining functions as parameters of underscore functions.

The sections that follow describe the functional areas of the Application Integration Framework.

Functional Area Description

Application Properties

Describes the application properties.

Action Command

Describes the general elements of the action command. Use the action command to specify how to trigger and start a task. The invoke and presentation components of the action command are presented in their own sections.

Invoke Command

Describes the elements of the invoke command. Use the invoke command to call a third-party service, page, or script.

Presentation Command

Describes the elements of the presentation command. Use the presentation command to specify how the third-party content retrieved by the invoke command is presented to the user.

Expressions

Provides examples and general information about expressions used with the invoke and evaluate commands.

Variables

Provides descriptions of the available item and user variables, the permissions and status objects, and AIF functions.

Localization

Provides an example and general information about how to localize an app with translated labels and descriptions.