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:
| Item | Status |
|---|---|
| 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 + validatorSubmitSupportEndpoint(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 + validatorSubmitFeedbackEndpoint(POST /v1/feedback)- Email: notification to
hello@traxsgroup.com - Future hook: Linear API issue creation (placeholder comment)
CC-003 — Rate limiting
- Add
Microsoft.AspNetCore.RateLimitingpackage - Configure fixed window limiter (10 req/min per IP)
- Apply to public endpoints
- Return
429 Too Many Requestswith Retry-After header
CC-004 — Dev pipeline
- Create
azure-pipelines-dev.ymlfor 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--ApiKeysecret tokv-commandcenter-pro - Add corresponding App Service environment variable
- Implement
ApiKeyAuthMiddleware - Register in
Program.cspipeline - All non-public endpoints require valid API key
- Update ops manual
CC-006 — RoundTrip API client
- Add
RoundTripApi--BaseUrlandRoundTripApi--InternalApiKeyto Key Vault - Implement
IRoundTripClientinterface in Core - Implement
RoundTripClientin 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 ticketGET /v1/internal/tickets/open— TRA ticketGET /v1/internal/invoices/recent— TRA ticketGET /v1/internal/team— TRA ticketGET /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+ handlerGetRevenueSummaryEndpoint(GET /v1/roundtrip/revenue-summary)- Calls
IRoundTripClient.GetRevenueSummaryAsync() - Returns
RoundTripRevenueSummaryDTO - 404 if tenant not found in RoundTrip
CC-009 — Open tickets endpoint
GetOpenTicketsQuery+ handlerGetOpenTicketsEndpoint(GET /v1/roundtrip/tickets/open)
CC-010 — Recent invoices endpoint
GetRecentInvoicesQuery+ handlerGetRecentInvoicesEndpoint(GET /v1/roundtrip/invoices/recent)
CC-011 — Team endpoint
GetTeamQuery+ handlerGetTeamEndpoint(GET /v1/roundtrip/team)
CC-012 — AR aging endpoint
GetARAgingQuery+ handlerGetARAgingEndpoint(GET /v1/roundtrip/ar/aging)
CC-013 — Suite subscriptions endpoint
- Add
Stripe--SecretKeyto Key Vault - Implement
IStripeSubscriptionService GetSubscriptionsQuery+ handlerGetSubscriptionsEndpoint(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
| Phase | When | Tickets |
|---|---|---|
| Phase 1 — Public endpoints | Now | CC-001 to CC-004 |
| Phase 2 — Service auth + RT client | Waypoint M0 | CC-005 to CC-007 |
| Phase 3 — RT data + Suite endpoints | Waypoint M7 | CC-008 to CC-013 |
| Phase 4 — Relay integration | Relay M0 | CC-014 to CC-015 |
| Phase 5 — Platform evolution | 2028+ | TBD |
8. Document History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | July 2026 | Pete Carroll | Initial draft |