refactor: remove redundant SecretName and Version fields from VersionMetadata - Removed SecretName and Version fields that were redundant with directory structure and parent SecretVersion struct - Updated tests to remove references to deleted fields - Follows DRY principle and prevents potential data inconsistency

This commit is contained in:
Jeffrey Paul 2025-06-09 17:26:57 -07:00
parent b0e3cdd3d0
commit e9d03987f9
2 changed files with 7 additions and 16 deletions

View File

@ -17,12 +17,10 @@ import (
// VersionMetadata contains information about a secret version // VersionMetadata contains information about a secret version
type VersionMetadata struct { type VersionMetadata struct {
ID string `json:"id"` // ULID ID string `json:"id"` // ULID
SecretName string `json:"secretName"` // Parent secret name CreatedAt *time.Time `json:"createdAt,omitempty"` // When version was created
CreatedAt *time.Time `json:"createdAt,omitempty"` // When version was created NotBefore *time.Time `json:"notBefore,omitempty"` // When this version becomes active
NotBefore *time.Time `json:"notBefore,omitempty"` // When this version becomes active NotAfter *time.Time `json:"notAfter,omitempty"` // When this version expires (nil = current)
NotAfter *time.Time `json:"notAfter,omitempty"` // When this version expires (nil = current)
Version string `json:"version"` // Version string (e.g., "20231215.001")
} }
// SecretVersion represents a version of a secret // SecretVersion represents a version of a secret
@ -59,10 +57,8 @@ func NewSecretVersion(vault VaultInterface, secretName string, version string) *
Directory: versionDir, Directory: versionDir,
vault: vault, vault: vault,
Metadata: VersionMetadata{ Metadata: VersionMetadata{
ID: ulid.Make().String(), ID: ulid.Make().String(),
SecretName: secretName, CreatedAt: &now,
CreatedAt: &now,
Version: version,
}, },
} }
} }

View File

@ -136,7 +136,6 @@ func TestNewSecretVersion(t *testing.T) {
assert.Contains(t, sv.Directory, "test%secret/versions/20231215.001") assert.Contains(t, sv.Directory, "test%secret/versions/20231215.001")
assert.NotEmpty(t, sv.Metadata.ID) assert.NotEmpty(t, sv.Metadata.ID)
assert.NotNil(t, sv.Metadata.CreatedAt) assert.NotNil(t, sv.Metadata.CreatedAt)
assert.Equal(t, "20231215.001", sv.Metadata.Version)
} }
func TestSecretVersionSave(t *testing.T) { func TestSecretVersionSave(t *testing.T) {
@ -213,8 +212,6 @@ func TestSecretVersionLoadMetadata(t *testing.T) {
// Verify loaded metadata // Verify loaded metadata
assert.Equal(t, sv.Metadata.ID, sv2.Metadata.ID) assert.Equal(t, sv.Metadata.ID, sv2.Metadata.ID)
assert.Equal(t, sv.Metadata.SecretName, sv2.Metadata.SecretName)
assert.Equal(t, sv.Metadata.Version, sv2.Metadata.Version)
assert.NotNil(t, sv2.Metadata.NotBefore) assert.NotNil(t, sv2.Metadata.NotBefore)
assert.Equal(t, epochPlusOne.Unix(), sv2.Metadata.NotBefore.Unix()) assert.Equal(t, epochPlusOne.Unix(), sv2.Metadata.NotBefore.Unix())
assert.NotNil(t, sv2.Metadata.NotAfter) assert.NotNil(t, sv2.Metadata.NotAfter)
@ -330,9 +327,7 @@ func TestSetCurrentVersion(t *testing.T) {
func TestVersionMetadataTimestamps(t *testing.T) { func TestVersionMetadataTimestamps(t *testing.T) {
// Test that all timestamp fields behave consistently as pointers // Test that all timestamp fields behave consistently as pointers
vm := VersionMetadata{ vm := VersionMetadata{
ID: "test-id", ID: "test-id",
SecretName: "test/secret",
Version: "20231215.001",
} }
// All should be nil initially // All should be nil initially