- .NET 8 LTS solution with 7 projects (domain/application/infrastructure/api/shared/pos.core/pos[WPF]) - Central package management (Directory.Packages.props), .editorconfig, global.json pin to 8.0.417 - PostgreSQL 14 dev DB via existing brew service; food_market database created - ASP.NET Identity + OpenIddict 5 (password + refresh token flows) with ephemeral dev keys - EF Core 8 + Npgsql; multi-tenant query filter via reflection over ITenantEntity - Initial migration: 13 tables (Identity + OpenIddict + organizations) - AuthorizationController implements /connect/token; seeders create demo org + admin - Protected /api/me endpoint returns current user + org claims - React 19 + Vite 8 + Tailwind v4 SPA with TanStack Query, React Router 7 - Login flow with dev-admin placeholder, bearer interceptor + refresh token fallback - docs/architecture.md, CLAUDE.md, README.md Verified end-to-end: health check, password grant issues JWT with org_id, web app builds successfully (310 kB gzipped). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
836 B
JSON
38 lines
836 B
JSON
{
|
|
"Serilog": {
|
|
"MinimumLevel": {
|
|
"Default": "Information",
|
|
"Override": {
|
|
"Microsoft.AspNetCore": "Warning",
|
|
"Microsoft.EntityFrameworkCore": "Warning"
|
|
}
|
|
},
|
|
"WriteTo": [
|
|
{ "Name": "Console" },
|
|
{
|
|
"Name": "File",
|
|
"Args": {
|
|
"path": "logs/food-market-.log",
|
|
"rollingInterval": "Day",
|
|
"retainedFileCountLimit": 14
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ConnectionStrings": {
|
|
"Default": "Host=localhost;Port=5432;Database=food_market;Username=nns;Password="
|
|
},
|
|
"OpenIddict": {
|
|
"Issuer": "https://localhost:5001/",
|
|
"AccessTokenLifetime": "01:00:00",
|
|
"RefreshTokenLifetime": "30.00:00:00"
|
|
},
|
|
"Cors": {
|
|
"AllowedOrigins": [
|
|
"http://localhost:5173",
|
|
"http://localhost:4173"
|
|
]
|
|
},
|
|
"AllowedHosts": "*"
|
|
}
|