Skip to content

Changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • Workspace restoration via workspace.restore() and workspaces.restore() for recovering deleted workspaces
  • Workspace state detection - filters out workspaces in "Deleted" state from search results
  • Enhanced error messages with actionable guidance when encountering deleted workspaces

Changed

  • workspace.delete() now documented as soft delete with retention period information
  • workspaces.add() now raises informative error when workspace exists in "Deleted" state
  • Workspace lookup operations now verify workspace is accessible (not deleted)

Documentation

  • Updated workspace documentation with deletion/restoration workflow
  • Added workspace state reference table
  • Added automation best practices for handling deleted workspaces
  • Fixed import inconsistencies across all code examples

1.0.0 - 2026-03-26

Initial release. A Python SDK for Microsoft Fabric focusing on OneLake security and workspace automation.

API Design

  • Fabric-first namespace: import fabias gives direct access to Fabric APIs—no redundant nesting
  • Integrations subpackage: External services (adf, keyvault) available via from fabias.integrations import ...
  • Notifications subpackage: Alerting (teams, cards) available via from fabias.notifications import ...
  • Private implementation: Internal modules prefixed with _ to keep public API clean

Microsoft Fabric

Workspace Management

  • List, create, and delete workspaces with capacity assignment
  • Role assignments (Admin, Member, Contributor, Viewer) via workspace.roleAssignments
  • Folder organization with path resolution via workspace.folders
  • Variable libraries for parameterized deployments

Workspace Items

  • Pipeline: Run pipelines with parameters, track job completion
  • Lakehouse: Access lakehouses, manage OneLake data access roles (ABAC)
  • Notebook: Access notebook content, metadata, and definitions
  • Environment: Manage environments and publish library changes
  • VariableLibrary: Manage workspace variables

Git Integration

  • Check sync status with Git.status()
  • Pull changes from Git repository
  • Push workspace changes to Git with commit messages
  • Configure Git connection settings

Connections

  • Create and manage data connections (Cloud, VNet, On-Premises Gateway)
  • Role assignments (User, UserWithReshare, Owner)
  • Privacy level and encryption configuration

Administration

  • Capacity: List capacities, assign workspaces, manage capacity settings
  • Tenant: Access tenant-level admin settings and activity events
  • Spark Settings: Configure workspace Spark pools, environments, and high-concurrency settings

OneLake Security (ABAC)

  • Role: Define data access roles with path-based permissions
  • Rule: Configure path access with optional row/column-level security
  • RowLevelSecurity: Define table-level row filters
  • ColumnLevelSecurity: Define column visibility rules
  • EntraMember: Grant access to Entra ID users, groups, or service principals
  • FabricItem: Grant access based on item permissions
  • Path normalization: User-friendly shortcuts (*, tables, dbo.*, /Files/raw/)

Integrations

Azure Data Factory (fabias.integrations.adf)

  • Pipeline execution with parameter support
  • Job tracking with status monitoring
  • Lazy property loading with caching

Azure Key Vault (fabias.integrations.keyvault)

  • Secret management (get, set, list)
  • Automatic auth in Fabric notebooks via notebookutils
  • Module-level API: keyvault.get("secret-name")

Notifications

Microsoft Teams (fabias.notifications.teams)

  • Channel messaging via Graph API
  • Incoming webhook support

Adaptive Cards (fabias.notifications.cards)

  • Adaptive: Card builder with fluent API
  • Elements: TextBlock, Image, ColumnSet, Column, Container, Table
  • Actions: Submit, OpenUrl, ShowCard

Authentication

  • ServicePrincipalAuth: OAuth2 client credentials flow
  • FabricAuth: Automatic auth via notebookutils inside Fabric notebooks
  • RefreshTokenAuth: OAuth2 refresh token flow
  • AutoAuth: Environment-aware auth selection (Fabric runtime → env vars → fail)
  • runtime.isFabric: Detect Fabric notebook environment

Technical

  • Full type annotations with py.typed marker (PEP 561)
  • Lazy loading throughout for efficient resource access
  • Automatic pagination handling for list operations
  • Structured exceptions: FabiasError, AuthenticationError, ApiError, NotFoundError
  • Long-running operation tracking with time reporting

Developer Experience

  • Module-level API: Clean import fabias.fabric as fabric pattern
  • Consistent patterns: Same API patterns across all modules
  • Comprehensive docstrings: Google-style docstrings with examples
  • Unit tests: 70+ tests with mocked HTTP responses
  • Integration tests: Real API tests with pytest markers

Notes

v1.0.0 represents a stable, production-ready release. The API is considered stable and follows semantic versioning - breaking changes will only occur in major version updates.

v0.1.0 was the initial public release with foundational features and API patterns.