ensure_connectors_index_exists

in lib/core/elastic_connector_actions.rb [344:463]


      def ensure_connectors_index_exists
        mappings = {
          :dynamic => false,
          :properties => {
            :api_key_id => { :type => :keyword },
            :configuration => { :type => :object },
            :custom_schedule => { :type => :object },
            :description => { :type => :text },
            :error => { :type => :keyword },
            :features => {
              :properties => {
                :filtering_advanced_config => { :type => :boolean },
                :filtering_rules => { :type => :boolean }
              }
            },
            :filtering => {
              :properties => {
                :domain => { :type => :keyword },
                :active => {
                  :properties => {
                    :rules => {
                      :properties => {
                        :id => { :type => :keyword },
                        :policy => { :type => :keyword },
                        :field => { :type => :keyword },
                        :rule => { :type => :keyword },
                        :value => { :type => :keyword },
                        :order => { :type => :short },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                      }
                    },
                    :advanced_snippet => {
                      :properties => {
                        :value => { :type => :object },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                       }
                    },
                    :validation => {
                      :properties => {
                        :state => { :type => :keyword },
                        :errors => {
                          :properties => {
                            :ids => { :type => :keyword },
                            :messages => { :type => :text }
                          }
                        }
                      }
                    }
                  }
                },
                :draft => {
                  :properties => {
                    :rules => {
                      :properties => {
                        :id => { :type => :keyword },
                        :policy => { :type => :keyword },
                        :field => { :type => :keyword },
                        :rule => { :type => :keyword },
                        :value => { :type => :keyword },
                        :order => { :type => :short },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                      }
                    },
                    :advanced_snippet => {
                      :properties => {
                        :value => { :type => :object },
                        :created_at => { :type => :date },
                        :updated_at => { :type => :date }
                      }
                    },
                    :validation => {
                      :properties => {
                        :state => { :type => :keyword },
                        :errors => {
                          :properties => {
                            :ids => { :type => :keyword },
                            :messages => { :type => :text }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            :index_name => { :type => :keyword },
            :is_native => { :type => :boolean },
            :language => { :type => :keyword },
            :last_seen => { :type => :date },
            :last_sync_error => { :type => :keyword },
            :last_sync_status => { :type => :keyword },
            :last_synced => { :type => :date },
            :last_deleted_document_count => { :type => :long },
            :last_indexed_document_count => { :type => :long },
            :name => { :type => :keyword },
            :pipeline => {
              :properties => {
                :extract_binary_content => { :type => :boolean },
                :name => { :type => :keyword },
                :reduce_whitespace => { :type => :boolean },
                :run_ml_inference => { :type => :boolean }
              }
            },
            :scheduling => {
              :properties => {
                :enabled => { :type => :boolean },
                :interval => { :type => :text }
              }
            },
            :service_type => { :type => :keyword },
            :status => { :type => :keyword },
            :sync_now => { :type => :boolean }
          }
        }
        ensure_index_exists("#{Utility::Constants::CONNECTORS_INDEX}-v1", system_index_body(:alias_name => Utility::Constants::CONNECTORS_INDEX, :mappings => mappings))
      end