Skip to content

Latest commit

 

History

History
78 lines (60 loc) · 3.45 KB

File metadata and controls

78 lines (60 loc) · 3.45 KB
subcategory
Security

databricks_current_user Data Source

-> Note If you have a fully automated setup with workspaces created by databricks_mws_workspaces or azurerm_databricks_workspace, please make sure to add depends_on attribute in order to prevent default auth: cannot configure default credentials errors.

Retrieves information about databricks_user or databricks_service_principal, that is calling Databricks REST API. Might be useful in applying the same Terraform by different users in the shared workspace for testing purposes.

Example Usage

Create personalized databricks_job and databricks_notebook:

data "databricks_current_user" "me" {}
data "databricks_spark_version" "latest" {}
data "databricks_node_type" "smallest" {
  local_disk = true
}

resource "databricks_notebook" "this" {
  path     = "${data.databricks_current_user.me.home}/Terraform"
  language = "PYTHON"
  content_base64 = base64encode(<<-EOT
    # created from ${abspath(path.module)}
    display(spark.range(10))
    EOT
  )
}

resource "databricks_job" "this" {
  name = "Terraform Demo (${data.databricks_current_user.me.alphanumeric})"

  task {
    task_key = "task1"

    new_cluster {
      num_workers   = 1
      spark_version = data.databricks_spark_version.latest.id
      node_type_id  = data.databricks_node_type.smallest.id
    }

    notebook_task {
      notebook_path = databricks_notebook.this.path
    }
  }
}

output "notebook_url" {
  value = databricks_notebook.this.url
}

output "job_url" {
  value = databricks_job.this.url
}

Exported attributes

Data source exposes the following attributes:

  • id - The id of the calling user.
  • external_id - ID of the user in an external identity provider.
  • user_name - Name of the user, e.g. mr.foo@example.com. If the currently logged-in identity is a service principal, returns the application ID, e.g. 11111111-2222-3333-4444-555666777888
  • home - Home folder of the user, e.g. /Users/mr.foo@example.com.
  • repos - Personal Repos location of the user, e.g. /Repos/mr.foo@example.com.
  • alphanumeric - Alphanumeric representation of user local name. e.g. mr_foo.
  • workspace_url - URL of the current Databricks workspace.
  • acl_principal_id - identifier for use in databricks_access_control_rule_set, e.g. users/mr.foo@example.com if current user is user, or servicePrincipals/00000000-0000-0000-0000-000000000000 if current user is service principal.

Related Resources

The following resources are used in the same context: