Purpose
This page is the portfolio-facing index of all program epics for the SaaS Solution Platform (EPIC-SAAS-, plus **how import work items into **ure DevOps Boards when approved. Product, architture, and leadership stakeholders use this Compy documentation page for e epic st, **order**scope, and ADO process.
Where the engineering detail lives (canonical):
| Layer |
Path in ConnectSoft.CompanyDocumentation |
Role |
| Backend / platform Features, Tasks, AC |
backlog-plan.md |
EPIC-SAAS-DOCS through EPIC-SAAS-REF — full breakdown |
| Gap analysis + wave-2 backlog |
saas-gap-deep-analysis.md · saas-gap-implementation-backlog.md |
saas-EPIC-* gap program — evidence, Features [001]–[079] |
| Blazor shell + MFE Features, Tasks, AC |
blazor-microfrontend-backlog-plan.md |
EPIC-SAAS-SHELL and EPIC-SAAS-MFE |
| ID index and short summary (factory) |
ConnectSoft Documentation — Docs/starters/saas-extensions-and-templates-epics.md |
SAAS-* IDs; avoid duplicating long-form text there |
Supporting narrative (framework):
| Topic |
ConnectSoft.Documentation path |
| Solution design |
Docs/starters/saas-platform-solution-plan.md |
| Bounded contexts and template repos |
Docs/starters/saas-bounded-contexts-and-templates.md |
ConnectSoft.Extensions.Saas.* libraries |
Docs/starters/saas-extensions-saas-libraries.md |
Program epics (full list)
| Epic ID |
Title |
Outcome (summary) |
Implementation Status |
Evidence |
Linked gap items |
Last verified |
| EPIC-SAAS-DOCS |
Documentation and cross-links |
Three doc sites + nav; explicit out-of-scope for Audit/Notifications/Config as this program |
Implemented |
Three-site nav, Epics discoverability, Factory workflow + agent cross-links |
saas-DOCS-F05..F07 |
2026-05-27 |
| EPIC-SAAS-SVC-SURFACE |
ServiceModel packaging and consumer standard |
Every backend template publishes ServiceModel (RestApi/Grpc as defined); consumers never reference Application/Domain |
Implemented |
All five templates publish ServiceModel NuGets |
— |
2026-05-27 |
| EPIC-SAAS-TPL-GEN |
Optional ConnectSoft.Saas.MicroserviceTemplate |
Generic SaaS-flavored scaffold + ConnectSoft.BaseTemplate submodule |
Missing |
Generic template repo not created |
— |
2026-05-27 |
| EPIC-SAAS-TPL-CTX |
Per-context ConnectSoft.Saas.*Template repositories |
Tenants, ProductsCatalog, Entitlements, Billing, Metering template repos |
Partial |
All five repos exist; wave-2 gaps tracked |
saas-EPIC-TEN,CAT,ENT,BIL,MET,INTEG |
2026-05-27 |
| EPIC-SAAS-SHELL |
ConnectSoft.Blazor.Shell.Saas |
Portal host: navigation, MFE registry, tenant/edition, OIDC/BFF |
Missing |
Shell repo not in scope of wave-1 templates |
— |
2026-05-27 |
| EPIC-SAAS-MFE |
Blazor MFE templates (SaaS contexts) |
Admin/self-service MFEs per context; ServiceModel clients only |
Missing |
MFE templates not shipped |
— |
2026-05-27 |
| EPIC-SAAS-EXT |
ConnectSoft.Extensions.Saas.* libraries |
One repo per package; publish NuGet; migrate templates from stubs |
Missing |
Extension packages not extracted |
— |
2026-05-27 |
| EPIC-SAAS-REF |
Reference implementation (ProductCatalogDemo) |
Align demo with ProductsCatalog template and published packages |
Partial |
Demo exists; full alignment pending |
— |
2026-05-27 |
| saas-EPIC-INTEG |
Cross-service integration gaps |
Topic harmonization, envelope, outbox, Orleans path |
In Progress |
P0 topic/quota slice completed; envelope/outbox/Orleans path remain open |
saas-INTEG-F01..F07 |
2026-06-18 |
| saas-EPIC-DOCS |
Gap backlog governance |
Analysis, mirrors, ADR stubs, status retrofit |
In Progress |
Backlog status retrofit updated with completed implementation slice |
saas-DOCS-F01..F10 |
2026-06-18 |
Recent implementation update — 2026-06-18
Completed and verified the first backend gap slice across Billing, Metering, Tenants, and Entitlements:
- Billing now consumes the canonical Tenants tenant-activated topic and Metering quota-exceeded topic for the P0 E2E path.
- Billing quota DTO/state/processor flow now uses Metering's canonical
Dimension field, with MeterKey retained as a compatibility alias.
- Billing, Metering, Tenants, and Entitlements placeholder architecture tests were replaced with concrete one-aggregate-root and cross-repo published-language guardrails.
- Remaining work is still tracked for lifecycle semantics, full processor/saga tests, descriptors, envelope/outbox policy, and Orleans write-path decisions.
Epic detail
Each subsection summarizes purpose, in/out of scope, dependencies, and definition of done, with anchors into the detailed backlog pages.
EPIC-SAAS-DOCS
|
|
| Purpose |
Keep ConnectSoft.Documentation, ConnectSoft.CompanyDocumentation, and ConnectSoft.AI.SoftwareFactory.Documentation aligned on the SaaS template program: published solution plan, implementation mapping, factory workflow references, and mkdocs navigation. |
| In scope |
Cross-links, nav entries, explicit out-of-scope callouts (Audit, Notifications, Configuration platforms as separate programs). |
| Out of scope |
Implementing product features inside bounded-context templates; Azure resource provisioning. |
| Key dependencies |
None blocking; enables all other epics by clarifying narrative and entry points. |
| Definition of done |
Stakeholders can find the SaaS program from all three doc sites; solution plan and Company mapping pages published; Software Factory docs reference SaaS template selection where applicable; mkdocs build passes for sites touched. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-DOCS |
EPIC-SAAS-SVC-SURFACE
|
|
| Purpose |
Establish a single consumer contract: published ServiceModel NuGet packages per bounded context, with documented layout, versioning, CI pack/publish, and optional gRPC policy—so gateways, shell, MFEs, and peers never depend on Application/Domain. |
| In scope |
Package identity, SemVer rules, consumer matrix, pipeline expectations, optional gRPC surface. |
| Out of scope |
Domain model design inside each context; Blazor UI (see shell/MFE epics). |
| Key dependencies |
EPIC-SAAS-DOCS for cross-links; Identity Backend / ProductCatalogDemo as pattern references. |
| Definition of done |
Documented standard adopted; CI outline agreed; any optional gRPC feature has AC and tasks completed or explicitly deferred with rationale. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-SVC-SURFACE · Blazor consumes ServiceModel via EPIC-SAAS-MFE |
EPIC-SAAS-TPL-GEN
|
|
| Purpose |
Provide an optional generic ConnectSoft.Saas.MicroserviceTemplate that submodules ConnectSoft.BaseTemplate and supports dotnet new with documented parameters. |
| In scope |
Template pack skeleton, symbols/defaults, golden sample, README. |
| Out of scope |
Replacing per-context templates; full CI implementation until repos exist. |
| Key dependencies |
EPIC-SAAS-SVC-SURFACE for ServiceModel expectations; ConnectSoft.BaseTemplate availability. |
| Definition of done |
dotnet new install / dotnet new produces a buildable solution; parameters documented; aligns with factory naming. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-TPL-GEN |
EPIC-SAAS-TPL-CTX
|
|
| Purpose |
Deliver one template repository per bounded context (Tenants, ProductsCatalog, Entitlements, Billing, Metering): DDD layout, ServiceModel projects, submodule to ConnectSoft.BaseTemplate, dotnet new, sample CI, integration test hooks. |
| In scope |
Per-repo features SAAS-CTX-F03–F07 (and shared F01/F02 waves) as defined in the backlog plan. |
| Out of scope |
Shell and MFE implementation (cross-reference only). |
| Key dependencies |
EPIC-SAAS-SVC-SURFACE; EPIC-SAAS-TPL-GEN optional baseline; bounded-context matrix from Documentation. |
| Definition of done |
Each context template meets its feature AC; stubs for Extensions.Saas acceptable in early phases per backlog. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-TPL-CTX |
Delivered repositories (one aggregate root per repo)
Repositories live under C:\Git\ConnectSoft\SAAS\, each Layer-3 extender of ConnectSoft.BaseTemplate via base-template/ submodule. Canonical map:
| Feature |
Repo |
Short name |
Aggregate root |
Topic prefix |
| SAAS-CTX-F03 Tenants |
ConnectSoft.Saas.TenantsTemplate |
connectsoft-saas-tenants |
Tenant |
tenants.domain.v1 |
| SAAS-CTX-F04 ProductsCatalog |
ConnectSoft.Saas.ProductsCatalogTemplate |
connectsoft-saas-productscatalog |
Product |
catalog.domain.v1 |
| SAAS-CTX-F05 Entitlements |
ConnectSoft.Saas.EntitlementsTemplate |
connectsoft-saas-entitlements |
Entitlement |
entitlements.v1 |
| SAAS-CTX-F06 Billing |
ConnectSoft.Saas.BillingTemplate |
connectsoft-saas-billing |
Subscription |
billing.subscriptions.v1 |
| SAAS-CTX-F07 Metering |
ConnectSoft.Saas.MeteringTemplate |
connectsoft-saas-metering |
UsageMeter |
metering.usage.v1 |
Tech defaults (locked): MassTransit (built-in outbox), Orleans, REST + gRPC, NHibernate multi-dialect (SQL Server / PostgreSQL / MySQL / Oracle / SQLite), Hangfire, Redis, OpenTelemetry + Serilog. Per-repo assets: ServiceModel + ServiceModel.RestApi + ServiceModel.Grpc + MessagingModel + ActorModel + ActorModel.Orleans + FlowModel.MassTransit + PersistenceModel.NHibernate + DatabaseModel.Migrations (no outbox) + InfrastructureModel + DiagramAsCodeModel + Docker Compose + Kubernetes + Helm chart + full observability stack + MkDocs documentation site.
See SaaS Template Baseline Checklist, SaaS Aggregate Root Assignment, and SaaS Cross-repo Published Language for acceptance criteria and cross-repo contracts.
EPIC-SAAS-SHELL
|
|
| Purpose |
ConnectSoft.Blazor.Shell.Saas: single Blazor Web App host with MFE registry/loading, OIDC/BFF alignment, tenant/edition UX, observability, and sample deployment patterns. |
| In scope |
Shell-only concerns; integration contracts with Authorization Server and API Gateway. |
| Out of scope |
Business logic belonging to bounded-context services; per-context MFE template content (see EPIC-SAAS-MFE). |
| Key dependencies |
EPIC-SAAS-SVC-SURFACE for ServiceModel clients; Blazor Templates HLD. |
| Definition of done |
Waves in the Blazor backlog (registry through observability/sample deployment) meet AC; shell documented vs generic Blazor shell. |
| Detailed backlog |
Blazor microfrontend backlog — EPIC-SAAS-SHELL |
EPIC-SAAS-MFE
|
|
| Purpose |
Per–bounded-context Blazor MFE templates (admin/self-service as needed): routing, ServiceModel client registration, authorization, shell integration, tests (bUnit/Playwright). |
| In scope |
Minimum five context groups (catalog, tenants, entitlements, billing, metering) as feature blocks in the Blazor backlog. |
| Out of scope |
Backend ServiceModel package internals; shell host implementation. |
| Key dependencies |
EPIC-SAAS-SHELL; EPIC-SAAS-SVC-SURFACE; Identity/Authorization Server MFE patterns. |
| Definition of done |
Each context MFE feature group meets AC; only ServiceModel packages referenced from API consumers; no domain leakage. |
| Detailed backlog |
Blazor microfrontend backlog — EPIC-SAAS-MFE |
EPIC-SAAS-EXT
|
|
| Purpose |
ConnectSoft.Extensions.Saas.*: one Git repo per package (Abstractions, AspNetCore, Options, Testing, …), NuGet publish, migration from inlined stubs in templates and shell. |
| In scope |
Package boundaries, APIs per saas-extensions-saas-libraries, migration checklist across templates. |
| Out of scope |
Product-specific business rules inside extension libraries. |
| Key dependencies |
EPIC-SAAS-TPL-CTX stabilization for consumption patterns; ProductCatalogDemo for extraction candidates. |
| Definition of done |
Published packages on agreed feeds; templates reference NuGet where planned; migration tasks tracked to completion or documented deferrals. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-EXT |
EPIC-SAAS-REF
|
|
| Purpose |
Align ConnectSoft.Saas.ProductCatalogDemo with the ProductsCatalog template and published ConnectSoft.Extensions.Saas.* — proof that the factory story works end-to-end. |
| In scope |
Gap analysis, build against feeds, README alignment with template generator. |
| Out of scope |
New product features beyond demonstration needs. |
| Key dependencies |
EPIC-SAAS-EXT and ProductsCatalog template maturity; items may stay Not ready until dependencies land. |
| Definition of done |
Demo builds from published packages; documented diff vs template output closed or tracked. |
| Detailed backlog |
Backlog plan — EPIC-SAAS-REF |
Suggested delivery order
- EPIC-SAAS-DOCS and EPIC-SAAS-SVC-SURFACE (foundation: narrative + contract rules).
- EPIC-SAAS-TPL-GEN (optional) → EPIC-SAAS-TPL-CTX (core contexts, then monetization contexts).
- EPIC-SAAS-SHELL + EPIC-SAAS-MFE in parallel with backend waves where possible.
- EPIC-SAAS-EXT after Phase 1 templates stabilize.
- EPIC-SAAS-REF last.
Azure DevOps mapping (planning)
| Epic ID |
Suggested work item type |
Tag |
| EPIC-SAAS-* |
Epic or Feature (per process) |
SaaS-Platform |
Azure DevOps Boards import (when approved)
This section replaces the former ConnectSoft.Documentation page Docs/azure-devops/saas-platform-backlog-azure-devops.md. Do not create work items until stakeholders explicitly approve Board import.
What to prepare before any Azure writes
- Agree the tag name (e.g.
SaaS-Platform) and optional Area path node for the team.
- Review the canonical backlog:
backlog-plan.md and blazor-microfrontend-backlog-plan.md; use ConnectSoft Documentation — Docs/starters/saas-extensions-and-templates-epics.md as the ID index (same SAAS-* families).
- Optionally draft a CSV with columns:
Title, Work Item Type, Description, Tags, Area Path—keep local until import.
Prerequisites (at import time)
- Project in Azure DevOps (e.g. ConnectSoft).
- Permissions to create work items, Area Paths, and tags (Project Administrator or equivalent).
- Process template supporting Epic, Feature, and User Story / Task (names vary by process).
Recommended configuration (first import)
| Item |
Value |
| Tag |
SaaS-Platform (every work item in this program) |
| Area path |
Dedicated node, e.g. ConnectSoft\SaaS Platform or ConnectSoft\Factory\SaaS Templates |
| Iteration |
New epics in Backlog until a release train is chosen |
Import order (when creating work items)
- Create parent items for each Epic (
EPIC-SAAS-DOCS … EPIC-SAAS-REF).
- Under each epic, create Features (
SAAS-SVC-F01, …) from Company backlog-plan.md and blazor-microfrontend-backlog-plan.md, aligned with IDs in Documentation saas-extensions-and-templates-epics.md.
- Under each feature, create Tasks with acceptance criteria in the description.
- Set repo-creation and pipeline items to Not ready / Blocked until design sign-off, if your process supports it.
Linking work items to docs
- In each Epic or Feature Description, link to this Company page for the epic summary and to the anchor on the relevant backlog page (e.g.
backlog-plan.md#epic-saas-svc-surface).
- Link to ConnectSoft Documentation for solution plan and bounded-context matrix as needed.
Optional: CSV / Excel import
Use Boards → Work items → Import (if enabled) with the columns above; map epic IDs to titles.
Optional: REST API
Use Work Items - Create REST API; include tag SaaS-Platform for consistent queries.
Queries (after items exist)
Save a shared query “SaaS Platform — all”: Tags Contains SaaS-Platform; order by stack rank or priority.