getSecretRequirementsForEngine returns all secrets needed for a specific engine. This combines engine-specific secrets with optional system-level secrets.
(engine string, includeSystemSecrets bool, includeOptional bool)
| 56 | // getSecretRequirementsForEngine returns all secrets needed for a specific engine. |
| 57 | // This combines engine-specific secrets with optional system-level secrets. |
| 58 | func getSecretRequirementsForEngine(engine string, includeSystemSecrets bool, includeOptional bool) []SecretRequirement { |
| 59 | engineSecretsLog.Printf("Getting required secrets for engine: %s (system=%v, optional=%v)", engine, includeSystemSecrets, includeOptional) |
| 60 | |
| 61 | var requirements []SecretRequirement |
| 62 | |
| 63 | // Add system-level secrets first if requested |
| 64 | if includeSystemSecrets { |
| 65 | for _, sys := range constants.SystemSecrets { |
| 66 | if sys.Optional && !includeOptional { |
| 67 | continue |
| 68 | } |
| 69 | requirements = append(requirements, SecretRequirement{ |
| 70 | Name: sys.Name, |
| 71 | WhenNeeded: sys.WhenNeeded, |
| 72 | Description: sys.Description, |
| 73 | Optional: sys.Optional, |
| 74 | IsEngineSecret: false, |
| 75 | }) |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | // Add engine-specific secret |
| 80 | opt := constants.GetEngineOption(engine) |
| 81 | if opt != nil { |
| 82 | requirements = append(requirements, SecretRequirement{ |
| 83 | Name: opt.SecretName, |
| 84 | WhenNeeded: opt.WhenNeeded, |
| 85 | Description: getEngineSecretDescription(opt), |
| 86 | Optional: false, |
| 87 | AlternativeEnvVars: opt.AlternativeSecrets, |
| 88 | KeyURL: opt.KeyURL, |
| 89 | IsEngineSecret: true, |
| 90 | EngineName: engine, |
| 91 | }) |
| 92 | } |
| 93 | |
| 94 | engineSecretsLog.Printf("Returning %d secret requirements for engine %s", len(requirements), engine) |
| 95 | return requirements |
| 96 | } |
| 97 | |
| 98 | // getEngineSecretDescription returns a detailed description for an engine secret |
| 99 | func getEngineSecretDescription(opt *constants.EngineOption) string { |