opensearch-project / terraform-provider-opensearch

https://registry.terraform.io/providers/opensearch-project/opensearch
Apache License 2.0
73 stars 55 forks source link

[BUG] Creating saved_object of type search results in dynamic introduction of [attributes] within [search] is not allowed [type=strict_dynamic_mapping_exception] #182

Closed michal-plebanski-ideals closed 2 months ago

michal-plebanski-ideals commented 3 months ago

What is the bug?

Its not possible to create a saved object of type "search'

How can one reproduce the bug?

Try creating a following saved object:

resource "opensearch_dashboard_object" "eks_saved_query" {
  body  = <<EOF
[
{
  "_id": "search:service",
  "_type": "doc",
  "_source": {
    "type": "search",
    "search": {
      "id": "02870ee0-f803-11ee-8984-7d1a6fa156ff",
      "type": "search",
      "namespaces": [
        "default"
      ],
      "updated_at": "2024-04-11T12:57:10.605Z",
      "version": "WzY3LDFd",
      "attributes": {
        "title": "Service DB Migrate Logs (6 Hours)",
        "description": "",
        "hits": 0,
        "columns": [
          "_source"
        ],
        "sort": [],
        "version": 1,
        "kibanaSavedObjectMeta": {
          "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"highlightAll\":true,\"version\":true,\"aggs\":{\"2\":{\"date_histogram\":{\"field\":\"@timestamp\",\"fixed_interval\":\"5m\",\"time_zone\":\"Europe/Warsaw\",\"min_doc_count\":1}}},\"filter\":[{\"meta\":{\"alias\":null,\"negate\":false,\"disabled\":false,\"type\":\"phrase\",\"key\":\"kubernetes.container_image\",\"params\":{\"query\":\".*service.*\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"kubernetes.container_image\":\".*service.*\"}},\"$state\":{\"store\":\"appState\"}},{\"meta\":{\"alias\":null,\"negate\":false,\"disabled\":false,\"type\":\"phrase\",\"key\":\"kubernetes.container_name\",\"params\":{\"query\":\"dbmigrate\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\"},\"query\":{\"match_phrase\":{\"kubernetes.container_name\":\"dbmigrate\"}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"
        }
      },
      "references": [
        {
          "name": "kibanaSavedObjectMeta.searchSourceJSON.index",
          "type": "index-pattern",
          "id": "0c2940f0-f801-11ee-8984-7d1a6fa156ff"
        },
        {
          "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index",
          "type": "index-pattern",
          "id": "0c2940f0-f801-11ee-8984-7d1a6fa156ff"
        },
        {
          "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index",
          "type": "index-pattern",
          "id": "0c2940f0-f801-11ee-8984-7d1a6fa156ff"
        }
      ],
      "migrationVersion": {
        "search": "7.9.3"
      }
    }
  }
}
]
EOF
}

What is the expected behavior?

It should be possible to define a saved search object using terraform. I have created this object structure by following an analogy from the documentation for the index-pattern and investigating responses to saved_objects endpoints in the opensearch dashboards.

What is your host/environment?

Terraform provider version: 2.2.1 Opensearch engine version: AWS Opensearch_2.11 Terraform: 1.7.5 Host: MacOS Sonoma 14.4.1

rblcoder commented 3 months ago

@michal-plebanski-ideals Do you see any error message when you apply the Terraform code that you have shared?

rblcoder commented 3 months ago

@michal-plebanski-ideals For the following error, please post the issue in https://forum.opensearch.org You can also try getting help from the dashboard team to create the saved object - https://github.com/opensearch-project/OpenSearch-Dashboards

mapping set to strict, dynamic introduction of [attributes] within [search] is not allowed [type=strict_dynamic_mapping_exception]

Similar error - https://forum.opensearch.org/t/error-while-reindex/14483/2 Also adding another reference - https://opensearch.org/docs/latest/clients/ruby/

pbn4 commented 3 months ago

Hi @rblcoder thank you for the answer. Just a quick question, is there a way to make an update to .kibana index with this terraform provider? If i would like to implement this attribute change in code, how can I do this?

rblcoder commented 3 months ago

@pbn4 Do you want to import the existing .kibana index into terraform?

rblcoder commented 2 months ago

@PhilippReinke would it be possible for you to share your thoughts on this issue, it is not the same but perhaps similar to the issue I was facing

PhilippReinke commented 2 months ago

Hi :) Something like

resource "opensearch_dashboard_object" "test_pattern" {
  body = <<EOF
[
  {
    "_id": "index-pattern:test_pattern",
    "_source": {
      "index-pattern": {
        "title": "security-auditlog-*",
        "timeFieldName": "@timestamp",
        "fields": "[{\"count\":0,\"name\":\"@timestamp\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_category\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_category.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_category\"}}},{\"count\":0,\"name\":\"audit_cluster_name\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_cluster_name.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_cluster_name\"}}},{\"count\":0,\"name\":\"audit_compliance_doc_version\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"audit_compliance_operation\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_compliance_operation.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_compliance_operation\"}}},{\"count\":0,\"name\":\"audit_format_version\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"audit_node_host_address\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_node_host_address.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_node_host_address\"}}},{\"count\":0,\"name\":\"audit_node_host_name\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_node_host_name.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_node_host_name\"}}},{\"count\":0,\"name\":\"audit_node_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_node_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_node_id\"}}},{\"count\":0,\"name\":\"audit_node_name\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_node_name.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_node_name\"}}},{\"count\":0,\"name\":\"audit_request_body\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_body.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_body\"}}},{\"count\":0,\"name\":\"audit_request_effective_user\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_effective_user.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_effective_user\"}}},{\"count\":0,\"name\":\"audit_request_effective_user_is_admin\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"audit_request_layer\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_layer.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_layer\"}}},{\"count\":0,\"name\":\"audit_request_origin\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_origin.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_origin\"}}},{\"count\":0,\"name\":\"audit_request_privilege\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_privilege.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_privilege\"}}},{\"count\":0,\"name\":\"audit_request_remote_address\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_request_remote_address.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_request_remote_address\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept-Encoding\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept-Encoding.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Accept-Encoding\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept-Language\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept-Language.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Accept-Language\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Accept.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Accept\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Connection\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Connection.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Connection\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Cookie\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Cookie.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Cookie\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Host\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Host.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Host\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Dest\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Dest.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Sec-Fetch-Dest\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Mode\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Mode.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Sec-Fetch-Mode\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Site\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-Site.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Sec-Fetch-Site\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-User\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-Fetch-User.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Sec-Fetch-User\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-GPC\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Sec-GPC.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Sec-GPC\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.Upgrade-Insecure-Requests\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.Upgrade-Insecure-Requests.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.Upgrade-Insecure-Requests\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.User-Agent\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.User-Agent.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.User-Agent\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua-mobile\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua-mobile.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.sec-ch-ua-mobile\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua-platform\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua-platform.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.sec-ch-ua-platform\"}}},{\"count\":0,\"name\":\"audit_rest_request_headers.sec-ch-ua.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_headers.sec-ch-ua\"}}},{\"count\":0,\"name\":\"audit_rest_request_method\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_method.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_method\"}}},{\"count\":0,\"name\":\"audit_rest_request_path\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_rest_request_path.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_rest_request_path\"}}},{\"count\":0,\"name\":\"audit_trace_doc_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_trace_doc_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_trace_doc_id\"}}},{\"count\":0,\"name\":\"audit_trace_indices\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_trace_indices.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_trace_indices\"}}},{\"count\":0,\"name\":\"audit_trace_resolved_indices\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_trace_resolved_indices.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_trace_resolved_indices\"}}},{\"count\":0,\"name\":\"audit_trace_shard_id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"audit_trace_task_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_trace_task_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_trace_task_id\"}}},{\"count\":0,\"name\":\"audit_transport_headers.X-Opaque-Id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_transport_headers.X-Opaque-Id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_transport_headers.X-Opaque-Id\"}}},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_initial_action_class_header\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_initial_action_class_header.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_transport_headers._opendistro_security_initial_action_class_header\"}}},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_origin_header\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_origin_header.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_transport_headers._opendistro_security_origin_header\"}}},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_remotecn\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_transport_headers._opendistro_security_remotecn.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_transport_headers._opendistro_security_remotecn\"}}},{\"count\":0,\"name\":\"audit_transport_request_type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"audit_transport_request_type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"audit_transport_request_type\"}}}]"
      },
      "type": "index-pattern",
      "references": []
    }
  }
]
EOF
}

resource "opensearch_dashboard_object" "search_test" {
  body  = <<EOF
[
  {
    "_id": "search:search_test",
    "_source": {
      "search": {
        "title": "[Test] Search Test",
        "description": "",
        "hits": 0,
        "columns": [
          "_source"
        ],
        "sort": [
          [
            "timestamp",
            "desc"
          ]
        ],
        "version": 1,
        "kibanaSavedObjectMeta": {
          "searchSourceJSON": "{\"highlightAll\":true,\"version\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"
        }
      },
      "type": "search",
      "references": [
        {
          "name": "kibanaSavedObjectMeta.searchSourceJSON.index",
          "type": "index-pattern",
          "id": "${split(":", opensearch_dashboard_object.test_pattern.id)[1]}"
        }
      ]
    }
  }
]
EOF
}

works for me (with the latest OpenSearch version). I came up with this example by creating a search and then checking it in Dev Tools with

GET .kibana/_doc/<put index here>

Fields like "updated_at" shouldn't be included in my opinion as they will be managed by OpenSearch.

rblcoder commented 2 months ago

@pbn4 Will you change your JSON object based on the example above and run the Terraform code?

pbn4 commented 2 months ago

It does work, thank you, the issue can be closed. :)

rblcoder commented 2 months ago

Thank you @pbn4 @PhilippReinke