Skip to main content

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)

Source distribution for vibedata-studio-azure-cred-broker 0.1.4
File Size Uploaded
vibedata_studio_azure_cred_broker-0.1.4.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vibedata-studio-azure-cred-broker 0.1.4
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page