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