All Downloads are FREE. Search and download functionalities are using the official Maven repository.

let.bullet-service.1.3.2.source-code.application.yaml Maven / Gradle / Ivy

####################################################################################################################
# Bullet Web-Service settings
####################################################################################################################
bullet:

  # This module checks if the backend is operational and turns off the service if the backend is not reachable. It will
  # re-enable the API if the backend is reachable after. It polls the backend with a custom query as the status check
  status:
    # Whether or not this service is enabled
    enabled: true
    # The timeout/interval in ms between pings to the backend
    tick-ms: 30000
    # The number of retries after a failed ping before the backend status is considered not ok
    retries: 10

  # The various configurations for queries supported in the service
  query:
    # The path to the config containing the various Bullet and BQL configurations
    config: 'query_defaults.yaml'
    # This controls the maximum number of Synchronous queries that can run concurrently. Any further queries submitted
    # once this limit is reached causes the API to return a 5xx. Note that this does not affect Asynchronous queries
    synchronous.max.concurrency: 500

  # This module serves the schema of the data. This is used by the UI to provide its type aware query building as well as # BQL module to provide type-awareness
  schema:
    # The fully qualified path to your schema file
    file: 'sample_fields.json'
    version: '1.0'

  # The following configure the PubSub module used by the API. This is the mechanism by the which the API (service)
  # talks to the backend. The config picks the com.yahoo.bullet.pubsub.PubSub implementation being used
  pubsub:
    # The number of subscriber instances (each creates a thread to read) reading responses from the PubSub
    subscribers: 1
    # The number of publisher publishing queries to the PubSub
    publishers: 1
    # The file containing settings required by the PubSub implementation being used
    config: 'pubsub_defaults.yaml'
    # The amount of time to sleep in ms between empty responses reads from the PubSub. Avoids busy waiting
    sleep-ms: 1
    # In-memory pubsub settings
    builtin.rest:
      # Set to true if you want to turn on the http endpoints for the in-memory pubsub
      enabled: false
      # The paths for the endpoints
      query.path: '/pubsub/query'
      result.path: '/pubsub/result'

  # This persists your queries to a com.yahoo.bullet.storage.StorageManager instance as configured. This setting points to
  # the file with settings needed by the StorageManager being used. By default, uses the NullStorageManager, which does nothing
  # Note that there is no way to disable this module but you can point it the NullStorageManager instead if you do not want storage
  storage:
    config: 'storage_defaults.yaml'

  # The following configure the STOMP endpoints for the websocket. This is currently used internally in a simple in-memory broker
  websocket:
    # The prefix of the server. It should be added before bullet.websocket.server.destination by clients to send messages to the server
    server.destination.prefix: '/server'
    # The endpoint for clients to send messages to the server. Clients send requests to this prefixed by the bullet.websocket.server.destination.prefix
    server.destination: '/request'
    # The prefix of the client. It is added before bullet.websocket.client.destination by the server to send messages to specific clients
    client.destination.prefix: '/client'
    # The endpoint for the server to send messages to clients. If the server prefixes this with the bullet.websocket.client.destination.prefix, it
    # sends it to a particular client. Otherwise, just sending messages here broadcasts to all clients
    client.destination: '/response'
    # The maximum amount of data to buffer when sending messages to a WebSocket session
    session.buffer.size.kb: 1024
    # The maximum size for an message between servers and clients
    message.size.limit.kb: 64
    # The time limit (in seconds) when sending messages to a WebSocket session. It should be positive
    message.send.time.limit.secs: 10

  # The following configures the asynchronous query result returning of the service. Use this if you want to use the
  # bullet.endpoint.async endpoint and get results sent to a place of your choice. You must configure responders below
  # of type com.yahoo.bullet.pubsub.PubSubResponder below
  async:
    # Enables Asynchronous query result publishing to responders of your choice
    enabled: false
    # The file containing settings required by the Async implementation(s) being used
    config: 'async_defaults.yaml'
    # The list of responders that extend the com.yahoo.bullet.pubsub.PubSubResponder class. Anything listed here will
    # be instantiated  and anything returning from the Bullet backend will be passed to it
    responder:
      classes:
        # This responder uses the Publisher part of a com.yahoo.bullet.pubsub.PubSub (Kafka, Pulsar, your own, ...) to send results
        - 'com.yahoo.bullet.pubsub.BulletPubSubResponder'

  # The following configure setting up the metrics collection and reporting in the service. Use this if you want to
  # collect metrics and send them somewhere in a format of your choice. By default, uses the HTTP publishing collector
  # that can publish a JSON payload to an arbitrary HTTP endpoint
  metric:
    # Enables gathering and publishing metrics from the service
    enabled: false
    # The time between reporting metrics from the various components that collect them in ms. Defaults to 60s
    publish.interval.ms: 60000
    # The file containing settings required by the MetricPublisher implementation being used. By default, contains
    # settings for the HTTPMetricEventPublisher below
    config: 'metric_defaults.yaml'

  # The following configure the names of the various renamable public endpoints of the API
  endpoint:
    validate: '/queries/validate-query'
    http: '/queries/http-query'
    sse: '/queries/sse-query'
    websocket: '/queries/ws-query'
    async: '/queries/async-query'
    replay: '/admin/replay'

####################################################################################################################
# Spring Boot settings
####################################################################################################################
# See https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html for others
# When running the embedded jar as a Java app, you can provide properties at runtime using:
# java -Dloader.path=path/to/pubsub.jar -jar bullet-service--embedded.jar --bullet.pubsub.config=path/to/pubsub_settings.yaml --server.port= etc.
# You can also provide a new properties file using --spring.config.location=path/to/new/application.yaml
####################################################################################################################

spring:
  mvc:
    # No timeout
    async.request-timeout: -1

server:
  context-path: '/api/bullet'
  port: 9901

# To configure SSL, override and change the following settings to your config
# server:
#   ssl:
#     enabled: false
#     key-store: keystore.p12
#     key-store-password: mypassword
#     keyStoreType: PKCS12
#     keyAlias: spring

# Override the value to "" to enable SSO security
security.ignored: '/**'

# To configure SSO security, override and change the following settings to your config
#security:
#  oauth2:
#    client:
#      clientId: myclientid
#      clientSecret: myclientsecret
#      accessTokenUri: https://my-access-token-uri
#      userAuthorizationUri: https://my-user-authorization-uri
#      clientAuthenticationScheme: form
#      scope: openid profile email
#    resource:
#      userInfoUri: https://my-user-info-uri

logging:
  level:
    root: WARN
    com.yahoo.bullet: INFO
    org.springframework: ERROR




© 2015 - 2025 Weber Informatics LLC | Privacy Policy