TELS Platform Service - Project Overview

🏠 Home platform / api / docs

TELS Platform Service - Project Overview

Solution Structure

The solution (TELS.Platform.Api.sln) contains 5 projects:

Application Projects

Project Type Framework Description
TELS.Platform.Api Web API .NET 8.0 REST API for platform-level settings and configuration management
TELS.Platform.Contracts Library .NET Standard 2.0 Shared data/event/request/response contracts (published as NuGet v1.2.0)
TELS.Platform.ClientSdk Library .NET Standard 2.0 C# client SDK with typed proxies and Polly resilience (published as NuGet v1.2.0)
TELS.Platform.DbUp Console App .NET 8.0 DbUp database migration tool for PostgreSQL schema management (plan/apply)

Test Projects

Project Type Description
TELS.Platform.Api.Tests xUnit (.NET 8.0) API unit tests

Architecture

Purpose

TELS Platform is a centralized configuration and settings service for the TELS ecosystem. It provides:

  1. Subsystem Settings — A generic key-value store where each setting is identified by a subsystem name + setting name pair. Values are stored as JSONB, allowing flexible schema-less configuration for any data type.

  2. Client SDK — A published NuGet package (TELS.Platform.ClientSdk) that other TELS services use to read and write platform settings, with built-in Polly retry policies (5 retries, exponential backoff).

  3. Audit Trail — All setting changes (create, update, delete) are automatically recorded in a history table with person, persona, and timestamp tracking.

Layering Pattern

+-----------------------------------------------------+
|  API (TELS.Platform.Api)                             |
|  SettingsController — settings CRUD by subsystem     |
|  DiagnosticsController — health check, DB status     |
+-----------------------------------------------------+
|  Shared Contracts (TELS.Platform.Contracts)          |
|  PlatformSetting<T>, ScheduledMessageEvent,          |
|  PutPlatformSettingRequest, PagedResponse             |
+-----------------------------------------------------+
|  Client SDK (TELS.Platform.ClientSdk)                |
|  ISettingsProxy — typed HTTP client with Polly       |
+-----------------------------------------------------+
|  DAL (Custom DataProvider + Npgsql)                  |
|  PostgreSQL (platform database, platform schema)     |
+-----------------------------------------------------+

Data Access

Message Queue Integration


Key Features

1. Subsystem Settings Management

2. Client SDK

3. Audit History

4. Event Contracts


API Surface

2 controllers exposing 8 endpoints:

Authentication

See API Documentation for full endpoint details.


Key Technology Stack

Category Technology
Runtime .NET 8.0
Web Framework ASP.NET Core 8.0
Data Access Npgsql 7.0.7 (PostgreSQL, raw ADO.NET)
Database PostgreSQL 15.3 (platform database, platform schema)
Auth JWT Bearer (symmetric key), custom persona authorization
API Docs Swashbuckle 6.5.0 (at /platform/swagger)
Monitoring New Relic APM
Resilience Polly 7.0.9 (in ClientSdk)
Testing xUnit 2.4.1, Moq 4.18.4

Deployment

Docker Containers

Environments

Environment URL
Local http://localhost:7183
DEV https://devservices.tels.net/platform
QA https://qaservices.tels.net/platform
PROD https://services.tels.net/platform

CI/CD Pipeline

Stage Jobs
Build dotnet format verify, dotnet build, xUnit tests, docker buildx (arm64/amd64), container security scan, terraform verify
Publish NuGet push Contracts + ClientSdk to ProGet (manual)
Deploy Terraform per environment (dev, qa, prod) — RDS reboot, DbUp plan/apply, API plan/apply

Infrastructure


Configuration

Configuration Group Key Variables
Auth JWT issuer signing key, issuer, audience
Database PostgreSQL host, port, database, IAM auth toggle
Pages Default page size (1000)

External Integrations

Integration Mechanism Description
AWS RDS PostgreSQL Npgsql + IAM tokens Database hosting with IAM authentication
AWS Secrets Manager Terraform/ECS JWT signing key, monitoring license

NuGet Packages Published

Package Target Published To
TELS.Platform.Contracts .NET Standard 2.0 ProGet
TELS.Platform.ClientSdk .NET Standard 2.0 ProGet

Key Files & Locations

API: - TELS.Platform.Api/Controllers/ — 2 controllers (Settings, Diagnostics) - TELS.Platform.Api/Program.cs — Service configuration - TELS.Platform.Api/Data/ — Data providers and context factory

Contracts: - TELS.Platform.Contracts/ — Shared data/event/request/response contracts

Client SDK: - TELS.Platform.ClientSdk/ — Typed HTTP proxies with Polly resilience

Database: - TELS.Platform.DbUp/Scripts/Tracked/Schema/ — Versioned migrations - TELS.Platform.DbUp/Scripts/Untracked/AfterSchema/ — Stored functions


Notes