Workspace properties


The Describe function returns the following properties for a workspace.

For a workspace, the Describe dataType property returns a value of "Workspace".


PropertyExplanationData Type
(Read Only)

connectionProperties is a property set. The connection properties for an enterprise geodatabase workspace will vary depending on the type of enterprise database being used. Possible properties include the following:

  • authentication_mode—Credential authentication mode of the connection, either OSA or DBMS.
  • database—Database connected to.
  • historical_name—The historical marker name of the historical version connected to.
  • historical_timestamp—A date time that represents a moment time stamp in the historical version connected to.
  • is_geodatabase—Returns true if the database has been enabled to support a geodatabase; otherwise, it's false. The is_geodatabase value is returned as a string.
  • instance—Instance connected to.
  • server—Enterprise server name connected to.
  • user—Connected user.
  • version—The transaction version name of the transactional version connected to.
  • branch—The branch version name of the branch version connected to.

Only one of historical_name, historical_timestamp, version, or branch exists for any given workspace.

(Read Only)

The connection string being used in conjunction with the enterprise database type. For any other workspace type, returns an empty string.

(Read Only)

For a geodatabase workspace, returns True if the geodatabase's version is current. The currentRelease property can be used to assess whether the geodatabase can be upgraded.

(Read Only)

A list containing the geodatabase domain names. To work with these domain names, you can use tools from the Domains toolset.

(Read Only)

For a geodatabase workspace, returns the geodatabase release value. Below is the mapping of geodatabase release values to ArcGIS version numbers.

Geodatabase release valueArcGIS version




9.3, 9.3.1


10.0 - 10.8.1

ArcGIS Pro 1.0 - ArcGIS Pro 3.1

(Read Only)

The ID is a string that you can use to distinguish between workspace types with a finer granularity than you can with workspaceType.

The following are workspaceFactoryProgID values returned for common workspace types:

  • esriDataSourcesGDB.AccessWorkspaceFactory.1Personal geodatabase
  • esriDataSourcesGDB.FileGDBWorkspaceFactory.1File geodatabase
  • esriDataSourcesGDB.InMemoryWorkspaceFactory.1In-memory workspace
  • esriDataSourcesGDB.MemoryWorkspaceFactory.1Memory workspace
  • esriDataSourcesGDB.SdeWorkspaceFactory.1Enterprise geodatabase
  • esriDataSourcesGDB.SqliteWorkspaceFactory.1Mobile geodatabase
  • (empty string)Other

Prior to ArcGIS Pro 3.0, a memory workspace would return a value of esriDataSourcesGDB.ColumnaDBWorkspaceFactory.1.


The .1 following the string returned by workspaceFactoryProgID is only present in 64-bit products. If writing code that will be used against 32-bit and 64-bit products, use the string method startswith.

describe = arcpy.Describe(data)
# Not - if describe.workspaceFactoryProgID == 'esriDataSourcesGDB.FileGDBWorkspaceFactory.1'
if describe.workspaceFactoryProgID.startswith('esriDataSourcesGDB.FileGDBWorkspaceFactory'):
(Read Only)

The workspace type.

  • FileSystemFile-based workspaces (coverage, shapefile, and so on) and in-memory workspaces.
  • LocalDatabaseGeodatabases that are local (a file or personal geodatabase) or a memory workspace.
  • RemoteDatabaseGeodatabases that require a remote connection (enterprise, OLE DB, and so on).

Code sample

Workspace properties example

The following stand-alone script displays some workspace properties for an enterprise database:

import arcpy

# Create a Describe object for an SDE database
desc = arcpy.Describe(r"C:data\Connection to state.sde")

# Print workspace properties
print("%-24s %s" % ("Connection String:", desc.connectionString))
print("%-24s %s" % ("WorkspaceFactoryProgID:", desc.workspaceFactoryProgID))
print("%-24s %s" % ("Workspace Type:", desc.workspaceType))

# Print Connection properties
cp = desc.connectionProperties
print("\nDatabase Connection Properties:")
print("%-12s %s" % ("  Server:", cp.server))
print("%-12s %s" % ("  Instance:", cp.instance))
print("%-12s %s" % ("  Database:", cp.database))
print("%-12s %s" % ("  User:", cp.user))
print("%-12s %s" % ("  Version:", cp.version))

# Print workspace domain names"
domains =
for domain in domains:
    print("\t" + domain)