backend phase 0: foundation, cross-cutting seams & starter cleanup

Remove the Order demo (entity/feature/repo/config/gRPC/proto) and the three
pre-marketplace migrations; regenerate a fresh InitialBaseline migration.

Stand up the REST surface (PingController + System/Ping CQRS) proving the
Mediator -> behaviors -> OperationResult -> ApiResult envelope end to end.

Close wiring gaps: register LoggingBehavior (outermost) and add the built-in
rate limiter (per-IP global + otp/auth/sensitive policies), placed before
authentication.

Add current-user + audit plumbing: ICurrentUser (HttpContext + null impls),
rename BaseEntity audit fields to CreatedAt/ModifiedAt (DateTimeOffset) +
CreatedById/ModifiedById, stamped by a new AuditFieldInterceptor.

Introduce five cross-cutting seams (IDateTimeProvider, IFieldEncryptor,
ICacheService, IObjectStorage, INotificationDispatcher) with in-memory/local
mocks registered via AddCrossCuttingSeams.

Add Baya.Test.Foundation (encryptor, audit interceptor, ping handler) and
update docs, contracts (swagger.v1.json), handoff, report, and mocks registry.
This commit is contained in:
hamid
2026-06-30 22:48:41 +03:30
parent 53a40dc51d
commit 765cc632d5
75 changed files with 1539 additions and 1418 deletions
+115
View File
@@ -52,60 +52,174 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
docker-compose.yml = docker-compose.yml
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Baya.Test.Foundation", "src\Tests\Baya.Test.Foundation\Baya.Test.Foundation.csproj", "{052BF207-440C-4FAB-AF6F-4992B29A3BF4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|x64.ActiveCfg = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|x64.Build.0 = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|x86.ActiveCfg = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Debug|x86.Build.0 = Debug|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|Any CPU.Build.0 = Release|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|x64.ActiveCfg = Release|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|x64.Build.0 = Release|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|x86.ActiveCfg = Release|Any CPU
{56C4DDD2-4F8C-4D35-85D4-CC9064C52398}.Release|x86.Build.0 = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|x64.ActiveCfg = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|x64.Build.0 = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|x86.ActiveCfg = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Debug|x86.Build.0 = Debug|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|Any CPU.Build.0 = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|x64.ActiveCfg = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|x64.Build.0 = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|x86.ActiveCfg = Release|Any CPU
{09E81356-0531-42A0-9F7F-00C495F1226E}.Release|x86.Build.0 = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|x64.ActiveCfg = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|x64.Build.0 = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|x86.ActiveCfg = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Debug|x86.Build.0 = Debug|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|Any CPU.Build.0 = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|x64.ActiveCfg = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|x64.Build.0 = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|x86.ActiveCfg = Release|Any CPU
{3AFD5AAD-8DCD-44D6-86B9-078FBE8F2A1F}.Release|x86.Build.0 = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|x64.ActiveCfg = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|x64.Build.0 = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|x86.ActiveCfg = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Debug|x86.Build.0 = Debug|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|Any CPU.Build.0 = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|x64.ActiveCfg = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|x64.Build.0 = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|x86.ActiveCfg = Release|Any CPU
{9F3B3E49-3E3C-4244-AE88-D209B18B28B8}.Release|x86.Build.0 = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|x64.ActiveCfg = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|x64.Build.0 = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|x86.ActiveCfg = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Debug|x86.Build.0 = Debug|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|Any CPU.Build.0 = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|x64.ActiveCfg = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|x64.Build.0 = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|x86.ActiveCfg = Release|Any CPU
{9C0BCB6F-614C-4FA9-83A2-E95834E3C153}.Release|x86.Build.0 = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|x64.ActiveCfg = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|x64.Build.0 = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|x86.ActiveCfg = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Debug|x86.Build.0 = Debug|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|Any CPU.Build.0 = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|x64.ActiveCfg = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|x64.Build.0 = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|x86.ActiveCfg = Release|Any CPU
{DC49CD3F-840E-4634-B9DA-595F160E9499}.Release|x86.Build.0 = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|x64.ActiveCfg = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|x64.Build.0 = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|x86.ActiveCfg = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Debug|x86.Build.0 = Debug|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|Any CPU.Build.0 = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|x64.ActiveCfg = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|x64.Build.0 = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|x86.ActiveCfg = Release|Any CPU
{8F7135E8-68C9-4DA8-AA06-04518EBB403B}.Release|x86.Build.0 = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|x64.ActiveCfg = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|x64.Build.0 = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|x86.ActiveCfg = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Debug|x86.Build.0 = Debug|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|Any CPU.Build.0 = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|x64.ActiveCfg = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|x64.Build.0 = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|x86.ActiveCfg = Release|Any CPU
{BE13FF32-B8D5-4AE7-B173-6CA96040B788}.Release|x86.Build.0 = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|x64.ActiveCfg = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|x64.Build.0 = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|x86.ActiveCfg = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Debug|x86.Build.0 = Debug|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|Any CPU.Build.0 = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|x64.ActiveCfg = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|x64.Build.0 = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|x86.ActiveCfg = Release|Any CPU
{44DD0A96-BA65-476E-BC59-C8D2CFA703B9}.Release|x86.Build.0 = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|x64.ActiveCfg = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|x64.Build.0 = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|x86.ActiveCfg = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Debug|x86.Build.0 = Debug|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|Any CPU.Build.0 = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|x64.ActiveCfg = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|x64.Build.0 = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|x86.ActiveCfg = Release|Any CPU
{33AF382A-9E22-42F0-82E5-4F78BCFD40C1}.Release|x86.Build.0 = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|Any CPU.Build.0 = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|x64.ActiveCfg = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|x64.Build.0 = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|x86.ActiveCfg = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Debug|x86.Build.0 = Debug|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|Any CPU.ActiveCfg = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|Any CPU.Build.0 = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|x64.ActiveCfg = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|x64.Build.0 = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|x86.ActiveCfg = Release|Any CPU
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60}.Release|x86.Build.0 = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|x64.ActiveCfg = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|x64.Build.0 = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|x86.ActiveCfg = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Debug|x86.Build.0 = Debug|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|Any CPU.Build.0 = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|x64.ActiveCfg = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|x64.Build.0 = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|x86.ActiveCfg = Release|Any CPU
{7699705C-2C15-467F-957D-4C5EBE4FD92E}.Release|x86.Build.0 = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|x64.ActiveCfg = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|x64.Build.0 = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|x86.ActiveCfg = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Debug|x86.Build.0 = Debug|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|Any CPU.Build.0 = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|x64.ActiveCfg = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|x64.Build.0 = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|x86.ActiveCfg = Release|Any CPU
{052BF207-440C-4FAB-AF6F-4992B29A3BF4}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -132,6 +246,7 @@ Global
{54203B4F-3CE8-4EBA-B5E2-F7C985FACE60} = {45FA88C0-9986-40E5-A2E2-7742302518D2}
{7699705C-2C15-467F-957D-4C5EBE4FD92E} = {2373AFFC-1389-4D78-8465-074AB22084AF}
{704FAE1E-F0D2-468E-8B3D-E9E6F323ABE8} = {42CAB060-5D50-4E18-8F85-EBA5EB85B268}
{052BF207-440C-4FAB-AF6F-4992B29A3BF4} = {77986571-8153-4120-AD08-36729310A56B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {05C223B9-EA89-44B2-B9F5-D01181F85DFE}