FRAMES | NO FRAMES Description | Properties | Example

Description

A data item is a container of data that is registered with the server. The set of data items registered with the server comprises the server's data store.

A data item contains all the information required by the server to connect to a folder or database while serving out one or more GIS services. Data items are extensively used while publishing GIS services to the server, as they inform the publishing client (such as ArcMap) whether the data needs to be explicitly copied to the server or if it can be referred from the server. The server supports two main types of data items:

  1. Enterprise Databases
    Each of these data items represents an enterprise database, which can optionally contain an Esri geodatabase.

  2. File Shares
    File share data items are network accessible file system folders that contain one or more datasets.

JSON Structure

A data item is represented in the server as a JSON object.

The type property of the JSON object desbribes the type of the data item, with 'egdb' and 'folder' as valid values.

The path property defines a unique identifier for each of the data items when registered with the server. While the server supports a hierarchical view of data items, this is not used often. Most file shares are registered under /fileShares and enterprise databases are registered under /enterpriseDatabases, respectively.

The info section stores the actual connection string or file system path to the data item. The dataStoreConnectionType property in the info section indicates to the server if the data item is shared, replicated or serverOnly.

	
{
	"path": "<unique path on the server>",
	"type": "<folder|egdb>", 
	"clientPath": "<client paths for replicated folders>",
	"info": {
		"path": "<path to the folder>",
		"clientConnectionString": "<connection string for client to connect to shared enterprise database>",
		"connectionString": "<connection string for server to connect to enterprise database>",
		"dataStoreConnectionType": "<shared|replicated|serverOnly>",
		"isManaged": <true|false>
	}
}
			

Connection Strings

For enterprise databases you need to enter the ArcSDE connection string as the connectionString property inside the info section of the JSON object. An ArcSDE connection string consists of the information bits like the name of the database server, the database name and the credentials. The server will store this data item JSON inside of its configuration store "as is". It is recommended that you encrypt the credentials using the ArcSDE encryption scheme before storing it into the server. This can be achieved by invoking 'Get Database Connection String' tool inside the 'Publishing Tools' toolbox published as a system service on the server. The string returned by the tool can be used as the value of the connectionString property.

Please see the examples below for more information on the format of the different data items supported by the server.

Example - A folder where the publisher and server use the same shared path

	
{
	"path": "/fileShares/folder_shared", //a unique path on the server
	"type": "folder", //as this is a file share
	"clientPath": null, //not needed as this is a shared folder
	"info": {
		"path": "\\\\server\\data\\rest_data", //path to the share
		"dataStoreConnectionType": "shared" //this is a shared folder     
	}
}
			

Example - A folder where the publisher and server use local paths

	
{
	"path": "/fileShares/folder_replicated", //a unique path on the server
	"type": "folder", //as this is a folder
	"clientPath": "C:\\data", //the path to the folder from the client
	"info": {
		"path": "c:\\data", //the path to the folder from the server
		"dataStoreConnectionType": "replicated", //indicates that client and server are seeing the same datasets
		"hostName": "GRID3" //name of the client host
	}
}
			

Example - An enterprise database where the publisher and server use the same database

	
{
	"path": "/enterpriseDatabases/egdb_shared", //a unique path on the server
	"type": "egdb", //as this is a database
	"clientPath": null, //not needed as this is a database
	"info": {
		"connectionString": "ENCRYPTED_PASSWORD=00022e686f66464c762b6e2b31732b675a4e35667832547070513d3d2a00;
							SERVER=dbserver;INSTANCE=sde:sqlserver:dbserver;DBCLIENT=sqlserver;
							DB_CONNECTION_PROPERTIES=dbserver;DATABASE=vtest;
							USER=map;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS", //an encrypted ArcSDE connection string
		"isManaged": false, //indicates that the database is not fully owned by the server
		"dataStoreConnectionType": "shared" //indicates that the database is shared with clients
	}
}
			

Example - A server-managed enterprise database (such as ArcGIS Server's Managed Database)

	
{
	"path": "/enterpriseDatabases/egdb_managed", //a unique path on the server
	"type": "egdb", //as this is a database
	"clientPath": null, //not needed as this is a database
	"info": {
		"connectionString": "ENCRYPTED_PASSWORD=00022e683671383653345a4c4f465743393131343544673045773d3d2a00;
							SERVER=dbserver;INSTANCE=sde:sqlserver:dbserver;DBCLIENT=sqlserver;
							DB_CONNECTION_PROPERTIES=dbserver;DATABASE=vtest;USER=map;
							AUTHENTICATION_MODE=DBMS", //an encrypted ArcSDE connection string for server to connect the database
		"isManaged": true, //indicates that the database is fully owned and managed by the server
		"dataStoreConnectionType": "serverOnly" //indicates that the database is not shared with clients 
	}
}
			

Example - An enterprise database where the publisher and server use different databases

	
{
	"path": "/enterpriseDatabases/egdb_replicated", //a unique path on the server
	"type": "egdb", //as this is a database
	"clientPath": null, //not needed as this is a database
	"info": {
		"clientConnectionString": "ENCRYPTED_PASSWORD=00022e686255754d75395162382f704c726a4d4d6456364b56673d3d2a00;
								SERVER=dbserver;INSTANCE=sde:sqlserver:dbserver;DBCLIENT=sqlserver;
								DB_CONNECTION_PROPERTIES=dbserver;DATABASE=vtest;USER=map;VERSION=sde.DEFAULT;
								AUTHENTICATION_MODE=DBMS", //an encrypted ArcSDE connection string for client to connect the database
		"connectionString": "ENCRYPTED_PASSWORD=00022e6847686f65752b4f503261623364533032445441544d773d3d2a00;
							SERVER=dbserver2;INSTANCE=sde:sqlserver:dbserver2;DBCLIENT=sqlserver;
							DB_CONNECTION_PROPERTIES=dbserver2;DATABASE=map;USER=ags;
							AUTHENTICATION_MODE=DBMS",//an encrypted ArcSDE connection string for server to connect the database
		"isManaged": false, //indicates that the database is not fully owned and managed by the server 
		"dataStoreConnectionType": "replicated" //indicates that the database is shared with clients 
	}
}