Runbook
Operational fundamentals (health endpoints, metrics scraping, log shipping) are inherited from the Base Template. Billing specifics:
Common tasks
| Task |
Command |
| Build |
dotnet build ConnectSoft.Saas.BillingTemplate.slnx |
| Run host |
dotnet run --project src/ConnectSoft.Saas.Billing.Application |
| Test + coverage |
dotnet test --settings ConnectSoft.Saas.BillingTemplate.runsettings |
| Apply migrations |
FluentMigrator runs via the host migration pipeline (MicroserviceMigration) |
Troubleshooting
| Symptom |
Likely cause |
Action |
| Queries return no rows across tenants |
SaasTenantFilter scoping |
Confirm tenant id resolves (X-Tenant-Id / tid); check Multitenancy config |
| Events not published/consumed |
MassTransit transport None |
Configure a real transport + persistence for non-dev |
| Duplicate provisioning on replays |
Non-idempotent saga handler |
Make reaction hooks idempotent |
| Concurrent write conflicts |
Bypassing the grain |
Route writes through SubscriptionEditorGrain |
| gRPC errors lack detail |
GrpcErrorHandlingStrategy not RichError |
Set it to enable GrpcRichErrorInterceptor |
See also