Databases

The database data object represents a Parquet-format database in the platform. In Spark SQL, you can use either the shorter databaseName or the longer uniqueDatabaseName for cases with potential duplicates. You can store additional database metadata in properties.

Database API Method Specifications

API method: /database-xxxx/describe

Specification

Describes a database data object. A project ID can be given to request user-provided metadata from a particular project but it is not necessary as database data object belongs only to one project always. Cloning of database data object is suppressed. A relocate method is available for moving a database data object from one project to another.

Inputs

  • project string (optional) Project or container ID to be used as a hint for finding the object in an accessible project.

  • defaultFields boolean (optional) Whether to include the default set of fields in the output (the default fields are described in the "Outputs" section below). The selections are overridden by any fields explicitly named in fields.

    • Defaults to false if fields is supplied, true otherwise.

  • fields mapping (optional) Include or exclude the specified fields from the output. These selections override the settings in defaultFields.

    • key — the desired output field. See "Outputs" below for valid values.

    • value boolean — whether to include the field.

The following options are deprecated (and are not respected if fields is present):

  • properties boolean (optional, deprecated) Whether the properties should be returned. Defaults to false.

  • details boolean (optional, deprecated) Whether the details should also be returned. Defaults to false.

Outputs

  • id string The object ID, such as "database-xxxx".

The following fields are included by default (but can be disabled using fields or defaultFields):

  • project string ID of the project or container in which the object was found.

  • class string The value "database".

  • databaseName string The suffix of uniqueDatabaseName used for referencing a Parquet-format database. If a user has access to multiple databases with the same databaseName, the user has to reference the Parquet-format database by uniqueDatabaseName.

  • uniqueDatabaseName string The Parquet-format database name.

  • types array of strings Types associated with the object.

  • created timestamp Time at which this object was created.

  • state string Always "open".

  • hidden boolean Whether the object is hidden or not.

  • links array of strings The object IDs that are pointed to from this object.

  • name string The name of the database data object. The name of the object can be different from databaseName.

  • folder string The full path to the folder containing the object.

  • sponsored boolean Whether the object is sponsored by DNAnexus.

  • tags array of strings Tags associated with the object.

  • modified timestamp Time at which the user-provided metadata of the object was last modified.

  • createdBy mapping How the object was created.

    • user string ID of the user who created the object or launched an execution which created the object.

    • job string ID of the job that created the object.

      • Only present when a job created the object.

    • executable string ID of the app or applet that the job was running.

      • Only present when a job created the object.

The following field (included by default) is available if the object is sponsored by a third party:

  • sponsoredUntil timestamp Indicates the expiration time of data sponsorship. This field exists only for sponsored objects and specifies a future timestamp.

The following fields are only returned if the corresponding field in the fields input is set to true:

  • properties mapping Properties associated with the object.

    • key — the property name.

    • value string — the property value.

  • details mapping or array Contents of the object's details.

Errors

  • ResourceNotFound

    • The specified object does not exist or the specified project does not exist

  • InvalidInput

    • The input is not a hash, project (if supplied) is not a string

  • PermissionDenied

    • VIEW access required for the project provided (if any), and VIEW access required for some project containing the specified object (not necessarily the same as the hint provided)

API method: /database-xxxx/relocate

Specification

Moves the database data object from the current project to the specified project. You may not move a database to another project which already contains a database with the same database name.

Inputs

  • project string (required) ID of the project to which the database should be relocated, such as "project-xxxx".

  • destination string (optional) The destination folder in project. Defaults to "/".

  • parents boolean (optional) Whether the destination folder and/or parent folders should be created if they do not exist. Defaults to false.

Outputs

  • id string ID of the moved database object, such as "database-xxxx".

  • project string ID of the modified destination project.

Errors

  • ResourceNotFound

    • The specified database does not exist

    • The project specified in project does not exist

    • The folder specified in destination does not exist in the destination project and parents is set to false

    • The source or destination project is not accessible for specified action due to missing license

  • InvalidInput

    • project is missing, is not a project ID or is the same as source project

    • destination (if provided) is not a nonempty string starting with "/"

    • parents (if provided) is not a boolean

    • project must be in the same region as the source project

    • A database with the same databaseName already exists in the target project

  • PermissionDenied

    • CONTRIBUTE/ADMINISTER access is required, depending on PROTECTED flag on the source project

    • UPLOAD access is required in the destination project

Last updated

Was this helpful?