Skip to content

Databricks Secret Scope

DatabricksSecrets

Bases: SecretsInterface

Retrieves secrets from Databricks Secret Scopes. For more information about Databricks Secret Scopes, see here.

Example

# Reads Secrets from Databricks Secret Scopes

from rtdip_sdk.pipelines.secrets import DatabricksSecrets
from rtdip_sdk.pipelines.utilities import SparkSessionUtility

# Not required if using Databricks
spark = SparkSessionUtility(config={}).execute()

get_databricks_secret = DatabricksSecrets(
    spark=spark,
    vault="{NAME-OF-DATABRICKS-SECRET-SCOPE}"
    key="{KEY-NAME-OF-SECRET}",
)

get_databricks_secret.get()

Parameters:

Name Type Description Default
spark SparkSession

Spark Session required to read data from a Delta table

required
vault str

Name of the Databricks Secret Scope

required
key str

Name/Key of the secret in the Databricks Secret Scope

required
Source code in src/sdk/python/rtdip_sdk/pipelines/secrets/databricks.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
class DatabricksSecrets(SecretsInterface):
    """
    Retrieves secrets from Databricks Secret Scopes. For more information about Databricks Secret Scopes, see [here.](https://docs.databricks.com/security/secrets/secret-scopes.html)

    Example
    -------
    ```python
    # Reads Secrets from Databricks Secret Scopes

    from rtdip_sdk.pipelines.secrets import DatabricksSecrets
    from rtdip_sdk.pipelines.utilities import SparkSessionUtility

    # Not required if using Databricks
    spark = SparkSessionUtility(config={}).execute()

    get_databricks_secret = DatabricksSecrets(
        spark=spark,
        vault="{NAME-OF-DATABRICKS-SECRET-SCOPE}"
        key="{KEY-NAME-OF-SECRET}",
    )

    get_databricks_secret.get()
    ```

    Parameters:
        spark: Spark Session required to read data from a Delta table
        vault: Name of the Databricks Secret Scope
        key: Name/Key of the secret in the Databricks Secret Scope
    """

    spark: SparkSession
    vault: str
    key: str

    def __init__(self, spark: SparkSession, vault: str, key: str):
        self.spark = spark
        self.vault = vault
        self.key = key

    @staticmethod
    def system_type():
        """
        Attributes:
            SystemType (Environment): Requires PYSPARK on Databricks
        """
        return SystemType.PYSPARK_DATABRICKS

    @staticmethod
    def libraries():
        libraries = Libraries()
        return libraries

    @staticmethod
    def settings() -> dict:
        return {}

    def get(self):
        """
        Retrieves the secret from the Databricks Secret Scope
        """
        dbutils = get_dbutils(self.spark)
        return dbutils.secrets.get(scope=self.vault, key=self.key)

    def set(self):
        """
        Sets the secret in the Secret Scope
        Raises:
            NotImplementedError: Will be implemented at a later point in time
        """
        return NotImplementedError

system_type() staticmethod

Attributes:

Name Type Description
SystemType Environment

Requires PYSPARK on Databricks

Source code in src/sdk/python/rtdip_sdk/pipelines/secrets/databricks.py
60
61
62
63
64
65
66
@staticmethod
def system_type():
    """
    Attributes:
        SystemType (Environment): Requires PYSPARK on Databricks
    """
    return SystemType.PYSPARK_DATABRICKS

get()

Retrieves the secret from the Databricks Secret Scope

Source code in src/sdk/python/rtdip_sdk/pipelines/secrets/databricks.py
77
78
79
80
81
82
def get(self):
    """
    Retrieves the secret from the Databricks Secret Scope
    """
    dbutils = get_dbutils(self.spark)
    return dbutils.secrets.get(scope=self.vault, key=self.key)

set()

Sets the secret in the Secret Scope Raises: NotImplementedError: Will be implemented at a later point in time

Source code in src/sdk/python/rtdip_sdk/pipelines/secrets/databricks.py
84
85
86
87
88
89
90
def set(self):
    """
    Sets the secret in the Secret Scope
    Raises:
        NotImplementedError: Will be implemented at a later point in time
    """
    return NotImplementedError