Skip to main content

Command Center API — Implementation Plan

Version: 1.0
Date: July 2026
Author: Pete Carroll, Founder — Traxs Group LLC
Status: Draft


1. Current State

The Command Center API is live at api.traxsgroup.com with the following already implemented:

ItemStatus
Solution structure (Core, UseCases, Infrastructure, Web)✅ Done
Central Package Management✅ Done
FastEndpoints + Cyrus Mediator✅ Done
SendGrid email service✅ Done
POST /v1/contact endpoint✅ Done
GET /health endpoint✅ Done
Azure App Service deployment✅ Done
api.traxsgroup.com custom domain + SSL✅ Done
ADO pipeline (production)✅ Done

2. Phase 1 — Public Endpoints Completion

When: Now (pre-Waypoint)
Tickets: TRA-NNN series (part of RoundTrip project until Waypoint project exists)

CC-001 — Support endpoint

  • SubmitSupportCommand + handler + validator
  • SubmitSupportEndpoint (POST /v1/support)
  • Email: confirmation to submitter, notification to support@roundtrips.app
  • Future hook: Crisp API ticket creation (placeholder comment)

CC-002 — Feedback endpoint

  • SubmitFeedbackCommand + handler + validator
  • SubmitFeedbackEndpoint (POST /v1/feedback)
  • Email: notification to hello@traxsgroup.com
  • Future hook: Linear API issue creation (placeholder comment)

CC-003 — Rate limiting

  • Add Microsoft.AspNetCore.RateLimiting package
  • Configure fixed window limiter (10 req/min per IP)
  • Apply to public endpoints
  • Return 429 Too Many Requests with Retry-After header

CC-004 — Dev pipeline

  • Create azure-pipelines-dev.yml for development branch
  • Dev App Service: app-commandcenter-dev
  • Dev domain: api-dev.traxsgroup.com
  • Mirror same pattern as RoundTrip dev pipeline

3. Phase 2 — Service-to-Service Foundation

When: Waypoint Milestone 0 (before Waypoint build starts)
Tickets: WAY-NNN series

CC-005 — API key authentication

  • Add CommandCenter--ApiKey secret to kv-commandcenter-pro
  • Add corresponding App Service environment variable
  • Implement ApiKeyAuthMiddleware
  • Register in Program.cs pipeline
  • All non-public endpoints require valid API key
  • Update ops manual

CC-006 — RoundTrip API client

  • Add RoundTripApi--BaseUrl and RoundTripApi--InternalApiKey to Key Vault
  • Implement IRoundTripClient interface in Core
  • Implement RoundTripClient in Infrastructure (HttpClientFactory)
  • Register in DI with 10-second timeout
  • Graceful null return on failure (never throws to caller)

CC-007 — RoundTrip internal endpoints (RoundTrip API work)

These are changes to the RoundTrip API — tracked as TRA-NNN tickets:

  • GET /v1/internal/revenue-summary — TRA ticket
  • GET /v1/internal/tickets/open — TRA ticket
  • GET /v1/internal/invoices/recent — TRA ticket
  • GET /v1/internal/team — TRA ticket
  • GET /v1/internal/ar/aging — TRA ticket

All internal endpoints validate X-Internal-ApiKey header and scope to tenantId query parameter.


4. Phase 3 — RoundTrip Data Endpoints

When: Waypoint Milestone 7 (Executive Dashboard)

CC-008 — Revenue summary endpoint

  • GetRevenueSummaryQuery + handler
  • GetRevenueSummaryEndpoint (GET /v1/roundtrip/revenue-summary)
  • Calls IRoundTripClient.GetRevenueSummaryAsync()
  • Returns RoundTripRevenueSummary DTO
  • 404 if tenant not found in RoundTrip

CC-009 — Open tickets endpoint

  • GetOpenTicketsQuery + handler
  • GetOpenTicketsEndpoint (GET /v1/roundtrip/tickets/open)

CC-010 — Recent invoices endpoint

  • GetRecentInvoicesQuery + handler
  • GetRecentInvoicesEndpoint (GET /v1/roundtrip/invoices/recent)

CC-011 — Team endpoint

  • GetTeamQuery + handler
  • GetTeamEndpoint (GET /v1/roundtrip/team)

CC-012 — AR aging endpoint

  • GetARAgingQuery + handler
  • GetARAgingEndpoint (GET /v1/roundtrip/ar/aging)

CC-013 — Suite subscriptions endpoint

  • Add Stripe--SecretKey to Key Vault
  • Implement IStripeSubscriptionService
  • GetSubscriptionsQuery + handler
  • GetSubscriptionsEndpoint (GET /v1/suite/subscriptions)
  • Queries Stripe by TenantId customer metadata
  • Returns active/inactive status per product

5. Phase 4 — Relay Integration

When: Relay Milestone 0

CC-014 — Lead sync endpoint

  • POST /v1/relay/lead — Relay creates a lead, Command Center creates client in RoundTrip
  • Requires bidirectional auth

CC-015 — Client sync endpoint

  • POST /v1/clients/sync — cross-product client record sync
  • Event-driven: RoundTrip client created → Waypoint + Relay notified

6. Phase 5 — Platform Evolution

When: 2028+

These are directional — not ticketed until the time comes:

  • Unified billing hub — Stripe orchestration for multi-product subscriptions
  • AI inference gateway — routes requests to Anthropic API, shared rate limits
  • Webhook management — products publish events, others subscribe via registered webhooks
  • Platform analytics — cross-product usage aggregation

7. Timeline Summary

PhaseWhenTickets
Phase 1 — Public endpointsNowCC-001 to CC-004
Phase 2 — Service auth + RT clientWaypoint M0CC-005 to CC-007
Phase 3 — RT data + Suite endpointsWaypoint M7CC-008 to CC-013
Phase 4 — Relay integrationRelay M0CC-014 to CC-015
Phase 5 — Platform evolution2028+TBD

8. Document History

VersionDateAuthorChanges
1.0July 2026Pete CarrollInitial draft