From ccbbfd200c2af09bf1a196b54b4fecd563fecda4 Mon Sep 17 00:00:00 2001 From: jmug Date: Fri, 23 Oct 2026 12:39:12 -0700 Subject: [PATCH] chore: Define the SecretsStore interface, basically a thin wrapper on top of bbolt. --- pkg/secretsstore/bbolt_store.go | 20 ++++++++++++++++++++ pkg/secretsstore/key.go | 3 +++ pkg/secretsstore/store.go | 15 +++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 pkg/secretsstore/bbolt_store.go create mode 100644 pkg/secretsstore/key.go create mode 100644 pkg/secretsstore/store.go diff --git a/pkg/secretsstore/bbolt_store.go b/pkg/secretsstore/bbolt_store.go new file mode 100644 index 0000000..6713885 --- /dev/null +++ b/pkg/secretsstore/bbolt_store.go @@ -0,0 +1,20 @@ +package secretsstore + +// bboltStore implements the SecretsStore interface on top of a bbolt bucket. +type bboltStore struct { +} + +func (s *bboltStore) Get(key Key) ([]byte, error) { + // TODO + return nil, nil +} + +func (s *bboltStore) Put(key Key, val []byte) error { + // TODO + return nil +} + +func (s *bboltStore) Delete(key Key) error { + // TODO + return nil +} diff --git a/pkg/secretsstore/key.go b/pkg/secretsstore/key.go new file mode 100644 index 0000000..1c8358a --- /dev/null +++ b/pkg/secretsstore/key.go @@ -0,0 +1,3 @@ +package secretsstore + +type Key string diff --git a/pkg/secretsstore/store.go b/pkg/secretsstore/store.go new file mode 100644 index 0000000..9d3c981 --- /dev/null +++ b/pkg/secretsstore/store.go @@ -0,0 +1,15 @@ +package secretsstore + +type SecretsStore interface { + // Get retrieves the value associated with the provided key from the store. + Get(key Key) ([]byte, error) + // Put stores or replaces the value associated with the provided key. + Put(key Key, val []byte) error + // Delete removes the key and value from the store, deleting a non-existing key is a no-op. + Delete(key Key) error +} + +func New(path string) SecretsStore { + // TODO: Actually instantiate the struct. + return &bboltStore{} +}