{"id":31648936,"url":"https://github.com/gigapi/gigapi-config","last_synced_at":"2025-10-07T07:03:30.179Z","repository":{"id":293278049,"uuid":"983517037","full_name":"gigapi/gigapi-config","owner":"gigapi","description":"Configuration for gigapi modules","archived":false,"fork":false,"pushed_at":"2025-07-23T15:17:41.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-01T00:31:07.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gigapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-14T13:53:37.000Z","updated_at":"2025-07-23T15:17:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8a7c00e-1c78-4206-9481-ab8d6905236e","html_url":"https://github.com/gigapi/gigapi-config","commit_stats":null,"previous_names":["gigapi/gigapi-config"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/gigapi/gigapi-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gigapi","download_url":"https://codeload.github.com/gigapi/gigapi-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278734416,"owners_count":26036404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-07T07:01:56.218Z","updated_at":"2025-10-07T07:03:30.166Z","avatar_url":"https://github.com/gigapi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://github.com/user-attachments/assets/5b0a4a37-ecab-4ca6-b955-1a2bbccad0b4\" /\u003e\n\n### \u003cimg src=\"https://github.com/user-attachments/assets/74a1fa93-5e7e-476d-93cb-be565eca4a59\" height=25 /\u003e GigAPI Config\n\nThis repository provides the configuration options for Gigapi modules. Below is a detailed breakdown of all the available configuration options and their usage.\n\n## Configuration Parameters\n\n## Configuration Parameters\n\n| Key                        | Type    | Default      | Description                                                                                      |\n|----------------------------|---------|--------------|--------------------------------------------------------------------------------------------------|\n| `gigapi.root`              | String  | `\"\"`         | Root folder for all the data files.                                                              |\n| `gigapi.merge_timeout_s`   | Integer | `10`         | Base timeout between merges (in seconds).                                                        |\n| `gigapi.save_timeout_s`    | Float   | `1`          | Timeout before saving the new data to disk (in seconds).                                         |\n| `gigapi.no_merges`         | Boolean | `false`      | Disable merging functionality.                                                                   |\n| `gigapi.ui`                | Boolean | `true`       | Enable UI for querier.                                                                           |\n| `gigapi.mode`              | String  | `aio`        | Execution mode (`readonly`, `writeonly`, `compaction`, `aio`).                                   |\n| `http.port`                | Integer | `7971`       | Port to listen on for the HTTP server.                                                           |\n| `http.host`                | String  | `0.0.0.0`    | Host to bind to (0.0.0.0 for all interfaces).                                                    |\n| `http.basic_auth.username` | String  | `\"\"`         | Basic authentication username.                                                                   |\n| `http.basic_auth.password` | String  | `\"\"`         | Basic authentication password.                                                                   |\n| `flightsql.port`           | Integer | `8082`       | Port to run the FlightSQL server.                                                                |\n| `flightsql.enable`         | Boolean | `true`       | Enable FlightSQL server.                                                                         |\n| `loglevel`                 | String  | `info`       | Log level (`debug`, `info`, `warn`, `error`, `fatal`).                                           |\n| `metadata.type`            | String  | `json`       | Type of metadata storage (json or redis).                                                        |\n| `metadata.url`             | String  | `\"\"`         | Redis URL for metadata storage (if type is redis). Example: `redis://user:pass@localhost:6379/0` |\n\n## Configuration Methods\n\n### Environment Variables\n\nYou 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:\n\n- `GIGAPI_ROOT`\n- `GIGAPI_MERGE_TIMEOUT_S`\n- `BASIC_AUTH_USERNAME`\n- `HTTP_PORT`\n\n### Configuration File\n\nYou can also provide a configuration file in any format supported by [Viper](https://github.com/spf13/viper) (e.g., JSON, YAML, TOML). Use the `InitConfig` function to specify the configuration file path.\n\n### Example Configuration (YAML)\nBelow is an example configuration file in YAML format:\n\n```YAML\ngigapi:\n  root: \"/data\"\n  merge_timeout_s: 15\n  save_timeout_s: 2.5\n  no_merges: true\n  ui: true\n  mode: \"aio\"\n\nhttp:\n  port: 8080\n  host: \"127.0.0.1\"\n  basic_auth:\n    username: \"admin\"\n    password: \"securepassword\"\n\nflightsql:\n  port: 9090\n  enable: true\n\nloglevel: \"debug\"\n```\n\n#### Initialization and Default Handling\nThe `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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigapi%2Fgigapi-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgigapi%2Fgigapi-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigapi%2Fgigapi-config/lists"}