Open Source
@ Innovian
Fostering a culture of collaboration and innovation within and beyond Innovian.

hero image

Our Philosophy

At Innovian, our commitment to open source projects reflects our dedication to enhancing the tools we use and supporting the wider community. By addressing bugs and developing new features, we not only improve software reliability, but also gain valuable insights into the technologies we depend on. This active participation ensures we deliver top-notch solutions to our clients while promoting a culture of shared growth and continuous improvement.

Our Projects

We are proud to present a collection of projects that we have independently authored and continue to maintain for the benefit of the broader open-source community. Each of these projects reflects our commitment to innovation, quality and collaboration.

These projects are not just contributions to the community; they are integral components of Innovian's own software solutions. By leveraging these tools, we ensure that our products are built on a foundation of robust, reliable and cutting-edge technology.

Innovian.Telnyx.Storage

Persistence

Telnyx

Telnyx provides an S3-compatible storage solution that integrates high-redundancy blob storage capabilities with cost-effective pricing via an API layer built atop a file-based blockchain.

We have leveraged their service for storage extensive long-term data archives and developed this library to streamline management and data transfer operations.

Innovian.Contrib.Dapr.StateQueryBuilder

Query

Dapr

The Dapr framework offers a state management API with limited query support for certain providers. It requires constructing complex JSON schemas to define operations such as contains, equals, paging, sorting, and handling AND/OR queries.

This project introduces a fluent API for JSON construction, minimizing the risk of human error or illegal operations, and significantly enhancing developer productivity.

Innovian.Aspects.Logging

Aspects

PostSharp

PostSharp’s Metalama product facilitates aspect-oriented development in C# by utilizing the Roslyn compiler for code generation and validation.

This project automates logging for non-static classes and methods in projects using Microsoft.Extensions.Logging. It wraps methods in a try/catch block to log arguments, return values, and execution time. An instance of ILogger is injected and available in classes marked with the ‘partial’ keyword, ensuring comprehensive logging and performance measurement.

Innovian.Dapr.Workflow.RegistrationAspect

Aspects

PostSharp

PostSharp’s Metalama product facilitates aspect-oriented development in C# by leveraging the Roslyn compiler for code generation and validation.

This project is designed for microservices using Dapr’s Workflow capabilities. It ensures developers register all Workflow and WorkflowActivity implementations with the dependency injection system. At compile time, it identifies each implementing class and dynamically constructs a static method for standard Dapr Workflow registration.

If you are interested in support, would like to request a feature or want to customize any of these projects to better suit your own needs, we are here to help. Innovian offers commercial engagements to provide the expertise and assistance you request.

Our Contributions

We are excited to showcase the projects to which we have made significant contributions. Our deep familiarity with these initiatives underscores our expertise and commitment to advancing open-source technology. These contributions are integral to Innovian’s software solutions, reflecting our proficiency and dedication. By partnering with us, you gain access to subject-matter experts who are well-versed in these frameworks and tools, ensuring robust and innovative solutions for your needs.

Prioritize use of IConfiguration values

Dapr .NET SDK

October 18, 2024

Dapr

Feature

Historically, the Dapr clients have configured options via values pulled independently from environment variables - this PR instead prioritizes pulling from arguments, IConfiguration and then from environment variables.

Updated actor serialization documentation

Dapr .NET SDK

October 18, 2024

Dapr

Documentation

While a previous PR provided a detailed explainer on Data Contract serialization in the context of strongly-typed actor clients, this supplemented that work with an explainer on JSON serialization provided by System.Text.Json in both strongly- and weakly-typed actor clients

Extracted protos out to Dapr.Protos project

Dapr .NET SDK

October 16, 2024

Dapr

Feature

Removes all Dapr protos out from their separate projects to a shared Dapr.Protos project as part of broader refactoring

Remove shared types to Dapr.Common project

Dapr .NET SDK

October 16, 2024

Dapr

Feature

Removes several shared classes imported by project file reference to a shared Dapr.Common project as part of broader refactoring

Fixed security advisory updates in preparation for .NET 9

Dapr .NET SDK

October 15, 2024

Dapr

Testing

Feature

The upcoming release of .NET 9 adds greater vulnerability awareness through NuGet to direct and transitive package refernces. This is an early effort to apply all known CVEs, use central package management and update packages to their latest .NET 6 compatible versions

Remove deprecated Workflow methods from DaprClient and tests

Dapr .NET SDK

October 14, 2024

Dapr

Feature

As the Workflow block is approaching stable status, this effort removed obsolete methods from the Dapr.Client project and refactored an erroneously placed type

Added unit test to Secrets API test suite

Dapr .NET SDK

October 11, 2024

Dapr

Testing

Added unit test to validate additional scenario in Secrets API

Added unit test to service invocation test suite

Dapr .NET SDK

October 11, 2024

Dapr

Testing

Added unit test to validate headers passed in service invocation request are preserved by sender

Improved handling of null values from Metadata API

Dapr .NET SDK

October 11, 2024

Dapr

Bug Fix

Added fix to better handle null values returned from the Metadata API

Added missing workflow status branch

Dapr .NET SDK

September 13, 2024

Dapr

Bug Fix

Added missing branch to switch statement to fix bug

Added support for EventHubBufferedProducerClient

Aspire .NET

August 16, 2024

Microsoft

Feature

Testing

Added support for the missing EventHubBufferedProducerClient in addition to the existing EventHubProducerClient and EventHubConsumerClient in Aspire's Event Hub implementation.

Added missing environment variables to reference docs

Dapr .NET SDK

August 14, 2024

Dapr

Documentation

Two environment variables I was recently working in another contribution were missing from the reference documentation, so this PR added them.

Add overload to supply query string on service invocation

Dapr .NET SDK

July 2, 2024

Dapr

Feature

Testing

Documentation

This PR adds an overload to the service invocation functionality in Dapr by explicitly allowing key/value pairs to be appended to the invocation URL

Added overload for DaprClient DI registration

Dapr .NET SDK

June 25, 2024

Dapr

Feature

Testing

This PR adds access to an instance of IServiceProvider in the registration method for the Dapr client enabling developers to access values from the configuration or other registered services during the Dapr client registration.

Add support for Azure Batch in Aspire alternative

Achieve.Aspire

May 13, 2024

rudiv

Feature

This PR adds support for Azure Batch as a deployment target for the project.

Added example demonstrating limits to workflow concurrency in fan in/out example

Dapr .NET SDK

May 7, 2024

Dapr

Documentation

The documentation described different workflow patterns, including a fan-out/fan-in pattern. But it ended with a note suggesting how to take the idea further, but without elaborating. This PR contributes a code sample providing precisely that elaboration.

Prioritized value of environment variable over configuration, if set

Dapr .NET SDK

April 19, 2024

Dapr

Feature

Documentation

Testing

When a certain well-known environment variable was being set with the expectation that it'd be used for tracing, the Dapr runtime wouldn't recognize it. In this PR, it not only recognizes, but prioritizes it over configured values when set.

Marked bulk state value property as nullable

Dapr .NET SDK

April 3, 2024

Dapr

Feature

An issue was raised indicating that a method was returning a null value despite not being marked with the appropriate annotations. This provides those annotations to this method.

Updated documentation to reflect best practices regarding endpoint registration

Dapr .NET SDK

April 3, 2024

Dapr

Documentation

With the release of .NET 8, the best practice guidance shifted from use of the app.UseEndpoints method and instead to registration directly on the app instance. This PR updated such guidance in the Dapr documentation.

Added persisted state management to support .NET 8 Blazor Web Apps

Fluxor

April 1, 2024

Fluxor

Feature

The introduction of the Auto rendermode in the .NET 8 version of Blazor broke any implementation of Fluxor that utilized it as the state would be lost during any transition from Server to WASM. This PR added a pluggable state persistence layer that restored project compatibility.

Fixed template not utilizing the named template

Aspire .NET

February 28, 2024

Microsoft

Bug Fix

When a resource was defined, it would produce an invalid value name for the template resource name argument. This PR corrected the issue here and across all dependencies of the value.

Implemented Cryptography support in Dapr .NET client

Dapr .NET SDK

February 14, 2024

Dapr

Documentation

Feature

Testing

This PR added support for high-performance and bidirectional streaming of data for encryption and decryption of strings or streams compatible with .NET 6 and newer.

Added Crypto API reference documentation

Dapr .NET SDK

January 22, 2024

Dapr

Documentation

Seeking to complement the Cryptography support provided for the .NET Dapr client in another PR, this PR updates the documentation with descriptions and reference information regarding the functionality.

Added cryptography examples to documentation

Dapr .NET SDK

January 22, 2024

Dapr

Documentation

This PR added explicit samples demonstrating encryption and decryption operations with the .NET Dapr client

Deep dive into DataContract-based serialization in Dapr Actors

Dapr .NET SDK

January 5, 2024

Dapr

Documentation

There have been many versions of C# released since the DataContract serialization library was originally introduced. As such, there's been some confusion around how serialization should behave using more modern C# functionality. This article performs a deep-dive analysis with examples into how newer C# capabilities can be readily used.

Added overload to deserialize GetBulkStateAsync item values

Dapr

October 23, 2023

Dapr

Feature

Documentation

Testing

Prior to this PR, data retrieved via a call to GetBulkStateAsync would simply returned as a string. This PR instead deserializes the data to the generic type specified using the serialization engine configured with the Dapr client.

Added unit test to invalidate bug report

Dapr .NET SDK

October 23, 2023

Dapr

Testing

A bug report was filed indicated something wasn't working as intended. I created a unit test to prove that the client was handling the operation as expected

Link correction

Dapr .NET SDK

September 26, 2023

Dapr

Documentation

The Dapr documentation cited a bad link in the Azure App Configuration documentation describing authentication with Azure. This PR corrected this link with an appropriate URL.

Updated remoting listener extension to support exception serialization

Azure Service Fabric

September 9, 2023

Microsoft

Feature

Newer versions of Azure Service Fabric use new serialization settings. This PR adds overloads to a set of extensions that ship with the Service Fabric .NET SDK to support exception serialization using a custom IExceptionConverter for V2 remoting purposes.

Provided fabric-based example spanning multiple projects

Metalama

May 2, 2023

PostSharp

Documentation

This PR comprised an example project demonstrating how to add aspects to multiple projects using Metalama Fabrics.

Fix for scaling validation issue

Azure Service Fabric

October 27, 2022

Microsoft

Bug Fix

Fixed an issue that prevented scaling in the web explorer interface due to a badly formed regular expression.

Fix for timestamp sorting issue

Azure Service Fabric

October 27, 2022

Microsoft

Bug Fix

In the web explorer interface, clicking the timestamp header to change the sort order didn't do anything, and this fixed PR this experience.

Fixed missing colors in legend

Charts.css

May 21, 2022

ChartsCSS

Bug Fix

If more than ten colors were placed in the legend, the remaining elements wouldn't have a fill color. This fix changed this behavior so the colors would just repeat.

If you're stumped by a bug in an open source dependency or want a feature, but can't spare the engineering talent to contribute it yourself, we'd be happy to talk with you about stepping in to help. Innovian offers commercial engagements to provide the expertise and assistance you request.