Skip to content

Latest commit

 

History

History
284 lines (210 loc) · 32 KB

File metadata and controls

284 lines (210 loc) · 32 KB

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.

0.13.0-preview.1 - 2026-07-09

Added

  • ConnectorTriggerPayload helper to read trigger callbacks — turns a raw Connector Namespace trigger callback (string or Stream) into a typed payload or decoded file bytes without per-function boilerplate. Read<TPayload> / ReadAsync<TPayload> deserialize metadata triggers (e.g. OneDrive OnNewFilesV2) with case-insensitive property matching, so camelCase wire fields bind correctly instead of silently yielding all-null items. TryReadBinaryContent / ReadBinaryContentAsync decode binary-content triggers (e.g. OneDrive OnNewFileV2), whose body is a base64 string. The Stream overloads read the caller-owned stream without closing it and enforce a generous, overridable body-size limit (DefaultMaxBodySizeBytes, 100 MB); TryReadBinaryContent returns false (rather than throwing) on malformed JSON. (#190)
  • Microsoft Dataverse client (commondataservice) — generated typed CommondataserviceClient exposing the legacy Common Data Model (CDM) REST surface, which is the surface reachable through the Connector Namespace runtime. Covers environment/table discovery (GetDataSetsAsync, GetTablesAsync, GetTableAsync), row operations (GetItemsAsync, GetItemAsync, PostItemAsync, PatchItemAsync, DeleteItemAsync), attachments (CreateAttachmentAsync, GetItemAttachmentsAsync, GetAttachmentContentAsync, DeleteAttachmentAsync), relationships (AssociateRecordsPatchItemAsync, DisassociateRecordsPostItemAsync, DisassociateSingleValueRecordDeleteItemAsync, GetCollectionRelationshipsAsync), choice/metadata discovery, and pagination (GetNextPageAsync). Dataset values are full environment URLs (e.g., https://contoso.crm.dynamics.com) and are double URL-encoded per the connector's x-ms-url-encoding: "double" contract. The modern Dataverse Web API routes (/api/data, /getorgs, ...) return HTTP 404 through Connector Namespace and are excluded by the generator's deterministic per-connector route-selection policy, along with the redundant OData-style key-syntax routes.

Changed

  • TriggerCallbackBodyConverter<T> now throws an actionable error for binary-content bodies — when a binary-content trigger callback (a JSON string body, e.g. OneDrive OnNewFileV2) is deserialized into a metadata payload type, the error now explains the cause and points to ConnectorTriggerPayload.TryReadBinaryContent / ReadBinaryContentAsync instead of failing with a generic token-mismatch message. (#190)

0.12.0-preview.1 - 2026-06-02

Breaking Changes

  • All 1,460 ConnectorNames.* constants renamed to PascalCase — constant names now derive from ARM connector display names via IdentifierNormalizer.Normalize instead of just capitalizing the first character of the raw connector ID. For example: GoogledriveGoogleDrive, MicrosoftteamsMicrosoftTeams, SharepointonlineSharePoint, Office365Office365Outlook. Brand casing overrides applied where ARM display name differs from official brand: DataBlend, VATCheckApi, MetaTask. Consumers referencing any renamed constant by name must update their references. (#170)
  • Optional value-type parameters changed to nullable across all generated clients — the generator was updated to use nullable types for optional value-type parameters so that null correctly represents "unspecified" while 0/false are valid distinct values. Affects int, bool, and double optional parameters across many connectors including TodoClient, TicketmasterClient, ShiftsClient, TeamsClient, SharePointOnlineClient, ServiceBusConnectorClient, WaywedoClient, UniversalPrintClient, TextRequestClient, RevaiClient, SigningHubClient, and SeismicPlannerClient. Callers passing literals still compile (implicit conversion); subclasses that override these virtual methods with the old non-nullable signature must update the parameter type. (#180)
  • Teams.OnGroupMemberChangeResponseItem model class and its model factory method removed — Teams connector swagger (v1.0.4) changed the membership trigger response from a named typed definition (OnGroupMemberChangeResponseItem with a UserId property) to an inline anonymous object array. The generator no longer produces a named class for inline schemas without a definition reference; membership trigger payloads are now TriggerCallbackPayload<object>. Consumers referencing OnGroupMemberChangeResponseItem directly must migrate; the id field is still present at runtime in the deserialized callback body. (#170)
  • Dynamic model properties changed from object to JsonElement? — all generated model properties typed as object (for free-form JSON) are now JsonElement?. Consumers that assigned arbitrary .NET objects must now pre-serialize to JsonElement. Affects ~493 properties across Kusto, MsGraphGroupsAndUsers, Projectplace, and others. (#157)
  • Output-only model properties changed from { get; internal set; } to { get; init; } — all generated output-only model properties now use init setters. Post-construction assignment (model.Prop = x;) no longer compiles; use object initializers or the generated *ModelFactory classes. (#161)
  • IConnectorClient marker interface removedConnectorClientBase now implements IDisposable directly. Code referencing IConnectorClient must use ConnectorClientBase instead. (#183)

Added

  • Teams trigger payload typesTeamsOnNewChannelMessageTriggerPayload, TeamsOnNewChannelMessageMentioningMeTriggerPayload, TeamsOnTeamMemberRemovedTriggerPayload, and TeamsOnTeamMemberAddedTriggerPayload added; static TeamsTriggers.Operations dictionary maps operation names to payload types for dynamic dispatch (#170)
  • OpenTelemetry distributed tracing on all generated clients — each generated client has a per-connector ConnectorActivitySource (e.g., Azure.Connectors.Sdk.teams, Azure.Connectors.Sdk.office365) and every operation starts an Activity, enabling end-to-end traceability when subscribed through ActivitySource listeners or OpenTelemetry exporters. Subscribe to Azure.Connectors.Sdk.* to capture all connector operations. (#183)
  • ConnectorException now parses the connector error code — the response body's error code is extracted to populate RequestFailedException.ErrorCode, giving callers a structured error code alongside Status, Message, and ResponseBody (#180)
  • [EditorBrowsable(EditorBrowsableState.Never)] on inherited Object methods — all generated clients now suppress Equals, GetHashCode, and ToString from IntelliSense autocomplete, reducing noise when working with client instances (#160)

Changed

  • Regenerated all 96 connector clients from combined BPM generator improvements: Microsoft copyright header on every generated file (#158), [EditorBrowsable(EditorBrowsableState.Never)] on inherited Object methods (#160), protected mock constructors now chain to base() (#159), and null-guard hardening (#175)

0.11.0-preview.1 - 2026-05-15

Fixed

  • TriggerCallbackBody<T> now handles both batch and single-item callback shapes — Connector Namespace delivers trigger callbacks in two shapes depending on the trigger configuration's splitOn setting: batch {"body":{"value":[...]}} and single-item {"body":{...item...}}. The new TriggerCallbackBodyConverter<T> transparently normalizes both shapes into Body.Value as a list, preventing silent zero-item processing when splitOn is enabled. All 77+ generated TriggerCallbackPayload<T> subclasses inherit this fix automatically. (#149)

Breaking Changes

  • TriggerCallbackPayload<T>.Body is now init-only — the setter changed from public set to init. Post-construction assignment (payload.Body = x;) no longer compiles; use an object initializer or ConnectorModelFactory.TriggerCallbackPayload<T>(body) instead.
  • TriggerCallbackBody<T>.Value setter is now internal and the type narrowed to IReadOnlyList<T>? — the property changed from public List<T>? Value { get; set; } to public IReadOnlyList<T>? Value { get; internal set; }. External assignments (body.Value = list;) and List<T>-specific mutations no longer compile; use ConnectorModelFactory.TriggerCallbackBody<T>(value) to construct instances in tests.
  • Removed CamelCase JSON naming policy from ConnectorClientBase.JsonOptions and ConnectorJsonSerializer — properties without [JsonPropertyName] attributes now serialize using their C# PascalCase names, matching swagger/connector API expectations. Properties with [JsonPropertyName] are unaffected. Also changed JsonStringEnumConverter to use default casing instead of camelCase. (#84, #85)
  • Renamed AzuremonitorlogsClient to AzureMonitorLogsClient and Office365usersClient to Office365UsersClient for consistent PascalCase naming (#126)
    • Namespaces updated: Azure.Connectors.Sdk.AzuremonitorlogsAzure.Connectors.Sdk.AzureMonitorLogs, Azure.Connectors.Sdk.Office365usersAzure.Connectors.Sdk.Office365Users
    • DI extension methods renamed: AddAzuremonitorlogsClientAddAzureMonitorLogsClient, AddOffice365usersClientAddOffice365UsersClient
    • Model factories renamed: AzuremonitorlogsModelFactoryAzureMonitorLogsModelFactory, Office365usersModelFactoryOffice365UsersModelFactory
    • ConnectorNames constants renamed: ConnectorNames.AzuremonitorlogsConnectorNames.AzureMonitorLogs, ConnectorNames.Office365usersConnectorNames.Office365Users
  • Made IPageable<T> internal — this interface is now an internal deserialization contract only; generated clients already return AsyncPageable<T> from Azure.Core publicly (#127)
  • Changed ConnectorClientBase.CreatePageable from protected to private protected — only accessible to derived classes within the assembly; external subclasses of ConnectorClientBase cannot call this method directly (#127)
  • Made JSON converter types internalIso8601DateTimeConverter, Iso8601TimeSpanConverter, NullableTimeSpanConverter are serialization infrastructure not intended for direct consumer use (#124)

Added

  • Constructor overload (Uri, TokenCredential) without ClientOptions parameter on ConnectorClientBase and all 12 generated clients, following the Azure SDK constructor guideline (#123)
  • ConnectorHttpClient now supports mocking — added protected parameterless constructor and marked SendAsync as virtual (#125)
  • 5 new connector clientsExcelOnlineClient, AzureEventGridClient, YammerClient, WdatpClient (Microsoft Defender ATP), UniversalPrintClient (#7)
  • 15 more connector clients (batch 2)CampfireClient, ClickSendSmsClient, CloudmersiveConvertClient, EtsyClient, FormstackFormsClient, FreshServiceClient, InfusionsoftClient, InsightlyClient, PipedriveClient, PlivoClient, PlumsailClient, RepliconClient, RevaiClient, SigningHubClient, ZohoSignClient (#7)
  • 15 more connector clients (batch 3)DocuwareClient, ElfsquadDataClient, ImpexiumClient, JedoxOdataHubClient, MeetingRoomMapClient, OrderfulClient, PdfCoClient, ProjectplaceClient, SeismicPlannerClient, StarmindClient, StarrezRestV1Client, TallyfyClient, TextRequestClient, TicketmasterClient, WaywedoClient (#7)
  • 13 Microsoft 1st-party connector clients (batch 4)AzureAutomationClient, AzureDataFactoryClient, AzureDigitalTwinsClient, AzureVMClient, KeyVaultClient, MicrosoftBookingsClient, Office365GroupsClient, Office365GroupsMailClient, OnenoteClient, PlannerClient, PowerBIClient, ShiftsClient, TodoClient (#7)
  • 11 connector clients (batch 5)AzureADClient, AzureIoTCentralClient, MicrosoftFormsClient regenerated with generator bug fixes; plus 8 new clients: AzureQueuesClient, AzureTablesClient, DocumentDbClient, EventHubsClient, ExcelOnlineBusinessClient, OutlookClient, ServiceBusConnectorClient, WordOnlineBusinessClient; also fixes generator bugs #135, #136, #137, #138, #139 (IPageable property name derived from x-ms-summary; array-typed $ref definitions resolved to List<T> instead of undefined class name)
  • 25 new connector clients (batch 6)BoxClient, DocusignClient, DropboxClient, DynamicsaxClient, EventbriteClient, FtpClient, GithubClient, GooglecalendarClient, GoogledriveClient, GoogletasksClient, JiraClient, MailchimpClient, MondayClient, OnedriveClient (personal OneDrive), RssClient, SalesforceClient, SendgridClient, SlackClient, SqlClient, TrelloClient, TwitterClient, TypeformClient, WebexClient, WordpressClient, ZendeskClient

Changed

  • Regenerated all 12 connector clients from updated CodefulSdkGenerator with PascalCase name overrides and constructor additions
  • Regenerated 15 existing connector clients with latest generator bug fixes — AzureMonitorLogsClient, AzureTablesClient, DocumentDbClient, ExcelOnlineBusinessClient, ExcelOnlineClient, InfusionsoftClient, Office365Client, Office365GroupsClient, Office365UsersClient, OneDriveForBusinessClient, PipedriveClient, PlumsailClient, SmtpClient, WdatpClient, YammerClient

0.10.0-preview.1 - 2026-05-11

Breaking Changes

  • Removed CamelCase JSON naming policy from ConnectorClientBase.JsonOptions and ConnectorJsonSerializer — properties without [JsonPropertyName] attributes now serialize using their C# PascalCase names, matching swagger/connector API expectations. Properties with [JsonPropertyName] are unaffected. Also changed JsonStringEnumConverter to use default casing instead of camelCase. (#84, #85)
  • Renamed AzuremonitorlogsClient to AzureMonitorLogsClient and Office365usersClient to Office365UsersClient for consistent PascalCase naming (#126)
    • Namespaces updated: Azure.Connectors.Sdk.AzuremonitorlogsAzure.Connectors.Sdk.AzureMonitorLogs, Azure.Connectors.Sdk.Office365usersAzure.Connectors.Sdk.Office365Users
    • DI extension methods renamed: AddAzuremonitorlogsClientAddAzureMonitorLogsClient, AddOffice365usersClientAddOffice365UsersClient
    • Model factories renamed: AzuremonitorlogsModelFactoryAzureMonitorLogsModelFactory, Office365usersModelFactoryOffice365UsersModelFactory
    • ConnectorNames constants renamed: ConnectorNames.AzuremonitorlogsConnectorNames.AzureMonitorLogs, ConnectorNames.Office365usersConnectorNames.Office365Users
  • Made IPageable<T> internal — this interface is now an internal deserialization contract only; generated clients already return AsyncPageable<T> from Azure.Core publicly (#127)
  • Changed ConnectorClientBase.CreatePageable from protected to private protected — only accessible to derived classes within the assembly; external subclasses of ConnectorClientBase cannot call this method directly (#127)
  • Made JSON converter types internalIso8601DateTimeConverter, Iso8601TimeSpanConverter, NullableTimeSpanConverter are serialization infrastructure not intended for direct consumer use (#124)

Added

  • Constructor overload (Uri, TokenCredential) without ClientOptions parameter on ConnectorClientBase and all 12 generated clients, following the Azure SDK constructor guideline (#123)
  • ConnectorHttpClient now supports mocking — added protected parameterless constructor and marked SendAsync as virtual (#125)
  • 5 new connector clientsExcelOnlineClient, AzureEventGridClient, YammerClient, WdatpClient (Microsoft Defender ATP), UniversalPrintClient (#7)
  • 15 more connector clients (batch 2)CampfireClient, ClickSendSmsClient, CloudmersiveConvertClient, EtsyClient, FormstackFormsClient, FreshServiceClient, InfusionsoftClient, InsightlyClient, PipedriveClient, PlivoClient, PlumsailClient, RepliconClient, RevaiClient, SigningHubClient, ZohoSignClient (#7)
  • 15 more connector clients (batch 3)DocuwareClient, ElfsquadDataClient, ImpexiumClient, JedoxOdataHubClient, MeetingRoomMapClient, OrderfulClient, PdfCoClient, ProjectplaceClient, SeismicPlannerClient, StarmindClient, StarrezRestV1Client, TallyfyClient, TextRequestClient, TicketmasterClient, WaywedoClient (#7)
  • 13 Microsoft 1st-party connector clients (batch 4)AzureAutomationClient, AzureDataFactoryClient, AzureDigitalTwinsClient, AzureVMClient, KeyVaultClient, MicrosoftBookingsClient, Office365GroupsClient, Office365GroupsMailClient, OnenoteClient, PlannerClient, PowerBIClient, ShiftsClient, TodoClient (#7)

Changed

  • Regenerated all 12 connector clients from updated CodefulSdkGenerator with PascalCase name overrides and constructor additions

0.9.0-preview.1 - 2026-05-08

Breaking Changes

  • Constructor overhaul: Uri primary + string convenience + ManagedIdentityCredential default (#111)
    • Uri is now the primary constructor parameter type for all generated clients and ConnectorClientBase
    • string convenience overload delegates to Uri constructor with Uri.TryCreate validation (throws ArgumentException for invalid/relative URLs instead of UriFormatException)
    • Default credential changed from DefaultAzureCredential to ManagedIdentityCredential(SystemAssigned) — deterministic, fails fast on dev machines (CodeQL SM05137)
    • credential parameter is no longer optional — pass an explicit TokenCredential or omit for ManagedIdentityCredential default
    • Removed managedIdentityClientId constructor overload — construct ManagedIdentityCredential directly and pass it as the credential parameter
  • Output-only model properties now have internal set — service-generated properties (ETag, LastModified, *DateTime timestamps) are no longer publicly settable. Use the new per-connector model factory classes to construct instances with these properties in tests (#106)
  • Made ExceptionExtensions internalIsFatal() is only used internally in ConnectorClientBase and was never intended as a public API (#108)
  • Made HttpExtensions internalToJsonContent, ReadAsAsync, AddCorrelationId, AddClientRequestId are internal HTTP utilities, not consumer-facing (#108)
  • Removed RetryPolicy class — dead code; retry configuration moved to ClientOptions.Retry in PR #94 (#108)
  • Removed ConnectorResponse<T> class and ConnectorHttpClient.GetAsync<T>, PostAsync<TRequest, TResponse>, ParseResponseAsync<T> methods — all generated clients use ConnectorClientBase.CallConnectorAsync<T> which returns Task<T> directly; no callers referenced these APIs (#99)
  • Renamed all namespaces from Microsoft.Azure.Connectors.* to Azure.Connectors.Sdk.*, dropping the Microsoft. prefix for consistency with modern Azure SDK conventions and cross-language SDKs (#87)
    • e.g., using Microsoft.Azure.Connectors.Sdk.Office365;using Azure.Connectors.Sdk.Office365;
    • NuGet package renamed from Microsoft.Azure.Connectors.Sdk to Azure.Connectors.Sdk
    • Project/assembly renamed from Microsoft.Azure.Connectors.Sdk to Azure.Connectors.Sdk
  • ConnectorClientOptions now inherits from Azure.Core.ClientOptions — retry, transport, and diagnostics are configured via the inherited Retry, Transport, and Diagnostics properties instead of custom properties (#88)
    • Removed MaxRetryAttempts, Timeout, UseExponentialBackoff, InitialRetryDelay — use options.Retry.MaxRetries, options.Retry.NetworkTimeout, options.Retry.Mode, options.Retry.Delay instead
    • Added ServiceVersion enum for API versioning
  • Removed ITokenProvider interface and all implementationsAzure.Core.TokenCredential is now the only authentication path. Use DefaultAzureCredential, ManagedIdentityCredential, or any other TokenCredential subclass directly (#95)
    • Removed ILogger parameter and Logger property from ConnectorClientBase — logging and diagnostics are now handled by the Azure.Core HttpPipeline (configure via ConnectorClientOptions.Diagnostics; subscribe via AzureEventSourceListener) (#95)
    • Removed Microsoft.Extensions.Logging.Abstractions package dependency (#95)
  • Removed HttpClient parameter from all generated client constructors — inject custom HTTP transport via options.Transport = new HttpClientTransport(httpClient) instead (#88)
  • Replaced Polly retry with Azure.Core HttpPipeline — retry, authentication, and diagnostics now use the standard Azure SDK pipeline (#88)
  • Removed Polly and Microsoft.Extensions.Http package dependencies (#88)

Changed

  • Breaking: Generated connector clients now inherit from ConnectorClientBase instead of implementing IDisposable directly (#88)
  • Breaking: Per-connector exception types (e.g., Office365ConnectorException, TeamsConnectorException) replaced with unified ConnectorException base type with ConnectorName, Operation, StatusCode, and ResponseBody properties (#88)
  • Breaking: Generated client constructors accept a new optional ConnectorClientOptions parameter for configuring retry policy, timeout, and exponential backoff — the HttpClient parameter moved from position 3 to position 4 (#88)
  • Generated clients now use SDK infrastructure (ConnectorHttpClient) for authentication, retry with exponential backoff, OpenTelemetry instrumentation, and SSRF-protected URL resolution (#88)
  • Regenerated all 12 connector clients from CodefulSdkGenerator to ensure consistency with Azure SDK design changes — no manual edits remain in generated files

Added

  • Extensible enum types for Swagger enum properties (#115) — string properties with Swagger enum arrays are now generated as readonly struct types following the Azure SDK extensible enum pattern. Each struct provides static members for known values, implicit string conversion, case-insensitive equality, and a nested JsonConverter for System.Text.Json serialization.
  • DI integration extension methods (AddOffice365Client, AddTeamsClient, etc.) — register connector clients as singletons from an IConfiguration section, eliminating ~15 lines of boilerplate per connector in Azure Functions Program.cs. Resolves TokenCredential from DI or defaults to system-assigned managed identity. (#116)
  • Per-connector model factory classes (Office365ModelFactory, TeamsModelFactory, etc.) — static factory methods for constructing model instances with output-only properties, following the Azure SDK mocking guidelines (#106)
  • Azure Monitor Logs (azuremonitorlogs) generated typed client for querying Log Analytics workspaces and Application Insights — includes QueryData, QueryDataV2, VisualizeQuery, VisualizeQueryV2 operations with dynamic schema support for query results
  • ConnectorException — unified exception type for all connector API failures (#88)
  • ConnectorClientBase now provides CallConnectorAsync, ResolveUrl, shared JSON options, and convenience constructors accepting connectionRuntimeUrl + TokenCredential (#88)

Removed

  • ITokenProvider interface — replaced by Azure.Core.TokenCredential (#95)
  • ConnectionStringTokenProvider — no longer needed; was unused outside docs (#95)
  • ManagedIdentityTokenProvider — use ManagedIdentityCredential from Azure.Identity directly (#95)
  • TokenCredentialTokenProvider adapter — no longer needed without ITokenProvider (#95)
  • TokenProviderCredential adapter — no longer needed without ITokenProvider (#95)
  • ConnectorClientBase(ITokenProvider, ...) constructor — use ConnectorClientBase(string connectionRuntimeUrl, TokenCredential?, ...) instead (#95)
  • ConnectorHttpClient(ITokenProvider, ...) constructor — use the HttpPipeline-based constructor instead (#95)
  • Azure Log Analytics (azureloganalytics) connector removed — the connector and all its user-facing operations are deprecated by Microsoft (see connector docs). Microsoft recommends the Azure Monitor Logs connector as a replacement.

0.8.0-preview.1 - 2026-04-30

Added

  • Office 365 Users (office365users) generated typed client for user profile lookups, manager/reports chain, user search, and trending documents (#75)
  • Azure Log Analytics (azureloganalytics) generated typed client for workspace discovery and query schema operations (#74) (removed in next release — connector deprecated by Microsoft)
  • SMTP (smtp) generated typed client for sending email via SMTP connectors (#76)
  • Azure Blob Storage (azureblob) generated typed client with file and container operations (#80)
  • IBM MQ (mq) generated typed client for messaging queue operations (#81)
  • OpenTelemetry ActivitySource instrumentation in ConnectorHttpClient for distributed tracing of connector API calls (#73)

0.7.0-preview.1 - 2026-04-30

Added

  • IAsyncEnumerable<T> auto-pagination support for paginated connector operations (#58)
  • IPageable<T> interface for page types with Value + NextLink properties
  • ConnectorPageable<TPage, TItem> implementing IAsyncEnumerable<TItem> with automatic NextLink following and AsPages() for page-level access
  • Paginated methods: OnedriveforbusinessClient.ListFolderAsync, TeamsClient.GetMessagesFromChannelAsync, TeamsClient.GetMessagesFromChatAsync

Changed

  • Paginated methods now return ConnectorPageable<TPage, TItem> instead of Task<TPage> (breaking change)
  • CallConnectorAsync supports absolute NextLink URLs via ResolveUrl with SSRF protection (scheme + host + port validation)
  • ManagedIdentityCredential updated from deprecated constructor to ManagedIdentityId API
  • SDK using directive conditionally emitted only when needed by generated code

0.6.0-preview.1 - YYYY-MM-DD

Added

  • Initial NuGet.org release of the Azure Connectors .NET SDK

0.5.0-preview.1 - 2026-04-15

Added

  • MS Graph Groups & Users (msgraphgroupsanduser) generated typed client with 7 action operations: ListUsers, ListGroupsByDisplayNameSearch, ListSubscribedSkus, ListDirectGroupMembers, GetMemberLicenseDetails, GetGroupProperties, GetMemberGroups
  • Teams unit tests (constructor, dispose, mocked API call, error handling, serialization round-trips)

0.4.0-preview.1 - 2026-04-09

Added

  • OneDrive for Business generated typed client with 22 action operations and 4 trigger operations (#39)
  • OneDrive file operations: get/update/delete metadata, get/create file content, copy, move, convert, extract archive (#39)
  • OneDrive sharing: create share links by file ID or path (#39)
  • OneDrive folder operations: list root folder, list files in folder, find files by search (#39)
  • OneDrive trigger payloads and operation constants for file created/modified events (#39)

0.3.0-preview.1 - 2026-04-09

Breaking Changes

  • Simplified all generated operation names by stripping version suffixes (V2, V3, V4) — e.g., SendEmailV2AsyncSendEmailAsync (#44)
  • Simplified trigger names to start with On prefix and use natural English — e.g., CalendarGetOnUpdatedItemsV3OnCalendarUpdatedItems (#44)
  • Simplified type names with per-connector aliases — e.g., ClientSendHtmlMessageSendEmailInput (#44)
  • Dropped OnFlaggedEmailV3 trigger (superseded by V4, identical parameters) (#44)
  • Pruned unreferenced swagger definition types from generated output (#44)
  • Removed samples/SampleConnectorUsage/ project (use Connectors-NET-Samples instead) (#44)

Added

  • Trigger operation constants for all triggers, including those without response types (e.g., OnWebhookMessageReactionTrigger) (#44)
  • Definition type pruning: generator now only emits types transitively reachable from operations (#44)

Changed

  • Wire values (operationId strings, JSON property names) remain unchanged — only the C# API surface is simplified (#44)
  • README Quick Start and validated-connectors table updated for new names (#44)
  • Documentation link updated to point to Connectors-NET-Samples repo (#44)

0.2.0-preview.1 - 2026-04-07

Added

  • Azure Data Explorer (Kusto) generated typed client (#37)
  • PR template, governance doc, and CI code coverage (#36)
  • Standard Microsoft OSS community files (#27)
  • Dependabot version updates for NuGet and GitHub Actions (#26)
  • Release instructions in README and copilot-instructions (#25)

Changed

  • Bump Microsoft.Extensions.Http and Microsoft.Extensions.Logging.Abstractions (#33)
  • Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.3.0 (#35)
  • Bump coverlet.collector from 6.0.4 to 8.0.1 (#32)
  • Bump NuGet minor/patch dependencies (#31)
  • Bump GitHub Actions: checkout v6.0.2, setup-dotnet v5.2.0, upload-artifact v7.0.0 (#28, #29, #30)
  • Update cross-references to public Connectors-NET-Samples and LSP repos (#40)

0.1.0-preview.1 - 2025-12-19

Added

  • Initial SDK release with core abstractions (ConnectorClientBase, IConnectorClient, ConnectorClientOptions)
  • Token providers: ManagedIdentityTokenProvider, ConnectionStringTokenProvider
  • HTTP pipeline with configurable retry policies
  • Office 365 connector client (generated)
  • SharePoint connector client (generated)
  • Teams connector client (generated)