SaaS Solution Platform — Backlog Plan (backend / platform)¶
Introduction¶
This document is the authoritative detailed backlog for backend and platform work: documentation epics, ServiceModel standards, optional generic template, per-context ConnectSoft.Saas.*Template repositories, ConnectSoft.Extensions.Saas.*, and ProductCatalogDemo alignment.
Blazor shell and MFE work items live in Blazor microfrontend backlog plan (EPIC-SAAS-SHELL, EPIC-SAAS-MFE).
Epic rollup and Azure DevOps import: Epics and program backlog.
ID naming: Reuse Feature and Task IDs from ConnectSoft Documentation — Docs/starters/saas-extensions-and-templates-epics.md. New IDs introduced here extend the same families (SAAS-DOCS-*, SAAS-SVC-*, SAAS-CTX-*, SAAS-EXT-*, SAAS-REF-*, SAAS-GEN-*) without renumbering existing items.
ID matrix (backend extensions)¶
| ID | Type | Title |
|---|---|---|
| SAAS-DOCS-F01 | Feature | Three-site documentation coherence |
| SAAS-DOCS-F02 | Feature | Factory starter cross-links |
| SAAS-DOCS-T02 | Task | Company saas-solution-platform nav review |
| SAAS-DOCS-T03 | Task | Software Factory workflow verification |
| SAAS-SVC-F03 | Feature | gRPC and OpenAPI dual surface (optional) |
| SAAS-SVC-T04 | Task | gRPC proto layout and versioning rules |
| SAAS-SVC-T05 | Task | Client generation strategy (NSwag / grpc-dotnet) |
| SAAS-CTX-F03–F07 | Feature | One per ConnectSoft.Saas.*Template repo (see below) |
| SAAS-CTX-T03–T12 | Task | Per-template scaffold and ServiceModel tasks |
| SAAS-EXT-F03–F06 | Feature | One per initial Extensions.Saas package repo |
| SAAS-EXT-T02–T08 | Task | Package and migration tasks |
| SAAS-REF-T02 | Task | CI alignment for demo vs template |
Epic: EPIC-SAAS-DOCS — Documentation and framework cross-links¶
Outcome: ConnectSoft Documentation, CompanyDocumentation, and AI.SoftwareFactory.Documentation present a single SaaS template story; mkdocs nav complete; out-of-scope (Audit, Notifications, Config platforms) explicit.
Feature SAAS-DOCS-F01 — Three-site documentation coherence¶
Description: Ensure solution plan, bounded-context matrix, Extensions.Saas libraries, and Company SaaS Solution Platform pages cross-link without contradiction; stakeholders can start from Company or Documentation.
Acceptance criteria:
- SaaS platform — solution plan in ConnectSoft Documentation (
Docs/starters/saas-platform-solution-plan.md) links to Company SaaS Solution Platform hub where appropriate. - Template program implementation mapping lists Epics and program backlog page.
- No duplicate conflicting scope statements across the three sites.
Tasks:
| ID | Title | Description | Dependencies |
|---|---|---|---|
| SAAS-DOCS-T01 | Verify Documentation + Company builds | Run mkdocs build / --strict where applicable; fix broken links. |
— |
| SAAS-DOCS-T02 | Company saas-solution-platform nav review |
Confirm Core Platform nav order and Epics page discoverability. | SAAS-DOCS-T01 |
Feature SAAS-DOCS-F02 — Software Factory workflow alignment¶
Description: ConnectSoft.AI.SoftwareFactory.Documentation — docs/workflows/saas-template-selection-workflow.md and docs/workflows/software-engineering-workflows.md reference EPIC-SAAS-* and template selection rules.
Acceptance criteria:
- SaaS template selection workflow page exists and links to Company Epics and Documentation solution plan.
- Backend/Frontend agent sections mention
ConnectSoft.Saas.*Templatewhen architecture is SaaS core contexts.
Tasks:
| ID | Title | Description | Dependencies |
|---|---|---|---|
| SAAS-DOCS-T03 | Software Factory workflow verification | Audit software-engineering-workflows.md SaaS paragraph + saas-template-selection-workflow.md. |
SAAS-DOCS-F02 |
Epic: EPIC-SAAS-SVC-SURFACE — ServiceModel packaging and consumer standard¶
Dependencies: Identity Backend / ProductCatalogDemo patterns.
Feature SAAS-SVC-F01 — ServiceModel layout and versioning rules¶
Description: Canonical NuGet layout and SemVer for ConnectSoft.Saas.<Context>.ServiceModel (and RestApi split if used).
Acceptance criteria:
- Package identity pattern documented (
ConnectSoft.Saas.<Context>.ServiceModel). - Breaking vs additive change rules documented; major bump for contract breaks.
- Consumer matrix: Gateway, Shell, MFEs, peers — ServiceModel only at edge.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-SVC-T01 | Author ServiceModel standard cross-links | Link Service Model architecture page and SaaS platform solution plan in Documentation. |
| SAAS-SVC-T02 | Consumer package reference matrix | Table: who may reference ServiceModel vs auth packages; no Application/Domain. |
Feature SAAS-SVC-F02 — CI stages for package publish¶
Description: Template repos must produce pack artifacts for ServiceModel in CI before merge to main.
Acceptance criteria:
- Documented artifact names (
*.nupkg), target feed (dev/prod). - Version from Git tags or MinVer/CI build id.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-SVC-T03 | Pipeline outline for template repos | YAML expectations: restore, test, pack, push; secret scanning. |
Feature SAAS-SVC-F03 — gRPC and OpenAPI dual surface (optional)¶
Description: Where gRPC is required for service-to-service, define proto ownership, package naming, and version lock with ServiceModel major version.
Acceptance criteria:
- gRPC only for service mesh / peer calls; browser uses REST via gateway unless documented exception.
- Proto changes follow same SemVer discipline as REST DTOs.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-SVC-T04 | gRPC proto layout | Folder structure, *.proto package names per bounded context. |
| SAAS-SVC-T05 | Client generation | NSwag / grpc-dotnet codegen from shared contracts; CI validation. |
Epic: EPIC-SAAS-TPL-GEN — Optional ConnectSoft.Saas.MicroserviceTemplate¶
Feature SAAS-GEN-F01 — Repository and template pack skeleton¶
Description: Optional repo ConnectSoft.Saas.MicroserviceTemplate with ConnectSoft.BaseTemplate submodule and dotnet new symbols.
Acceptance criteria:
-
dotnet new install/dotnet newyields buildable solution. - README lists symbols (
BoundedContextName,ServiceNamePrefix, etc.).
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-GEN-T01 | Define template parameters | Design-time list of symbols and defaults; no repo creation until execution sign-off. |
Epic: EPIC-SAAS-TPL-CTX — Per-context ConnectSoft.Saas.*Template repositories¶
Feature SAAS-CTX-F01 — Core wave (Tenants, ProductsCatalog, Entitlements)¶
Description: Prioritize three template repositories for tenant, catalog, and entitlement domains; align aggregates with DDD entities.
Acceptance criteria:
- Design for each repo: solution layout, ServiceModel projects, submodule pointer to ConnectSoft.BaseTemplate.
- Wave-1 contexts do not block on Billing/Metering IDs beyond documented placeholders.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T01 | Bounded context matrix signed off | Align Docs/starters/saas-bounded-contexts-and-templates.md in Documentation — repo names and DDD pointers. |
Feature SAAS-CTX-F02 — Monetization wave (Billing, Metering)¶
Description: Billing and Metering templates depend on stable product/edition/feature IDs from catalog; integration events documented.
Acceptance criteria:
- Cross-context ID contract document (no navigations across DBs).
- Metering ingress API and Billing subscription events defined at ServiceModel level.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T02 | Cross-context ID contracts | Keys/IDs between Billing, Metering, and Product catalog. |
Feature SAAS-CTX-F03 — ConnectSoft.Saas.TenantsTemplate¶
Description: Template repo for Tenants bounded context: DDD layers, ServiceModel, persistence, optional messaging; Phase 1 may inline tenant context stub.
Acceptance criteria:
- ServiceModel NuGet packable from CI design.
- Tenant isolation rules reflected in application layer; no cross-context FKs.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T03 | Tenants template solution structure | Document Application/Domain/EntityModel/Infra split per factory standard. |
| SAAS-CTX-T04 | Tenants ServiceModel surface | REST resources and DTOs for tenant lifecycle; OpenAPI stub. |
Feature SAAS-CTX-F04 — ConnectSoft.Saas.ProductsCatalogTemplate¶
Description: Product catalog template aligned with ProductCatalogDemo extraction path.
Acceptance criteria:
- Product, Edition, Feature aggregates match company DDD spec.
- ServiceModel covers admin and read APIs needed by entitlements and billing consumers via IDs.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T05 | Catalog template solution structure | Same as Tenants: documented layout + submodule. |
| SAAS-CTX-T06 | Catalog ServiceModel and integration points | DTOs for catalog; event contracts for downstream. |
Feature SAAS-CTX-F05 — ConnectSoft.Saas.EntitlementsTemplate¶
Description: Entitlements assignment and evaluation APIs; consumes catalog IDs only.
Acceptance criteria:
- No direct SQL joins to catalog DB; API or event integration only.
- ServiceModel exposes entitlement checks for shell and MFE policy.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T07 | Entitlements template structure | Document layers and ServiceModel. |
| SAAS-CTX-T08 | Entitlement evaluation contracts | APIs for “has feature” / edition checks. |
Feature SAAS-CTX-F06 — ConnectSoft.Saas.BillingTemplate¶
Description: Subscriptions, invoices, payment provider ports; depends on catalog/edition IDs.
Acceptance criteria:
- Saga or process boundaries for subscription lifecycle documented.
- PCI boundaries: no card data in domain model if out of scope for template—document assumption.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T09 | Billing template structure | Layers + ServiceModel + integration events. |
| SAAS-CTX-T10 | Billing–catalog ID usage | Document required foreign keys as IDs only. |
Feature SAAS-CTX-F07 — ConnectSoft.Saas.MeteringTemplate¶
Description: Usage events, aggregation hooks, export to billing/rating.
Acceptance criteria:
- Idempotent ingestion API design for usage events.
- Metering does not mutate catalog aggregates.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-CTX-T11 | Metering template structure | Layers + ServiceModel. |
| SAAS-CTX-T12 | Metering event schema | JSON/event contract for usage lines. |
Epic: EPIC-SAAS-EXT — ConnectSoft.Extensions.Saas.* libraries¶
Feature SAAS-EXT-F01 — Package boundaries¶
Description: ConnectSoft Documentation — Docs/starters/saas-extensions-saas-libraries.md — defines Abstractions, AspNetCore, Options, Testing.
Acceptance criteria:
- One Git repo per NuGet package rule documented.
- Phase 2 migration path from inlined stubs listed.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T01 | Extract candidates from ProductCatalogDemo | Types to lift into Abstractions/AspNetCore. |
Feature SAAS-EXT-F02 — Migration of Phase 1 templates to package refs¶
Description: Checklist to replace stubs with NuGet in all ConnectSoft.Saas.*Template and Shell.Saas after packages publish.
Acceptance criteria:
- SemVer pinning strategy per consumer.
- Breaking change playbook for Abstractions.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T02 | Migration checklist document | Step-by-step for each template repo. |
Feature SAAS-EXT-F03 — ConnectSoft.Extensions.Saas.Abstractions¶
Description: ITenantContext, correlation, primitive types shared by host and services.
Acceptance criteria:
- No ASP.NET Core dependency in Abstractions package.
- Unit-testable without web host.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T03 | Abstractions API surface | Interface list and XML docs. |
Feature SAAS-EXT-F04 — ConnectSoft.Extensions.Saas.AspNetCore¶
Description: Middleware, DI extensions, filters for tenant resolution.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T04 | Middleware pipeline order | Document ordering vs authentication. |
Feature SAAS-EXT-F05 — ConnectSoft.Extensions.Saas.Options¶
Description: Strongly typed options for multi-tenant configuration.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T05 | Options validation | FluentValidation or data annotations pattern. |
Feature SAAS-EXT-F06 — ConnectSoft.Extensions.Saas.Testing¶
Description: Fakes, WebApplicationFactory helpers.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-EXT-T06 | Fake tenant context | Test doubles for unit/integration tests. |
| SAAS-EXT-T07 | Package publish CI | Reusable pipeline pattern per repo. |
| SAAS-EXT-T08 | Consumer migration verification | Shell + one template consume packages in CI. |
Epic: EPIC-SAAS-REF — Reference implementation (ProductCatalogDemo)¶
Feature SAAS-REF-F01 — Demo uses published ServiceModel and libraries¶
Description: ConnectSoft.Saas.ProductCatalogDemo tracks ConnectSoft.Saas.ProductsCatalogTemplate output and published NuGets.
Acceptance criteria:
- Demo builds with package references when execution phase completes.
- README points to template generator command line.
Tasks:
| ID | Title | Description |
|---|---|---|
| SAAS-REF-T01 | Gap analysis vs ProductsCatalogTemplate | Diff solution structure vs template golden output. |
| SAAS-REF-T02 | CI alignment | Demo pipeline matches template expectations (analysis only until repos exist). |
Ordering summary¶
- EPIC-SAAS-DOCS + EPIC-SAAS-SVC-SURFACE
- EPIC-SAAS-TPL-GEN (optional)
- EPIC-SAAS-TPL-CTX — F01/F02 waves + F03–F07 template repos
- EPIC-SAAS-EXT
- EPIC-SAAS-REF
Related¶
- Blazor microfrontend backlog plan — Shell and MFE epics
- Epics and program backlog