Metadata-Version: 2.5
Name: vibedata-dlt-fabric-studio
Version: 0.17.0
Summary: VibeData dlt runtime — Fabric Studio execution unit (intent-local runs targeting Fabric OneLake): dlt writes Delta straight into the ephemeral Lakehouse, signed in as the Studio user through the credential broker. Install this; it pulls in vibedata-dlt-fabric-core and vibedata-dlt-studio-secrets.
Author-email: Vibedata <eng@acceleratedata.ai>
License: MIT
Requires-Python: >=3.11
Requires-Dist: adlfs>=2026.8.0
Requires-Dist: azure-core>=1.30.0
Requires-Dist: azure-keyvault-secrets>=4.8.0
Requires-Dist: dlt[az,deltalake]>=1.28.0
Requires-Dist: requests>=2.31.0
Requires-Dist: vibedata-dlt-fabric-core>=0.6.0
Requires-Dist: vibedata-dlt-studio-secrets
Requires-Dist: vibedata-studio-azure-cred-broker>=0.1.4
Provides-Extra: dev
Requires-Dist: pytest-mock>=3.12; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# vibedata-dlt-fabric-studio

Fabric Studio execution unit for the VibeData dlt runtime — the installed distribution for Fabric domains running in the Studio-local intent venv. Key Vault access uses the Studio Credential Broker and the runtime-declared User or Service Principal identity lane.

dlt writes Delta straight into the Lakehouse named by `[destination.filesystem] bucket_url` (the Domain's in config.toml, overridden for an Intent by Studio's `DESTINATION__FILESYSTEM__BUCKET_URL`), so a `replace` load overwrites the table OneLake holds and nothing is staged locally. The agent runtime has no Azure identity of its own, so `setup_environment()` makes the broker credential dlt's default Azure credential (it replaces the `on_partial` hook on dlt's `AzureCredentials`; a configured key or SAS still wins). The pipeline code passes no credential, exactly as in a Fabric notebook.

After a completed load, `finalize()` requests Fabric SQL endpoint metadata refresh for the pipeline's data tables so they become queryable. `finalize()` scopes each request to those tables and requires a matching successful result for each of them, including after long-running operations. Exact schema/table matches are consumed first; legacy bare names are matched one-to-one only when no remaining qualified status could refer to the same table. A refresh problem is reported in the returned summary as `pending`; it does not invalidate the completed load.

```python
from vibedata.dlt.fabric import setup_environment, finalize
```

Install this package; it pulls in `vibedata-dlt-fabric-core` (and transitively
`vibedata-dlt-core`). The notebook unit (`vibedata-dlt-fabric-notebook`) ships the
same `vibedata.dlt.fabric` import with notebook-mode implementations — exactly
one Fabric unit is installed per environment, selected at provisioning time.
