labstack / labstack/onebox

feat(services): expose effective persistence settings in canonical and doctor

Open
#75 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation enhancement
Dominant language
Go
Stars
3
Forks
0
Avg merge
2h 40m
Merged PRs (30d)
63

Description

Status

The runtime defect originally reported here was fixed by #79 (7f94af0):

  • persistence.mode: ephemeral creates no durable Onebox volume for every managed driver;
  • Redis and Valkey receive ephemeral persistence defaults;
  • explicit driver settings override mode-derived server defaults exactly once;
  • omitted and durable modes retain durable storage semantics;
  • destructive persistence transitions remain gated.

Remaining problem

The override is effective but not visible enough. ob canonical and ob doctor do not explain when authored driver settings diverge from the persistence mode. An operator can deliberately enable AOF on ephemeral storage, for example, but Onebox does not state that the data survives a process restart and not a container recreate.

Scope

  • Show the declared persistence mode and effective server persistence values with their origin in canonical output.
  • Have doctor name actionable divergences between the mode and explicit driver settings.
  • Document that persistence.mode owns Onebox storage lifetime while settings owns server internals and cannot create a durable Onebox volume.
  • Report divergence; do not refuse a deliberate override.

Acceptance

  • Redis and Valkey cover mode defaults and explicit overrides in canonical output.
  • Doctor distinguishes a harmless aligned setting from a divergent one and explains the operational consequence.
  • Other drivers with mode-derived persistence options follow the same reporting model.
  • Runtime rendering and transition gates from #79 remain unchanged.

The original measurements and design discussion remain in this issue history and in #79.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the canonical and doctor entry points, then trace how persistence mode and driver settings are rendered for Redis and Valkey. Compare aligned defaults with explicit divergent settings, including storage-lifetime consequences, and check the same reporting model for other mode-derived drivers. Done means canonical shows declared mode, effective values, and origins; doctor explains divergences without changing runtime rendering or transition gates from #79.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go, redis
Domain
cli, devops, documentation, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.