Skip to content

Commit aeaa943

Browse files
Update logging and comments for policy persistence
1 parent f3b5e1f commit aeaa943

1 file changed

Lines changed: 13 additions & 16 deletions

File tree

internal/service/policy_admin_service.go

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,13 @@ func (s *PolicyAdminService) Create(ctx context.Context, p *policy.Policy) (*pol
119119
return nil, fmt.Errorf("save policy: %w", err)
120120
}
121121

122-
// Persist to state.json.
122+
// Persist to state.json (best-effort: policy is already in memory store).
123+
// If persistence fails the policy works for the current session but won't survive a restart.
123124
if err := s.persistState(ctx); err != nil {
124-
s.logger.Error("failed to persist state after create", "policy_id", p.ID, "error", err)
125-
return nil, fmt.Errorf("persist state: %w", err)
125+
s.logger.Warn("policy will not survive restart: persist failed", "policy_id", p.ID, "error", err)
126126
}
127127

128-
// Trigger hot-reload of CEL rules.
128+
// ALWAYS trigger hot-reload so the CEL engine compiles the new rules.
129129
if err := s.policyService.Reload(ctx); err != nil {
130130
s.logger.Error("failed to reload policies after create", "policy_id", p.ID, "error", err)
131131
return nil, fmt.Errorf("reload policies: %w", err)
@@ -183,13 +183,12 @@ func (s *PolicyAdminService) Update(ctx context.Context, id string, p *policy.Po
183183
return nil, fmt.Errorf("save policy: %w", err)
184184
}
185185

186-
// Persist to state.json.
186+
// Persist to state.json (best-effort).
187187
if err := s.persistState(ctx); err != nil {
188-
s.logger.Error("failed to persist state after update", "policy_id", id, "error", err)
189-
return nil, fmt.Errorf("persist state: %w", err)
188+
s.logger.Warn("policy update will not survive restart: persist failed", "policy_id", id, "error", err)
190189
}
191190

192-
// Trigger hot-reload.
191+
// ALWAYS trigger hot-reload.
193192
if err := s.policyService.Reload(ctx); err != nil {
194193
s.logger.Error("failed to reload policies after update", "policy_id", id, "error", err)
195194
return nil, fmt.Errorf("reload policies: %w", err)
@@ -226,13 +225,12 @@ func (s *PolicyAdminService) Delete(ctx context.Context, id string) error {
226225
return fmt.Errorf("delete policy: %w", err)
227226
}
228227

229-
// Persist to state.json.
228+
// Persist to state.json (best-effort).
230229
if err := s.persistState(ctx); err != nil {
231-
s.logger.Error("failed to persist state after delete", "policy_id", id, "error", err)
232-
return fmt.Errorf("persist state: %w", err)
230+
s.logger.Warn("policy deletion will not survive restart: persist failed", "policy_id", id, "error", err)
233231
}
234232

235-
// Trigger hot-reload.
233+
// ALWAYS trigger hot-reload.
236234
if err := s.policyService.Reload(ctx); err != nil {
237235
s.logger.Error("failed to reload policies after delete", "policy_id", id, "error", err)
238236
return fmt.Errorf("reload policies: %w", err)
@@ -273,13 +271,12 @@ func (s *PolicyAdminService) DeleteRule(ctx context.Context, policyID, ruleID st
273271
return fmt.Errorf("delete rule: %w", err)
274272
}
275273

276-
// Persist to state.json.
274+
// Persist to state.json (best-effort).
277275
if err := s.persistState(ctx); err != nil {
278-
s.logger.Error("failed to persist state after delete rule", "policy_id", policyID, "rule_id", ruleID, "error", err)
279-
return fmt.Errorf("persist state: %w", err)
276+
s.logger.Warn("rule deletion will not survive restart: persist failed", "policy_id", policyID, "rule_id", ruleID, "error", err)
280277
}
281278

282-
// Trigger hot-reload.
279+
// ALWAYS trigger hot-reload.
283280
if err := s.policyService.Reload(ctx); err != nil {
284281
s.logger.Error("failed to reload policies after delete rule", "policy_id", policyID, "rule_id", ruleID, "error", err)
285282
return fmt.Errorf("reload policies: %w", err)

0 commit comments

Comments
 (0)