module SearchIngest

Overview

Class to manage pg-orm models sync with elasticsearch

Defined in:

api.cr
constants.cr
search-ingest.cr
search-ingest/client.cr
search-ingest/elastic.cr
search-ingest/schemas.cr
search-ingest/table.cr
search-ingest/table_manager.cr
search-ingest/types.cr
telemetry.cr

Constant Summary

APP_NAME = "search-ingest"
BUILD_COMMIT = {{ (env("PLACE_COMMIT")) || "DEV" }}
BUILD_TIME = {{ (system("date -u")).stringify }}
CLIENT_URI = (self.env_with_deprecation("PLACE_SEARCH_INGEST_URI", "RUBBER_SOUL_URI")) || "http://search-ingest:3000"

NOTE : ./search-ingest/client.cr implements It is included in other projects.

ES_CONN_POOL = (self.env_with_deprecation("ELASTIC_CONN_POOL", "ES_CONN_POOL")).try(&.to_i)
ES_CONN_POOL_TIMEOUT = (self.env_with_deprecation("ELASTIC_CONN_POOL_TIMEOUT", "ES_CONN_POOL_TIMEOUT")).try(&.to_f64) || 5.0
ES_DISABLE_BULK = self.boolean_string(self.env_with_deprecation("ELASTIC_DISABLE_BULK", "ES_DISABLE_BULK"))

ES config used in ./search-ingest/elastic.cr

ES_HOST = (self.env_with_deprecation("ELASTIC_HOST", "ES_HOST")) || "localhost"
ES_IDLE_POOL = (self.env_with_deprecation("ELASTIC_IDLE_POOL", "ES_IDLE_POOL")).try(&.to_i)
ES_PORT = (self.env_with_deprecation("ELASTIC_PORT", "ES_PORT")).try(&.to_i) || 9200
ES_TLS = self.boolean_string(self.env_with_deprecation("ELASTIC_TLS", "ES_TLS"))
ES_URI = (self.env_with_deprecation("ELASTIC_URI", "ES_URI")).try(&->URI.parse(String))
HOST = (self.env_with_deprecation("PLACE_SEARCH_INGEST_HOST", "RUBBER_SOUL_HOST")) || "127.0.0.1"

Server defaults in ./app.cr

Log = ::Log.for(self)
MANAGED_TABLES = [PlaceOS::Model::ApiKey, PlaceOS::Model::Authority, PlaceOS::Model::Broker, PlaceOS::Model::ControlSystem, PlaceOS::Model::DoorkeeperApplication, PlaceOS::Model::Driver, PlaceOS::Model::Edge, PlaceOS::Model::JsonSchema, PlaceOS::Model::LdapAuthentication, PlaceOS::Model::Module, PlaceOS::Model::OAuthAuthentication, PlaceOS::Model::Repository, PlaceOS::Model::SamlAuthentication, PlaceOS::Model::Settings, PlaceOS::Model::Trigger, PlaceOS::Model::TriggerInstance, PlaceOS::Model::User, PlaceOS::Model::Zone, PlaceOS::Model::AssetCategory, PlaceOS::Model::AssetType, PlaceOS::Model::Asset, PlaceOS::Model::AssetPurchaseOrder, PlaceOS::Model::Shortener, PlaceOS::Model::Playlist, PlaceOS::Model::Playlist::Item]

Tables watched by TableManager

FIXME This is not ideal. A constant array is required for macro methods

PG_DATABASE = ENV["PG_DATABASE"]? || "test"
PORT = (self.env_with_deprecation("PLACE_SEARCH_INGEST_PORT", "RUBBER_SOUL_PORT")).try(&.to_i) || 3000
VERSION = "2.11.1"

Class Method Summary

Macro Summary

Class Method Detail

def self.production? : Bool #

[View source]
def self.wait_for_elasticsearch #

[View source]

Macro Detail

macro tables(models) #

[View source]