Skip to content

docs: XML documentation pass across Domain, Service & API public surface - #105

Merged
Akash29g merged 6 commits into
mainfrom
docs/xml-doc-comments
Jul 21, 2026
Merged

docs: XML documentation pass across Domain, Service & API public surface#105
Akash29g merged 6 commits into
mainfrom
docs/xml-doc-comments

Conversation

@Akash29g

Copy link
Copy Markdown
Owner

Summary

Adds XML documentation comments (/// <summary>, <param>, <returns>, <inheritdoc />)
across the entire public surface of the backend. This is a comments-only change —
zero logic was touched in any file. The goal is richer IntelliSense for the team and
auto-generated endpoint/model descriptions in Swagger UI.

Why

  • The public API surface (controllers, service contracts, DTOs, domain entities) had little
    to no inline documentation.
  • GenerateDocumentationFile is enabled for DocAnalytics.Domain and DocAnalytics.Service,
    and Swagger is wired to pull XML from all DocAnalytics.*.xml assemblies — but the doc files
    were mostly empty of summaries.
  • Result: bare Swagger UI and no hover-docs in the IDE.

What changed (by layer)

Domain (DocAnalytics.Domain)

  • All 17 entities documented (FileRecord, FileStepHistory, InvoiceHeader, InvoiceLineItem,
    ItemCategory, ActivityLog, AlertNotification, AlertRule, DocumentType, ErrorCatalog,
    Site, Tenant, Transaction, User, UserSiteAccess, LoginAttempt, RefreshToken).
  • Common contracts: ITenantScoped, ICurrentUser — summaries explain the global
    query-filter / tenancy contract they enforce.

Service (DocAnalytics.Service)

  • All feature areas covered: ActivityLog, AdminUsers, Alerts, Analytics, Auth, Aws, Batches,
    Dashboard, Errors, Extraction, Files, Health, Invoices, Provisioning, Realtime, Storage, Uploads.
  • Interfaces get full summaries; implementations use /// <inheritdoc /> to avoid duplication.
  • DTOs / records, DI feature-extensions, and Common helpers (PagedResult<T>,
    OneOfAttribute, DateTimeExtensions) documented.

API (DocAnalytics.Api)

  • All 16 controllers.
  • Realtime (PipelineHub, SignalRPipelineNotifier), Common (ApiResponse<T>,
    BaseController, CurrentUser), Auth (JwtSettings), Configuration (rate-limiting +
    security options/extensions), Extensions (ApiServiceExtensions, ValidationExtensions),
    Middleware (exception handling, security headers, tenant/site), BackgroundServices
    (ExtractionWorker, AlertEvaluationBackgroundService), and the Swagger operation filter.

Doc style

Consistent with an application (not a public library):

  • One informative <summary> per public member — descriptive, not restating the name.
  • <param> / <returns> where they add clarity (public methods, DI extensions, records).
  • /// <inheritdoc /> on interface implementations to keep a single source of truth.

Verification

  • dotnet build -warnaserror:CS1591build succeeds, zero warnings (proves every
    public member in the doc-file-emitting assemblies is documented).
  • ✅ All existing unit/integration tests still pass (no behavioral change).
  • ✅ Swagger UI now renders summaries/params for endpoints and schemas
    (AddSwaggerWithJwtIncludeXmlComments across DocAnalytics.*.xml).

Risk

Minimal — comments only. No changes to method signatures, control flow, DI registrations,
or runtime behavior.

@Akash29g
Akash29g requested a review from sumitgupta-cse July 21, 2026 10:05
@Akash29g
Akash29g requested a review from g9shubh as a code owner July 21, 2026 10:05
@Akash29g
Akash29g merged commit ce9922b into main Jul 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant