Skip to content

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 DocumentationDocs/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.Documentationdocs/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.*Template when 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 new yields 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-F03ConnectSoft.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-F04ConnectSoft.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-F05ConnectSoft.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-F06ConnectSoft.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-F07ConnectSoft.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-EXTConnectSoft.Extensions.Saas.* libraries

Feature SAAS-EXT-F01 — Package boundaries

Description: ConnectSoft DocumentationDocs/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-F03ConnectSoft.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-F04ConnectSoft.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-F05ConnectSoft.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-F06ConnectSoft.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

  1. EPIC-SAAS-DOCS + EPIC-SAAS-SVC-SURFACE
  2. EPIC-SAAS-TPL-GEN (optional)
  3. EPIC-SAAS-TPL-CTX — F01/F02 waves + F03–F07 template repos
  4. EPIC-SAAS-EXT
  5. EPIC-SAAS-REF