mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-03 13:53:30 +00:00
Brings in dev's Phase 5 (PR #17) + vendor PRs (#25/#28/#29) atop the Phase 6/7 + flagColor base (PR #22). Preserves dev Phase 1-5 behavior and PR #22 Phase 6/7 + flagColor behavior. Conflict resolutions (16 files): - Migrations Phase4_SearchIndexes/.Designer + Phase5_DomainEvents/.Designer: take dev (Phase4 incl. SQL Server SiteCode/InternalWONumber index-compat shrink fix; Phase5 identical). ModelSnapshot union: Vendor CompanyId index + Phase7 ServiceNotes/ExternalWorkOrderId index. - ApplicationDbContext: keep dev SiteCode/InternalWONumber MaxLength (Phase1-5 + unguarded model test) + HEAD CompletionDocTemplate/ExternalWorkOrderId. - WorkOrderAuditService: unify on dev async staging API; convert Phase6 CompletionService 2 call sites to await StageFieldChangedAsync (drops HEAD sync duplicate; only callers, no test refs). - Hosted services: take HEAD (retry-on-failure, coherent with Phase7 WorkOrderJobRunStateAccessor/OpsHealth). Program.cs keeps dev vendor DI (ClamAV/VendorDocumentScanWorker/ArgumentExceptionFilter) + HEAD Phase7. - WorkOrderController: keep HEAD Phase6/7 service params + dev doc comment. - VendorController/WorkOrderBoardCreateService/QueryFilters/appsettings: union / dev-correct. - WorkOrderBoardUpdateServiceTests: union of HEAD (Phase6/7+flagColor) and dev (Phase1-5) test methods. Verified WorkOrderType.Other (enum 99) is a legit category, not an overdue sentinel; overdue uses dedicated OperationalFlags.PastDue + IsPastDue, and 'Overdue' is rejected as a WorkOrderType (no PR #23 import needed). Removed dev duplicate Api.Options.WorkOrderJobRunState (HEAD defines it in Services.Implementation alongside the Accessor; Services cannot reference Api).
50 lines
1.7 KiB
JSON
50 lines
1.7 KiB
JSON
{
|
|
"ConnectionStrings": {
|
|
//"DefaultConnection": "Server=DESKTOP-64LC14O\SQLEXPRESS;Database=SeahavenIndustries;TrustServerCertificate=True;Trusted_Connection=True;MultipleActiveResultSets=true",
|
|
|
|
|
|
// Provide the real value via environment variable ConnectionStrings__DefaultConnection,
|
|
// user-secrets, or appsettings.Development.json (which is gitignored). Do NOT commit credentials.
|
|
"DefaultConnection": "${CONNECTION_STRING}"
|
|
},
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning"
|
|
}
|
|
},
|
|
"SendGrid": {
|
|
// Provide the real value via environment variable SendGrid__ApiKey or user-secrets.
|
|
"ApiKey": "${SENDGRID_API_KEY}"
|
|
},
|
|
// Malware scanner for vendor completion document uploads. While Host is empty the
|
|
// scanner is considered unavailable and uploaded files stay quarantined (download
|
|
// returns 423 Locked until a scan passes). Production must supply a real Host.
|
|
"ClamAV": {
|
|
"Host": "",
|
|
"Port": 3310
|
|
},
|
|
"AllowedHosts": "*",
|
|
"JWT": {
|
|
"ValidAudience": "http://localhost:4200",
|
|
"ValidIssuer": "http://localhost:7195",
|
|
// Provide the real value via environment variable JWT__Secret or user-secrets.
|
|
"Secret": "${JWT_SECRET}"
|
|
},
|
|
"WorkOrderJobs": {
|
|
"WeekRolled": { "Enabled": true, "RunAtUtc": "00:05", "DayOfWeek": "Monday" },
|
|
"PastDueCache": { "Enabled": false, "RunAtUtc": "00:10" }
|
|
},
|
|
"WorkOrderIngest": {
|
|
"Enabled": false,
|
|
"ApiKey": "${WORKORDER_INGEST_API_KEY}"
|
|
},
|
|
"Sync": {
|
|
"Enabled": true
|
|
},
|
|
"LegacyEndpoints": {
|
|
"DeprecationEnabled": false,
|
|
"SunsetDate": "2026-12-31"
|
|
},
|
|
"FrontendBaseUrl": "https://shoc.seahaven.com"
|
|
}
|