1.3 Spatial Studio Metadata and Connection Management

This section provides conceptual information about the metadata schema and the connections object in Spatial Studio.

Spatial Studio stores all of its own metadata (such as the definitions of all the datasets and connections created by different users) in a single Oracle Database schema known as the metadata schema, or repository.

This metadata schema is one that Spatial Studio must be able to connect to during initial start up, because all of its essential metadata and states are stored there. This metadata schema can be an Oracle Database devoted solely to Spatial Studio use, or it can be any schema potentially used for other purposes as well, as long as the schema is provisioned for use by Spatial Studio, with the minimum necessary privileges.

The main types of connections are created by Spatial Studio’s end users so that they can gain access to a set of data tables stored in potentially several different database schemas, and explore them together in a single project. For each such user-created connection, only its connection details are stored in Spatial Studio’s metadata schema, while no actual (raw) data is ever copied or extracted into the metadata schema.

If a schema user name and password are specified when a connection is created in Spatial Studio, this information is securely encrypted before being stored in the metadata schema tables. When a user opens a project that depends on datasets originated from such a connection, then the password is decrypted at that time and a new JDBC connection pool is established. This connection pool is then used by Spatial Studio to run queries against the target table(s) from that connection whenever needed.

By default a connection is private, meaning that only the user that created the connection can access it (either in a project or anywhere else). For example, if User A creates a connection, then User B will not be able to see or use that connection or any data from the connection. The only exception is if User B is an admin user, in which case all connections and datasets are fully accessible by User B.