From 8191faa0d0c3f1e17e6134766baeb89774c67266 Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 18:28:54 +0530 Subject: [PATCH 1/8] Fix test fail --- gateway/enforcer/internal/analytics/publishers/elk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gateway/enforcer/internal/analytics/publishers/elk.go b/gateway/enforcer/internal/analytics/publishers/elk.go index ab7c73485e..d7039b2cbd 100644 --- a/gateway/enforcer/internal/analytics/publishers/elk.go +++ b/gateway/enforcer/internal/analytics/publishers/elk.go @@ -28,7 +28,7 @@ func NewELK(cfg *config.Server, logLevel string) *ELK { // Publish publishes the event to ELK func (e *ELK) Publish(event *dto.Event) { - e.cfg.Logger.Sugar().Debug(fmt.Sprintf("Publishing event to ELK: %v", event)) + e.cfg.Logger.Info(fmt.Sprintf("Publishing event to ELK: %v", event)) defer func() { if r := recover(); r != nil { e.cfg.Logger.Error(nil, fmt.Sprintf("Recovered from panic: %v", r)) From 49930b53dd3610c81df7e28449c4d367fd02c2c3 Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 18:59:06 +0530 Subject: [PATCH 2/8] Fix test fail --- gateway/enforcer/internal/analytics/analytics.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gateway/enforcer/internal/analytics/analytics.go b/gateway/enforcer/internal/analytics/analytics.go index f0d89a7106..fb16b2cf3b 100644 --- a/gateway/enforcer/internal/analytics/analytics.go +++ b/gateway/enforcer/internal/analytics/analytics.go @@ -87,7 +87,7 @@ func NewAnalytics(cfg *config.Server, configStore *datastore.ConfigStore) *Analy config := configStore.GetConfigs()[0] if config.Analytics.Enabled { for _, pub := range config.Analytics.AnalyticsPublisher { - cfg.Logger.Sugar().Debug(fmt.Sprintf("Publisher type: %s", pub.Type)) + cfg.Logger.Info(fmt.Sprintf("Publisher type: %s", pub.Type)) switch strings.ToLower(pub.Type) { case strings.ToLower(ELKAnalyticsPublisher): logLevel := "INFO" @@ -95,7 +95,7 @@ func NewAnalytics(cfg *config.Server, configStore *datastore.ConfigStore) *Analy logLevel = level } publishers = append(publishers, analytics_publisher.NewELK(cfg, logLevel)) - cfg.Logger.Sugar().Debug(fmt.Sprintf("ELK publisher added with log level: %s", logLevel)) + cfg.Logger.Info(fmt.Sprintf("ELK publisher added with log level: %s", logLevel)) case strings.ToLower(MoesifAnalyticsPublisher): publisher := analytics_publisher.NewMoesif(cfg) publishers = append(publishers, publisher) @@ -149,11 +149,11 @@ func (c *Analytics) GetFaultType() FaultCategory { func (c *Analytics) prepareAnalyticEvent(logEntry *v3.HTTPAccessLogEntry) *dto.Event { keyValuePairsFromMetadata := make(map[string]string) - c.cfg.Logger.Sugar().Debug(fmt.Sprintf("log entry, %+v", logEntry)) + c.cfg.Logger.Info(fmt.Sprintf("log entry, %+v", logEntry)) if logEntry.CommonProperties != nil && logEntry.CommonProperties.Metadata != nil && logEntry.CommonProperties.Metadata.FilterMetadata != nil { if sv, exists := logEntry.CommonProperties.Metadata.FilterMetadata[ExtProcMetadataContextKey]; exists { if sv.Fields != nil { - c.cfg.Logger.Sugar().Debug(fmt.Sprintf("Filter metadata: %+v", sv)) + c.cfg.Logger.Info(fmt.Sprintf("Filter metadata: %+v", sv)) for key, value := range sv.Fields { if value != nil { keyValuePairsFromMetadata[key] = value.GetStringValue() @@ -164,7 +164,7 @@ func (c *Analytics) prepareAnalyticEvent(logEntry *v3.HTTPAccessLogEntry) *dto.E } event := &dto.Event{} for key, value := range keyValuePairsFromMetadata { - c.cfg.Logger.Sugar().Debug(fmt.Sprintf("Metadata key: %s, value: %s", key, value)) + c.cfg.Logger.Info(fmt.Sprintf("Metadata key: %s, value: %s", key, value)) } // Prepare extended API extendedAPI := dto.ExtendedAPI{} From ae9626c8670207ff9842696324e92fbd5035b2f1 Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 19:58:40 +0530 Subject: [PATCH 3/8] Fix test fail --- gateway/enforcer/internal/analytics/analytics.go | 10 +++++----- gateway/enforcer/internal/analytics/publishers/elk.go | 6 +++--- gateway/enforcer/internal/extproc/ext_proc.go | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gateway/enforcer/internal/analytics/analytics.go b/gateway/enforcer/internal/analytics/analytics.go index fb16b2cf3b..f0d89a7106 100644 --- a/gateway/enforcer/internal/analytics/analytics.go +++ b/gateway/enforcer/internal/analytics/analytics.go @@ -87,7 +87,7 @@ func NewAnalytics(cfg *config.Server, configStore *datastore.ConfigStore) *Analy config := configStore.GetConfigs()[0] if config.Analytics.Enabled { for _, pub := range config.Analytics.AnalyticsPublisher { - cfg.Logger.Info(fmt.Sprintf("Publisher type: %s", pub.Type)) + cfg.Logger.Sugar().Debug(fmt.Sprintf("Publisher type: %s", pub.Type)) switch strings.ToLower(pub.Type) { case strings.ToLower(ELKAnalyticsPublisher): logLevel := "INFO" @@ -95,7 +95,7 @@ func NewAnalytics(cfg *config.Server, configStore *datastore.ConfigStore) *Analy logLevel = level } publishers = append(publishers, analytics_publisher.NewELK(cfg, logLevel)) - cfg.Logger.Info(fmt.Sprintf("ELK publisher added with log level: %s", logLevel)) + cfg.Logger.Sugar().Debug(fmt.Sprintf("ELK publisher added with log level: %s", logLevel)) case strings.ToLower(MoesifAnalyticsPublisher): publisher := analytics_publisher.NewMoesif(cfg) publishers = append(publishers, publisher) @@ -149,11 +149,11 @@ func (c *Analytics) GetFaultType() FaultCategory { func (c *Analytics) prepareAnalyticEvent(logEntry *v3.HTTPAccessLogEntry) *dto.Event { keyValuePairsFromMetadata := make(map[string]string) - c.cfg.Logger.Info(fmt.Sprintf("log entry, %+v", logEntry)) + c.cfg.Logger.Sugar().Debug(fmt.Sprintf("log entry, %+v", logEntry)) if logEntry.CommonProperties != nil && logEntry.CommonProperties.Metadata != nil && logEntry.CommonProperties.Metadata.FilterMetadata != nil { if sv, exists := logEntry.CommonProperties.Metadata.FilterMetadata[ExtProcMetadataContextKey]; exists { if sv.Fields != nil { - c.cfg.Logger.Info(fmt.Sprintf("Filter metadata: %+v", sv)) + c.cfg.Logger.Sugar().Debug(fmt.Sprintf("Filter metadata: %+v", sv)) for key, value := range sv.Fields { if value != nil { keyValuePairsFromMetadata[key] = value.GetStringValue() @@ -164,7 +164,7 @@ func (c *Analytics) prepareAnalyticEvent(logEntry *v3.HTTPAccessLogEntry) *dto.E } event := &dto.Event{} for key, value := range keyValuePairsFromMetadata { - c.cfg.Logger.Info(fmt.Sprintf("Metadata key: %s, value: %s", key, value)) + c.cfg.Logger.Sugar().Debug(fmt.Sprintf("Metadata key: %s, value: %s", key, value)) } // Prepare extended API extendedAPI := dto.ExtendedAPI{} diff --git a/gateway/enforcer/internal/analytics/publishers/elk.go b/gateway/enforcer/internal/analytics/publishers/elk.go index d7039b2cbd..31e2330cd9 100644 --- a/gateway/enforcer/internal/analytics/publishers/elk.go +++ b/gateway/enforcer/internal/analytics/publishers/elk.go @@ -28,7 +28,7 @@ func NewELK(cfg *config.Server, logLevel string) *ELK { // Publish publishes the event to ELK func (e *ELK) Publish(event *dto.Event) { - e.cfg.Logger.Info(fmt.Sprintf("Publishing event to ELK: %v", event)) + e.cfg.Logger.Sugar().Debug(fmt.Sprintf("Publishing event to ELK: %v", event)) defer func() { if r := recover(); r != nil { e.cfg.Logger.Error(nil, fmt.Sprintf("Recovered from panic: %v", r)) @@ -82,7 +82,7 @@ func (e *ELK) publishEvent(event *dto.Event) { e.cfg.Logger.Error(err, "Error while converting to JSON string") return } - e.cfg.Logger.Info(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:response", jsonString)) + e.cfg.Logger.Sugar().Debug(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:response", jsonString)) } func (e *ELK) publishFault(event *dto.Event) { @@ -116,7 +116,7 @@ func (e *ELK) publishFault(event *dto.Event) { e.cfg.Logger.Error(err, "Error while converting to JSON string") return } - e.cfg.Logger.Info(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:faulty", jsonString)) + e.cfg.Logger.Sugar().Debug(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:faulty", jsonString)) } func (e *ELK) isFault(event *dto.Event) bool { diff --git a/gateway/enforcer/internal/extproc/ext_proc.go b/gateway/enforcer/internal/extproc/ext_proc.go index 200d24c0ca..9aeb963df2 100644 --- a/gateway/enforcer/internal/extproc/ext_proc.go +++ b/gateway/enforcer/internal/extproc/ext_proc.go @@ -673,7 +673,7 @@ func (s *ExternalProcessingServer) Process(srv envoy_service_proc_v3.ExternalPro } case *envoy_service_proc_v3.ProcessingRequest_ResponseHeaders: - s.log.Sugar().Debug(fmt.Sprintf("response header %+v, ", v.ResponseHeaders)) + s.log.Info(fmt.Sprintf("response header %+v, ", v.ResponseHeaders)) rhq := &envoy_service_proc_v3.HeadersResponse{ Response: &envoy_service_proc_v3.CommonResponse{}, } From c7396ff1d054e2d51ea47d3c283178dca6e10a7b Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 20:00:25 +0530 Subject: [PATCH 4/8] Fix --- gateway/enforcer/internal/analytics/publishers/elk.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gateway/enforcer/internal/analytics/publishers/elk.go b/gateway/enforcer/internal/analytics/publishers/elk.go index 31e2330cd9..ab7c73485e 100644 --- a/gateway/enforcer/internal/analytics/publishers/elk.go +++ b/gateway/enforcer/internal/analytics/publishers/elk.go @@ -82,7 +82,7 @@ func (e *ELK) publishEvent(event *dto.Event) { e.cfg.Logger.Error(err, "Error while converting to JSON string") return } - e.cfg.Logger.Sugar().Debug(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:response", jsonString)) + e.cfg.Logger.Info(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:response", jsonString)) } func (e *ELK) publishFault(event *dto.Event) { @@ -116,7 +116,7 @@ func (e *ELK) publishFault(event *dto.Event) { e.cfg.Logger.Error(err, "Error while converting to JSON string") return } - e.cfg.Logger.Sugar().Debug(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:faulty", jsonString)) + e.cfg.Logger.Info(fmt.Sprintf("apimMetrics: %s, properties: %s", "apim:faulty", jsonString)) } func (e *ELK) isFault(event *dto.Event) bool { From faf65d59db63d9dbf16626a8102fa81f880c7f9f Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 20:35:49 +0530 Subject: [PATCH 5/8] Fix test fail --- gateway/enforcer/internal/extproc/ext_proc.go | 2 +- .../resources/tests/api/APIBackendBasedAIRatelimit.feature | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gateway/enforcer/internal/extproc/ext_proc.go b/gateway/enforcer/internal/extproc/ext_proc.go index 9aeb963df2..200d24c0ca 100644 --- a/gateway/enforcer/internal/extproc/ext_proc.go +++ b/gateway/enforcer/internal/extproc/ext_proc.go @@ -673,7 +673,7 @@ func (s *ExternalProcessingServer) Process(srv envoy_service_proc_v3.ExternalPro } case *envoy_service_proc_v3.ProcessingRequest_ResponseHeaders: - s.log.Info(fmt.Sprintf("response header %+v, ", v.ResponseHeaders)) + s.log.Sugar().Debug(fmt.Sprintf("response header %+v, ", v.ResponseHeaders)) rhq := &envoy_service_proc_v3.HeadersResponse{ Response: &envoy_service_proc_v3.CommonResponse{}, } diff --git a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature index 20bf38738f..8a83d48cbb 100644 --- a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature +++ b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature @@ -19,9 +19,9 @@ Feature: API backend based AI ratelimit Feature |AzureAI| |2024-06-01| |aiTokenUsage| - |1000| - |300| - |500| + |999| + |299| + |499| |hour| |vendor_name| |vendor_version| From 4d1a87989fedaa5cf6a35a58574c7c0458c0a97a Mon Sep 17 00:00:00 2001 From: krish Date: Sun, 23 Feb 2025 21:43:52 +0530 Subject: [PATCH 6/8] Fix issue --- .../api/APIBackendBasedAIRatelimit.feature | 18 +++--------------- .../APISubscriptionBasedAIRatelimit.feature | 7 +------ 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature index 8a83d48cbb..7df02a3d61 100644 --- a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature +++ b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature @@ -8,9 +8,6 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=body" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=body" with body "" - Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | Then I see following strings in the enforcer logs @@ -19,9 +16,9 @@ Feature: API backend based AI ratelimit Feature |AzureAI| |2024-06-01| |aiTokenUsage| - |999| - |299| - |499| + |1000| + |300| + |500| |hour| |vendor_name| |vendor_version| @@ -62,9 +59,6 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-header/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-header/v1.0.0/3.14/employee?send=header" with body "" - Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -101,9 +95,6 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=header" with body "" - Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -124,9 +115,6 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/backend-based-airl/1.0.0/employee?send=body" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/backend-based-airl/1.0.0/employee?send=body" with body "" - Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds diff --git a/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature b/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature index 217d8cb579..2349e2e443 100644 --- a/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature +++ b/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature @@ -8,9 +8,6 @@ Feature: API subscription based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=body" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=body" with body "" - Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -48,9 +45,7 @@ Feature: API subscription based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 - And I wait for next minute strictly - And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=header" with body "" - Then the response status code should be 200 + And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds From 35b4788731c283d5b3af30765fccf8e1539f358f Mon Sep 17 00:00:00 2001 From: krish Date: Mon, 24 Feb 2025 08:33:31 +0530 Subject: [PATCH 7/8] Fix test --- .../api/APIBackendBasedAIRatelimit.feature | 18 +++++++++++++++--- .../APISubscriptionBasedAIRatelimit.feature | 7 ++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature index 7df02a3d61..8a83d48cbb 100644 --- a/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature +++ b/test/cucumber-tests/src/test/resources/tests/api/APIBackendBasedAIRatelimit.feature @@ -8,6 +8,9 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=body" with body "" Then the response status code should be 200 + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=body" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | Then I see following strings in the enforcer logs @@ -16,9 +19,9 @@ Feature: API backend based AI ratelimit Feature |AzureAI| |2024-06-01| |aiTokenUsage| - |1000| - |300| - |500| + |999| + |299| + |499| |hour| |vendor_name| |vendor_version| @@ -59,6 +62,9 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-header/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-header/v1.0.0/3.14/employee?send=header" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -95,6 +101,9 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api/v1.0.0/3.14/employee?send=header" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -115,6 +124,9 @@ Feature: API backend based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/backend-based-airl/1.0.0/employee?send=body" with body "" Then the response status code should be 200 + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/backend-based-airl/1.0.0/employee?send=body" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds diff --git a/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature b/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature index 2349e2e443..217d8cb579 100644 --- a/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature +++ b/test/cucumber-tests/src/test/resources/tests/api/APISubscriptionBasedAIRatelimit.feature @@ -8,6 +8,9 @@ Feature: API subscription based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=body" with body "" Then the response status code should be 200 + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=body" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds @@ -45,7 +48,9 @@ Feature: API subscription based AI ratelimit Feature And I wait for next minute strictly And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=header" with body "" Then the response status code should be 200 - + And I wait for next minute strictly + And I send "GET" request to "https://default.gw.wso2.com:9095/llm-api-subs/v1.0.0/3.14/employee?send=header" with body "" + Then the response status code should be 200 And the response headers should contain | x-ratelimit-remaining | 4999 | And I wait for 3 seconds From fb62ab3568b00518c7183999e90a7ad16b02e65b Mon Sep 17 00:00:00 2001 From: krish Date: Mon, 24 Feb 2025 12:07:06 +0530 Subject: [PATCH 8/8] Update dependency toml template --- .../ballerina/Dependencies.toml.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/config-deployer-service/ballerina/Dependencies.toml.template b/runtime/config-deployer-service/ballerina/Dependencies.toml.template index 959fa72da6..212474386c 100644 --- a/runtime/config-deployer-service/ballerina/Dependencies.toml.template +++ b/runtime/config-deployer-service/ballerina/Dependencies.toml.template @@ -70,7 +70,7 @@ modules = [ [[package]] org = "ballerina" name = "http" -version = "2.12.4" +version = "2.12.7" dependencies = [ {org = "ballerina", name = "auth"}, {org = "ballerina", name = "cache"},