Continuous Integration / config (pull_request) Successful in 12s
Continuous Integration / changes (pull_request) Successful in 22s
Continuous Integration / backend-build (pull_request) Successful in 5m53s
Continuous Integration / vulnerability-scan (pull_request) Successful in 5m46s
Continuous Integration / frontend-prepare (pull_request) Successful in 1m54s
Continuous Integration / backend-test (pull_request) Successful in 7m37s
Continuous Integration / frontend-build (pull_request) Successful in 2m14s
Continuous Integration / frontend-test (pull_request) Successful in 4m59s
Continuous Integration / frontend-lint (pull_request) Successful in 2m2s
Continuous Integration / publish-production (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
Continuous Integration / publish-test (pull_request) Successful in 7m34s
Continuous Integration / deploy-test (pull_request) Skipped
Implements Unit 2 "Offerings" (backend module, admin CRUD UI with drag-and-drop reordering, public GET /api/v1/offerings endpoint) and executes the feature's D-15 CI/CD cutover, switching the deploy pipeline's build/publish target from SlpModularCms.Api to SlpModularCms.Api.SlpSoftware. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FWyStNL2ZsjrS7FLd7xvvN
63 lines
2.1 KiB
JSON
63 lines
2.1 KiB
JSON
{
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning"
|
|
}
|
|
},
|
|
"ConnectionStrings": {
|
|
// Own, isolated local dev database (Infrastructure Design decision Q1 = B) — deliberately
|
|
// separate from SlpModularCms.Api's local database, so developing/testing this project
|
|
// (and the future Offerings module) never touches Api's local data, or vice versa.
|
|
"DefaultConnection": "Server=127.0.0.1;Port=3306;Database=SlpModularCmsSlpSoftwareDev;Uid=root;Pwd=<your-local-mariadb-password>"
|
|
},
|
|
"JwtSettings": {
|
|
"Secret": "SuperSecretKeyForDevelopmentOnly_MustBeLongerThan32Bytes!",
|
|
"Issuer": "SlpModularCms",
|
|
"Audience": "SlpModularCmsPortal",
|
|
"ExpiryMinutes": 60,
|
|
"RefreshTokenExpiryDays": 7,
|
|
"CookieSameSite": "None"
|
|
},
|
|
"Availability": {
|
|
"CircuitBreakerSeconds": 30,
|
|
"StatusCacheSeconds": 1
|
|
},
|
|
"MasterPolling": {
|
|
"PollIntervalSeconds": 15,
|
|
"FailOpenAfterMinutes": 2,
|
|
"HttpTimeoutSeconds": 5
|
|
},
|
|
"MasterModule": {
|
|
"IntegrityCheckIntervalMinutes": 60,
|
|
"HttpTimeoutSeconds": 10,
|
|
"MasterUrl": "https://localhost:7223"
|
|
},
|
|
"Cors": {
|
|
// 5175: this repo's admin frontend, reached via `pnpm dev:slpsoftware` (see
|
|
// .env.slpsoftware.local / package.json) — NOT the same as 5173, which is Api's own
|
|
// (Master) admin frontend dev port and would be the wrong origin to allow here.
|
|
// 5173: the actual public SlpSoftware website (separate repo/workspace,
|
|
// K:\Development\SlpSoftware\Projects\SlpSoftware), calling the anonymous
|
|
// GET /api/v1/offerings endpoint from its own Vite dev server. Coincidentally the same
|
|
// port number as Api's admin frontend above, but a different codebase/origin entirely —
|
|
// both need to be allowed here since Api.SlpSoftware serves both consumers.
|
|
"AllowedOrigins": [
|
|
"http://localhost:5175",
|
|
"https://localhost:5175",
|
|
"http://localhost:5173",
|
|
"https://localhost:5173"
|
|
]
|
|
},
|
|
"RateLimiting": {
|
|
"Login": {
|
|
"PermitLimit": 100,
|
|
"WindowSeconds": 60
|
|
},
|
|
"Refresh": {
|
|
"PermitLimit": 500,
|
|
"WindowSeconds": 60
|
|
}
|
|
}
|
|
}
|