fix: instance link includes domain, project delete cleans up containers and proxies
- InstanceCard appends settings domain to subdomain link (stage-dev-app.example.com instead of just stage-dev-app) - Project deletion now removes Docker containers and proxy routes before deleting DB records - Pass domain from settings to InstanceCard via project detail page
This commit is contained in:
@@ -169,6 +169,26 @@ func (s *Server) updateProject(w http.ResponseWriter, r *http.Request) {
|
||||
// deleteProject handles DELETE /api/projects/{id}.
|
||||
func (s *Server) deleteProject(w http.ResponseWriter, r *http.Request) {
|
||||
id := chi.URLParam(r, "id")
|
||||
|
||||
// Clean up Docker containers and proxy routes before deleting the project.
|
||||
ctx := r.Context()
|
||||
stages, _ := s.store.GetStagesByProjectID(id)
|
||||
for _, stage := range stages {
|
||||
instances, _ := s.store.GetInstancesByStageID(stage.ID)
|
||||
for _, inst := range instances {
|
||||
if inst.ContainerID != "" {
|
||||
if err := s.docker.RemoveContainer(ctx, inst.ContainerID, true); err != nil {
|
||||
slog.Warn("delete project: remove container", "container", inst.ContainerID, "error", err)
|
||||
}
|
||||
}
|
||||
if inst.ProxyRouteID != "" {
|
||||
if err := s.proxyProvider.DeleteRoute(ctx, inst.ProxyRouteID); err != nil {
|
||||
slog.Warn("delete project: delete proxy route", "route", inst.ProxyRouteID, "error", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := s.store.DeleteProject(id); err != nil {
|
||||
if errors.Is(err, store.ErrNotFound) {
|
||||
respondNotFound(w, "project")
|
||||
|
||||
Reference in New Issue
Block a user