Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/emberstack/ES.FX into de…
Browse files Browse the repository at this point in the history
…velop
  • Loading branch information
serban-cristian committed Aug 9, 2024
2 parents 860260f + ff4c9e5 commit abe4897
Show file tree
Hide file tree
Showing 56 changed files with 1,126 additions and 88 deletions.
62 changes: 62 additions & 0 deletions ES.FX.sln
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,23 @@ EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ES.FX.Shared.Seq.Tests", "tests\ES.FX.Shared.Seq.Tests\ES.FX.Shared.Seq.Tests.csproj", "{3B260066-300E-4AD2-A0F7-BADED21F721D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.OpenTelemetry.Exporter.Seq.Tests", "tests\ES.FX.Ignite.OpenTelemetry.Exporter.Seq.Tests\ES.FX.Ignite.OpenTelemetry.Exporter.Seq.Tests.csproj", "{DEFC7CD8-D546-4F51-A7D8-48FD938CEF81}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Common", "src\ES.FX.Ignite.Azure.Common\ES.FX.Ignite.Azure.Common.csproj", "{C936CEE8-34B3-435C-970F-200DB84D5177}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Storage.Blobs", "src\ES.FX.Ignite.Azure.Storage.Blobs\ES.FX.Ignite.Azure.Storage.Blobs.csproj", "{03D880C3-F1F1-4746-ADEC-9F59CFD12519}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Storage.Queues", "src\ES.FX.Ignite.Azure.Storage.Queues\ES.FX.Ignite.Azure.Storage.Queues.csproj", "{EB2D9423-CDFF-4911-95F9-0A77FA7A750C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Data.Tables", "src\ES.FX.Ignite.Azure.Data.Tables\ES.FX.Ignite.Azure.Data.Tables.csproj", "{40B14732-2810-45E8-AFFF-F25613EEE663}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Security.KeyVault.Secrets", "src\ES.FX.Ignite.Azure.Security.KeyVault.Secrets\ES.FX.Ignite.Azure.Security.KeyVault.Secrets.csproj", "{C8FAFE2B-A175-4215-918D-2526D10D3830}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Data.Tables.Tests", "tests\ES.FX.Ignite.Azure.Data.Tables.Tests\ES.FX.Ignite.Azure.Data.Tables.Tests.csproj", "{3159E21B-341C-4800-A812-564F07B0A03B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Storage.Blobs.Tests", "tests\ES.FX.Ignite.Azure.Storage.Blobs.Tests\ES.FX.Ignite.Azure.Storage.Blobs.Tests.csproj", "{7D7DF31D-78DA-440F-A5E2-311C5CED142C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Storage.Queues.Tests", "tests\ES.FX.Ignite.Azure.Storage.Queues.Tests\ES.FX.Ignite.Azure.Storage.Queues.Tests.csproj", "{ADABA0FD-C43E-4F2C-981F-480C186CFD72}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ES.FX.Ignite.Azure.Security.KeyVault.Secrets.Tests", "tests\ES.FX.Ignite.Azure.Security.KeyVault.Secrets.Tests\ES.FX.Ignite.Azure.Security.KeyVault.Secrets.Tests.csproj", "{497C425C-451C-4D46-9693-A609D06D946D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -360,6 +377,42 @@ Global
{DEFC7CD8-D546-4F51-A7D8-48FD938CEF81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DEFC7CD8-D546-4F51-A7D8-48FD938CEF81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DEFC7CD8-D546-4F51-A7D8-48FD938CEF81}.Release|Any CPU.Build.0 = Release|Any CPU
{C936CEE8-34B3-435C-970F-200DB84D5177}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C936CEE8-34B3-435C-970F-200DB84D5177}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C936CEE8-34B3-435C-970F-200DB84D5177}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C936CEE8-34B3-435C-970F-200DB84D5177}.Release|Any CPU.Build.0 = Release|Any CPU
{03D880C3-F1F1-4746-ADEC-9F59CFD12519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{03D880C3-F1F1-4746-ADEC-9F59CFD12519}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03D880C3-F1F1-4746-ADEC-9F59CFD12519}.Release|Any CPU.ActiveCfg = Release|Any CPU
{03D880C3-F1F1-4746-ADEC-9F59CFD12519}.Release|Any CPU.Build.0 = Release|Any CPU
{EB2D9423-CDFF-4911-95F9-0A77FA7A750C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB2D9423-CDFF-4911-95F9-0A77FA7A750C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB2D9423-CDFF-4911-95F9-0A77FA7A750C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB2D9423-CDFF-4911-95F9-0A77FA7A750C}.Release|Any CPU.Build.0 = Release|Any CPU
{40B14732-2810-45E8-AFFF-F25613EEE663}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40B14732-2810-45E8-AFFF-F25613EEE663}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40B14732-2810-45E8-AFFF-F25613EEE663}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40B14732-2810-45E8-AFFF-F25613EEE663}.Release|Any CPU.Build.0 = Release|Any CPU
{C8FAFE2B-A175-4215-918D-2526D10D3830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8FAFE2B-A175-4215-918D-2526D10D3830}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8FAFE2B-A175-4215-918D-2526D10D3830}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8FAFE2B-A175-4215-918D-2526D10D3830}.Release|Any CPU.Build.0 = Release|Any CPU
{3159E21B-341C-4800-A812-564F07B0A03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3159E21B-341C-4800-A812-564F07B0A03B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3159E21B-341C-4800-A812-564F07B0A03B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3159E21B-341C-4800-A812-564F07B0A03B}.Release|Any CPU.Build.0 = Release|Any CPU
{7D7DF31D-78DA-440F-A5E2-311C5CED142C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D7DF31D-78DA-440F-A5E2-311C5CED142C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D7DF31D-78DA-440F-A5E2-311C5CED142C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D7DF31D-78DA-440F-A5E2-311C5CED142C}.Release|Any CPU.Build.0 = Release|Any CPU
{ADABA0FD-C43E-4F2C-981F-480C186CFD72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ADABA0FD-C43E-4F2C-981F-480C186CFD72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ADABA0FD-C43E-4F2C-981F-480C186CFD72}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ADABA0FD-C43E-4F2C-981F-480C186CFD72}.Release|Any CPU.Build.0 = Release|Any CPU
{497C425C-451C-4D46-9693-A609D06D946D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{497C425C-451C-4D46-9693-A609D06D946D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{497C425C-451C-4D46-9693-A609D06D946D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{497C425C-451C-4D46-9693-A609D06D946D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -425,6 +478,15 @@ Global
{6C069A3F-F1C7-4852-84B0-210D6F35839C} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
{3B260066-300E-4AD2-A0F7-BADED21F721D} = {BD8EB348-8F5D-41BB-BA2E-6D5C7A71FAB5}
{DEFC7CD8-D546-4F51-A7D8-48FD938CEF81} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
{C936CEE8-34B3-435C-970F-200DB84D5177} = {5A5969AF-86CB-489B-B0DE-C0BAADF5B424}
{03D880C3-F1F1-4746-ADEC-9F59CFD12519} = {5A5969AF-86CB-489B-B0DE-C0BAADF5B424}
{EB2D9423-CDFF-4911-95F9-0A77FA7A750C} = {5A5969AF-86CB-489B-B0DE-C0BAADF5B424}
{40B14732-2810-45E8-AFFF-F25613EEE663} = {5A5969AF-86CB-489B-B0DE-C0BAADF5B424}
{C8FAFE2B-A175-4215-918D-2526D10D3830} = {5A5969AF-86CB-489B-B0DE-C0BAADF5B424}
{3159E21B-341C-4800-A812-564F07B0A03B} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
{7D7DF31D-78DA-440F-A5E2-311C5CED142C} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
{ADABA0FD-C43E-4F2C-981F-480C186CFD72} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
{497C425C-451C-4D46-9693-A609D06D946D} = {32548940-0629-46AC-B9BF-E7C41F1C49DE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {388473D0-FE20-4821-BFE4-C3CD3E184C8F}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
#pragma warning disable CS9113 // Parameter is unread.

using Azure.Data.Tables;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Queues;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Playground.Shared.Data.Simple.EntityFrameworkCore;
Expand All @@ -11,8 +15,7 @@ internal class TestHostedService(
IServiceProvider serviceProvider,
IDbContextFactory<SimpleDbContext> dbContextFactory,
SimpleDbContext context,
SqlConnection connection
) : BackgroundService
SqlConnection connection) : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
Expand All @@ -31,6 +34,23 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
var contextUsers = context.SimpleUsers.ToList();

var a = connection.State;
try
{
var blobClient = serviceProvider.GetRequiredKeyedService<BlobServiceClient>(null);
var containerclient = blobClient.GetBlobContainerClient("testcontainer");
containerclient.CreateIfNotExists(PublicAccessType.Blob);


var queueClient = serviceProvider.GetRequiredKeyedService<QueueServiceClient>(null);
queueClient.CreateQueue("testqueue");

var tableClient = serviceProvider.GetRequiredKeyedService<TableServiceClient>(null);
tableClient.CreateTableIfNotExists("testTable");
}
catch (Exception e)
{
logger.LogError(e, "Error getting blob containers");
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,23 @@

<ItemGroup>
<ProjectReference Include="..\..\src\ES.FX.Hosting\ES.FX.Hosting.csproj" />
<ProjectReference
Include="..\..\src\ES.FX.Ignite.AspNetCore.HealthChecks.UI\ES.FX.Ignite.AspNetCore.HealthChecks.UI.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.AspNetCore.HealthChecks.UI\ES.FX.Ignite.AspNetCore.HealthChecks.UI.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Azure.Data.Tables\ES.FX.Ignite.Azure.Data.Tables.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Azure.Security.KeyVault.Secrets\ES.FX.Ignite.Azure.Security.KeyVault.Secrets.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Azure.Storage.Blobs\ES.FX.Ignite.Azure.Storage.Blobs.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Azure.Storage.Queues\ES.FX.Ignite.Azure.Storage.Queues.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.FluentValidation\ES.FX.Ignite.FluentValidation.csproj" />
<ProjectReference
Include="..\..\src\ES.FX.Ignite.Microsoft.Data.SqlClient\ES.FX.Ignite.Microsoft.Data.SqlClient.csproj" />
<ProjectReference
Include="..\..\src\ES.FX.Ignite.Microsoft.EntityFrameworkCore.SqlServer\ES.FX.Ignite.Microsoft.EntityFrameworkCore.SqlServer.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Microsoft.Data.SqlClient\ES.FX.Ignite.Microsoft.Data.SqlClient.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Microsoft.EntityFrameworkCore.SqlServer\ES.FX.Ignite.Microsoft.EntityFrameworkCore.SqlServer.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Migrations\ES.FX.Ignite.Migrations.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.NSwag\ES.FX.Ignite.NSwag.csproj" />
<ProjectReference
Include="..\..\src\ES.FX.Ignite.OpenTelemetry.Exporter.Seq\ES.FX.Ignite.OpenTelemetry.Exporter.Seq.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.OpenTelemetry.Exporter.Seq\ES.FX.Ignite.OpenTelemetry.Exporter.Seq.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Serilog\ES.FX.Ignite.Serilog.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite.Swashbuckle\ES.FX.Ignite.Swashbuckle.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Ignite\ES.FX.Ignite.csproj" />
<ProjectReference Include="..\..\src\ES.FX.Serilog\ES.FX.Serilog.csproj" />
<ProjectReference
Include="..\Playground.Shared.Data.Simple.EntityFrameworkCore.SqlServer\Playground.Shared.Data.Simple.EntityFrameworkCore.SqlServer.csproj" />
<ProjectReference
Include="..\Playground.Shared.Data.Simple.EntityFrameworkCore\Playground.Shared.Data.Simple.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\Playground.Shared.Data.Simple.EntityFrameworkCore.SqlServer\Playground.Shared.Data.Simple.EntityFrameworkCore.SqlServer.csproj" />
<ProjectReference Include="..\Playground.Shared.Data.Simple.EntityFrameworkCore\Playground.Shared.Data.Simple.EntityFrameworkCore.csproj" />
</ItemGroup>

</Project>
7 changes: 7 additions & 0 deletions playground/Playground.Microservice.Api.Host/Program.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
using ES.FX.Hosting.Lifetime;
using ES.FX.Ignite.AspNetCore.HealthChecks.UI.Hosting;
using ES.FX.Ignite.Azure.Data.Tables.Hosting;
using ES.FX.Ignite.Azure.Storage.Blobs.Hosting;
using ES.FX.Ignite.Azure.Storage.Queues.Hosting;
using ES.FX.Ignite.FluentValidation.Hosting;
using ES.FX.Ignite.Hosting;
using ES.FX.Ignite.Microsoft.Data.SqlClient.Hosting;
Expand Down Expand Up @@ -57,6 +60,10 @@
//Add Seq
builder.IgniteSeqOpenTelemetryExporter();

builder.IgniteAzureBlobServiceClient("Dev");
builder.IgniteAzureQueueServiceClient("Dev");
builder.IgniteAzureTableServiceClient("Dev");

builder.Services.AddOpenApiDocument();


Expand Down
31 changes: 30 additions & 1 deletion playground/Playground.Microservice.Api.Host/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,36 @@
"DisableHealthChecks": false
}
}
},
"Azure": {
"Storage": {
"Blobs": {
"Dev": {
"ConnectionString": "UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://azurite.localenv.io:10000/devstoreaccount1;",
"Retry": {
"maxRetries": 5
}
}
},
"Queues": {
"Dev": {
"ConnectionString": "UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://azurite.localenv.io:10001/devstoreaccount1;",
"Retry": {
"maxRetries": 5
}
}
}
},
"Data": {
"Tables": {
"Dev": {
"ConnectionString": "UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://azurite.localenv.io:10002/devstoreaccount1;",
"Retry": {
"maxRetries": 5
}
}
}
}
}
}

}
18 changes: 18 additions & 0 deletions src/ES.FX.Ignite.Azure.Common/ES.FX.Ignite.Azure.Common.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Azure.Identity" Version="1.12.0" />
<PackageReference Include="Microsoft.Extensions.Azure" Version="1.7.4" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\ES.FX.Ignite.Spark\ES.FX.Ignite.Spark.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
using Azure.Core.Extensions;
using JetBrains.Annotations;
using Microsoft.Extensions.Azure;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.HealthChecks;

namespace ES.FX.Ignite.Azure.Common.Hosting;

[PublicAPI]
public static class AzureCommonHostingExtensions
{
/// <summary>
/// Registers an Azure Client with the specified settings and options
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to read config from and add services to.</param>
/// <param name="serviceKey">
/// If not null, registers a keyed service with the service key. If null, registers a default
/// service
/// </param>
/// <param name="configuration">Configuration for the client.</param>
/// <param name="configureOptions">
/// An optional delegate that can be used for customizing options. It's invoked after the
/// options are read from the configuration.
/// </param>
public static void IgniteAzureClient<TClient, TOptions>(this IServiceCollection services,
string? serviceKey,
IConfigurationSection configuration,
Action<TOptions>? configureOptions = null)
where TOptions : class
where TClient : class
{
services.AddAzureClients(azureClientFactoryBuilder =>
{
var clientBuilder =
((IAzureClientFactoryBuilderWithConfiguration<IConfigurationSection>)azureClientFactoryBuilder)
.RegisterClientFactory<TClient, TOptions>(configuration);

if (!string.IsNullOrWhiteSpace(serviceKey)) clientBuilder.WithName(serviceKey);
clientBuilder.ConfigureOptions(options => configureOptions?.Invoke(options));
});


if (!string.IsNullOrWhiteSpace(serviceKey))
services.AddKeyedSingleton(serviceKey,
static (serviceProvider, serviceKey) => serviceProvider
.GetRequiredService<IAzureClientFactory<TClient>>().CreateClient((string)serviceKey!));
}

/// <summary>
/// Registers the observability for the Azure Client
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to read config from and add services to.</param>
/// <param name="serviceKey">
/// If not null, registers a keyed service with the service key. If null, registers a default
/// service
/// </param>
/// <param name="tracingEnabled"> Indicates if Tracing is enabled or not. </param>
/// <param name="healthChecksEnabled"> Indicates if HealthChecks are enabled or not. </param>
/// <param name="healthCheckFactory"> The factory used to create the health checks if enabled</param>
public static void IgniteAzureClientObservability<TClient>(this IServiceCollection services, string? serviceKey,
bool tracingEnabled,
bool healthChecksEnabled,
Func<IServiceProvider, TClient, IHealthCheck> healthCheckFactory) where TClient : class
{
if (tracingEnabled)
services.AddOpenTelemetry().WithTracing(traceBuilder =>
traceBuilder.AddSource([$"{typeof(TClient).Namespace}.*"]));

if (healthChecksEnabled)
{
var healthCheckName =
$"{nameof(Azure)}-{typeof(TClient).Name}-{(string.IsNullOrWhiteSpace(serviceKey) ? string.Empty : $"[{serviceKey}]")}";
services.AddHealthChecks().Add(new HealthCheckRegistration(healthCheckName,
serviceProvider => healthCheckFactory(serviceProvider,
serviceProvider.GetRequiredKeyedService<TClient>(serviceKey)),
default,
[nameof(Azure), typeof(TClient).Name],
default));
}
}
}
20 changes: 20 additions & 0 deletions src/ES.FX.Ignite.Azure.Data.Tables/AzureDataTablesSpark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using ES.FX.Ignite.Spark.Configuration;

namespace ES.FX.Ignite.Azure.Data.Tables;

/// <summary>
/// <see cref="AzureDataTablesSpark" /> definition
/// </summary>
public static class AzureDataTablesSpark
{
/// <summary>
/// Spark name
/// </summary>
public const string Name = "AzureDataTables";

/// <summary>
/// The default configuration section path
/// </summary>
public const string ConfigurationSectionPath =
$"{IgniteConfigurationSections.Ignite}:{nameof(Azure)}:{nameof(Data)}:{nameof(Tables)}";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using Azure.Data.Tables;
using ES.FX.Ignite.Spark.Configuration.Abstractions;

namespace ES.FX.Ignite.Azure.Data.Tables.Configuration;

/// <summary>
/// Provides the settings for connecting to Azure Storage using a <see cref="TableServiceClient" />
/// </summary>
public class AzureDataTablesSparkSettings : ISparkHealthCheckSettings, ISparkTracingSettings
{
/// <summary>
/// <inheritdoc cref="ISparkHealthCheckSettings.HealthChecksEnabled" />
/// </summary>
public bool HealthChecksEnabled { get; set; } = true;

/// <summary>
/// <inheritdoc cref="ISparkTracingSettings.TracingEnabled" />
/// </summary>
public bool TracingEnabled { get; set; } = true;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>


<ItemGroup>

<PackageReference Include="AspNetCore.HealthChecks.Azure.Data.Tables" Version="8.0.1" />
<PackageReference Include="Azure.Data.Tables" Version="12.9.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\ES.FX.Ignite.Azure.Common\ES.FX.Ignite.Azure.Common.csproj" />
</ItemGroup>

</Project>
Loading

0 comments on commit abe4897

Please sign in to comment.