mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 07:26:45 +00:00
Fix: Add support for imported secrets with raw fetching
This commit is contained in:
@@ -186,12 +186,12 @@ func GetPlainTextSecretsViaMachineIdentity(accessToken string, workspaceId strin
|
|||||||
plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace})
|
plainTextSecrets = append(plainTextSecrets, models.SingleEnvironmentVariable{Key: secret.SecretKey, Value: secret.SecretValue, Type: secret.Type, WorkspaceId: secret.Workspace})
|
||||||
}
|
}
|
||||||
|
|
||||||
// if includeImports {
|
if includeImports {
|
||||||
// plainTextSecrets, err = InjectImportedSecret(plainTextWorkspaceKey, plainTextSecrets, encryptedSecrets.ImportedSecrets)
|
plainTextSecrets, err = InjectRawImportedSecret(plainTextSecrets, rawSecrets.Imports)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, err
|
return models.PlaintextSecretResult{}, err
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
return models.PlaintextSecretResult{
|
return models.PlaintextSecretResult{
|
||||||
Secrets: plainTextSecrets,
|
Secrets: plainTextSecrets,
|
||||||
@@ -252,6 +252,36 @@ func InjectImportedSecret(plainTextWorkspaceKey []byte, secrets []models.SingleE
|
|||||||
return secrets, nil
|
return secrets, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func InjectRawImportedSecret(secrets []models.SingleEnvironmentVariable, importedSecrets []api.ImportedRawSecretV3) ([]models.SingleEnvironmentVariable, error) {
|
||||||
|
if importedSecrets == nil {
|
||||||
|
return secrets, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
hasOverriden := make(map[string]bool)
|
||||||
|
for _, sec := range secrets {
|
||||||
|
hasOverriden[sec.Key] = true
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := len(importedSecrets) - 1; i >= 0; i-- {
|
||||||
|
importSec := importedSecrets[i]
|
||||||
|
plainTextImportedSecrets := importSec.Secrets
|
||||||
|
|
||||||
|
for _, sec := range plainTextImportedSecrets {
|
||||||
|
if _, ok := hasOverriden[sec.SecretKey]; !ok {
|
||||||
|
secrets = append(secrets, models.SingleEnvironmentVariable{
|
||||||
|
Key: sec.SecretKey,
|
||||||
|
WorkspaceId: sec.Workspace,
|
||||||
|
Value: sec.SecretValue,
|
||||||
|
Type: sec.Type,
|
||||||
|
ID: sec.ID,
|
||||||
|
})
|
||||||
|
hasOverriden[sec.SecretKey] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return secrets, nil
|
||||||
|
}
|
||||||
|
|
||||||
func FilterSecretsByTag(plainTextSecrets []models.SingleEnvironmentVariable, tagSlugs string) []models.SingleEnvironmentVariable {
|
func FilterSecretsByTag(plainTextSecrets []models.SingleEnvironmentVariable, tagSlugs string) []models.SingleEnvironmentVariable {
|
||||||
if tagSlugs == "" {
|
if tagSlugs == "" {
|
||||||
return plainTextSecrets
|
return plainTextSecrets
|
||||||
|
|||||||
Reference in New Issue
Block a user