Skip to content

Store/Open core + in-memory backend (credstore §2.1) #3

@rianjs

Description

@rianjs

Tracks Jira INT-430 (child of epic INT-310). Second discrete unit of cli-common; builds on #1 (ref grammar, merged in #2).

Scope

  • Store + Open(service string, opts *Options) (*Store, error) + (*Store).Close() error
  • (*Store).Backend() (Backend, Source) reporting (required for later config show, §1.6)
  • Options: AllowedKeys []string allowlist; Backend selector incl. BackendMemory
  • Internal backend interface; in-memory backend with no disk side effects (§2.1 test/CI backend)
  • Single-key ops: Get/Set/Delete/Exists(profile, key); SetOpt with Overwrite (§1.5)
  • Profile/key syntax validation (reuse §1.3 ref helpers) + AllowedKeys enforcement on Set/Delete with a clear allowed-set error (§1.5.2)
  • <service>/<profile>/<key>ServiceName + <profile>/<key> Item.Key mapping modeled internally so real backends slot in later (§1.3)
  • Tests against the in-memory backend (round-trip, overwrite semantics, allowlist rejection, validation)

Out of scope (later INT-310 units)

Real OS backends + auto/env/config selection (PR4), ListBundle/DeleteBundle, SetBundle atomicity (PR3), Linux fail-closed (PR5), redaction (PR6), migration helpers (PR7).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions