Skip to content

gigapi/gigapi-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GigAPI Config

This repository provides the configuration options for Gigapi modules. Below is a detailed breakdown of all the available configuration options and their usage.

Configuration Parameters

Configuration Parameters

Key Type Default Description
gigapi.root String "" Root folder for all the data files.
gigapi.merge_timeout_s Integer 10 Base timeout between merges (in seconds).
gigapi.save_timeout_s Float 1 Timeout before saving the new data to disk (in seconds).
gigapi.no_merges Boolean false Disable merging functionality.
gigapi.ui Boolean true Enable UI for querier.
gigapi.mode String aio Execution mode (readonly, writeonly, compaction, aio).
http.port Integer 7971 Port to listen on for the HTTP server.
http.host String 0.0.0.0 Host to bind to (0.0.0.0 for all interfaces).
http.basic_auth.username String "" Basic authentication username.
http.basic_auth.password String "" Basic authentication password.
flightsql.port Integer 8082 Port to run the FlightSQL server.
flightsql.enable Boolean true Enable FlightSQL server.
loglevel String info Log level (debug, info, warn, error, fatal).
metadata.type String json Type of metadata storage (json or redis).
metadata.url String "" Redis URL for metadata storage (if type is redis). Example: redis://user:pass@localhost:6379/0

Configuration Methods

Environment Variables

You can configure the application using environment variables. Environment variable names are derived from the configuration keys by replacing dots (.) with underscores (_) and using uppercase letters. For example:

  • GIGAPI_ROOT
  • GIGAPI_MERGE_TIMEOUT_S
  • BASIC_AUTH_USERNAME
  • HTTP_PORT

Configuration File

You can also provide a configuration file in any format supported by Viper (e.g., JSON, YAML, TOML). Use the InitConfig function to specify the configuration file path.

Example Configuration (YAML)

Below is an example configuration file in YAML format:

gigapi:
  root: "/data"
  merge_timeout_s: 15
  save_timeout_s: 2.5
  no_merges: true
  ui: true
  mode: "aio"

http:
  port: 8080
  host: "127.0.0.1"
  basic_auth:
    username: "admin"
    password: "securepassword"

flightsql:
  port: 9090
  enable: true

loglevel: "debug"

Initialization and Default Handling

The InitConfig function initializes the configuration by either reading a file or using environment variables. If no explicit values are provided, defaults are automatically applied via the setDefaults() function.

About

Configuration for gigapi modules

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages