Skip to content

Commit a7289c6

Browse files
committed
fix(edged): delete credentials that aren't referenced in the database
1 parent 660ac04 commit a7289c6

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

internal/edged/caddy/main.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"path"
88
"strings"
99

10+
"github.com/getsentry/sentry-go"
11+
log "github.com/sirupsen/logrus"
1012
"gorm.io/gorm"
1113

1214
"github.com/packetframe/api/internal/common/db"
@@ -59,6 +61,24 @@ func Update(database *gorm.DB, caddyFilePath, nodeId, certDir string) error {
5961
}
6062
}
6163

64+
// Delete credentials from disk that aren't referenced in the database
65+
credFiles, err := os.ReadDir(certDir)
66+
if err != nil {
67+
sentry.CaptureException(err)
68+
log.Warnf("Failed to get certificate files: %v", err)
69+
}
70+
for _, credFile := range credFiles {
71+
domain := strings.TrimSuffix(strings.TrimSuffix(credFile.Name(), ".cert"), ".key")
72+
log.Infof("Found credential file for %s", domain)
73+
if !db.CredentialsContains(credentials, domain) {
74+
log.Debugf("Deleting credential file %s for unreferenced domain %s", credFile.Name(), domain)
75+
if err := os.Remove(path.Join(certDir, credFile.Name())); err != nil {
76+
sentry.CaptureException(err)
77+
log.Warnf("Failed to remove credential file: %v", err)
78+
}
79+
}
80+
}
81+
6282
// Write Caddyfile
6383
zones, err := db.ZoneList(database)
6484
if err != nil {

0 commit comments

Comments
 (0)