Module: ElasticGraph::ProtoIngestion

Defined in:
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/indexer_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/proto_conversions.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/runtime_metadata/type.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/runtime_metadata/field.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/runtime_metadata/schema.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/identifier.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/api_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/state_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/factory_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/results_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/field_number_mappings.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/proto_ingestion_state.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_artifact_manager_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/enum_type_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/proto_documentation.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/enum_value_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/scalar_type_extension.rb,
elasticgraph-proto_ingestion/lib/elastic_graph/proto_ingestion/schema_definition/schema_elements/object_interface_and_union_extension.rb

Overview

Namespace for Protocol Buffers schema artifact generation extensions.

Defined Under Namespace

Modules: IndexerExtension, SchemaDefinition

Constant Summary collapse

PROTO_SCHEMA_FILE =

The name of the generated Protocol Buffers schema file.

"schema.proto"
PROTO_FIELD_NUMBERS_FILE =

The name of the generated proto field-number mapping file.

"proto_field_numbers.yaml"
BUILT_IN_SCALAR_PROTO_OPTIONS_BY_NAME =

Default protobuf options applied to ElasticGraph's built-in scalar types as they are constructed.

{
  "Boolean" => {type: "bool"},
  "Cursor" => {type: "string"},
  "Date" => {type: "string", field_comment: %(Must be formatted as an ISO 8601 date, e.g. "2024-11-25".)},
  "DateTime" => {type: "google.protobuf.Timestamp", import: "google/protobuf/timestamp.proto"},
  "Float" => {type: "double"},
  "ID" => {type: "string"},
  "Int" => {type: "int32"},
  "JsonSafeLong" => {type: "int64"},
  "LocalTime" => {type: "string", field_comment: %(Must be formatted as an ISO 8601 local time, e.g. "14:23:12".)},
  "LongString" => {type: "int64"},
  "String" => {type: "string"},
  "TimeZone" => {type: "string", field_comment: %(Must be an IANA time zone identifier, e.g. "America/Los_Angeles".)},
  "Untyped" => {type: "string"}
}.freeze
DEFAULT_SCALARS_BY_PROTO_TYPE =

The default ElasticGraph scalar for each protobuf type. Several built-in scalars share a protobuf type, so select its default scalar before inverting the mapping.

BUILT_IN_SCALAR_PROTO_OPTIONS_BY_NAME
.slice("Boolean", "Float", "DateTime", "Int", "LongString", "String")
.to_h { |name, options| [options.fetch(:type), name] }.freeze