mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 08:26:10 +00:00
Change SDK config customHeaders format
This commit is contained in:
@@ -513,7 +513,10 @@ type NewAgentMangerOptions struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewAgentManager(options NewAgentMangerOptions) *AgentManager {
|
func NewAgentManager(options NewAgentMangerOptions) *AgentManager {
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
return &AgentManager{
|
return &AgentManager{
|
||||||
filePaths: options.FileDeposits,
|
filePaths: options.FileDeposits,
|
||||||
templates: options.Templates,
|
templates: options.Templates,
|
||||||
@@ -528,7 +531,7 @@ func NewAgentManager(options NewAgentMangerOptions) *AgentManager {
|
|||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT, // ? Should we perhaps use a different user agent for the Agent for better analytics?
|
UserAgent: api.USER_AGENT, // ? Should we perhaps use a different user agent for the Agent for better analytics?
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/Infisical/infisical-merge/packages/api"
|
"github.com/Infisical/infisical-merge/packages/api"
|
||||||
"github.com/Infisical/infisical-merge/packages/config"
|
"github.com/Infisical/infisical-merge/packages/config"
|
||||||
@@ -88,11 +87,16 @@ func getDynamicSecretList(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
httpClient.SetAuthToken(infisicalToken)
|
httpClient.SetAuthToken(infisicalToken)
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
@@ -200,11 +204,16 @@ func createDynamicSecretLeaseByName(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
httpClient.SetAuthToken(infisicalToken)
|
httpClient.SetAuthToken(infisicalToken)
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
@@ -326,11 +335,16 @@ func renewDynamicSecretLeaseByName(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
httpClient.SetAuthToken(infisicalToken)
|
httpClient.SetAuthToken(infisicalToken)
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
@@ -428,11 +442,16 @@ func revokeDynamicSecretLeaseByName(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
httpClient.SetAuthToken(infisicalToken)
|
httpClient.SetAuthToken(infisicalToken)
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
@@ -529,11 +548,16 @@ func listDynamicSecretLeaseByName(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
httpClient.SetAuthToken(infisicalToken)
|
httpClient.SetAuthToken(infisicalToken)
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
|
|||||||
@@ -177,11 +177,16 @@ var loginCmd = &cobra.Command{
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
|
|
||||||
loginMethod, err := cmd.Flags().GetString("method")
|
loginMethod, err := cmd.Flags().GetString("method")
|
||||||
|
|||||||
+12
-2
@@ -315,11 +315,16 @@ func issueCredentials(cmd *cobra.Command, args []string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
@@ -556,11 +561,16 @@ func signKey(cmd *cobra.Command, args []string) {
|
|||||||
signedKeyPath = outFilePath
|
signedKeyPath = outFilePath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
customHeaders, err := util.GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
|
util.HandleError(err, "Unable to get custom headers")
|
||||||
|
}
|
||||||
|
|
||||||
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
infisicalClient := infisicalSdk.NewInfisicalClient(context.Background(), infisicalSdk.Config{
|
||||||
SiteUrl: config.INFISICAL_URL,
|
SiteUrl: config.INFISICAL_URL,
|
||||||
UserAgent: api.USER_AGENT,
|
UserAgent: api.USER_AGENT,
|
||||||
AutoTokenRefresh: false,
|
AutoTokenRefresh: false,
|
||||||
CustomHeaders: os.Getenv("INFISICAL_CUSTOM_HEADERS"),
|
CustomHeaders: customHeaders,
|
||||||
})
|
})
|
||||||
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
infisicalClient.Auth().SetAccessToken(infisicalToken)
|
||||||
|
|
||||||
|
|||||||
+74
-60
@@ -35,69 +35,83 @@ func GetRestyClientWithCustomHeaders() (*resty.Client, error) {
|
|||||||
httpClient := resty.New()
|
httpClient := resty.New()
|
||||||
customHeaders := os.Getenv("INFISICAL_CUSTOM_HEADERS")
|
customHeaders := os.Getenv("INFISICAL_CUSTOM_HEADERS")
|
||||||
if customHeaders != "" {
|
if customHeaders != "" {
|
||||||
headers := map[string]string{}
|
headers, err := GetInfisicalCustomHeadersMap()
|
||||||
|
if err != nil {
|
||||||
pos := 0
|
return nil, err
|
||||||
for pos < len(customHeaders) {
|
|
||||||
for pos < len(customHeaders) && unicode.IsSpace(rune(customHeaders[pos])) {
|
|
||||||
pos++
|
|
||||||
}
|
|
||||||
|
|
||||||
if pos >= len(customHeaders) {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
keyStart := pos
|
|
||||||
for pos < len(customHeaders) && customHeaders[pos] != '=' && !unicode.IsSpace(rune(customHeaders[pos])) {
|
|
||||||
pos++
|
|
||||||
}
|
|
||||||
|
|
||||||
if pos >= len(customHeaders) || customHeaders[pos] != '=' {
|
|
||||||
return nil, fmt.Errorf("invalid custom header format. Expected \"headerKey1=value1 headerKey2=value2 ....\" but got %v", customHeaders)
|
|
||||||
}
|
|
||||||
|
|
||||||
key := customHeaders[keyStart:pos]
|
|
||||||
pos++
|
|
||||||
|
|
||||||
for pos < len(customHeaders) && unicode.IsSpace(rune(customHeaders[pos])) {
|
|
||||||
pos++
|
|
||||||
}
|
|
||||||
|
|
||||||
var value string
|
|
||||||
|
|
||||||
if pos < len(customHeaders) {
|
|
||||||
if customHeaders[pos] == '"' || customHeaders[pos] == '\'' {
|
|
||||||
quoteChar := customHeaders[pos]
|
|
||||||
pos++
|
|
||||||
valueStart := pos
|
|
||||||
|
|
||||||
for pos < len(customHeaders) &&
|
|
||||||
(customHeaders[pos] != quoteChar ||
|
|
||||||
(pos > 0 && customHeaders[pos-1] == '\\')) {
|
|
||||||
pos++
|
|
||||||
}
|
|
||||||
|
|
||||||
if pos < len(customHeaders) {
|
|
||||||
value = customHeaders[valueStart:pos]
|
|
||||||
pos++
|
|
||||||
} else {
|
|
||||||
value = customHeaders[valueStart:]
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
valueStart := pos
|
|
||||||
for pos < len(customHeaders) && !unicode.IsSpace(rune(customHeaders[pos])) {
|
|
||||||
pos++
|
|
||||||
}
|
|
||||||
value = customHeaders[valueStart:pos]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if key != "" && !strings.EqualFold(key, "User-Agent") && !strings.EqualFold(key, "Accept") {
|
|
||||||
headers[key] = value
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
httpClient.SetHeaders(headers)
|
httpClient.SetHeaders(headers)
|
||||||
}
|
}
|
||||||
return httpClient, nil
|
return httpClient, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetInfisicalCustomHeadersMap() (map[string]string, error) {
|
||||||
|
customHeaders := os.Getenv("INFISICAL_CUSTOM_HEADERS")
|
||||||
|
if customHeaders == "" {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
headers := map[string]string{}
|
||||||
|
|
||||||
|
pos := 0
|
||||||
|
for pos < len(customHeaders) {
|
||||||
|
for pos < len(customHeaders) && unicode.IsSpace(rune(customHeaders[pos])) {
|
||||||
|
pos++
|
||||||
|
}
|
||||||
|
|
||||||
|
if pos >= len(customHeaders) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
keyStart := pos
|
||||||
|
for pos < len(customHeaders) && customHeaders[pos] != '=' && !unicode.IsSpace(rune(customHeaders[pos])) {
|
||||||
|
pos++
|
||||||
|
}
|
||||||
|
|
||||||
|
if pos >= len(customHeaders) || customHeaders[pos] != '=' {
|
||||||
|
return nil, fmt.Errorf("invalid custom header format. Expected \"headerKey1=value1 headerKey2=value2 ....\" but got %v", customHeaders)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := customHeaders[keyStart:pos]
|
||||||
|
pos++
|
||||||
|
|
||||||
|
for pos < len(customHeaders) && unicode.IsSpace(rune(customHeaders[pos])) {
|
||||||
|
pos++
|
||||||
|
}
|
||||||
|
|
||||||
|
var value string
|
||||||
|
|
||||||
|
if pos < len(customHeaders) {
|
||||||
|
if customHeaders[pos] == '"' || customHeaders[pos] == '\'' {
|
||||||
|
quoteChar := customHeaders[pos]
|
||||||
|
pos++
|
||||||
|
valueStart := pos
|
||||||
|
|
||||||
|
for pos < len(customHeaders) &&
|
||||||
|
(customHeaders[pos] != quoteChar ||
|
||||||
|
(pos > 0 && customHeaders[pos-1] == '\\')) {
|
||||||
|
pos++
|
||||||
|
}
|
||||||
|
|
||||||
|
if pos < len(customHeaders) {
|
||||||
|
value = customHeaders[valueStart:pos]
|
||||||
|
pos++
|
||||||
|
} else {
|
||||||
|
value = customHeaders[valueStart:]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
valueStart := pos
|
||||||
|
for pos < len(customHeaders) && !unicode.IsSpace(rune(customHeaders[pos])) {
|
||||||
|
pos++
|
||||||
|
}
|
||||||
|
value = customHeaders[valueStart:pos]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if key != "" && !strings.EqualFold(key, "User-Agent") && !strings.EqualFold(key, "Accept") {
|
||||||
|
headers[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return headers, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -100,8 +100,8 @@ client := infisical.NewInfisicalClient(context.Background(), infisical.Config{
|
|||||||
Defines how long certain responses should be cached in memory, in seconds. When set to a positive value, responses from specific methods (like secret fetching) will be cached for this duration. Set to 0 to disable caching.
|
Defines how long certain responses should be cached in memory, in seconds. When set to a positive value, responses from specific methods (like secret fetching) will be cached for this duration. Set to 0 to disable caching.
|
||||||
</ParamField>
|
</ParamField>
|
||||||
|
|
||||||
<ParamField query="CustomHeaders" type="string" default="" optional>
|
<ParamField query="CustomHeaders" type="map[string]string" optional>
|
||||||
Allows you to pass custom headers to the HTTP requests made by the SDK. Expected format is `Header1=Value1 Header2="Value 2"`.
|
Allows you to pass custom headers to the HTTP requests made by the SDK. Expected format is a map of `Header1: Value1, Header2: Value 2`.
|
||||||
</ParamField>
|
</ParamField>
|
||||||
</Expandable>
|
</Expandable>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user