feat: 接通 Database 凭据准备闭环
Verify / test (pull_request) Successful in 11m23s
Verify / lint (pull_request) Successful in 12m18s
Verify / database-integration (pull_request) Successful in 13m49s

This commit is contained in:
2026-09-27 18:35:13 +00:00
parent 371248659b
commit 35ada6d7eb
24 changed files with 1385 additions and 37 deletions
@@ -32,11 +32,11 @@ import (
)
var (
ErrInvalidLocation = errors.New("credential location is outside the configured scope")
ErrUnavailable = errors.New("credential backend unavailable")
ErrNotFound = errors.New("application credential not found")
ErrConflict = errors.New("credential creation requires manual conflict resolution")
ErrUncertain = errors.New("credential creation outcome is uncertain; manual resolution required")
ErrInvalidLocation = application.ErrCredentialLocation
ErrUnavailable = application.ErrCredentialUnavailable
ErrNotFound = application.ErrCredentialNotFound
ErrConflict = application.ErrCredentialConflict
ErrUncertain = application.ErrCredentialUncertain
)
var pathSegment = regexp.MustCompile(`^[A-Za-z0-9_-]+$`)
@@ -45,6 +45,7 @@ var pathSegment = regexp.MustCompile(`^[A-Za-z0-9_-]+$`)
// 本适配器既不自动认领已有值,也不提供覆盖、轮换或删除操作。
type Credentials struct {
kv *bao.KVv2
mount string
basePath string
}
@@ -54,7 +55,7 @@ func NewCredentials(client *bao.Client, mount, basePath string) (*Credentials, e
if client == nil || !validPath(mount) || !validPath(basePath) {
return nil, ErrInvalidLocation
}
return &Credentials{kv: client.KVv2(mount), basePath: basePath}, nil
return &Credentials{kv: client.KVv2(mount), mount: mount, basePath: basePath}, nil
}
func validPath(value string) bool {