vibedata-studio-azure-cred-broker
An Azure TokenCredential
that mints downstream Azure / Microsoft Fabric tokens through the VibeData Studio
credential broker.
Inside a Studio agent container the backend writes an intent-scoped bearer
(vd_iat_*) to a tmpfs file. StudioAzureCredBroker reads that bearer and
exchanges it at the broker's POST /token endpoint for a short-lived,
audience-bound Azure access token (Fabric SQL, OneLake storage, Key Vault,
Fabric API, ARM). The downstream credential is only ever minted by Studio.
Works with anything that speaks the azure-core TokenCredential protocol:
- dbt-fabricspark (
authentication: token_credential) - dlt destinations (OneLake / ADLS)
- Key Vault
SecretClient
How it resolves the broker
Broker context comes from the environment and is overridable via constructor kwargs:
| Env var | Kwarg | Meaning |
|---|---|---|
VD_CREDENTIAL_BROKER_URL |
broker_url |
Broker base URL (e.g. http://host.docker.internal:<port>/api/v1/credential-broker) |
VD_CREDENTIAL_FILE |
credential_file |
tmpfs path holding the vd_iat_* bearer (/run/vd/credential) |
VD_CREDENTIAL_LANE |
lane |
Credential lane: user or service |
VD_CREDENTIAL_CONFIGURATION_REVISION |
configuration_revision |
Non-negative Domain configuration revision pinned into the intent bearer |
The bearer is re-read on every get_token call (the backend rotates it).
The broker URL and credential file are always required and are checked when the credential is constructed. The lane and configuration revision are checked when a token is requested. Every persisted Data Platform or Secret Store mint sends its explicit scope, lane, and pinned revision; a missing or invalid value raises before the broker is contacted.
Scope → audience map
get_token(scope) maps the requested Azure scope to a broker audience:
| Azure scope | Audience |
|---|---|
https://database.windows.net/.default |
sql |
https://storage.azure.com/.default |
storage |
https://vault.azure.net/.default |
vault |
https://api.fabric.microsoft.com/.default |
fabric_api |
https://analysis.windows.net/powerbi/api/.default |
fabric_cli |
https://management.azure.com/.default |
arm |
An unmapped scope raises ScopeNotAllowedError. Override or extend via the
audience_map kwarg. The dlt Key Vault provider overrides the vault resource with
the Secret Store capability key_vault_data_plane; the default vault mapping is
the Data Platform capability and is not a compatibility alias.
dbt usage (profiles.yml)
my_project:
outputs:
ephemeral_dev:
type: fabricspark
method: livy
authentication: token_credential
credential_class: "vibedata_studio_azure_cred_broker.StudioAzureCredBroker"
# No credential_kwargs needed — Studio injects the broker context.
endpoint: https://api.fabric.microsoft.com/v1
workspaceid: "{{ env_var('EPHEMERAL_WORKSPACE_ID') }}"
lakehouseid: "{{ env_var('EPHEMERAL_LAKEHOUSE_ID') }}"
lakehouse: "{{ env_var('EPHEMERAL_LAKEHOUSE_NAME') }}"
schema: "{{ env_var('EPHEMERAL_SCHEMA') }}"
target: ephemeral_dev
dlt / Key Vault usage
from azure.keyvault.secrets import SecretClient
from vibedata_studio_azure_cred_broker import StudioAzureCredBroker
client = SecretClient(
vault_url=vault_url,
credential=StudioAzureCredBroker(
audience_map={"https://vault.azure.net": "key_vault_data_plane"}
),
)
Metadata
Release files for vibedata-studio-azure-cred-broker 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vibedata_studio_azure_cred_broker-0.1.4.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vibedata_studio_azure_cred_broker-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.3 kB
Release files / vibedata_studio_azure_cred_broker-0.1.4.tar.gz
| Download URL | vibedata_studio_azure_cred_broker-0.1.4.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
475fb8b8657b6ae4c8b53ac8b9c5bcc7c11672a261430ac900c821d300f45c2f
|
|
BLAKE2b-256 checksum How to use checksums |
0dedebb90b554d6e0a419b8edb22b582d30ff2b1ecec7b13e6a3dcd062eb13ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / vibedata_studio_azure_cred_broker-0.1.4-py3-none-any.whl
| Download URL | vibedata_studio_azure_cred_broker-0.1.4-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99b782ab67bade058d59673fee1a332a9cc7bd159904ff5e5fea827935b7c190
|
|
BLAKE2b-256 checksum How to use checksums |
b9973f87986032a13a7127973a98ecd45b31b5b682cb28bb0a17dacc0416e0ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|