Skip to content

Commit 971f07a

Browse files
Implemented Stotage.FileSystem
1 parent 8c0c2b2 commit 971f07a

29 files changed

+353
-17
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<ImplicitUsings>enable</ImplicitUsings>
55
<Nullable>enable</Nullable>
66
<IsPackable>true</IsPackable>
7-
<Version>2.3.31</Version>
7+
<Version>2.3.34</Version>
88
<Authors>Andrey Serdyuk</Authors>
99
<Company>TaskHub</Company>
1010
<Title>TaskHub.Shared - Reusable Primitives for .NET Microservices</Title>

README.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
[![GitHub stars](https://img.shields.io/github/stars/TaskHub-Server/TaskHub.Shared?style=social)](https://github.com/TaskHub-Server/TaskHub.Shared/stargazers)
33
[![Sponsor](https://img.shields.io/badge/Sponsor-💖-pink?style=flat-square)](https://github.com/sponsors/andrey-serdyuk)
44

5-
65
TaskHub.Shared is a set of small, independent modules that act as the shared foundation for microservices.
76
It provides shared primitives, abstractions, contracts, and infrastructure adapters designed around Domain-Driven Design (DDD) and Clean Architecture principles.
87

@@ -42,6 +41,13 @@ TaskHub.Shared contains the fundamental components and patterns used across all
4241
- **TaskHub.Shared.GeoCoding.Abstractions** — Abstractions for geocoding providers.
4342
- **TaskHub.Shared.GeoCoding.Nominatim** — Implementation of the geocoding service using the Nominatim API.
4443

44+
## Networking
45+
- **TaskHub.Shared.Networking.Abstractions** — Abstractions for HTTP client configurations, including interfaces for defining client settings and policies.
46+
- **TaskHub.Shared.Networking.Implementation** — Configuration, refactoring and registering of HTTP clients with Polly-based resilience policies (retry, circuit breaker, timeout).
47+
48+
## Refactoring
49+
- **TaskHub.Shared.Refactoring.Abstractions** — Abstractions for service refactoring.
50+
- **TaskHub.Shared.Refactoring.Implementation** — Implementations for service refactoring and dynamic dependency resolution.
4551

4652
## Observability
4753

@@ -55,17 +61,9 @@ TaskHub.Shared contains the fundamental components and patterns used across all
5561
### OpenTelemetry
5662
- **TaskHub.Observability.OpenTelemetry** — Preconfigured OpenTelemetry setup (resource, exporters, processors) for metrics, traces, and logs (Tempo, Prometheus, Loki).
5763

58-
59-
## Refactoring
60-
- **TaskHub.Shared.Refactoring.Abstractions** — Abstractions for service refactoring.
61-
- **TaskHub.Shared.Refactoring.Implementation** — Implementations for service refactoring and dynamic dependency resolution.
62-
6364
## Swagger / OpenAPI
6465
- **TaskHub.Shared.Swagger** — Common Swagger / OpenAPI configuration for ASP.NET Core services (conventions, filters, defaults).
6566

66-
## Networking
67-
- **TaskHub.Shared.Networking** — Resiliency policies (retry, circuit breaker, timeout) for HTTP clients.
68-
6967
## Bootstrapping
7068
- **TaskHub.Shared.Bootstraper.Basic** — Basic service bootstrapping (dependency injection, configuration, logging).
7169
- **TaskHub.Shared.Bootstraper.Full** — Comprehensive service bootstrapping (all features, advanced configuration, etc.).

Shared.slnx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
<Project Path="TaskHub.Shared.GeoCoding.Nominatim/TaskHub.Shared.GeoCoding.Nominatim.csproj" />
3636
</Folder>
3737
<Folder Name="/Networking/">
38-
<Project Path="TaskHub.Shared.Networking.Abstractions/TaskHub.Shared.Networking.Abstractions.csproj" Id="9058871d-aadf-4e9b-b1ce-545eda04f71e" />
39-
<Project Path="TaskHub.Shared.Networking.Implementation/TaskHub.Shared.Networking.Implementation.csproj" Id="98f34111-49e6-4178-9919-91ff62eb402e" />
38+
<Project Path="TaskHub.Shared.Networking.Abstractions/TaskHub.Shared.Networking.Abstractions.csproj" />
39+
<Project Path="TaskHub.Shared.Networking.Implementation/TaskHub.Shared.Networking.Implementation.csproj" />
4040
</Folder>
4141
<Folder Name="/Observability/" />
4242
<Folder Name="/Observability/Logger/">
@@ -56,8 +56,8 @@
5656
<Project Path="TaskHub.Shared.Persistence.Repository/TaskHub.Shared.Persistence.Repository.csproj" />
5757
</Folder>
5858
<Folder Name="/Storage/">
59-
<Project Path="TaskHub.Shared.Storage.Abstractions/TaskHub.Shared.Storage.Abstractions.csproj" Id="a379fdb7-5b5c-422a-97fa-e3a7a9be834a" />
60-
<Project Path="TaskHub.Shared.Storage.FileSystem/TaskHub.Shared.Storage.FileSystem.csproj" Id="49adf94c-7d33-4873-a8d6-0b806a8a2ff1" />
59+
<Project Path="TaskHub.Shared.Storage.Abstractions/TaskHub.Shared.Storage.Abstractions.csproj" />
60+
<Project Path="TaskHub.Shared.Storage.FileSystem/TaskHub.Shared.Storage.FileSystem.csproj" />
6161
</Folder>
6262
<Folder Name="/Tools/">
6363
<Project Path="TaskHub.Shared.RateLimiter/TaskHub.Shared.RateLimiter.csproj" />

TaskHub.Observability.Logger/TaskHub.Observability.Logger.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<ItemGroup>
1313
<PackageReference Include="Serilog.AspNetCore" Version="10.0.0" />
1414
<PackageReference Include="Serilog.Settings.Configuration" Version="10.0.0" />
15-
<PackageReference Include="Serilog.Sinks.Grafana.Loki" Version="8.3.1" />
15+
<PackageReference Include="Serilog.Sinks.Grafana.Loki" Version="8.3.2" />
1616
</ItemGroup>
1717

1818
<ItemGroup>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<Description>Abstractions for HTTP client configurations, including interfaces for defining client settings and policies.</Description>
4+
</PropertyGroup>
25
</Project>

TaskHub.Shared.Networking.Implementation/TaskHub.Shared.Networking.Implementation.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<Description>Configuration, refactoring and registering of HTTP clients with Polly-based resilience policies (retry, circuit breaker, timeout).</Description>
4+
</PropertyGroup>
25
<ItemGroup>
36
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.3.0" />
47
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.1" />
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace TaskHub.Shared.Storage.Abstractions.Exceptions;
2+
3+
public sealed class StorageException : Exception
4+
{
5+
public StorageException(string message) : base(message) { }
6+
public StorageException(string message, Exception innerException) : base(message, innerException) { }
7+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using TaskHub.Shared.Storage.Abstractions.Models;
2+
using TaskHub.Shared.Storage.Abstractions.Requests;
3+
4+
namespace TaskHub.Shared.Storage.Abstractions.Generator;
5+
6+
public interface IStorageKeyGenerator
7+
{
8+
string Generate(StorageObjectId id, StoreObjectRequest request);
9+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace TaskHub.Shared.Storage.Abstractions.Models;
2+
3+
public enum StorageAccess
4+
{
5+
Private = 0,
6+
Public = 1
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace TaskHub.Shared.Storage.Abstractions.Models;
2+
3+
public class StorageMetadata
4+
{
5+
public string Pathway { get; set; } = string.Empty;
6+
}

0 commit comments

Comments
 (0)