From ca19a3fffcb4b90070988e361c217b5990f85d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20S=C3=A1nchez?= Date: Tue, 11 Aug 2026 13:26:06 -0600 Subject: [PATCH 1/3] fix[backend](mcp): removed OS related resources and tools --- backend/modules/mcp/catalog.json | 57 ++-- backend/modules/mcp/docs.go | 42 ++- backend/modules/mcp/module.go | 4 +- backend/modules/mcp/resources.go | 2 +- backend/modules/mcp/server.go | 2 +- backend/modules/mcp/tools_alerts.go | 8 +- backend/modules/mcp/tools_alertscoring.go | 2 +- backend/modules/mcp/tools_opensearch.go | 382 --------------------- backend/modules/mcp/tools_store.go | 386 ++++++++++++++++++++++ backend/modules/mcp/tools_tenants.go | 7 - 10 files changed, 443 insertions(+), 449 deletions(-) delete mode 100644 backend/modules/mcp/tools_opensearch.go create mode 100644 backend/modules/mcp/tools_store.go diff --git a/backend/modules/mcp/catalog.json b/backend/modules/mcp/catalog.json index 4801e7711..6d0889d25 100644 --- a/backend/modules/mcp/catalog.json +++ b/backend/modules/mcp/catalog.json @@ -5,7 +5,7 @@ "name": "utmstack", "title": "UTMStack", "version": "v1", - "description": "UTMStack backend exposed over MCP. Lets MCP-aware AI tools drive the same SOC operations a user would over REST — search alerts, run SOAR rules, query OpenSearch, manage incidents, generate compliance reports — under the same auth, permissions, license gates, and audit log.", + "description": "UTMStack backend exposed over MCP. Lets MCP-aware AI tools drive the same SOC operations a user would over REST — search alerts, run SOAR rules, query the event store (ClickHouse), manage incidents, generate compliance reports — under the same auth, permissions, license gates, and audit log.", "transport": "streamable-http", "endpoint": "/api/v1/mcp", "health_endpoint": "/api/v1/mcp/health", @@ -19,8 +19,7 @@ "incidents.write": "Create/modify incidents and their alert links/notes.", "soar.read": "Read SOAR rules, templates, executions, variables, actions, jobs.", "soar.write": "Mutate SOAR rules and run actions/jobs (may dispatch commands to agents).", - "opensearch.read": "Search OpenSearch via the FilterType DSL or SQL; read indices and policy.", - "opensearch.write": "Delete indices, manage index patterns, update ISM policy.", + "opensearch.read": "Search the event store (ClickHouse) via the FilterType DSL or SQL; introspect dataset fields.", "loganalyzer.read": "Run analyzer queries and load saved queries.", "loganalyzer.write": "Create/update/delete saved analyzer queries.", "dashboards.read": "List/get dashboards, visualizations, and layouts.", @@ -51,7 +50,7 @@ "readOnlyHint": "true when the tool does not mutate any state.", "idempotentHint": "true when repeated identical calls have the same effect as one call.", "destructiveHint": "true when the tool may perform irrecoverable changes (deletes, dispatched commands).", - "openWorldHint": "true when the tool may interact with external systems (OpenSearch, agents, mail, SOC-AI service)." + "openWorldHint": "true when the tool may interact with external systems (event store, agents, mail, SOC-AI service)." }, "tools": [ @@ -66,7 +65,7 @@ "input": { "type": "object", "properties": { - "alert_ids": {"type": "array", "items": {"type": "string"}, "description": "OpenSearch _id values of the alerts to update"}, + "alert_ids": {"type": "array", "items": {"type": "string"}, "description": "Alert id values of the alerts to update"}, "status": {"type": "integer", "description": "0=open, 1=in-review, 2=closed"}, "status_observation": {"type": "string", "description": "Optional analyst note"}, "add_false_positive_tag": {"type": "boolean"} @@ -336,25 +335,13 @@ {"name": "soar.variable.delete", "status": "planned", "module": "soar", "title": "Delete incident variable", "permission": "soar.write", "annotations": {"destructiveHint": true}, "input": {"type": "object", "properties": {"id": {"type": "integer"}}, "required": ["id"]}, "output": "{ id: int, deleted: true }", "maps_to": "soar.VariableUsecase.Delete", "rest_equivalent": "DELETE /api/v1/soar/incident-variables/:id"}, {"name": "soar.agent.list_by_platform", "status": "planned", "module": "soar", "title": "List agents on a platform", "permission": "soar.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"platform": {"type": "string", "enum": ["windows", "linux", "macos"]}}, "required": ["platform"]}, "output": "string[]", "maps_to": "soar.AgentUsecase.ListByPlatform"}, - {"name": "opensearch.search", "status": "planned", "module": "opensearch", "title": "Structured search", "description": "Run a search against the configured index pattern using the FilterType DSL (see mcp://utmstack/docs/filter-operators). Returns paged hits.", "permission": "opensearch.read", "annotations": {"readOnlyHint": true, "openWorldHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "filters": {"type": "array", "items": {"$ref": "#/definitions/FilterType"}}, "top": {"type": "integer"}, "page": {"type": "integer"}, "size": {"type": "integer"}, "sort_by": {"type": "string"}, "sort_order": {"type": "string", "enum": ["asc", "desc"]}, "include_children": {"type": "boolean"}}, "required": ["index_pattern"]}, "output": "{ hits: object[], total: int64 }", "maps_to": "opensearch.Gateway.Search", "rest_equivalent": "POST /api/v1/opensearch/search"}, - {"name": "opensearch.search_sql", "status": "planned", "module": "opensearch", "title": "SQL search", "description": "Run a sanitized SQL query against the OpenSearch SQL plugin.", "permission": "opensearch.read", "annotations": {"readOnlyHint": true, "openWorldHint": true}, "input": {"type": "object", "properties": {"sql": {"type": "string"}, "page": {"type": "integer"}, "size": {"type": "integer"}}, "required": ["sql"]}, "output": "{ hits: object[], total: int64 }", "maps_to": "opensearch.Gateway.SearchSQL", "rest_equivalent": "POST /api/v1/opensearch/search/sql"}, - {"name": "opensearch.search_csv", "status": "planned", "module": "opensearch", "title": "Search and project to CSV columns", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "filters": {"type": "array"}, "columns": {"type": "array", "items": {"$ref": "#/definitions/DataColumn"}}, "top": {"type": "integer"}}, "required": ["index_pattern", "columns"]}, "output": "object[] — rows projected to the requested columns", "maps_to": "opensearch.Gateway.SearchCSV", "rest_equivalent": "POST /api/v1/opensearch/search/csv"}, - {"name": "opensearch.generic_search", "status": "planned", "module": "opensearch", "title": "Generic search against any index", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index": {"type": "string"}, "filters": {"type": "array"}, "top": {"type": "integer"}, "page": {"type": "integer"}, "size": {"type": "integer"}}, "required": ["index"]}, "output": "{ hits: object[], total: int64 }", "maps_to": "opensearch.Gateway.GenericSearch", "rest_equivalent": "POST /api/v1/opensearch/generic-search"}, - {"name": "opensearch.count", "status": "planned", "module": "opensearch", "title": "Count matching documents", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "filters": {"type": "array"}}, "required": ["index_pattern"]}, "output": "{ hasResults: bool }", "maps_to": "opensearch.Gateway.Count", "rest_equivalent": "POST /api/v1/opensearch/count"}, - {"name": "opensearch.property_values", "status": "planned", "module": "opensearch", "title": "Distinct values for a property", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "field": {"type": "string"}, "prefix": {"type": "string"}, "top": {"type": "integer"}}, "required": ["index_pattern", "field"]}, "output": "string[]", "maps_to": "opensearch.Gateway.PropertyValues", "rest_equivalent": "GET /api/v1/opensearch/property/values"}, - {"name": "opensearch.property_values_with_count", "status": "planned", "module": "opensearch", "title": "Distinct values with counts", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "field": {"type": "string"}, "filters": {"type": "array"}, "top": {"type": "integer"}}, "required": ["index_pattern", "field"]}, "output": "map[string]int64", "maps_to": "opensearch.Gateway.PropertyValuesWithCount", "rest_equivalent": "POST /api/v1/opensearch/property/values-with-count"}, - {"name": "opensearch.index.properties", "status": "planned", "module": "opensearch", "title": "List index fields", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"pattern": {"type": "string"}}, "required": ["pattern"]}, "output": "IndexPropertyType[]", "maps_to": "opensearch.Gateway.IndexProperties", "rest_equivalent": "GET /api/v1/opensearch/index/properties"}, - {"name": "opensearch.index.list", "status": "planned", "module": "opensearch", "title": "List indices matching a pattern", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"pattern": {"type": "string"}, "include_system": {"type": "boolean"}, "page": {"type": "integer"}, "size": {"type": "integer"}}}, "output": "{ items: IndexInfo[], total: int64 }", "maps_to": "opensearch.Gateway.IndexAll", "rest_equivalent": "GET /api/v1/opensearch/index/all"}, - {"name": "opensearch.index.delete", "status": "planned", "module": "opensearch", "title": "Delete indices", "permission": "opensearch.write", "annotations": {"destructiveHint": true}, "input": {"type": "object", "properties": {"indices": {"type": "array", "items": {"type": "string"}}}, "required": ["indices"]}, "output": "{ deleted: int }", "maps_to": "opensearch.Gateway.DeleteIndex", "rest_equivalent": "POST /api/v1/opensearch/index/delete-index"}, - {"name": "opensearch.cluster_status", "status": "planned", "module": "opensearch", "title": "Cluster status", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {}}, "output": "ClusterStatusResponse", "maps_to": "opensearch.Gateway.ClusterStatus", "rest_equivalent": "GET /api/v1/opensearch/cluster/status"}, - {"name": "opensearch.index_pattern.create", "status": "planned", "module": "opensearch", "title": "Create index pattern", "permission": "opensearch.write", "input": {"type": "object", "properties": {"name": {"type": "string"}, "pattern": {"type": "string"}, "time_field": {"type": "string"}}, "required": ["name", "pattern"]}, "output": "IndexPatternResponse", "maps_to": "opensearch.IndexPatternUsecase.Create", "rest_equivalent": "POST /api/v1/opensearch/index-patterns"}, - {"name": "opensearch.index_pattern.update", "status": "planned", "module": "opensearch", "title": "Update index pattern", "permission": "opensearch.write", "input": {"type": "object", "properties": {"id": {"type": "integer"}, "name": {"type": "string"}, "pattern": {"type": "string"}, "time_field": {"type": "string"}}, "required": ["id"]}, "output": "IndexPatternResponse", "maps_to": "opensearch.IndexPatternUsecase.Update", "rest_equivalent": "PUT /api/v1/opensearch/index-patterns"}, - {"name": "opensearch.index_pattern.list", "status": "planned", "module": "opensearch", "title": "List index patterns", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"name": {"type": "string"}, "page": {"type": "integer"}, "size": {"type": "integer"}}}, "output": "{ items: IndexPatternResponse[], total: int64 }", "maps_to": "opensearch.IndexPatternUsecase.List", "rest_equivalent": "GET /api/v1/opensearch/index-patterns"}, - {"name": "opensearch.index_pattern.get", "status": "planned", "module": "opensearch", "title": "Get index pattern", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"id": {"type": "integer"}}, "required": ["id"]}, "output": "IndexPatternResponse", "maps_to": "opensearch.IndexPatternUsecase.GetByID", "rest_equivalent": "GET /api/v1/opensearch/index-patterns/:id"}, - {"name": "opensearch.index_pattern.fields", "status": "planned", "module": "opensearch", "title": "Fields for an index pattern", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"pattern_id": {"type": "integer"}}, "required": ["pattern_id"]}, "output": "IndexPatternFieldsResponse[]", "maps_to": "opensearch.IndexPatternUsecase.Fields", "rest_equivalent": "GET /api/v1/opensearch/index-patterns/fields"}, - {"name": "opensearch.index_pattern.delete", "status": "planned", "module": "opensearch", "title": "Delete index pattern", "permission": "opensearch.write", "annotations": {"destructiveHint": true}, "input": {"type": "object", "properties": {"id": {"type": "integer"}}, "required": ["id"]}, "output": "{ id: int, deleted: true }", "maps_to": "opensearch.IndexPatternUsecase.Delete", "rest_equivalent": "DELETE /api/v1/opensearch/index-patterns/:id"}, - {"name": "opensearch.policy.get", "status": "planned", "module": "opensearch", "title": "Get ISM policy", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {}}, "output": "PolicySettings", "maps_to": "opensearch.PolicyUsecase.GetPolicy", "rest_equivalent": "GET /api/v1/opensearch/index-policy/policy"}, - {"name": "opensearch.policy.update", "status": "planned", "module": "opensearch", "title": "Update ISM policy", "permission": "opensearch.write", "annotations": {"destructiveHint": true}, "input": {"type": "object", "properties": {"hot_days": {"type": "integer"}, "warm_days": {"type": "integer"}, "delete_days": {"type": "integer"}}, "required": ["hot_days", "warm_days", "delete_days"]}, "output": "UpdateManagedIndexPolicyResponse", "maps_to": "opensearch.PolicyUsecase.UpdatePolicy", "rest_equivalent": "PUT /api/v1/opensearch/index-policy/policy"}, + {"name": "store.search", "status": "implemented", "module": "store", "title": "Structured search", "description": "Run a structured search over a store dataset (logs | alerts | statistics) using the FilterType DSL. Returns paged hits scoped to the caller's tenant.", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"dataset": {"type": "string", "enum": ["logs", "alerts", "statistics"]}, "data_type": {"type": "string"}, "filters": {"type": "array", "items": {"$ref": "#/definitions/FilterType"}}, "page": {"type": "integer"}, "size": {"type": "integer"}, "sort_by": {"type": "string"}, "sort_order": {"type": "string", "enum": ["asc", "desc"]}}, "required": ["dataset"]}, "output": "{ hits: object[], total: int64 }", "maps_to": "eventstore.Store.FetchPage"}, + {"name": "store.count", "status": "implemented", "module": "store", "title": "Count matching docs", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"dataset": {"type": "string", "enum": ["logs", "alerts", "statistics"]}, "data_type": {"type": "string"}, "filters": {"type": "array"}}, "required": ["dataset"]}, "output": "{ total: int64, hasResults: bool }", "maps_to": "eventstore.Store.Count"}, + {"name": "store.property_values", "status": "implemented", "module": "store", "title": "Top values for a field", "description": "Return the top-N distinct values of a field with their document counts.", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"dataset": {"type": "string"}, "data_type": {"type": "string"}, "field": {"type": "string"}, "filters": {"type": "array"}, "top": {"type": "integer"}}, "required": ["dataset", "field"]}, "output": "[{value: string, count: int64}]", "maps_to": "eventstore.Store.TopValues"}, + {"name": "store.search_sql", "status": "implemented", "module": "store", "title": "SQL search", "description": "Run a read-only ClickHouse SQL query. The FROM clause must reference the logs / alerts CTEs (already tenant-scoped).", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"query": {"type": "string"}, "page": {"type": "integer"}, "size": {"type": "integer"}}, "required": ["query"]}, "output": "{ hits: object[], total: int64 }", "maps_to": "eventstore.Store.Conn.Query"}, + {"name": "store.search_csv", "status": "implemented", "module": "store", "title": "Search and project rows to columns", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"dataset": {"type": "string"}, "data_type": {"type": "string"}, "filters": {"type": "array"}, "columns": {"type": "array", "items": {"type": "string"}}, "top": {"type": "integer"}}, "required": ["dataset", "columns"]}, "output": "object[] — rows projected to the requested columns", "maps_to": "eventstore.Store.FetchPage"}, + {"name": "store.datasets", "status": "implemented", "module": "store", "title": "List datasets", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {}}, "output": "string[]", "maps_to": "static: logs | alerts | statistics"}, + {"name": "store.dataset.fields", "status": "implemented", "module": "store", "title": "List fields for a dataset", "description": "Describe the queryable fields of a dataset (name, type, filterable, searchable).", "permission": "opensearch.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"dataset": {"type": "string"}}, "required": ["dataset"]}, "output": "[{name, type, filterable, searchable}]", "maps_to": "eventstore.Store.DescribeFields"}, {"name": "loganalyzer.top_values", "status": "planned", "module": "loganalyzer", "title": "Top-N values for a field", "permission": "loganalyzer.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "field": {"type": "string"}, "filters": {"type": "array"}, "top": {"type": "integer"}}, "required": ["index_pattern", "field", "top"]}, "output": "TopValuesResponse", "maps_to": "loganalyzer.AnalyzerUsecase.TopValues", "rest_equivalent": "POST /api/v1/log-analyzer/top-x-values/:indexPattern/:field/:top"}, {"name": "loganalyzer.chart_view", "status": "planned", "module": "loganalyzer", "title": "Chart view aggregation", "permission": "loganalyzer.read", "annotations": {"readOnlyHint": true}, "input": {"type": "object", "properties": {"index_pattern": {"type": "string"}, "interval": {"type": "string"}, "metric": {"type": "string"}, "filters": {"type": "array"}, "from": {"type": "string"}, "to": {"type": "string"}}, "required": ["index_pattern"]}, "output": "ChartViewResponse", "maps_to": "loganalyzer.AnalyzerUsecase.ChartView", "rest_equivalent": "POST /api/v1/log-analyzer/chart-view"}, @@ -524,7 +511,7 @@ { "uri": "mcp://utmstack/docs/filter-operators", "name": "FilterType operator reference", - "description": "Documentation of the structured FilterType DSL (IS, IS_NOT, CONTAIN, IS_BETWEEN, EXIST, …) used by opensearch.search, alerts.search_adversary, alert_tag_rules, loganalyzer.* and dashboards.", + "description": "Documentation of the structured FilterType DSL (IS, IS_NOT, CONTAIN, IS_BETWEEN, EXIST, …) used by store.search, alerts.search_adversary, alert_tag_rules, loganalyzer.* and dashboards.", "mime_type": "text/markdown", "status": "planned", "backed_by": "pkg/common_models/filter.go (FilterOperator constants)" @@ -559,14 +546,14 @@ { "name": "soc.investigate-alert", "title": "Investigate alert", - "description": "Given an alert ID, pulls the alert, related events from OpenSearch, and any similar past incidents; the model then drafts an incident-creation payload for human approval.", + "description": "Given an alert ID, pulls the alert, related events from the event store, and any similar past incidents; the model then drafts an incident-creation payload for human approval.", "status": "planned", "arguments": [ - {"name": "alert_id", "description": "OpenSearch _id of the alert to investigate", "required": true} + {"name": "alert_id", "description": "Alert id to investigate", "required": true} ], "tool_sequence": [ - "opensearch.search", - "opensearch.search_sql", + "store.search", + "store.search_sql", "incidents.list", "(model drafts)", "incidents.create" @@ -607,7 +594,7 @@ "definitions": { "FilterType": { "type": "object", - "description": "Structured query condition used across opensearch.*, alerts.*, loganalyzer.*, dashboards, eventprocessing.* tools.", + "description": "Structured query condition used across store.*, alerts.*, loganalyzer.*, dashboards, eventprocessing.* tools.", "properties": { "field": {"type": "string"}, "operator": { @@ -635,18 +622,18 @@ }, "summary": { - "tool_count_total": 218, - "tool_count_implemented": 16, - "tool_count_planned": 202, + "tool_count_total": 206, + "tool_count_implemented": 23, + "tool_count_planned": 183, "resource_count": 5, "prompt_count": 4, - "modules_covered": ["alerts", "incidents", "soar", "opensearch", "loganalyzer", "dashboards", "eventprocessing", "datasources", "integrations", "compliance", "audit", "adaudit", "notifications", "iam", "appconfig", "billing", "socai"], + "modules_covered": ["alerts", "incidents", "soar", "store", "loganalyzer", "dashboards", "eventprocessing", "datasources", "integrations", "compliance", "audit", "adaudit", "notifications", "iam", "appconfig", "billing", "socai"], "tool_count_by_module": { "soar": 30, "eventprocessing": 25, "iam": 25, "compliance": 21, - "opensearch": 19, + "store": 7, "alerts": 16, "incidents": 16, "dashboards": 15, diff --git a/backend/modules/mcp/docs.go b/backend/modules/mcp/docs.go index f8751a82c..f7d667ee0 100644 --- a/backend/modules/mcp/docs.go +++ b/backend/modules/mcp/docs.go @@ -36,39 +36,49 @@ Most search/filter inputs accept a ` + "`[]FilterType`" + ` array. Each entry ha ## Operators ### Equality -- ` + "`IS`" + ` — exact match (match_phrase) +- ` + "`IS`" + ` — exact match (` + "`field = value`" + `) - ` + "`IS_NOT`" + ` — inverse exact match ### Containment -- ` + "`CONTAIN`" + ` — substring (query_string ` + "`*v*`" + `) +- ` + "`CONTAIN`" + ` — substring (` + "`field LIKE '%value%'`" + `) - ` + "`DOES_NOT_CONTAIN`" + ` — inverse substring - ` + "`NOT_CONTAINS`" + ` — legacy alias of DOES_NOT_CONTAIN -- ` + "`CONTAIN_ONE_OF`" + ` — substring matches any of value[] -- ` + "`DOES_NOT_CONTAIN_ONE_OF`" + ` — none of value[] are substrings +- ` + "`CONTAIN_ONE_OF`" + ` — matches any of value[] as a substring +- ` + "`DOES_NOT_CONTAIN_ONE_OF`" + ` — none of value[] appear as substrings ### Sets -- ` + "`IS_ONE_OF_TERMS`" + ` — value[] terms filter -- ` + "`IS_ONE_OF_TERMS_OR`" + ` — value[] terms (OR'd) -- ` + "`IS_ONE_OF`" + ` — value[] match_phrase (any) +- ` + "`IS_ONE_OF_TERMS`" + ` — ` + "`field IN (...)`" + ` on value[] +- ` + "`IS_ONE_OF_TERMS_OR`" + ` — same as IS_ONE_OF_TERMS +- ` + "`IS_ONE_OF`" + ` — matches any of value[] exactly - ` + "`IS_NOT_ONE_OF`" + ` — none of value[] match ### Ranges -- ` + "`IS_BETWEEN`" + ` — value=[from, to], inclusive +- ` + "`IS_BETWEEN`" + ` — ` + "`field BETWEEN from AND to`" + ` (inclusive) - ` + "`IS_NOT_BETWEEN`" + ` — outside the inclusive range -- ` + "`IS_GREATER_THAN`" + ` — gt (timestamps use IndexTimestampFormat) -- ` + "`IS_LESS_THAN_OR_EQUALS`" + ` — lte +- ` + "`IS_GREATER_THAN`" + ` — ` + "`field > value`" + ` (timestamps in RFC3339) +- ` + "`IS_LESS_THAN_OR_EQUALS`" + ` — ` + "`field <= value`" + ` ### Existence -- ` + "`EXIST`" + ` — field is present -- ` + "`DOES_NOT_EXIST`" + ` — field is missing +- ` + "`EXIST`" + ` — ` + "`field IS NOT NULL`" + ` +- ` + "`DOES_NOT_EXIST`" + ` — ` + "`field IS NULL`" + ` ### String boundaries - ` + "`START_WITH`" + ` / ` + "`NOT_START_WITH`" + ` — prefix - ` + "`ENDS_WITH`" + ` / ` + "`NOT_ENDS_WITH`" + ` — suffix -### Cross-field -- ` + "`IS_IN_FIELDS`" + ` — value matches any of the listed fields (query_string) -- ` + "`IS_NOT_IN_FIELDS`" + ` — value matches none of the listed fields +### Cross-field (text search) +- ` + "`IS_IN_FIELDS`" + ` — value matches anywhere in the record's raw text +- ` + "`IS_NOT_IN_FIELDS`" + ` — value does not appear in the raw text + +Text search is only supported on datasets that carry raw text (currently ` + "`logs`" + `); +running it against ` + "`alerts`" + ` or ` + "`statistics`" + ` returns an error rather than an empty set. + +## Time bounds + +` + "`@timestamp`" + ` range predicates (IS_BETWEEN, IS_GREATER_THAN, IS_LESS_THAN_OR_EQUALS) +are lifted out of the filter list and pushed into the store scope before any +other predicate runs — the store prunes by time first, then by tenant, then by +the remaining filters. ## Example @@ -80,7 +90,7 @@ Most search/filter inputs accept a ` + "`[]FilterType`" + ` array. Each entry ha ] ` + "```" + ` -This composes into a single OpenSearch bool query at the gateway. +This composes into a tenant-scoped ClickHouse SELECT at the event store driver. ` const eventTypesDoc = `# Audit event-type enum (ApplicationEventType) diff --git a/backend/modules/mcp/module.go b/backend/modules/mcp/module.go index ebfc4d609..b6b5763e3 100644 --- a/backend/modules/mcp/module.go +++ b/backend/modules/mcp/module.go @@ -17,10 +17,10 @@ import ( "github.com/utmstack/utmstack/backend/modules/integrations" "github.com/utmstack/utmstack/backend/modules/loganalyzer" "github.com/utmstack/utmstack/backend/modules/notifications" - opensearchgw "github.com/utmstack/utmstack/backend/modules/opensearch" "github.com/utmstack/utmstack/backend/modules/soar" "github.com/utmstack/utmstack/backend/modules/socai" "github.com/utmstack/utmstack/backend/modules/tenant" + "github.com/utmstack/utmstack/backend/pkg/eventstore" ) // Deps holds the other modules the MCP layer borrows usecases from. New @@ -35,7 +35,7 @@ type Deps struct { Audit *audit.Module Dashboards *dashboards.Module LogAnalyzer *loganalyzer.Module - OpenSearch *opensearchgw.Module + Events *eventstore.Store EventProcessing *eventprocessing.Module Datasources *datasources.Module Integrations *integrations.Module diff --git a/backend/modules/mcp/resources.go b/backend/modules/mcp/resources.go index 371e5b235..a0b33d199 100644 --- a/backend/modules/mcp/resources.go +++ b/backend/modules/mcp/resources.go @@ -90,7 +90,7 @@ func registerDocResources(m *Module) { srv.AddResource(&mcp.Resource{ URI: "mcp://utmstack/docs/filter-operators", Name: "FilterType operator reference", - Description: "The structured filter DSL operators used by opensearch.search, alerts.search_adversary, loganalyzer.*, dashboards, alert_tag_rules, and event-processing tools.", + Description: "The structured filter DSL operators used by store.search, alerts.search_adversary, loganalyzer.*, dashboards, alert_tag_rules, and event-processing tools.", MIMEType: "text/markdown", }, func(_ context.Context, req *mcp.ReadResourceRequest) (*mcp.ReadResourceResult, error) { return textResource(req.Params.URI, "text/markdown", filterOperatorsDoc) diff --git a/backend/modules/mcp/server.go b/backend/modules/mcp/server.go index aec0ee770..0b78c1809 100644 --- a/backend/modules/mcp/server.go +++ b/backend/modules/mcp/server.go @@ -31,7 +31,7 @@ func (m *Module) buildServer() *mcp.Server { registerAlerts(m) registerAlertScoring(m) registerIncidents(m) - registerOpenSearch(m) + registerStore(m) // registerSOAR(m) // temporarily disabled — SOAR response actions not exposed to the agent for now registerCompliance(m) registerLogAnalyzer(m) diff --git a/backend/modules/mcp/tools_alerts.go b/backend/modules/mcp/tools_alerts.go index 206f46d5d..eb614cfb6 100644 --- a/backend/modules/mcp/tools_alerts.go +++ b/backend/modules/mcp/tools_alerts.go @@ -26,23 +26,23 @@ func registerAlerts(m *Module) { } // ------------------------------------------------------------------ -// alerts.* — operate on individual alert documents (live in OpenSearch). +// alerts.* — operate on individual alert documents (stored in the event store). // ------------------------------------------------------------------ type alertsUpdateStatusInput struct { - AlertIDs []string `json:"alert_ids" jsonschema:"OpenSearch _id values of the alerts to update"` + AlertIDs []string `json:"alert_ids" jsonschema:"Alert id values of the alerts to update"` Status string `json:"status" jsonschema:"Target status, one of: Automatic review, Open, In review, Completed, Merged"` StatusObservation string `json:"status_observation,omitempty" jsonschema:"Optional analyst note attached to the status change"` AddFalsePositiveTag bool `json:"add_false_positive_tag,omitempty" jsonschema:"If true, also apply the FALSE_POSITIVE tag (used when closing as FP)"` } type alertsUpdateNotesInput struct { - AlertID string `json:"alert_id" jsonschema:"OpenSearch _id of the alert"` + AlertID string `json:"alert_id" jsonschema:"Alert id"` Notes string `json:"notes" jsonschema:"Analyst notes to attach (replaces existing notes)"` } type alertsUpdateTagsInput struct { - AlertIDs []string `json:"alert_ids" jsonschema:"Alert _id values to tag"` + AlertIDs []string `json:"alert_ids" jsonschema:"Alert id values to tag"` Tags []string `json:"tags" jsonschema:"Tag names to apply"` CreateRule bool `json:"create_rule,omitempty" jsonschema:"If true, also persist a tag rule so future matching alerts are auto-tagged"` } diff --git a/backend/modules/mcp/tools_alertscoring.go b/backend/modules/mcp/tools_alertscoring.go index e7be9c94c..10ea51953 100644 --- a/backend/modules/mcp/tools_alertscoring.go +++ b/backend/modules/mcp/tools_alertscoring.go @@ -9,7 +9,7 @@ import ( ) type alertScoreInput struct { - AlertID string `json:"alert_id" jsonschema:"OpenSearch _id of the alert to score"` + AlertID string `json:"alert_id" jsonschema:"Alert id (the alert's own id field) to score"` } func registerAlertScoring(m *Module) { diff --git a/backend/modules/mcp/tools_opensearch.go b/backend/modules/mcp/tools_opensearch.go deleted file mode 100644 index e0fe8a393..000000000 --- a/backend/modules/mcp/tools_opensearch.go +++ /dev/null @@ -1,382 +0,0 @@ -package mcp - -import ( - "context" - "fmt" - - "github.com/modelcontextprotocol/go-sdk/mcp" - "github.com/utmstack/utmstack/backend/modules/opensearch/dto" - "github.com/utmstack/utmstack/backend/pkg/authz" - "github.com/utmstack/utmstack/backend/pkg/common_models" -) - -func registerOpenSearch(m *Module) { - registerOSGateway(m) - registerOSIndexPatterns(m) - registerOSPolicy(m) -} - -// ---- opensearch search / index gateway ------------------------------------- - -type osSearchInput struct { - IndexPattern string `json:"index_pattern" jsonschema:"Required. Resolved index pattern (e.g. alert-*, log-*)."` - Filters []common_models.FilterType `json:"filters,omitempty" jsonschema:"FilterType DSL conditions"` - Top int `json:"top,omitempty" jsonschema:"Max total hits to return (default 500)"` - Page int `json:"page,omitempty" jsonschema:"1-based page"` - Size int `json:"size,omitempty"` - SortBy string `json:"sort_by,omitempty"` - SortOrder string `json:"sort_order,omitempty" jsonschema:"asc | desc"` - IncludeChildren bool `json:"include_children,omitempty"` -} - -type osGenericSearchInput struct { - Index string `json:"index"` - Filters []common_models.FilterType `json:"filters,omitempty"` - Top int `json:"top,omitempty"` - Page int `json:"page,omitempty"` - Size int `json:"size,omitempty"` -} - -type osCountInput struct { - IndexPattern string `json:"index_pattern"` - Filters []common_models.FilterType `json:"filters,omitempty"` -} - -type osPropertyValuesInput struct { - IndexPattern string `json:"index_pattern"` - Keyword string `json:"keyword"` -} - -type osPropertyValuesWithCountInput struct { - Index string `json:"index"` - Field string `json:"field"` - Filters []common_models.FilterType `json:"filters,omitempty"` - Top int `json:"top,omitempty"` - OrderByCount bool `json:"order_by_count,omitempty"` - SortAsc bool `json:"sort_asc,omitempty"` -} - -type osIndexPropertiesInput struct { - Pattern string `json:"pattern"` -} - -type osIndexListInput struct { - Pattern string `json:"pattern,omitempty"` - IncludeSystem bool `json:"include_system,omitempty"` - Page int `json:"page,omitempty"` - Size int `json:"size,omitempty"` -} - -type osIndexDeleteInput struct { - Indices []string `json:"indices" jsonschema:"Exact index names to delete"` -} - -type osSearchSQLInput struct { - Query string `json:"query" jsonschema:"OpenSearch SQL statement; SELECT-only, sanitized at runtime"` - FetchSize *int `json:"fetch_size,omitempty"` - Page int `json:"page,omitempty"` - Size int `json:"size,omitempty"` -} - -type osSearchCSVInput struct { - IndexPattern string `json:"index_pattern"` - Filters []common_models.FilterType `json:"filters,omitempty"` - Top int `json:"top,omitempty"` - Columns []dto.DataColumn `json:"columns"` -} - -func registerOSGateway(m *Module) { - gw := m.deps.OpenSearch.Gateway() - - Add(m, &mcp.Tool{ - Name: "opensearch.search", Title: "Structured search", - Description: "Run a structured search against the given index pattern using the FilterType DSL. See mcp://utmstack/docs/filter-operators for operator semantics.", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osSearchInput) (any, error) { - if in.IndexPattern == "" { - return nil, fmt.Errorf("index_pattern is required") - } - page := in.Page - if page <= 0 { - page = 1 - } - hits, total, err := gw.Search(ctx, in.Filters, in.Top, in.IndexPattern, in.IncludeChildren, page, clampPageSize(in.Size), in.SortBy, in.SortOrder) - if err != nil { - return nil, err - } - return map[string]any{"hits": hits, "total": total}, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.generic_search", Title: "Search any index", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osGenericSearchInput) (any, error) { - if in.Index == "" { - return nil, fmt.Errorf("index is required") - } - page := in.Page - if page <= 0 { - page = 1 - } - hits, total, err := gw.GenericSearch(ctx, in.Index, in.Filters, in.Top, page, clampPageSize(in.Size)) - if err != nil { - return nil, err - } - return map[string]any{"hits": hits, "total": total}, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.count", Title: "Count matching docs", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osCountInput) (any, error) { - hasResults, err := gw.Count(ctx, in.Filters, in.IndexPattern) - if err != nil { - return nil, err - } - return map[string]any{"hasResults": hasResults}, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.search_sql", Title: "SQL search", - Description: "Run a sanitized SQL query against the OpenSearch SQL plugin. SELECT-only.", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osSearchSQLInput) (any, error) { - page := in.Page - if page <= 0 { - page = 1 - } - hits, total, err := gw.SearchSQL(ctx, dto.SqlSearchDto{Query: in.Query, FetchSize: in.FetchSize}, page, clampPageSize(in.Size)) - if err != nil { - return nil, err - } - return map[string]any{"hits": hits, "total": total}, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.search_csv", Title: "Project search results to CSV columns", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osSearchCSVInput) (any, error) { - if len(in.Columns) == 0 { - return nil, fmt.Errorf("columns is required") - } - rows, err := gw.SearchCSV(ctx, in.Filters, in.Top, in.IndexPattern, in.Columns) - if err != nil { - return nil, err - } - return rows, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.property_values", Title: "Distinct values for a field", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osPropertyValuesInput) (any, error) { - return gw.PropertyValues(ctx, dto.PropertyValuesRequest{ - Keyword: in.Keyword, IndexPattern: in.IndexPattern, - }) - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.property_values_with_count", Title: "Field values with counts", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osPropertyValuesWithCountInput) (any, error) { - return gw.PropertyValuesWithCount(ctx, dto.PropertyValuesWithCountRequest{ - Filters: in.Filters, Field: in.Field, Index: in.Index, - Top: in.Top, OrderByCount: in.OrderByCount, SortAsc: in.SortAsc, - }) - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.index.properties", Title: "List index fields", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osIndexPropertiesInput) (any, error) { - return gw.IndexProperties(ctx, in.Pattern) - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.index.list", Title: "List indices matching a pattern", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osIndexListInput) (any, error) { - page := in.Page - if page <= 0 { - page = 1 - } - items, total, err := gw.IndexAll(ctx, in.Pattern, in.IncludeSystem, page, clampPageSize(in.Size)) - if err != nil { - return nil, err - } - return map[string]any{"items": items, "total": total}, nil - }) - - /* temporarily disabled — index/retention management not exposed to the agent for now - Add(m, &mcp.Tool{ - Name: "opensearch.index.delete", Title: "Delete indices", - Description: "Permanently delete one or more indices. Destructive.", - }, Gate{Permission: "opensearch.write"}, - func(ctx context.Context, _ *authz.Actor, in osIndexDeleteInput) (any, error) { - if len(in.Indices) == 0 { - return nil, fmt.Errorf("indices is required") - } - if err := gw.DeleteIndex(ctx, in.Indices); err != nil { - return nil, err - } - return map[string]any{"deleted": len(in.Indices)}, nil - }) - */ - - Add(m, &mcp.Tool{ - Name: "opensearch.cluster_status", Title: "Cluster status", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, _ struct{}) (any, error) { - return gw.ClusterStatus(ctx) - }) -} - -// ---- opensearch.index_pattern.* -------------------------------------------- - -type osPatternCreateInput struct { - Pattern string `json:"pattern"` - PatternModule *string `json:"pattern_module,omitempty"` - PatternSystem *bool `json:"pattern_system,omitempty"` - IsActive *bool `json:"is_active,omitempty"` -} - -type osPatternUpdateInput struct { - ID int64 `json:"id"` - Pattern string `json:"pattern"` - PatternModule *string `json:"pattern_module,omitempty"` - PatternSystem *bool `json:"pattern_system,omitempty"` - IsActive *bool `json:"is_active,omitempty"` -} - -type osPatternListInput struct { - PatternContains *string `json:"pattern_contains,omitempty"` - ModuleEquals *string `json:"module_equals,omitempty"` - IsActive *bool `json:"is_active,omitempty"` - Page int `json:"page,omitempty"` - Size int `json:"size,omitempty"` - Sort string `json:"sort,omitempty"` -} - -type osPatternIDInput struct { - ID int64 `json:"id"` -} - -func registerOSIndexPatterns(m *Module) { - uc := m.deps.OpenSearch.GetIndexPatternUsecase() - - /* temporarily disabled — index/retention management not exposed to the agent for now - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.create", Title: "Create index pattern", - }, Gate{Permission: "opensearch.write"}, - func(ctx context.Context, _ *authz.Actor, in osPatternCreateInput) (any, error) { - return uc.Create(ctx, dto.CreateIndexPatternRequest{ - Pattern: in.Pattern, PatternModule: in.PatternModule, - PatternSystem: in.PatternSystem, IsActive: in.IsActive, - }) - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.update", Title: "Update index pattern", - }, Gate{Permission: "opensearch.write"}, - func(ctx context.Context, _ *authz.Actor, in osPatternUpdateInput) (any, error) { - return uc.Update(ctx, dto.UpdateIndexPatternRequest{ - ID: in.ID, Pattern: in.Pattern, PatternModule: in.PatternModule, - PatternSystem: in.PatternSystem, IsActive: in.IsActive, - }) - }) - */ - - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.list", Title: "List index patterns", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osPatternListInput) (any, error) { - items, total, err := uc.List(ctx, dto.IndexPatternFilters{ - PatternContains: in.PatternContains, ModuleEquals: in.ModuleEquals, IsActive: in.IsActive, - Sort: in.Sort, - }) - if err != nil { - return nil, err - } - return map[string]any{"items": items, "total": total}, nil - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.get", Title: "Get index pattern", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osPatternIDInput) (any, error) { - return uc.GetByID(ctx, in.ID) - }) - - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.fields", Title: "Fields for index pattern", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, in osPatternListInput) (any, error) { - items, total, err := uc.Fields(ctx, dto.IndexPatternFilters{ - PatternContains: in.PatternContains, ModuleEquals: in.ModuleEquals, IsActive: in.IsActive, - }) - if err != nil { - return nil, err - } - return map[string]any{"items": items, "total": total}, nil - }) - - /* temporarily disabled — index/retention management not exposed to the agent for now - Add(m, &mcp.Tool{ - Name: "opensearch.index_pattern.delete", Title: "Delete index pattern", - }, Gate{Permission: "opensearch.write"}, - func(ctx context.Context, _ *authz.Actor, in osPatternIDInput) (any, error) { - if err := uc.Delete(ctx, in.ID); err != nil { - return nil, err - } - return map[string]any{"id": in.ID, "deleted": true}, nil - }) - */ -} - -// ---- opensearch.policy.* --------------------------------------------------- - -type osPolicyUpdateInput struct { - SnapshotActive bool `json:"snapshot_active"` - DeleteAfter string `json:"delete_after"` -} - -func registerOSPolicy(m *Module) { - uc := m.deps.OpenSearch.GetPolicyUsecase() - if uc == nil { - // OpenSearch not configured; policy tools are unusable. Skip registration - // so /mcp/health doesn't advertise tools that always fail. - return - } - - Add(m, &mcp.Tool{ - Name: "opensearch.policy.get", Title: "Get ISM policy", - Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, - }, Gate{Permission: "opensearch.read"}, - func(ctx context.Context, _ *authz.Actor, _ struct{}) (any, error) { - return uc.GetPolicy(ctx) - }) - - /* temporarily disabled — index/retention management not exposed to the agent for now - Add(m, &mcp.Tool{ - Name: "opensearch.policy.update", Title: "Update ISM policy", - }, Gate{Permission: "opensearch.write"}, - func(ctx context.Context, _ *authz.Actor, in osPolicyUpdateInput) (any, error) { - return uc.UpdatePolicy(ctx, domain.PolicySettings{ - SnapshotActive: in.SnapshotActive, DeleteAfter: in.DeleteAfter, - }) - }) - */ -} diff --git a/backend/modules/mcp/tools_store.go b/backend/modules/mcp/tools_store.go new file mode 100644 index 000000000..fc15274e4 --- /dev/null +++ b/backend/modules/mcp/tools_store.go @@ -0,0 +1,386 @@ +package mcp + +import ( + "context" + "encoding/json" + "fmt" + "reflect" + + "github.com/ClickHouse/clickhouse-go/v2" + "github.com/modelcontextprotocol/go-sdk/mcp" + "github.com/threatwinds/go-sdk/store" + + "github.com/utmstack/utmstack/backend/pkg/authz" + "github.com/utmstack/utmstack/backend/pkg/common_models" + "github.com/utmstack/utmstack/backend/pkg/eventstore" + "github.com/utmstack/utmstack/backend/pkg/tenancy" +) + +// registerStore mounts the tools that speak to the event store (ClickHouse). +// The permission stays "opensearch.read" so existing roles keep working; only +// the tool names and shapes moved. +func registerStore(m *Module) { + events := m.deps.Events + if events == nil { + // No ClickHouse configured; store.* tools are unusable. Skip + // registration so /mcp/health does not advertise tools that always + // fail. + return + } + + registerStoreQueries(m, events) + registerStoreIntrospection(m, events) +} + +var storeDatasets = map[string]store.Dataset{ + "logs": eventstore.DatasetLogs, + "alerts": eventstore.DatasetAlerts, + "statistics": eventstore.DatasetStats, +} + +func resolveDataset(name string) (store.Dataset, error) { + if name == "" { + return "", fmt.Errorf("dataset is required (logs | alerts | statistics)") + } + ds, ok := storeDatasets[name] + if !ok { + return "", fmt.Errorf("unknown dataset %q (must be logs | alerts | statistics)", name) + } + return ds, nil +} + +func storeScope(ctx context.Context, dataset, dataType string) (store.Scope, error) { + ds, err := resolveDataset(dataset) + if err != nil { + return store.Scope{}, err + } + tenant := authz.TenantIDFromContext(ctx) + if tenant == "" && tenancy.ReadsAllTenants(ctx) { + tenant = store.AllTenants + } + if tenant == "" { + return store.Scope{}, fmt.Errorf("tenant required") + } + return store.Scope{Tenant: tenant, Dataset: ds, DataType: dataType}, nil +} + +// ---- store.search / store.count / store.property_values -------------------- + +type storeSearchInput struct { + Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` + DataType string `json:"data_type,omitempty" jsonschema:"e.g. wineventlog, o365 — filters by the dataType column"` + Filters []common_models.FilterType `json:"filters,omitempty" jsonschema:"FilterType DSL predicates (AND'd)"` + Page int `json:"page,omitempty" jsonschema:"1-based page"` + Size int `json:"size,omitempty"` + SortBy string `json:"sort_by,omitempty"` + SortOrder string `json:"sort_order,omitempty" jsonschema:"asc | desc"` +} + +type storeCountInput struct { + Dataset string `json:"dataset"` + DataType string `json:"data_type,omitempty"` + Filters []common_models.FilterType `json:"filters,omitempty"` +} + +type storePropertyValuesInput struct { + Dataset string `json:"dataset"` + DataType string `json:"data_type,omitempty"` + Field string `json:"field" jsonschema:"Field name to bucket by"` + Filters []common_models.FilterType `json:"filters,omitempty"` + Top int `json:"top,omitempty"` +} + +type storeSearchSQLInput struct { + Query string `json:"query" jsonschema:"SELECT-only ClickHouse SQL. The tenant scope is injected as WITH logs/alerts CTEs; do not read the physical tables directly."` + Page int `json:"page,omitempty"` + Size int `json:"size,omitempty"` +} + +type storeSearchCSVInput struct { + Dataset string `json:"dataset"` + DataType string `json:"data_type,omitempty"` + Filters []common_models.FilterType `json:"filters,omitempty"` + Columns []string `json:"columns" jsonschema:"Field names to project"` + Top int `json:"top,omitempty"` +} + +func registerStoreQueries(m *Module, events *eventstore.Store) { + Add(m, &mcp.Tool{ + Name: "store.search", Title: "Structured search", + Description: "Run a structured search over a store dataset (logs | alerts | statistics) using the FilterType DSL. See mcp://utmstack/docs/filter-operators.", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storeSearchInput) (any, error) { + scope, err := storeScope(ctx, in.Dataset, in.DataType) + if err != nil { + return nil, err + } + scope, rest := common_models.SplitTimeBounds(scope, in.Filters) + f, err := common_models.ToStoreFilters(rest) + if err != nil { + return nil, err + } + + page, size := in.Page, in.Size + if page < 1 { + page = 1 + } + size = clampPageSize(size) + order := store.Desc + if in.SortOrder == "asc" { + order = store.Asc + } + sortBy := in.SortBy + if sortBy == "" { + sortBy = "@timestamp" + } + + rows, total, err := events.FetchPage(ctx, scope, f, store.Page{ + Offset: (page - 1) * size, + Limit: size, + SortBy: sortBy, + Order: order, + }) + if err != nil { + return nil, err + } + return map[string]any{"hits": rowsToMaps(rows), "total": total}, nil + }) + + Add(m, &mcp.Tool{ + Name: "store.count", Title: "Count matching docs", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storeCountInput) (any, error) { + scope, err := storeScope(ctx, in.Dataset, in.DataType) + if err != nil { + return nil, err + } + scope, rest := common_models.SplitTimeBounds(scope, in.Filters) + f, err := common_models.ToStoreFilters(rest) + if err != nil { + return nil, err + } + total, err := events.Count(ctx, scope, f) + if err != nil { + return nil, err + } + return map[string]any{"total": total, "hasResults": total > 0}, nil + }) + + Add(m, &mcp.Tool{ + Name: "store.property_values", Title: "Top values for a field", + Description: "Return the top-N distinct values of a field with their document counts.", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storePropertyValuesInput) (any, error) { + if in.Field == "" { + return nil, fmt.Errorf("field is required") + } + scope, err := storeScope(ctx, in.Dataset, in.DataType) + if err != nil { + return nil, err + } + scope, rest := common_models.SplitTimeBounds(scope, in.Filters) + f, err := common_models.ToStoreFilters(rest) + if err != nil { + return nil, err + } + n := in.Top + if n <= 0 { + n = 100 + } + buckets, err := events.TopValues(ctx, scope, in.Field, f, n) + if err != nil { + return nil, err + } + out := make([]map[string]any, 0, len(buckets)) + for _, b := range buckets { + out = append(out, map[string]any{"value": b.Key, "count": b.Count}) + } + return out, nil + }) + + Add(m, &mcp.Tool{ + Name: "store.search_sql", Title: "SQL search", + Description: "Run a read-only ClickHouse SQL query. The FROM clause must reference the logs / alerts CTEs (already tenant-scoped) rather than the physical tables.", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storeSearchSQLInput) (any, error) { + if in.Query == "" { + return nil, fmt.Errorf("query is required") + } + tenant := authz.TenantIDFromContext(ctx) + if tenant == "" { + return nil, fmt.Errorf("tenant required") + } + page, size := in.Page, in.Size + if page < 1 { + page = 1 + } + size = clampPageSize(size) + + scoped := storeScopedSQL(in.Query, + events.TableName(eventstore.DatasetLogs), + events.TableName(eventstore.DatasetAlerts), + page, size) + + qctx := clickhouse.Context(ctx, clickhouse.WithSettings(clickhouse.Settings{ + "readonly": 1, + "max_execution_time": 30, + "max_result_rows": uint64(size), + "result_overflow_mode": "break", + })) + + rows, err := events.Conn.Query(qctx, scoped, tenant, tenant) + if err != nil { + return nil, err + } + defer func() { _ = rows.Close() }() + + hits := make([]map[string]any, 0) + cols := rows.Columns() + types := rows.ColumnTypes() + for rows.Next() { + ptrs := make([]any, len(cols)) + for i := range ptrs { + ptrs[i] = reflect.New(types[i].ScanType()).Interface() + } + if err := rows.Scan(ptrs...); err != nil { + return nil, err + } + doc := make(map[string]any, len(cols)) + for i, c := range cols { + doc[c] = reflect.ValueOf(ptrs[i]).Elem().Interface() + } + hits = append(hits, doc) + } + if err := rows.Err(); err != nil { + return nil, err + } + return map[string]any{"hits": hits, "total": int64(len(hits))}, nil + }) + + Add(m, &mcp.Tool{ + Name: "store.search_csv", Title: "Search and project rows to columns", + Description: "Same as store.search but returns rows projected to the requested column list — cheaper for the model to consume when only a few fields matter.", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storeSearchCSVInput) (any, error) { + if len(in.Columns) == 0 { + return nil, fmt.Errorf("columns is required") + } + scope, err := storeScope(ctx, in.Dataset, in.DataType) + if err != nil { + return nil, err + } + scope, rest := common_models.SplitTimeBounds(scope, in.Filters) + f, err := common_models.ToStoreFilters(rest) + if err != nil { + return nil, err + } + top := in.Top + if top <= 0 { + top = 500 + } + rows, _, err := events.FetchPage(ctx, scope, f, store.Page{ + Offset: 0, Limit: clampPageSize(top), + SortBy: "@timestamp", Order: store.Desc, + }) + if err != nil { + return nil, err + } + out := make([]map[string]any, 0, len(rows)) + for _, raw := range rows { + var doc map[string]any + if err := json.Unmarshal(raw, &doc); err != nil { + continue + } + projected := make(map[string]any, len(in.Columns)) + for _, c := range in.Columns { + projected[c] = doc[c] + } + out = append(out, projected) + } + return out, nil + }) +} + +// ---- store.datasets / store.dataset.fields --------------------------------- + +type storeDatasetFieldsInput struct { + Dataset string `json:"dataset"` +} + +func registerStoreIntrospection(m *Module, events *eventstore.Store) { + Add(m, &mcp.Tool{ + Name: "store.datasets", Title: "List datasets", + Description: "Return the datasets the store exposes (logs, alerts, statistics). These are the values callers pass as `dataset` on the other store.* tools.", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(_ context.Context, _ *authz.Actor, _ struct{}) (any, error) { + return []string{"logs", "alerts", "statistics"}, nil + }) + + Add(m, &mcp.Tool{ + Name: "store.dataset.fields", Title: "List fields for a dataset", + Description: "Describe the queryable fields of a dataset (name, type, filterable, searchable).", + Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, + }, Gate{Permission: "opensearch.read"}, + func(ctx context.Context, _ *authz.Actor, in storeDatasetFieldsInput) (any, error) { + scope, err := storeScope(ctx, in.Dataset, "") + if err != nil { + return nil, err + } + fields, err := events.DescribeFields(ctx, scope) + if err != nil { + return nil, err + } + out := make([]map[string]any, 0, len(fields)) + for _, f := range fields { + out = append(out, map[string]any{ + "name": f.Name, + "type": f.Type, + "filterable": f.Filterable, + "searchable": f.Searchable, + }) + } + return out, nil + }) +} + +// ---- helpers --------------------------------------------------------------- + +func rowsToMaps(rows []json.RawMessage) []map[string]any { + out := make([]map[string]any, 0, len(rows)) + for _, raw := range rows { + var doc map[string]any + if err := json.Unmarshal(raw, &doc); err != nil { + continue + } + out = append(out, doc) + } + return out +} + +// storeScopedSQL wraps a caller-supplied SELECT with logs/alerts CTEs already +// scoped to the current tenant — the same trick loganalyzer uses to keep the +// SQL surface safe without a parser. +func storeScopedSQL(query, logsTable, alertsTable string, page, size int) string { + if page < 1 { + page = 1 + } + q := trimTrailingSemicolons(query) + return fmt.Sprintf( + "WITH logs AS (SELECT * FROM %s WHERE tenantId = ?), alerts AS (SELECT * FROM %s WHERE tenantId = ?) "+ + "SELECT * FROM (%s) LIMIT %d OFFSET %d", + logsTable, alertsTable, q, size, (page-1)*size, + ) +} + +func trimTrailingSemicolons(q string) string { + for len(q) > 0 && (q[len(q)-1] == ';' || q[len(q)-1] == ' ' || q[len(q)-1] == '\n' || q[len(q)-1] == '\t') { + q = q[:len(q)-1] + } + return q +} diff --git a/backend/modules/mcp/tools_tenants.go b/backend/modules/mcp/tools_tenants.go index a2da3d193..62d4fb7f3 100644 --- a/backend/modules/mcp/tools_tenants.go +++ b/backend/modules/mcp/tools_tenants.go @@ -13,10 +13,6 @@ import ( "github.com/utmstack/utmstack/backend/pkg/authz" ) -// parseID keeps the schema readable ("id: string") and the handler tolerant. -// Every id-carrying tool below routes through it. ponytail: uuid.UUID is a -// [16]byte and infers to array-of-bytes in the SDK schema — not a shape any -// client can produce. String in, uuid out, parse errors surfaced as-is. func parseID(s string) (uuid.UUID, error) { id, err := uuid.Parse(s) if err != nil { @@ -52,9 +48,6 @@ type tenantUpdateInput struct { Name string `json:"name,omitempty"` Domain string `json:"domain,omitempty"` Status string `json:"status,omitempty" jsonschema:"ACTIVE | SUSPENDED | TERMINATED"` - // MaxAIRequests: nil = leave alone, non-nil = set. Clearing the cap needs - // the REST tri-state (absent / null / number); MCP tools can add that flag - // when someone actually needs it. ponytail: single case, YAGNI on the rest. MaxAIRequests *int `json:"max_ai_requests,omitempty"` } From f539c43708c15f941b8d5c9ba9481e9249c65b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20S=C3=A1nchez?= Date: Tue, 11 Aug 2026 13:29:14 -0600 Subject: [PATCH 2/3] fix[backend](mcp): improved parameters and tools descriptions --- backend/modules/mcp/tools_store.go | 61 +++++++++++++++--------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/backend/modules/mcp/tools_store.go b/backend/modules/mcp/tools_store.go index fc15274e4..a46879ad9 100644 --- a/backend/modules/mcp/tools_store.go +++ b/backend/modules/mcp/tools_store.go @@ -68,46 +68,46 @@ func storeScope(ctx context.Context, dataset, dataType string) (store.Scope, err type storeSearchInput struct { Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` - DataType string `json:"data_type,omitempty" jsonschema:"e.g. wineventlog, o365 — filters by the dataType column"` - Filters []common_models.FilterType `json:"filters,omitempty" jsonschema:"FilterType DSL predicates (AND'd)"` - Page int `json:"page,omitempty" jsonschema:"1-based page"` - Size int `json:"size,omitempty"` - SortBy string `json:"sort_by,omitempty"` - SortOrder string `json:"sort_order,omitempty" jsonschema:"asc | desc"` + DataType string `json:"data_type,omitempty" jsonschema:"filter by dataType (e.g. wineventlog, o365)"` + Filters []common_models.FilterType `json:"filters,omitempty" jsonschema:"AND'd FilterType predicates"` + Page int `json:"page,omitempty" jsonschema:"1-based; default 1"` + Size int `json:"size,omitempty" jsonschema:"rows per page; default 50, max 500"` + SortBy string `json:"sort_by,omitempty" jsonschema:"field name; default @timestamp"` + SortOrder string `json:"sort_order,omitempty" jsonschema:"asc | desc; default desc"` } type storeCountInput struct { - Dataset string `json:"dataset"` - DataType string `json:"data_type,omitempty"` + Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` + DataType string `json:"data_type,omitempty" jsonschema:"filter by dataType"` Filters []common_models.FilterType `json:"filters,omitempty"` } type storePropertyValuesInput struct { - Dataset string `json:"dataset"` - DataType string `json:"data_type,omitempty"` - Field string `json:"field" jsonschema:"Field name to bucket by"` + Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` + DataType string `json:"data_type,omitempty" jsonschema:"filter by dataType"` + Field string `json:"field" jsonschema:"field to group by"` Filters []common_models.FilterType `json:"filters,omitempty"` - Top int `json:"top,omitempty"` + Top int `json:"top,omitempty" jsonschema:"default 100"` } type storeSearchSQLInput struct { - Query string `json:"query" jsonschema:"SELECT-only ClickHouse SQL. The tenant scope is injected as WITH logs/alerts CTEs; do not read the physical tables directly."` - Page int `json:"page,omitempty"` - Size int `json:"size,omitempty"` + Query string `json:"query" jsonschema:"SELECT-only. Use the tenant-scoped CTEs 'logs' and 'alerts' as FROM tables."` + Page int `json:"page,omitempty" jsonschema:"1-based; default 1"` + Size int `json:"size,omitempty" jsonschema:"default 50, max 500"` } type storeSearchCSVInput struct { - Dataset string `json:"dataset"` - DataType string `json:"data_type,omitempty"` + Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` + DataType string `json:"data_type,omitempty" jsonschema:"filter by dataType"` Filters []common_models.FilterType `json:"filters,omitempty"` - Columns []string `json:"columns" jsonschema:"Field names to project"` - Top int `json:"top,omitempty"` + Columns []string `json:"columns" jsonschema:"fields to project"` + Top int `json:"top,omitempty" jsonschema:"default 500, max 500"` } func registerStoreQueries(m *Module, events *eventstore.Store) { Add(m, &mcp.Tool{ - Name: "store.search", Title: "Structured search", - Description: "Run a structured search over a store dataset (logs | alerts | statistics) using the FilterType DSL. See mcp://utmstack/docs/filter-operators.", + Name: "store.search", Title: "Search a dataset", + Description: "Return paged hits from logs | alerts | statistics matching the FilterType predicates. See mcp://utmstack/docs/filter-operators.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storeSearchInput) (any, error) { @@ -149,6 +149,7 @@ func registerStoreQueries(m *Module, events *eventstore.Store) { Add(m, &mcp.Tool{ Name: "store.count", Title: "Count matching docs", + Description: "Return the total number of docs in the dataset that match the filters.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storeCountInput) (any, error) { @@ -170,7 +171,7 @@ func registerStoreQueries(m *Module, events *eventstore.Store) { Add(m, &mcp.Tool{ Name: "store.property_values", Title: "Top values for a field", - Description: "Return the top-N distinct values of a field with their document counts.", + Description: "Top-N distinct values of a field with their counts.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storePropertyValuesInput) (any, error) { @@ -202,8 +203,8 @@ func registerStoreQueries(m *Module, events *eventstore.Store) { }) Add(m, &mcp.Tool{ - Name: "store.search_sql", Title: "SQL search", - Description: "Run a read-only ClickHouse SQL query. The FROM clause must reference the logs / alerts CTEs (already tenant-scoped) rather than the physical tables.", + Name: "store.search_sql", Title: "SQL query", + Description: "Run a SELECT-only ClickHouse query against the tenant-scoped 'logs' and 'alerts' CTEs.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storeSearchSQLInput) (any, error) { @@ -262,8 +263,8 @@ func registerStoreQueries(m *Module, events *eventstore.Store) { }) Add(m, &mcp.Tool{ - Name: "store.search_csv", Title: "Search and project rows to columns", - Description: "Same as store.search but returns rows projected to the requested column list — cheaper for the model to consume when only a few fields matter.", + Name: "store.search_csv", Title: "Search, project to columns", + Description: "Like store.search but each row is trimmed to the requested columns.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storeSearchCSVInput) (any, error) { @@ -309,13 +310,13 @@ func registerStoreQueries(m *Module, events *eventstore.Store) { // ---- store.datasets / store.dataset.fields --------------------------------- type storeDatasetFieldsInput struct { - Dataset string `json:"dataset"` + Dataset string `json:"dataset" jsonschema:"logs | alerts | statistics"` } func registerStoreIntrospection(m *Module, events *eventstore.Store) { Add(m, &mcp.Tool{ Name: "store.datasets", Title: "List datasets", - Description: "Return the datasets the store exposes (logs, alerts, statistics). These are the values callers pass as `dataset` on the other store.* tools.", + Description: "The dataset names accepted by every store.* tool: logs, alerts, statistics.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(_ context.Context, _ *authz.Actor, _ struct{}) (any, error) { @@ -323,8 +324,8 @@ func registerStoreIntrospection(m *Module, events *eventstore.Store) { }) Add(m, &mcp.Tool{ - Name: "store.dataset.fields", Title: "List fields for a dataset", - Description: "Describe the queryable fields of a dataset (name, type, filterable, searchable).", + Name: "store.dataset.fields", Title: "Dataset fields", + Description: "Queryable fields of a dataset: name, type, filterable, searchable.", Annotations: &mcp.ToolAnnotations{ReadOnlyHint: true}, }, Gate{Permission: "opensearch.read"}, func(ctx context.Context, _ *authz.Actor, in storeDatasetFieldsInput) (any, error) { From 16ae16082d892f499b9091594d1ee603e1a4176e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20S=C3=A1nchez?= Date: Tue, 11 Aug 2026 13:32:45 -0600 Subject: [PATCH 3/3] chore[](): updated go deps --- agent-manager/go.mod | 2 +- agent-manager/go.sum | 4 ++-- agent/go.mod | 3 ++- agent/go.sum | 10 ++++++++-- backend/go.mod | 18 ++++++++--------- backend/go.sum | 18 +++++++++++++++++ collectors/as400/go.mod | 3 ++- collectors/as400/go.sum | 10 ++++++++-- collectors/forwarder/go.mod | 3 ++- collectors/forwarder/go.sum | 10 ++++++++-- collectors/utmstack/go.mod | 3 ++- collectors/utmstack/go.sum | 10 ++++++++-- log-input/go.mod | 5 +++-- log-input/go.sum | 14 ++++++++++---- plugins/alerts/go.mod | 2 +- plugins/alerts/go.sum | 2 ++ plugins/aws/go.mod | 9 +++++---- plugins/aws/go.sum | 30 +++++++++++++++++------------ plugins/azure/go.mod | 11 ++++++----- plugins/azure/go.sum | 34 +++++++++++++++++++-------------- plugins/bitdefender/go.mod | 9 +++++---- plugins/bitdefender/go.sum | 30 +++++++++++++++++------------ plugins/crowdstrike/go.mod | 9 +++++---- plugins/crowdstrike/go.sum | 22 +++++++++++++-------- plugins/events/go.mod | 2 +- plugins/events/go.sum | 2 ++ plugins/feeds/go.mod | 2 +- plugins/feeds/go.sum | 2 ++ plugins/gcp/go.mod | 15 ++++++++------- plugins/gcp/go.sum | 34 +++++++++++++++++++-------------- plugins/geolocation/go.mod | 3 ++- plugins/geolocation/go.sum | 16 ++++++++++------ plugins/o365/go.mod | 9 +++++---- plugins/o365/go.sum | 30 +++++++++++++++++------------ plugins/playground/go.mod | 3 ++- plugins/playground/go.sum | 18 +++++++++++------ plugins/rule-flood-guard/go.mod | 2 +- plugins/rule-flood-guard/go.sum | 2 ++ plugins/soar/go.mod | 3 ++- plugins/soar/go.sum | 18 +++++++++++------ plugins/soc-ai/go.mod | 9 +++++---- plugins/soc-ai/go.sum | 34 +++++++++++++++++++-------------- plugins/sophos/go.mod | 9 +++++---- plugins/sophos/go.sum | 30 +++++++++++++++++------------ plugins/stats/go.mod | 2 +- plugins/stats/go.sum | 2 ++ tools/rulecheck/go.mod | 3 ++- tools/rulecheck/go.sum | 18 +++++++++++------ 48 files changed, 342 insertions(+), 197 deletions(-) diff --git a/agent-manager/go.mod b/agent-manager/go.mod index f0468c121..652c17bd7 100644 --- a/agent-manager/go.mod +++ b/agent-manager/go.mod @@ -46,7 +46,7 @@ require ( github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect - github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 + github.com/threatwinds/go-sdk v1.1.28 github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.1 // indirect golang.org/x/arch v0.27.0 // indirect diff --git a/agent-manager/go.sum b/agent-manager/go.sum index f1c619f76..8efc4e36b 100644 --- a/agent-manager/go.sum +++ b/agent-manager/go.sum @@ -97,8 +97,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 h1:O3yBAFhczbvPkcXvFJuuTLW96ssYQGB1Ns/lP4haduY= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482/go.mod h1:bJiMG3QDZdRQC6va7bg3hLTVKs9Dedzup0kHu70Cf78= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= diff --git a/agent/go.mod b/agent/go.mod index e67edcf7b..8678420f1 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -10,7 +10,7 @@ require ( github.com/google/uuid v1.6.0 github.com/kardianos/service v1.3.0 github.com/spf13/cobra v1.10.2 - github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 + github.com/threatwinds/go-sdk v1.1.28 github.com/threatwinds/logger v1.2.3 github.com/utmstack/UTMStack/shared v0.0.0 golang.org/x/sys v0.47.0 @@ -52,6 +52,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/ncruces/go-strftime v1.0.0 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/prometheus/procfs v0.19.2 // indirect github.com/quic-go/qpack v0.6.0 // indirect diff --git a/agent/go.sum b/agent/go.sum index 6d34c83d9..1fa2a3548 100644 --- a/agent/go.sum +++ b/agent/go.sum @@ -100,6 +100,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -132,8 +134,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 h1:O3yBAFhczbvPkcXvFJuuTLW96ssYQGB1Ns/lP4haduY= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482/go.mod h1:bJiMG3QDZdRQC6va7bg3hLTVKs9Dedzup0kHu70Cf78= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/threatwinds/logger v1.2.3 h1:V2SVAXzbq+/huCvIWOfqzMTH+WBHJxankyBgVG2hy1Y= github.com/threatwinds/logger v1.2.3/go.mod h1:N+bJKvF4FQNJZLfQpVYWpr6D8iEAFnAQfHYqH5iR1TI= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= @@ -142,10 +144,14 @@ github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= diff --git a/backend/go.mod b/backend/go.mod index 93c7cf4d0..4a288af56 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -26,12 +26,12 @@ require ( github.com/swaggo/files v1.0.1 github.com/swaggo/gin-swagger v1.6.1 github.com/swaggo/swag v1.16.6 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 github.com/utmstack/license-manager-sdk v0.1.0 - golang.org/x/crypto v0.54.0 + golang.org/x/crypto v0.55.0 golang.org/x/sys v0.47.0 - google.golang.org/api v0.292.0 + google.golang.org/api v0.293.0 google.golang.org/grpc v1.83.0 google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 @@ -48,7 +48,7 @@ require ( require ( cloud.google.com/go v0.123.0 // indirect - cloud.google.com/go/auth v0.22.0 // indirect + cloud.google.com/go/auth v0.23.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect cloud.google.com/go/iam v1.11.0 // indirect @@ -110,7 +110,7 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/google/jsonschema-go v0.4.3 // indirect github.com/google/s2a-go v0.1.9 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.19 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.20 // indirect github.com/googleapis/gax-go/v2 v2.23.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect @@ -160,16 +160,16 @@ require ( go.opentelemetry.io/otel/trace v1.44.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect golang.org/x/arch v0.27.0 // indirect - golang.org/x/mod v0.37.0 // indirect + golang.org/x/mod v0.38.0 // indirect golang.org/x/net v0.57.0 // indirect golang.org/x/oauth2 v0.36.0 golang.org/x/sync v0.22.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.15.0 // indirect - golang.org/x/tools v0.47.0 // indirect + golang.org/x/tools v0.48.0 // indirect google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea // indirect gorm.io/driver/mysql v1.5.6 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/backend/go.sum b/backend/go.sum index b6077ff05..616eeb6d9 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -3,6 +3,8 @@ cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= cloud.google.com/go/auth v0.22.0 h1:Xp9wAKkLoeaYb5pYZZoQGz4E9sdPxIbzS3gywZE3ciQ= cloud.google.com/go/auth v0.22.0/go.mod h1:M9o2Oz+YI2jAfxewJgb1vyI3vceHF+eohmxyzmrl+9s= +cloud.google.com/go/auth v0.23.0 h1:6Gg1CMgpgubRG7DGz5Vf1pcoNo8RfiRiRAPS4crTp54= +cloud.google.com/go/auth v0.23.0/go.mod h1:4DhBRcqvtljQN3dJ57qtqbib5ZGCYE5f2crfiiC2EM0= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= @@ -261,6 +263,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.19 h1:mMOE7DN2+p76/EdIrmAy9B9bH+yC4563vmnJ34QR8i4= github.com/googleapis/enterprise-certificate-proxy v0.3.19/go.mod h1:rSEsBUemEBZEexP2y6jPp16LUmUbjmSbcPMQizR0o4k= +github.com/googleapis/enterprise-certificate-proxy v0.3.20 h1:t/xL64VUoN69MuMRQuJETqYGOw4Z9mSRJK9epIEtwFk= +github.com/googleapis/enterprise-certificate-proxy v0.3.20/go.mod h1:L3D/IQExI6LqEjBdXcZQ1WluSgigQmSwBboFstVPM4w= github.com/googleapis/gax-go/v2 v2.23.0 h1:Tchl7qkvE7Ip3y+ztvNufYFvkfqTe7NfLTYGIdJRLuE= github.com/googleapis/gax-go/v2 v2.23.0/go.mod h1:rBQKOVJCdb8IFEzg+FCwlt1LP/xMDGuqUXhUG+XMXEg= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= @@ -412,6 +416,8 @@ github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI= github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= @@ -470,6 +476,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -477,6 +485,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= +golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= +golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -518,6 +528,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -529,12 +541,16 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= +golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= +golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/api v0.292.0 h1:Ewiwo/GTtiaPZSNAZQUcWLh8AYDEoPmIXyJfeoTSMHU= google.golang.org/api v0.292.0/go.mod h1:07kjmMnFGm2RQuCza2EZM/5N68G/fVvFb1xKjWqoFA0= +google.golang.org/api v0.293.0 h1:p9XIWOf63U4OgYx120ZwVU8+vl4XTPmWfgVPnmOAS9w= +google.golang.org/api v0.293.0/go.mod h1:6n5tjEB1gzwniZTepZ0g5u+wM7Bof5GeULCx/zh8ZE0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -546,6 +562,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7 h1: google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7/go.mod h1:KqHwBx2upmfa1XSi1WuRvC+2VGCLtooKkfmyvRbUmqA= google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea h1:kVhQEPTpKQahD5+JSBTfBB19wcgQTTjAIn45MBqnyHk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/collectors/as400/go.mod b/collectors/as400/go.mod index 9471daff1..cc388df71 100644 --- a/collectors/as400/go.mod +++ b/collectors/as400/go.mod @@ -8,7 +8,7 @@ require ( github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 github.com/kardianos/service v1.3.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 + github.com/threatwinds/go-sdk v1.1.28 github.com/threatwinds/logger v1.2.3 google.golang.org/grpc v1.83.0 google.golang.org/protobuf v1.36.12 @@ -39,6 +39,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect diff --git a/collectors/as400/go.sum b/collectors/as400/go.sum index 20b9a2e7d..fd8f9069d 100644 --- a/collectors/as400/go.sum +++ b/collectors/as400/go.sum @@ -80,6 +80,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -105,8 +107,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 h1:O3yBAFhczbvPkcXvFJuuTLW96ssYQGB1Ns/lP4haduY= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482/go.mod h1:bJiMG3QDZdRQC6va7bg3hLTVKs9Dedzup0kHu70Cf78= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/threatwinds/logger v1.2.3 h1:V2SVAXzbq+/huCvIWOfqzMTH+WBHJxankyBgVG2hy1Y= github.com/threatwinds/logger v1.2.3/go.mod h1:N+bJKvF4FQNJZLfQpVYWpr6D8iEAFnAQfHYqH5iR1TI= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= @@ -115,10 +117,14 @@ github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= diff --git a/collectors/forwarder/go.mod b/collectors/forwarder/go.mod index 8e038bd9a..a88ab2caf 100644 --- a/collectors/forwarder/go.mod +++ b/collectors/forwarder/go.mod @@ -11,7 +11,7 @@ require ( github.com/netsampler/goflow2 v1.3.7 github.com/spf13/cobra v1.10.2 github.com/tehmaze/netflow v0.0.0-20240303214733-8c13bb004068 - github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 + github.com/threatwinds/go-sdk v1.1.28 github.com/threatwinds/logger v1.2.3 github.com/utmstack/UTMStack/shared v0.0.0 google.golang.org/grpc v1.83.0 @@ -45,6 +45,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/prometheus/procfs v0.19.2 // indirect github.com/quic-go/qpack v0.6.0 // indirect diff --git a/collectors/forwarder/go.sum b/collectors/forwarder/go.sum index 9fc72162d..80ba177af 100644 --- a/collectors/forwarder/go.sum +++ b/collectors/forwarder/go.sum @@ -82,6 +82,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/netsampler/goflow2 v1.3.7 h1:XZaTy8kkMnGXpJ9hS3KbO1McyrFTpVNhVFEx9rNhMmc= github.com/netsampler/goflow2 v1.3.7/go.mod h1:4UZsVGVAs//iMCptUHn3WNScztJeUhZH7kDW2+/vDdQ= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -114,8 +116,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tehmaze/netflow v0.0.0-20240303214733-8c13bb004068 h1:1B+EAUqxEyPByCfk55tB21DtR7WF7Q2w71g7+uVkvIg= github.com/tehmaze/netflow v0.0.0-20240303214733-8c13bb004068/go.mod h1:QRP5wJOf7gGMGL2fCAfmh/5CMZQspRxT5DqghaPRrjM= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 h1:O3yBAFhczbvPkcXvFJuuTLW96ssYQGB1Ns/lP4haduY= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482/go.mod h1:bJiMG3QDZdRQC6va7bg3hLTVKs9Dedzup0kHu70Cf78= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/threatwinds/logger v1.2.3 h1:V2SVAXzbq+/huCvIWOfqzMTH+WBHJxankyBgVG2hy1Y= github.com/threatwinds/logger v1.2.3/go.mod h1:N+bJKvF4FQNJZLfQpVYWpr6D8iEAFnAQfHYqH5iR1TI= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= @@ -124,10 +126,14 @@ github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= diff --git a/collectors/utmstack/go.mod b/collectors/utmstack/go.mod index 0bc7bcd61..822f6f747 100644 --- a/collectors/utmstack/go.mod +++ b/collectors/utmstack/go.mod @@ -8,7 +8,7 @@ require ( github.com/elastic/go-sysinfo v1.15.5 github.com/google/uuid v1.6.0 github.com/kardianos/service v1.3.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 + github.com/threatwinds/go-sdk v1.1.28 github.com/threatwinds/logger v1.2.3 google.golang.org/grpc v1.83.0 google.golang.org/protobuf v1.36.12 @@ -56,6 +56,7 @@ require ( github.com/morikuni/aec v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/procfs v0.19.2 // indirect diff --git a/collectors/utmstack/go.sum b/collectors/utmstack/go.sum index 2b85100fe..3f7e15234 100644 --- a/collectors/utmstack/go.sum +++ b/collectors/utmstack/go.sum @@ -114,6 +114,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -143,8 +145,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482 h1:O3yBAFhczbvPkcXvFJuuTLW96ssYQGB1Ns/lP4haduY= -github.com/threatwinds/go-sdk v1.1.27-0.20260803192250-f951ab337482/go.mod h1:bJiMG3QDZdRQC6va7bg3hLTVKs9Dedzup0kHu70Cf78= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/threatwinds/logger v1.2.3 h1:V2SVAXzbq+/huCvIWOfqzMTH+WBHJxankyBgVG2hy1Y= github.com/threatwinds/logger v1.2.3/go.mod h1:N+bJKvF4FQNJZLfQpVYWpr6D8iEAFnAQfHYqH5iR1TI= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= @@ -153,10 +155,14 @@ github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= diff --git a/log-input/go.mod b/log-input/go.mod index f61bb925e..665241fa5 100644 --- a/log-input/go.mod +++ b/log-input/go.mod @@ -4,9 +4,9 @@ go 1.25.5 require ( github.com/google/uuid v1.6.0 - github.com/nats-io/nats.go v1.52.0 + github.com/nats-io/nats.go v1.53.1 github.com/redis/go-redis/v9 v9.22.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5 + github.com/threatwinds/go-sdk v1.1.28 google.golang.org/grpc v1.83.0 google.golang.org/protobuf v1.36.12 ) @@ -38,6 +38,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/nats-io/nkeys v0.4.15 // indirect github.com/nats-io/nuid v1.0.1 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect diff --git a/log-input/go.sum b/log-input/go.sum index 5f06dbd5b..d2f2c5684 100644 --- a/log-input/go.sum +++ b/log-input/go.sum @@ -72,12 +72,14 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/nats-io/nats.go v1.52.0 h1:n3avV4VBsCgsdwh71TppsTwtv+QdPs7ntSKM8qJLGsc= -github.com/nats-io/nats.go v1.52.0/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= +github.com/nats-io/nats.go v1.53.1 h1:Otsq3uLc/kLdjmkNHkXH0jBqwUquwdKFoe3fq6/3/Xo= +github.com/nats-io/nats.go v1.53.1/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= github.com/nats-io/nkeys v0.4.15 h1:JACV5jRVO9V856KOapQ7x+EY8Jo3qw1vJt/9Jpwzkk4= github.com/nats-io/nkeys v0.4.15/go.mod h1:CpMchTXC9fxA5zrMo4KpySxNjiDVvr8ANOSZdiNfUrs= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -102,18 +104,22 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5 h1:aIQzMGBQ1q+EUZ56ivWU5T0I8wJmGztjFYgN/CwFLMI= -github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs= github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= diff --git a/plugins/alerts/go.mod b/plugins/alerts/go.mod index d69d83ed6..23bd9f503 100644 --- a/plugins/alerts/go.mod +++ b/plugins/alerts/go.mod @@ -3,7 +3,7 @@ module github.com/utmstack/UTMStack/plugins/alerts go 1.25.5 require ( - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 google.golang.org/protobuf v1.36.12 ) diff --git a/plugins/alerts/go.sum b/plugins/alerts/go.sum index c4bf21bf9..20e3adb66 100644 --- a/plugins/alerts/go.sum +++ b/plugins/alerts/go.sum @@ -110,6 +110,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= diff --git a/plugins/aws/go.mod b/plugins/aws/go.mod index d4f8d9d05..47de0018d 100644 --- a/plugins/aws/go.mod +++ b/plugins/aws/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.19.35 github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 ) require ( @@ -17,6 +17,7 @@ require ( github.com/bytedance/gopkg v0.1.4 // indirect github.com/goccy/go-yaml v1.19.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect go.mongodb.org/mongo-driver/v2 v2.6.0 // indirect @@ -62,11 +63,11 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.1 // indirect golang.org/x/arch v0.27.0 // indirect - golang.org/x/crypto v0.54.0 + golang.org/x/crypto v0.55.0 golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/aws/go.sum b/plugins/aws/go.sum index 114fd34bb..99afdbea4 100644 --- a/plugins/aws/go.sum +++ b/plugins/aws/go.sum @@ -100,6 +100,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -122,32 +124,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -156,16 +162,16 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/azure/go.mod b/plugins/azure/go.mod index cc4e83c7b..c49b2cd53 100644 --- a/plugins/azure/go.mod +++ b/plugins/azure/go.mod @@ -3,13 +3,13 @@ module github.com/utmstack/UTMStack/plugins/azure go 1.25.5 require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0 github.com/Azure/azure-sdk-for-go/sdk/messaging/azeventhubs/v2 v2.0.2 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.8.0 github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -38,6 +38,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -51,9 +52,9 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.27.0 // indirect golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/azure/go.sum b/plugins/azure/go.sum index 166598e16..568f5b859 100644 --- a/plugins/azure/go.sum +++ b/plugins/azure/go.sum @@ -1,7 +1,7 @@ cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs= cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0 h1:aokoqcHvaGjiM3VpjKDfMMnF/8epJ+Q1HLJ7CudztqE= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.22.0/go.mod h1:/WYEx9pcM9Y+Dd/APJaNlSvVSvzl54rrMdZT5+Oi2LM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0 h1:4gRPBpN1f6xt88yi4WR26m7XaD9OlWtVT6bWPdGUIok= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0/go.mod h1:G7QVLxw1j1JVyrO1MA95S8m8HStaaleDZYTcfGgjB2o= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 h1:fhqpLE3UEXi9lPaBRpQ6XuRW0nU7hgg4zlmZZa+a9q4= @@ -98,6 +98,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -122,32 +124,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -156,16 +162,16 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/bitdefender/go.mod b/plugins/bitdefender/go.mod index 8981644fd..9562887ed 100644 --- a/plugins/bitdefender/go.mod +++ b/plugins/bitdefender/go.mod @@ -6,8 +6,8 @@ require ( github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -34,6 +34,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -47,9 +48,9 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.27.0 // indirect golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/bitdefender/go.sum b/plugins/bitdefender/go.sum index 3aef0f36c..9365bb2e5 100644 --- a/plugins/bitdefender/go.sum +++ b/plugins/bitdefender/go.sum @@ -70,6 +70,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -92,32 +94,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -126,16 +132,16 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/crowdstrike/go.mod b/plugins/crowdstrike/go.mod index 8a5d23999..8cf458bb4 100644 --- a/plugins/crowdstrike/go.mod +++ b/plugins/crowdstrike/go.mod @@ -6,8 +6,8 @@ require ( github.com/crowdstrike/gofalcon v0.22.0 github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -62,6 +62,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oklog/ulid v1.3.1 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -81,11 +82,11 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.27.0 // indirect golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sync v0.22.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/crowdstrike/go.sum b/plugins/crowdstrike/go.sum index 3c9472b0e..7d17e104f 100644 --- a/plugins/crowdstrike/go.sum +++ b/plugins/crowdstrike/go.sum @@ -127,6 +127,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -151,18 +153,22 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver v1.17.7 h1:a9w+U3Vt67eYzcfq3k/OAv284/uUUkL0uP75VE5rCOU= go.mongodb.org/mongo-driver v1.17.7/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= @@ -187,20 +193,20 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/events/go.mod b/plugins/events/go.mod index acd076849..d00ba1d37 100644 --- a/plugins/events/go.mod +++ b/plugins/events/go.mod @@ -3,7 +3,7 @@ module github.com/utmstack/UTMStack/plugins/events go 1.25.5 require ( - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 ) diff --git a/plugins/events/go.sum b/plugins/events/go.sum index 98961b414..5adaeeebf 100644 --- a/plugins/events/go.sum +++ b/plugins/events/go.sum @@ -110,6 +110,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= diff --git a/plugins/feeds/go.mod b/plugins/feeds/go.mod index e1f382f8b..b1860a991 100644 --- a/plugins/feeds/go.mod +++ b/plugins/feeds/go.mod @@ -3,7 +3,7 @@ module github.com/utmstack/UTMStack/plugins/feeds go 1.25.5 require ( - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + // github.com/threatwinds/go-sdk v1.1.28 golang.org/x/sync v0.22.0 gopkg.in/yaml.v2 v2.4.0 ) diff --git a/plugins/feeds/go.sum b/plugins/feeds/go.sum index 67e3fb318..7bd0a9ce0 100644 --- a/plugins/feeds/go.sum +++ b/plugins/feeds/go.sum @@ -110,6 +110,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= diff --git a/plugins/gcp/go.mod b/plugins/gcp/go.mod index 2ddee1161..c93fda307 100644 --- a/plugins/gcp/go.mod +++ b/plugins/gcp/go.mod @@ -6,16 +6,16 @@ require ( cloud.google.com/go/pubsub v1.51.0 github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 - google.golang.org/api v0.292.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 + google.golang.org/api v0.293.0 gopkg.in/yaml.v3 v3.0.1 ) require ( cel.dev/expr v0.25.2 // indirect cloud.google.com/go v0.123.0 // indirect - cloud.google.com/go/auth v0.22.0 // indirect + cloud.google.com/go/auth v0.23.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect cloud.google.com/go/iam v1.11.0 // indirect @@ -40,7 +40,7 @@ require ( github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/google/cel-go v0.28.1 // indirect github.com/google/s2a-go v0.1.9 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.19 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.20 // indirect github.com/googleapis/gax-go/v2 v2.23.0 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -49,6 +49,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -73,11 +74,11 @@ require ( golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sync v0.22.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.15.0 // indirect google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea // indirect google.golang.org/grpc v1.83.0 // indirect google.golang.org/protobuf v1.36.11 // indirect sigs.k8s.io/yaml v1.6.0 // indirect diff --git a/plugins/gcp/go.sum b/plugins/gcp/go.sum index f1b7a2741..47fe3a711 100644 --- a/plugins/gcp/go.sum +++ b/plugins/gcp/go.sum @@ -3,8 +3,8 @@ cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= -cloud.google.com/go/auth v0.22.0 h1:Xp9wAKkLoeaYb5pYZZoQGz4E9sdPxIbzS3gywZE3ciQ= -cloud.google.com/go/auth v0.22.0/go.mod h1:M9o2Oz+YI2jAfxewJgb1vyI3vceHF+eohmxyzmrl+9s= +cloud.google.com/go/auth v0.23.0 h1:6Gg1CMgpgubRG7DGz5Vf1pcoNo8RfiRiRAPS4crTp54= +cloud.google.com/go/auth v0.23.0/go.mod h1:4DhBRcqvtljQN3dJ57qtqbib5ZGCYE5f2crfiiC2EM0= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= @@ -109,8 +109,8 @@ github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.19 h1:mMOE7DN2+p76/EdIrmAy9B9bH+yC4563vmnJ34QR8i4= -github.com/googleapis/enterprise-certificate-proxy v0.3.19/go.mod h1:rSEsBUemEBZEexP2y6jPp16LUmUbjmSbcPMQizR0o4k= +github.com/googleapis/enterprise-certificate-proxy v0.3.20 h1:t/xL64VUoN69MuMRQuJETqYGOw4Z9mSRJK9epIEtwFk= +github.com/googleapis/enterprise-certificate-proxy v0.3.20/go.mod h1:L3D/IQExI6LqEjBdXcZQ1WluSgigQmSwBboFstVPM4w= github.com/googleapis/gax-go/v2 v2.23.0 h1:Tchl7qkvE7Ip3y+ztvNufYFvkfqTe7NfLTYGIdJRLuE= github.com/googleapis/gax-go/v2 v2.23.0/go.mod h1:rBQKOVJCdb8IFEzg+FCwlt1LP/xMDGuqUXhUG+XMXEg= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= @@ -132,6 +132,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= @@ -158,18 +160,22 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.einride.tech/aip v0.83.0 h1:TI21IdeOnLTwZEJ3BxtImIZk6bsN2Q+sd0x99SLiQ+M= go.einride.tech/aip v0.83.0/go.mod h1:E8+wdTApA70odnpFzJgsGogHozC2JCIhFJBKPr8bVig= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= @@ -202,8 +208,8 @@ golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= @@ -234,8 +240,8 @@ golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -246,8 +252,8 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/api v0.292.0 h1:Ewiwo/GTtiaPZSNAZQUcWLh8AYDEoPmIXyJfeoTSMHU= -google.golang.org/api v0.292.0/go.mod h1:07kjmMnFGm2RQuCza2EZM/5N68G/fVvFb1xKjWqoFA0= +google.golang.org/api v0.293.0 h1:p9XIWOf63U4OgYx120ZwVU8+vl4XTPmWfgVPnmOAS9w= +google.golang.org/api v0.293.0/go.mod h1:6n5tjEB1gzwniZTepZ0g5u+wM7Bof5GeULCx/zh8ZE0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -257,8 +263,8 @@ google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 h1:XzmzkmB14QhVhgn google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:L43LFes82YgSonw6iTXTxXUX1OlULt4AQtkik4ULL/I= google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7 h1:jQ9p21COKWjP3VwuFrNRiiOTMh3mPpN45R7SLrH/HUU= google.golang.org/genproto/googleapis/api v0.0.0-20260630182238-925bb5da69e7/go.mod h1:KqHwBx2upmfa1XSi1WuRvC+2VGCLtooKkfmyvRbUmqA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea h1:kVhQEPTpKQahD5+JSBTfBB19wcgQTTjAIn45MBqnyHk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260807164820-c8921c73eeea/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/plugins/geolocation/go.mod b/plugins/geolocation/go.mod index b3355b08e..db024be36 100644 --- a/plugins/geolocation/go.mod +++ b/plugins/geolocation/go.mod @@ -3,7 +3,7 @@ module github.com/utmstack/UTMStack/plugins/geolocation go 1.25.5 require ( - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 github.com/tidwall/sjson v1.2.5 ) @@ -32,6 +32,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect diff --git a/plugins/geolocation/go.sum b/plugins/geolocation/go.sum index cb04d32fa..34ab1ff5e 100644 --- a/plugins/geolocation/go.sum +++ b/plugins/geolocation/go.sum @@ -66,6 +66,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -88,8 +90,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= @@ -105,20 +107,22 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= diff --git a/plugins/o365/go.mod b/plugins/o365/go.mod index 448a5d807..3a583210c 100644 --- a/plugins/o365/go.mod +++ b/plugins/o365/go.mod @@ -5,8 +5,8 @@ go 1.25.5 require ( github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -33,6 +33,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -46,9 +47,9 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.27.0 // indirect golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/o365/go.sum b/plugins/o365/go.sum index d4058366c..80807dcce 100644 --- a/plugins/o365/go.sum +++ b/plugins/o365/go.sum @@ -68,6 +68,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -90,32 +92,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -124,16 +130,16 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/playground/go.mod b/plugins/playground/go.mod index 979385b96..c2c5f35c1 100644 --- a/plugins/playground/go.mod +++ b/plugins/playground/go.mod @@ -4,7 +4,7 @@ go 1.25.5 require ( github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 google.golang.org/protobuf v1.36.12 ) @@ -31,6 +31,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect diff --git a/plugins/playground/go.sum b/plugins/playground/go.sum index 7e941499c..da25cd9f4 100644 --- a/plugins/playground/go.sum +++ b/plugins/playground/go.sum @@ -66,6 +66,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -88,32 +90,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= diff --git a/plugins/rule-flood-guard/go.mod b/plugins/rule-flood-guard/go.mod index 0acb059bf..1a528e945 100644 --- a/plugins/rule-flood-guard/go.mod +++ b/plugins/rule-flood-guard/go.mod @@ -4,7 +4,7 @@ go 1.25.5 require ( github.com/fsnotify/fsnotify v1.10.1 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/plugins/rule-flood-guard/go.sum b/plugins/rule-flood-guard/go.sum index b4eccb00a..271d76994 100644 --- a/plugins/rule-flood-guard/go.sum +++ b/plugins/rule-flood-guard/go.sum @@ -112,6 +112,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= diff --git a/plugins/soar/go.mod b/plugins/soar/go.mod index 45a3b06d6..33aef8bdc 100644 --- a/plugins/soar/go.mod +++ b/plugins/soar/go.mod @@ -4,7 +4,7 @@ go 1.25.5 require ( github.com/fsnotify/fsnotify v1.10.1 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 @@ -34,6 +34,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect diff --git a/plugins/soar/go.sum b/plugins/soar/go.sum index 40ecf227d..a599b19ad 100644 --- a/plugins/soar/go.sum +++ b/plugins/soar/go.sum @@ -68,6 +68,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -90,32 +92,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= diff --git a/plugins/soc-ai/go.mod b/plugins/soc-ai/go.mod index fd04b9f59..1132a4efb 100644 --- a/plugins/soc-ai/go.mod +++ b/plugins/soc-ai/go.mod @@ -13,6 +13,7 @@ require ( github.com/goccy/go-yaml v1.19.2 // indirect github.com/google/jsonschema-go v0.4.3 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect github.com/segmentio/asm v1.2.1 // indirect @@ -48,18 +49,18 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 github.com/tidwall/gjson v1.19.0 // indirect github.com/tidwall/match v1.2.0 // indirect github.com/tidwall/pretty v1.2.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.1 // indirect golang.org/x/arch v0.27.0 // indirect - golang.org/x/crypto v0.54.0 + golang.org/x/crypto v0.55.0 golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/protobuf v1.36.12 diff --git a/plugins/soc-ai/go.sum b/plugins/soc-ai/go.sum index 34f94b20a..9cbd5a000 100644 --- a/plugins/soc-ai/go.sum +++ b/plugins/soc-ai/go.sum @@ -74,6 +74,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -100,34 +102,38 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -136,24 +142,24 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= -golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= -golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= +golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= +golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/sophos/go.mod b/plugins/sophos/go.mod index edf994f1b..b4025837b 100644 --- a/plugins/sophos/go.mod +++ b/plugins/sophos/go.mod @@ -5,8 +5,8 @@ go 1.25.5 require ( github.com/fsnotify/fsnotify v1.10.1 github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 - golang.org/x/crypto v0.54.0 + github.com/threatwinds/go-sdk v1.1.28 + golang.org/x/crypto v0.55.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -33,6 +33,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect @@ -46,9 +47,9 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/arch v0.27.0 // indirect golang.org/x/exp v0.0.0-20260603202125-055de637280b // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/sys v0.47.0 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/grpc v1.81.1 // indirect diff --git a/plugins/sophos/go.sum b/plugins/sophos/go.sum index d4058366c..80807dcce 100644 --- a/plugins/sophos/go.sum +++ b/plugins/sophos/go.sum @@ -68,6 +68,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -90,32 +92,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= -github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= @@ -124,16 +130,16 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.27.0 h1:0WNVcR8u9yFz8j5FvdHpgwNp3FS5U4guYdzHwEiGjoU= golang.org/x/arch v0.27.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20260603202125-055de637280b h1:v1uXiEBHo8QA0LiGCo7UgHMzHT4Kdfpl2zmtH5vaP1Q= golang.org/x/exp v0.0.0-20260603202125-055de637280b/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= diff --git a/plugins/stats/go.mod b/plugins/stats/go.mod index e95992fd7..746706149 100644 --- a/plugins/stats/go.mod +++ b/plugins/stats/go.mod @@ -4,7 +4,7 @@ go 1.25.5 require ( github.com/google/uuid v1.6.0 - github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 + github.com/threatwinds/go-sdk v1.1.28 google.golang.org/protobuf v1.36.12 ) diff --git a/plugins/stats/go.sum b/plugins/stats/go.sum index c4bf21bf9..20e3adb66 100644 --- a/plugins/stats/go.sum +++ b/plugins/stats/go.sum @@ -110,6 +110,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09 h1:5yIMEE1iQDQdyqVafjOGzPkC0rAlb1XIebm+oTQ2JwI= github.com/threatwinds/go-sdk v1.1.27-0.20260808112451-a0c815800e09/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= diff --git a/tools/rulecheck/go.mod b/tools/rulecheck/go.mod index 333eb2ee1..cc58ab8eb 100644 --- a/tools/rulecheck/go.mod +++ b/tools/rulecheck/go.mod @@ -3,7 +3,7 @@ module github.com/utmstack/UTMStack/tools/rulecheck go 1.25.5 require ( - github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5 + github.com/threatwinds/go-sdk v1.1.28 google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 ) @@ -32,6 +32,7 @@ require ( github.com/mattn/go-isatty v0.0.22 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/opensearch-project/opensearch-go/v4 v4.6.0 // indirect github.com/pelletier/go-toml/v2 v2.3.1 // indirect github.com/quic-go/qpack v0.6.0 // indirect github.com/quic-go/quic-go v0.59.1 // indirect diff --git a/tools/rulecheck/go.sum b/tools/rulecheck/go.sum index ae55a79e1..da25cd9f4 100644 --- a/tools/rulecheck/go.sum +++ b/tools/rulecheck/go.sum @@ -66,6 +66,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc= +github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ= github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -88,32 +90,36 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5 h1:aIQzMGBQ1q+EUZ56ivWU5T0I8wJmGztjFYgN/CwFLMI= -github.com/threatwinds/go-sdk v1.1.27-0.20260804160110-0dab0e82abf5/go.mod h1:Mr5r+NTTe8k28gVS7EgEorn76VPtf0vPSaUCD2bWRSU= +github.com/threatwinds/go-sdk v1.1.28 h1:dnYIAVC5jQgr7jm1VGMS7dQcl/08GVODDJp3dhV6D9U= +github.com/threatwinds/go-sdk v1.1.28/go.mod h1:aN6Oe3zJop9ngS83oZcKFXDLKWzrny2XhkYm7uoyDbQ= github.com/tidwall/gjson v1.19.0 h1:xwxm7n691Uf3u5OFjzngavjGTh55KX5q/9w9xHW88JU= github.com/tidwall/gjson v1.19.0/go.mod h1:V37/opeE/JbLUOfH0QTXiNez2l0RUjYUhpT4szFQAfc= github.com/tidwall/match v1.2.0 h1:0pt8FlkOwjN2fPt4bIl4BoNxb98gGHN2ObFEDkrfZnM= github.com/tidwall/match v1.2.0/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= +github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/wI2L/jsondiff v0.7.0 h1:1lH1G37GhBPqCfp/lrs91rf/2j3DktX6qYAKZkLuCQQ= +github.com/wI2L/jsondiff v0.7.0/go.mod h1:KAEIojdQq66oJiHhDyQez2x+sRit0vIzC9KeK0yizxM= go.mongodb.org/mongo-driver/v2 v2.6.0 h1:b9sJOYrkmt4l8bY43ZenFBcPlhYIjaOfYHLtbB/5qi8= go.mongodb.org/mongo-driver/v2 v2.6.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ=