feat: add DNS credential management with Web UI
- New config/credential_store.go: persistent credential storage (credentials.json) - New API: CRUD for DNS credentials + credential-types endpoint - Certificate model now supports credential_id reference - Create certificate auto-resolves credential_id to DNS config - New Vue page: Credentials.vue for managing saved DNS keys - CertCreate.vue: select existing credential or manual input + save as new - Secrets masked in API responses, never exposed in list
This commit is contained in:
@@ -53,6 +53,7 @@ func main() {
|
||||
api.Use(authMiddleware())
|
||||
{
|
||||
certHandler := handlers.NewCertHandler(cfg)
|
||||
credHandler := handlers.NewCredentialHandler()
|
||||
|
||||
// Certificate management
|
||||
api.GET("/certificates", certHandler.ListCertificates)
|
||||
@@ -69,6 +70,14 @@ func main() {
|
||||
api.POST("/notify/test-feishu", handleTestFeishu)
|
||||
api.POST("/notify/test-email", handleTestEmail)
|
||||
|
||||
// Credential management
|
||||
api.GET("/credentials", credHandler.ListCredentials)
|
||||
api.GET("/credentials/:id", credHandler.GetCredential)
|
||||
api.POST("/credentials", credHandler.CreateCredential)
|
||||
api.PUT("/credentials/:id", credHandler.UpdateCredential)
|
||||
api.DELETE("/credentials/:id", credHandler.DeleteCredential)
|
||||
api.GET("/credential-types", credHandler.GetCredentialTypes)
|
||||
|
||||
// Utility
|
||||
api.GET("/renewals/check", certHandler.CheckRenewals)
|
||||
api.GET("/stats", certHandler.Stats)
|
||||
|
||||
Reference in New Issue
Block a user