feat(developers): add service URLs and onboarding guide to provisioning reply and success page
All checks were successful
Build and Deploy / deploy (push) Successful in 41s

Ticket replies now include full onboarding info (webmail, IMAP/SMTP, Mattermost, Gitea, SilverDESK URLs) instead of raw provisioning status. Confirmation success page uses clickable service links with email client config details.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 22:57:51 +00:00
parent 296c7fefc5
commit 44e3ad94e0
2 changed files with 79 additions and 13 deletions

View File

@@ -117,18 +117,35 @@ public static class DeveloperEndpoints
// Send follow-up ticket reply with results
var resultContent = success
? $"""
Your accounts have been successfully provisioned:
Your accounts have been successfully provisioned! Here's how to access your services:
{message}
**Email**: {deployment.Username}@silverlabs.uk
- Webmail: [mail.silverlined.uk](https://mail.silverlined.uk)
- IMAP: `mail.silverlined.uk:993` (SSL)
- SMTP: `mail.silverlined.uk:465` (SSL)
You can now log in to all services with your SilverDESK credentials.
**Mattermost** (Team Chat): [ops.silverlined.uk](https://ops.silverlined.uk)
**Gitea** (Source Code): [git.silverlabs.uk](https://git.silverlabs.uk)
**SilverDESK** (Support & Tickets): [silverdesk.silverlabs.uk](https://silverdesk.silverlabs.uk)
All services use the same password you entered during activation.
---
*Provisioning status: {message}*
"""
: $"""
Account provisioning completed with some issues:
{message}
Please contact an administrator if you have trouble accessing any services.
Some services may not be available yet. Please contact an administrator for assistance.
Once resolved, your services will be:
- **Email**: {deployment.Username}@silverlabs.uk — [mail.silverlined.uk](https://mail.silverlined.uk)
- **Mattermost**: [ops.silverlined.uk](https://ops.silverlined.uk)
- **Gitea**: [git.silverlabs.uk](https://git.silverlabs.uk)
""";
await provisioningService.SendTicketReplyAsync(deployment.TicketId, resultContent, "close");