feat(stage3): scaffold task-001 baseline
- WHY: establish Stage 3 task-001 execution baseline per repo intent - WHAT: add minimal solution/project skeleton and boundary docs - RULE: apply stage3 execution runtime and repository workflow directives
This commit is contained in:
parent
eb664ef06e
commit
6012921583
8
Thalos.DAL.slnx
Normal file
8
Thalos.DAL.slnx
Normal file
@ -0,0 +1,8 @@
|
||||
<Solution>
|
||||
<Folder Name="/src/">
|
||||
<Project Path="src/Thalos.DAL/Thalos.DAL.csproj" />
|
||||
</Folder>
|
||||
<Folder Name="/tests/">
|
||||
<Project Path="tests/Thalos.DAL.UnitTests/Thalos.DAL.UnitTests.csproj" />
|
||||
</Folder>
|
||||
</Solution>
|
||||
23
docs/architecture/thalos-dal-map.puml
Normal file
23
docs/architecture/thalos-dal-map.puml
Normal file
@ -0,0 +1,23 @@
|
||||
@startuml
|
||||
skinparam packageStyle rectangle
|
||||
|
||||
package "thalos-dal" {
|
||||
interface IUserDataProvider
|
||||
interface IRoleDataProvider
|
||||
interface IPermissionDataProvider
|
||||
interface IModuleDataProvider
|
||||
interface ITenantDataProvider
|
||||
interface IIdentityRepository
|
||||
interface IDalDependencyHealthCheck
|
||||
|
||||
IIdentityRepository --> IUserDataProvider
|
||||
IIdentityRepository --> IRoleDataProvider
|
||||
IIdentityRepository --> IPermissionDataProvider
|
||||
IIdentityRepository --> IModuleDataProvider
|
||||
IIdentityRepository --> ITenantDataProvider
|
||||
IIdentityRepository --> IDalDependencyHealthCheck
|
||||
}
|
||||
|
||||
package "thalos-service" as ThalosService
|
||||
ThalosService --> IIdentityRepository
|
||||
@enduml
|
||||
12
docs/dal/identity-persistence-strategy.md
Normal file
12
docs/dal/identity-persistence-strategy.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Identity Persistence Strategy
|
||||
|
||||
## Strategy
|
||||
|
||||
- DAL repository boundaries coordinate identity aggregate persistence operations.
|
||||
- Dependency health checks are defined inside DAL boundaries.
|
||||
- Storage and cache dependencies are modeled in DAL-owned contracts.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Identity persistence concerns do not leak to non-Thalos repositories.
|
||||
- Service layer consumes DAL boundaries without owning persistence details.
|
||||
15
docs/dal/identity-provider-boundaries.md
Normal file
15
docs/dal/identity-provider-boundaries.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Identity Provider Boundaries
|
||||
|
||||
## Ownership
|
||||
|
||||
- `IUserDataProvider`: user aggregate persistence provider boundary.
|
||||
- `IRoleDataProvider`: role aggregate persistence provider boundary.
|
||||
- `IPermissionDataProvider`: permission aggregate provider boundary.
|
||||
- `IModuleDataProvider`: module aggregate provider boundary.
|
||||
- `ITenantDataProvider`: tenant aggregate provider boundary.
|
||||
|
||||
## Rules
|
||||
|
||||
- Providers isolate datastore-specific behavior.
|
||||
- Provider boundaries remain internal to Thalos DAL.
|
||||
- Identity abstractions remain Thalos-owned.
|
||||
8
src/Thalos.DAL/Health/IDalDependencyHealthCheck.cs
Normal file
8
src/Thalos.DAL/Health/IDalDependencyHealthCheck.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Health;
|
||||
|
||||
/// <summary>
|
||||
/// Defines boundary for DAL dependency health probing.
|
||||
/// </summary>
|
||||
public interface IDalDependencyHealthCheck
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Providers/IModuleDataProvider.cs
Normal file
8
src/Thalos.DAL/Providers/IModuleDataProvider.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Providers;
|
||||
|
||||
/// <summary>
|
||||
/// Defines persistence provider boundary for identity modules.
|
||||
/// </summary>
|
||||
public interface IModuleDataProvider
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Providers/IPermissionDataProvider.cs
Normal file
8
src/Thalos.DAL/Providers/IPermissionDataProvider.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Providers;
|
||||
|
||||
/// <summary>
|
||||
/// Defines persistence provider boundary for identity permissions.
|
||||
/// </summary>
|
||||
public interface IPermissionDataProvider
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Providers/IRoleDataProvider.cs
Normal file
8
src/Thalos.DAL/Providers/IRoleDataProvider.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Providers;
|
||||
|
||||
/// <summary>
|
||||
/// Defines persistence provider boundary for identity roles.
|
||||
/// </summary>
|
||||
public interface IRoleDataProvider
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Providers/ITenantDataProvider.cs
Normal file
8
src/Thalos.DAL/Providers/ITenantDataProvider.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Providers;
|
||||
|
||||
/// <summary>
|
||||
/// Defines persistence provider boundary for identity tenants.
|
||||
/// </summary>
|
||||
public interface ITenantDataProvider
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Providers/IUserDataProvider.cs
Normal file
8
src/Thalos.DAL/Providers/IUserDataProvider.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Providers;
|
||||
|
||||
/// <summary>
|
||||
/// Defines persistence provider boundary for identity users.
|
||||
/// </summary>
|
||||
public interface IUserDataProvider
|
||||
{
|
||||
}
|
||||
8
src/Thalos.DAL/Repositories/IIdentityRepository.cs
Normal file
8
src/Thalos.DAL/Repositories/IIdentityRepository.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace Thalos.DAL.Repositories;
|
||||
|
||||
/// <summary>
|
||||
/// Defines aggregate repository boundary for identity persistence operations.
|
||||
/// </summary>
|
||||
public interface IIdentityRepository
|
||||
{
|
||||
}
|
||||
7
src/Thalos.DAL/Thalos.DAL.csproj
Normal file
7
src/Thalos.DAL/Thalos.DAL.csproj
Normal file
@ -0,0 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
25
tests/Thalos.DAL.UnitTests/BoundaryShapeTests.cs
Normal file
25
tests/Thalos.DAL.UnitTests/BoundaryShapeTests.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using Thalos.DAL.Health;
|
||||
using Thalos.DAL.Providers;
|
||||
using Thalos.DAL.Repositories;
|
||||
|
||||
namespace Thalos.DAL.UnitTests;
|
||||
|
||||
public class BoundaryShapeTests
|
||||
{
|
||||
[Fact]
|
||||
public void ProviderBoundaries_WhenReflected_AreInterfaces()
|
||||
{
|
||||
Assert.True(typeof(IUserDataProvider).IsInterface);
|
||||
Assert.True(typeof(IRoleDataProvider).IsInterface);
|
||||
Assert.True(typeof(IPermissionDataProvider).IsInterface);
|
||||
Assert.True(typeof(IModuleDataProvider).IsInterface);
|
||||
Assert.True(typeof(ITenantDataProvider).IsInterface);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RepositoryAndHealthBoundaries_WhenReflected_AreInterfaces()
|
||||
{
|
||||
Assert.True(typeof(IIdentityRepository).IsInterface);
|
||||
Assert.True(typeof(IDalDependencyHealthCheck).IsInterface);
|
||||
}
|
||||
}
|
||||
20
tests/Thalos.DAL.UnitTests/Thalos.DAL.UnitTests.csproj
Normal file
20
tests/Thalos.DAL.UnitTests/Thalos.DAL.UnitTests.csproj
Normal file
@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Using Include="Xunit" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\Thalos.DAL\Thalos.DAL.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Loading…
Reference in New Issue
Block a user