(ctx context.Context, mcpServerName string, secrets []gateway.Secret, envProvider environment.Provider)
| 72 | } |
| 73 | |
| 74 | func writeSecretsToFile(ctx context.Context, mcpServerName string, secrets []gateway.Secret, envProvider environment.Provider) (string, error) { |
| 75 | var secretValues []string |
| 76 | for _, secret := range secrets { |
| 77 | v, found := envProvider.Get(ctx, secret.Env) |
| 78 | if !found || v == "" { |
| 79 | return "", errors.New("missing environment variable " + secret.Env + " required by MCP server " + mcpServerName) |
| 80 | } |
| 81 | |
| 82 | if strings.ContainsAny(v, "\n\r") { |
| 83 | return "", fmt.Errorf("secret %s contains newline characters", secret.Env) |
| 84 | } |
| 85 | |
| 86 | secretValues = append(secretValues, fmt.Sprintf("%s=%s", secret.Name, v)) |
| 87 | } |
| 88 | |
| 89 | // We have all the secrets, let's create a file with all of them for the MCP Gateway |
| 90 | return writeTempFile("mcp-secrets-*", []byte(strings.Join(secretValues, "\n"))) |
| 91 | } |
| 92 | |
| 93 | func writeConfigToFile(_ context.Context, mcpServerName string, config any) (string, error) { |
| 94 | buf, err := yaml.Marshal(map[string]any{ |
no test coverage detected