diff --git a/deploy/alpha-stocks-dev/deployments/stocks-deployment.yaml b/deploy/alpha-stocks-dev/deployments/stocks-deployment.yaml index 2fc1296..eec1789 100644 --- a/deploy/alpha-stocks-dev/deployments/stocks-deployment.yaml +++ b/deploy/alpha-stocks-dev/deployments/stocks-deployment.yaml @@ -31,6 +31,8 @@ spec: value: spiffe://dev.alphastocks.com/stocks - name: TRAT_VERIFY_ENDPOINT value: http://localhost:9030/verify-trat + - name: ENABLE_TRATS + value: "${ENABLE_TRATS}" image: ghcr.io/tratteria/example-application/stocks:latest name: stocks ports: diff --git a/stocks/pkg/config/config.go b/stocks/pkg/config/config.go index 72f9c2a..f78ef39 100644 --- a/stocks/pkg/config/config.go +++ b/stocks/pkg/config/config.go @@ -5,6 +5,7 @@ import ( "fmt" "net/url" "os" + "strconv" "time" "github.com/spiffe/go-spiffe/v2/spiffeid" @@ -22,6 +23,7 @@ type spiffeIDs struct { type StocksConfig struct { SpiffeIDs *spiffeIDs TratVerifyEndpoint *url.URL + EnableTrats bool } func GetAppConfig() *StocksConfig { @@ -32,6 +34,7 @@ func GetAppConfig() *StocksConfig { Stocks: spiffeid.RequireFromString(getEnv("STOCKS_SERVICE_SPIFFE_ID")), }, TratVerifyEndpoint: parseURL(getEnv("TRAT_VERIFY_ENDPOINT")), + EnableTrats: getBoolFromEnv("ENABLE_TRATS"), } } @@ -64,3 +67,17 @@ func parseURL(rawurl string) *url.URL { return parsedURL } + +func getBoolFromEnv(key string) bool { + value, exists := os.LookupEnv(key) + if !exists { + panic(fmt.Sprintf("%s environment variable not set", key)) + } + + parsed, err := strconv.ParseBool(value) + if err != nil { + panic(fmt.Sprintf("Invalid boolean value for %s: %s", key, value)) + } + + return parsed +} diff --git a/stocks/pkg/middleware/middleware.go b/stocks/pkg/middleware/middleware.go index 0b6e919..c6d87f8 100644 --- a/stocks/pkg/middleware/middleware.go +++ b/stocks/pkg/middleware/middleware.go @@ -24,7 +24,9 @@ func GetMiddleware(stocksConfig *config.StocksConfig, spireJwtSource *workloadap middlewareList = append(middlewareList, getSpiffeMiddleware(stocksConfig, spireJwtSource, logger)) - middlewareList = append(middlewareList, getTraTVerifierMiddleware(stocksConfig.TratVerifyEndpoint, httpClient, logger)) + if stocksConfig.EnableTrats { + middlewareList = append(middlewareList, getTraTVerifierMiddleware(stocksConfig.TratVerifyEndpoint, httpClient, logger)) + } return CombineMiddleware(middlewareList...) }