Container configuration

The services that constitutes Bonsai requires probably need to be configured to function properly or to enable/ disable some features. Docker containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host’s IP on port 8080 outside the container.

Ports

Parameter

Function

8000

WebUI

8001

API

27017

Mongo db

6380

Redis

Environmental variables

Frontend

Frontend environmental variables

Env

Function

Default

API_INTERNAL_URL

Container-container URL to API

http://api:8000

API_EXTERNAL_URL

From browser URL to API

http://localhost:8001

TZ

Timezone

Etc/UTC

pydantic settings bonsai_app.config.Settings

Bonsai frontend configuration.

Show JSON schema
{
   "title": "Settings",
   "description": "Bonsai frontend configuration.",
   "type": "object",
   "properties": {
      "api_internal_url": {
         "default": "http://api:8000",
         "description": "Internal container-container URL to the Bonsai API.",
         "title": "Api Internal Url",
         "type": "string"
      },
      "api_external_url": {
         "default": "http://localhost:8001",
         "description": "External URL to the Bonsai API.",
         "title": "Api External Url",
         "type": "string"
      },
      "timezone": {
         "default": "Etc/UTC",
         "enum": [
            "Africa/Abidjan",
            "Africa/Accra",
            "Africa/Addis_Ababa",
            "Africa/Algiers",
            "Africa/Asmara",
            "Africa/Asmera",
            "Africa/Bamako",
            "Africa/Bangui",
            "Africa/Banjul",
            "Africa/Bissau",
            "Africa/Blantyre",
            "Africa/Brazzaville",
            "Africa/Bujumbura",
            "Africa/Cairo",
            "Africa/Casablanca",
            "Africa/Ceuta",
            "Africa/Conakry",
            "Africa/Dakar",
            "Africa/Dar_es_Salaam",
            "Africa/Djibouti",
            "Africa/Douala",
            "Africa/El_Aaiun",
            "Africa/Freetown",
            "Africa/Gaborone",
            "Africa/Harare",
            "Africa/Johannesburg",
            "Africa/Juba",
            "Africa/Kampala",
            "Africa/Khartoum",
            "Africa/Kigali",
            "Africa/Kinshasa",
            "Africa/Lagos",
            "Africa/Libreville",
            "Africa/Lome",
            "Africa/Luanda",
            "Africa/Lubumbashi",
            "Africa/Lusaka",
            "Africa/Malabo",
            "Africa/Maputo",
            "Africa/Maseru",
            "Africa/Mbabane",
            "Africa/Mogadishu",
            "Africa/Monrovia",
            "Africa/Nairobi",
            "Africa/Ndjamena",
            "Africa/Niamey",
            "Africa/Nouakchott",
            "Africa/Ouagadougou",
            "Africa/Porto-Novo",
            "Africa/Sao_Tome",
            "Africa/Timbuktu",
            "Africa/Tripoli",
            "Africa/Tunis",
            "Africa/Windhoek",
            "America/Adak",
            "America/Anchorage",
            "America/Anguilla",
            "America/Antigua",
            "America/Araguaina",
            "America/Argentina/Buenos_Aires",
            "America/Argentina/Catamarca",
            "America/Argentina/ComodRivadavia",
            "America/Argentina/Cordoba",
            "America/Argentina/Jujuy",
            "America/Argentina/La_Rioja",
            "America/Argentina/Mendoza",
            "America/Argentina/Rio_Gallegos",
            "America/Argentina/Salta",
            "America/Argentina/San_Juan",
            "America/Argentina/San_Luis",
            "America/Argentina/Tucuman",
            "America/Argentina/Ushuaia",
            "America/Aruba",
            "America/Asuncion",
            "America/Atikokan",
            "America/Atka",
            "America/Bahia",
            "America/Bahia_Banderas",
            "America/Barbados",
            "America/Belem",
            "America/Belize",
            "America/Blanc-Sablon",
            "America/Boa_Vista",
            "America/Bogota",
            "America/Boise",
            "America/Buenos_Aires",
            "America/Cambridge_Bay",
            "America/Campo_Grande",
            "America/Cancun",
            "America/Caracas",
            "America/Catamarca",
            "America/Cayenne",
            "America/Cayman",
            "America/Chicago",
            "America/Chihuahua",
            "America/Ciudad_Juarez",
            "America/Coral_Harbour",
            "America/Cordoba",
            "America/Costa_Rica",
            "America/Coyhaique",
            "America/Creston",
            "America/Cuiaba",
            "America/Curacao",
            "America/Danmarkshavn",
            "America/Dawson",
            "America/Dawson_Creek",
            "America/Denver",
            "America/Detroit",
            "America/Dominica",
            "America/Edmonton",
            "America/Eirunepe",
            "America/El_Salvador",
            "America/Ensenada",
            "America/Fort_Nelson",
            "America/Fort_Wayne",
            "America/Fortaleza",
            "America/Glace_Bay",
            "America/Godthab",
            "America/Goose_Bay",
            "America/Grand_Turk",
            "America/Grenada",
            "America/Guadeloupe",
            "America/Guatemala",
            "America/Guayaquil",
            "America/Guyana",
            "America/Halifax",
            "America/Havana",
            "America/Hermosillo",
            "America/Indiana/Indianapolis",
            "America/Indiana/Knox",
            "America/Indiana/Marengo",
            "America/Indiana/Petersburg",
            "America/Indiana/Tell_City",
            "America/Indiana/Vevay",
            "America/Indiana/Vincennes",
            "America/Indiana/Winamac",
            "America/Indianapolis",
            "America/Inuvik",
            "America/Iqaluit",
            "America/Jamaica",
            "America/Jujuy",
            "America/Juneau",
            "America/Kentucky/Louisville",
            "America/Kentucky/Monticello",
            "America/Knox_IN",
            "America/Kralendijk",
            "America/La_Paz",
            "America/Lima",
            "America/Los_Angeles",
            "America/Louisville",
            "America/Lower_Princes",
            "America/Maceio",
            "America/Managua",
            "America/Manaus",
            "America/Marigot",
            "America/Martinique",
            "America/Matamoros",
            "America/Mazatlan",
            "America/Mendoza",
            "America/Menominee",
            "America/Merida",
            "America/Metlakatla",
            "America/Mexico_City",
            "America/Miquelon",
            "America/Moncton",
            "America/Monterrey",
            "America/Montevideo",
            "America/Montreal",
            "America/Montserrat",
            "America/Nassau",
            "America/New_York",
            "America/Nipigon",
            "America/Nome",
            "America/Noronha",
            "America/North_Dakota/Beulah",
            "America/North_Dakota/Center",
            "America/North_Dakota/New_Salem",
            "America/Nuuk",
            "America/Ojinaga",
            "America/Panama",
            "America/Pangnirtung",
            "America/Paramaribo",
            "America/Phoenix",
            "America/Port-au-Prince",
            "America/Port_of_Spain",
            "America/Porto_Acre",
            "America/Porto_Velho",
            "America/Puerto_Rico",
            "America/Punta_Arenas",
            "America/Rainy_River",
            "America/Rankin_Inlet",
            "America/Recife",
            "America/Regina",
            "America/Resolute",
            "America/Rio_Branco",
            "America/Rosario",
            "America/Santa_Isabel",
            "America/Santarem",
            "America/Santiago",
            "America/Santo_Domingo",
            "America/Sao_Paulo",
            "America/Scoresbysund",
            "America/Shiprock",
            "America/Sitka",
            "America/St_Barthelemy",
            "America/St_Johns",
            "America/St_Kitts",
            "America/St_Lucia",
            "America/St_Thomas",
            "America/St_Vincent",
            "America/Swift_Current",
            "America/Tegucigalpa",
            "America/Thule",
            "America/Thunder_Bay",
            "America/Tijuana",
            "America/Toronto",
            "America/Tortola",
            "America/Vancouver",
            "America/Virgin",
            "America/Whitehorse",
            "America/Winnipeg",
            "America/Yakutat",
            "America/Yellowknife",
            "Antarctica/Casey",
            "Antarctica/Davis",
            "Antarctica/DumontDUrville",
            "Antarctica/Macquarie",
            "Antarctica/Mawson",
            "Antarctica/McMurdo",
            "Antarctica/Palmer",
            "Antarctica/Rothera",
            "Antarctica/South_Pole",
            "Antarctica/Syowa",
            "Antarctica/Troll",
            "Antarctica/Vostok",
            "Arctic/Longyearbyen",
            "Asia/Aden",
            "Asia/Almaty",
            "Asia/Amman",
            "Asia/Anadyr",
            "Asia/Aqtau",
            "Asia/Aqtobe",
            "Asia/Ashgabat",
            "Asia/Ashkhabad",
            "Asia/Atyrau",
            "Asia/Baghdad",
            "Asia/Bahrain",
            "Asia/Baku",
            "Asia/Bangkok",
            "Asia/Barnaul",
            "Asia/Beirut",
            "Asia/Bishkek",
            "Asia/Brunei",
            "Asia/Calcutta",
            "Asia/Chita",
            "Asia/Choibalsan",
            "Asia/Chongqing",
            "Asia/Chungking",
            "Asia/Colombo",
            "Asia/Dacca",
            "Asia/Damascus",
            "Asia/Dhaka",
            "Asia/Dili",
            "Asia/Dubai",
            "Asia/Dushanbe",
            "Asia/Famagusta",
            "Asia/Gaza",
            "Asia/Harbin",
            "Asia/Hebron",
            "Asia/Ho_Chi_Minh",
            "Asia/Hong_Kong",
            "Asia/Hovd",
            "Asia/Irkutsk",
            "Asia/Istanbul",
            "Asia/Jakarta",
            "Asia/Jayapura",
            "Asia/Jerusalem",
            "Asia/Kabul",
            "Asia/Kamchatka",
            "Asia/Karachi",
            "Asia/Kashgar",
            "Asia/Kathmandu",
            "Asia/Katmandu",
            "Asia/Khandyga",
            "Asia/Kolkata",
            "Asia/Krasnoyarsk",
            "Asia/Kuala_Lumpur",
            "Asia/Kuching",
            "Asia/Kuwait",
            "Asia/Macao",
            "Asia/Macau",
            "Asia/Magadan",
            "Asia/Makassar",
            "Asia/Manila",
            "Asia/Muscat",
            "Asia/Nicosia",
            "Asia/Novokuznetsk",
            "Asia/Novosibirsk",
            "Asia/Omsk",
            "Asia/Oral",
            "Asia/Phnom_Penh",
            "Asia/Pontianak",
            "Asia/Pyongyang",
            "Asia/Qatar",
            "Asia/Qostanay",
            "Asia/Qyzylorda",
            "Asia/Rangoon",
            "Asia/Riyadh",
            "Asia/Saigon",
            "Asia/Sakhalin",
            "Asia/Samarkand",
            "Asia/Seoul",
            "Asia/Shanghai",
            "Asia/Singapore",
            "Asia/Srednekolymsk",
            "Asia/Taipei",
            "Asia/Tashkent",
            "Asia/Tbilisi",
            "Asia/Tehran",
            "Asia/Tel_Aviv",
            "Asia/Thimbu",
            "Asia/Thimphu",
            "Asia/Tokyo",
            "Asia/Tomsk",
            "Asia/Ujung_Pandang",
            "Asia/Ulaanbaatar",
            "Asia/Ulan_Bator",
            "Asia/Urumqi",
            "Asia/Ust-Nera",
            "Asia/Vientiane",
            "Asia/Vladivostok",
            "Asia/Yakutsk",
            "Asia/Yangon",
            "Asia/Yekaterinburg",
            "Asia/Yerevan",
            "Atlantic/Azores",
            "Atlantic/Bermuda",
            "Atlantic/Canary",
            "Atlantic/Cape_Verde",
            "Atlantic/Faeroe",
            "Atlantic/Faroe",
            "Atlantic/Jan_Mayen",
            "Atlantic/Madeira",
            "Atlantic/Reykjavik",
            "Atlantic/South_Georgia",
            "Atlantic/St_Helena",
            "Atlantic/Stanley",
            "Australia/ACT",
            "Australia/Adelaide",
            "Australia/Brisbane",
            "Australia/Broken_Hill",
            "Australia/Canberra",
            "Australia/Currie",
            "Australia/Darwin",
            "Australia/Eucla",
            "Australia/Hobart",
            "Australia/LHI",
            "Australia/Lindeman",
            "Australia/Lord_Howe",
            "Australia/Melbourne",
            "Australia/NSW",
            "Australia/North",
            "Australia/Perth",
            "Australia/Queensland",
            "Australia/South",
            "Australia/Sydney",
            "Australia/Tasmania",
            "Australia/Victoria",
            "Australia/West",
            "Australia/Yancowinna",
            "Brazil/Acre",
            "Brazil/DeNoronha",
            "Brazil/East",
            "Brazil/West",
            "CET",
            "CST6CDT",
            "Canada/Atlantic",
            "Canada/Central",
            "Canada/Eastern",
            "Canada/Mountain",
            "Canada/Newfoundland",
            "Canada/Pacific",
            "Canada/Saskatchewan",
            "Canada/Yukon",
            "Chile/Continental",
            "Chile/EasterIsland",
            "Cuba",
            "EET",
            "EST",
            "EST5EDT",
            "Egypt",
            "Eire",
            "Etc/GMT",
            "Etc/GMT+0",
            "Etc/GMT+1",
            "Etc/GMT+10",
            "Etc/GMT+11",
            "Etc/GMT+12",
            "Etc/GMT+2",
            "Etc/GMT+3",
            "Etc/GMT+4",
            "Etc/GMT+5",
            "Etc/GMT+6",
            "Etc/GMT+7",
            "Etc/GMT+8",
            "Etc/GMT+9",
            "Etc/GMT-0",
            "Etc/GMT-1",
            "Etc/GMT-10",
            "Etc/GMT-11",
            "Etc/GMT-12",
            "Etc/GMT-13",
            "Etc/GMT-14",
            "Etc/GMT-2",
            "Etc/GMT-3",
            "Etc/GMT-4",
            "Etc/GMT-5",
            "Etc/GMT-6",
            "Etc/GMT-7",
            "Etc/GMT-8",
            "Etc/GMT-9",
            "Etc/GMT0",
            "Etc/Greenwich",
            "Etc/UCT",
            "Etc/UTC",
            "Etc/Universal",
            "Etc/Zulu",
            "Europe/Amsterdam",
            "Europe/Andorra",
            "Europe/Astrakhan",
            "Europe/Athens",
            "Europe/Belfast",
            "Europe/Belgrade",
            "Europe/Berlin",
            "Europe/Bratislava",
            "Europe/Brussels",
            "Europe/Bucharest",
            "Europe/Budapest",
            "Europe/Busingen",
            "Europe/Chisinau",
            "Europe/Copenhagen",
            "Europe/Dublin",
            "Europe/Gibraltar",
            "Europe/Guernsey",
            "Europe/Helsinki",
            "Europe/Isle_of_Man",
            "Europe/Istanbul",
            "Europe/Jersey",
            "Europe/Kaliningrad",
            "Europe/Kiev",
            "Europe/Kirov",
            "Europe/Kyiv",
            "Europe/Lisbon",
            "Europe/Ljubljana",
            "Europe/London",
            "Europe/Luxembourg",
            "Europe/Madrid",
            "Europe/Malta",
            "Europe/Mariehamn",
            "Europe/Minsk",
            "Europe/Monaco",
            "Europe/Moscow",
            "Europe/Nicosia",
            "Europe/Oslo",
            "Europe/Paris",
            "Europe/Podgorica",
            "Europe/Prague",
            "Europe/Riga",
            "Europe/Rome",
            "Europe/Samara",
            "Europe/San_Marino",
            "Europe/Sarajevo",
            "Europe/Saratov",
            "Europe/Simferopol",
            "Europe/Skopje",
            "Europe/Sofia",
            "Europe/Stockholm",
            "Europe/Tallinn",
            "Europe/Tirane",
            "Europe/Tiraspol",
            "Europe/Ulyanovsk",
            "Europe/Uzhgorod",
            "Europe/Vaduz",
            "Europe/Vatican",
            "Europe/Vienna",
            "Europe/Vilnius",
            "Europe/Volgograd",
            "Europe/Warsaw",
            "Europe/Zagreb",
            "Europe/Zaporozhye",
            "Europe/Zurich",
            "Factory",
            "GB",
            "GB-Eire",
            "GMT",
            "GMT+0",
            "GMT-0",
            "GMT0",
            "Greenwich",
            "HST",
            "Hongkong",
            "Iceland",
            "Indian/Antananarivo",
            "Indian/Chagos",
            "Indian/Christmas",
            "Indian/Cocos",
            "Indian/Comoro",
            "Indian/Kerguelen",
            "Indian/Mahe",
            "Indian/Maldives",
            "Indian/Mauritius",
            "Indian/Mayotte",
            "Indian/Reunion",
            "Iran",
            "Israel",
            "Jamaica",
            "Japan",
            "Kwajalein",
            "Libya",
            "MET",
            "MST",
            "MST7MDT",
            "Mexico/BajaNorte",
            "Mexico/BajaSur",
            "Mexico/General",
            "NZ",
            "NZ-CHAT",
            "Navajo",
            "PRC",
            "PST8PDT",
            "Pacific/Apia",
            "Pacific/Auckland",
            "Pacific/Bougainville",
            "Pacific/Chatham",
            "Pacific/Chuuk",
            "Pacific/Easter",
            "Pacific/Efate",
            "Pacific/Enderbury",
            "Pacific/Fakaofo",
            "Pacific/Fiji",
            "Pacific/Funafuti",
            "Pacific/Galapagos",
            "Pacific/Gambier",
            "Pacific/Guadalcanal",
            "Pacific/Guam",
            "Pacific/Honolulu",
            "Pacific/Johnston",
            "Pacific/Kanton",
            "Pacific/Kiritimati",
            "Pacific/Kosrae",
            "Pacific/Kwajalein",
            "Pacific/Majuro",
            "Pacific/Marquesas",
            "Pacific/Midway",
            "Pacific/Nauru",
            "Pacific/Niue",
            "Pacific/Norfolk",
            "Pacific/Noumea",
            "Pacific/Pago_Pago",
            "Pacific/Palau",
            "Pacific/Pitcairn",
            "Pacific/Pohnpei",
            "Pacific/Ponape",
            "Pacific/Port_Moresby",
            "Pacific/Rarotonga",
            "Pacific/Saipan",
            "Pacific/Samoa",
            "Pacific/Tahiti",
            "Pacific/Tarawa",
            "Pacific/Tongatapu",
            "Pacific/Truk",
            "Pacific/Wake",
            "Pacific/Wallis",
            "Pacific/Yap",
            "Poland",
            "Portugal",
            "ROC",
            "ROK",
            "Singapore",
            "Turkey",
            "UCT",
            "US/Alaska",
            "US/Aleutian",
            "US/Arizona",
            "US/Central",
            "US/East-Indiana",
            "US/Eastern",
            "US/Hawaii",
            "US/Indiana-Starke",
            "US/Michigan",
            "US/Mountain",
            "US/Pacific",
            "US/Samoa",
            "UTC",
            "Universal",
            "W-SU",
            "WET",
            "Zulu",
            "localtime"
         ],
         "minLength": 1,
         "title": "Timezone",
         "type": "string"
      },
      "verify_ssl": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "format": "path",
               "type": "string"
            }
         ],
         "default": true,
         "description": "If SSL should be verifed for HTTPS requests to the API. Can also provide a path to the CA bundle that should be used.",
         "title": "Verify Ssl"
      },
      "request_timeout": {
         "default": 60,
         "description": "Timeout for requests to API in seconds.",
         "title": "Request Timeout",
         "type": "integer"
      },
      "secret_key": {
         "default": "not-so-secret",
         "description": "Secret key for encrypting session.",
         "format": "binary",
         "title": "Secret Key",
         "type": "string"
      },
      "sample_view_similarity_limit": {
         "default": 10,
         "description": "Limit number of samples in sample view dendrogram.",
         "title": "Sample View Similarity Limit",
         "type": "integer"
      },
      "sample_view_similarity_threshold": {
         "default": 0.9,
         "description": "Minimum similarity score for samples in the samples view dendrogram.",
         "title": "Sample View Similarity Threshold",
         "type": "number"
      },
      "sample_view_typing_method": {
         "$ref": "#/$defs/TypingMethod",
         "default": "minhash",
         "description": "Typing method used for clustering samples in sample view dendrogram."
      },
      "sample_view_cluster_method": {
         "$ref": "#/$defs/ClusterMethod",
         "default": "single",
         "description": "Clustering method used for dendrogram in sample view."
      },
      "testing": {
         "default": false,
         "description": "Enable test mode to facilitate easier testing and development.",
         "title": "Testing",
         "type": "boolean"
      }
   },
   "$defs": {
      "ClusterMethod": {
         "description": "Index of methods for hierarchical clustering of samples.",
         "enum": [
            "single",
            "complete",
            "average",
            "neighbor_joining"
         ],
         "title": "ClusterMethod",
         "type": "string"
      },
      "TypingMethod": {
         "description": "Supported typing methods.",
         "enum": [
            "mlst",
            "cgmlst",
            "minhash"
         ],
         "title": "TypingMethod",
         "type": "string"
      }
   },
   "additionalProperties": false
}

Config:
  • use_enum_values: bool = True

Fields:
field api_external_url: str = 'http://localhost:8001'

External URL to the Bonsai API.

field api_internal_url: str = 'http://api:8000'

Internal container-container URL to the Bonsai API.

field request_timeout: int = 60

Timeout for requests to API in seconds.

field sample_view_cluster_method: ClusterMethod = ClusterMethod.SINGLE

Clustering method used for dendrogram in sample view.

field sample_view_similarity_limit: int = 10

Limit number of samples in sample view dendrogram.

field sample_view_similarity_threshold: float = 0.9

Minimum similarity score for samples in the samples view dendrogram.

field sample_view_typing_method: TypingMethod = TypingMethod.MINHASH

Typing method used for clustering samples in sample view dendrogram.

field secret_key: bytes = b'not-so-secret'

Secret key for encrypting session.

field testing: bool = False

Enable test mode to facilitate easier testing and development.

field tz: TimeZoneName = 'Etc/UTC' (alias 'timezone')
field verify_ssl: bool | Path = True

If SSL should be verifed for HTTPS requests to the API. Can also provide a path to the CA bundle that should be used.

API service

Here are the general configuration options for the API service. See the documentation on login systems for information on how to configure LDAP based authentication.

API environmental variables

Env

Function

Default

ALLOWED_ORIGINS

Configure allowed origins as commma separated list.

DATABASE_NAME

Database name

bonsai

DB_HOST

Hostname of mongodb

mongodb

DB_PORT

Mongodb port

27017

REDIS_HOST

Hostname of redis server

redis

REDIS_PORT

Port of redis server

6379

REFERENCE_GENOMES_DIR

Path to directory with reference genomes

/tmp/reference_genomes

ANNOTATIONS_DIR

Path to directory where genome annotation is stored

/tmp/annotations

SECRET_KEY

Authentication token secret key

ACCESS_TOKEN_EXPIRE_MINUTES

Authentication token expiration time.

180

pydantic settings bonsai_api.config.Settings

API configuration.

Show JSON schema
{
   "title": "Settings",
   "description": "API configuration.",
   "type": "object",
   "properties": {
      "allowed_origins": {
         "default": [],
         "items": {
            "type": "string"
         },
         "title": "Allowed Origins",
         "type": "array"
      },
      "database_name": {
         "default": "bonsai",
         "title": "Database Name",
         "type": "string"
      },
      "db_host": {
         "default": "mongodb",
         "title": "Db Host",
         "type": "string"
      },
      "db_port": {
         "default": "27017",
         "title": "Db Port",
         "type": "string"
      },
      "max_connections": {
         "default": 10,
         "title": "Max Connections",
         "type": "integer"
      },
      "min_connections": {
         "default": 10,
         "title": "Min Connections",
         "type": "integer"
      },
      "redis_host": {
         "default": "redis",
         "title": "Redis Host",
         "type": "string"
      },
      "redis_port": {
         "default": "6379",
         "title": "Redis Port",
         "type": "string"
      },
      "reference_genomes_dir": {
         "default": "/tmp/reference_genomes",
         "title": "Reference Genomes Dir",
         "type": "string"
      },
      "annotations_dir": {
         "default": "/tmp/annotations",
         "title": "Annotations Dir",
         "type": "string"
      },
      "secret_key": {
         "default": "not-so-secret",
         "title": "Secret Key",
         "type": "string"
      },
      "access_token_expire_minutes": {
         "default": 180,
         "title": "Access Token Expire Minutes",
         "type": "integer"
      },
      "api_authentication": {
         "default": true,
         "title": "Api Authentication",
         "type": "boolean"
      },
      "smtp": {
         "anyOf": [
            {
               "$ref": "#/$defs/SmtpConfig"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "email": {
         "$ref": "#/$defs/EmailConfig",
         "default": {
            "subject_prefix": "[ Bonsai ]",
            "sender": "do-not-reply@bonsai.app",
            "sender_name": "Bonsai"
         }
      },
      "ldap_search_attr": {
         "default": "mail",
         "title": "Ldap Search Attr",
         "type": "string"
      },
      "ldap_search_filter": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Search Filter"
      },
      "ldap_base_dn": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Base Dn"
      },
      "ldap_host": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Host"
      },
      "ldap_port": {
         "default": 1389,
         "title": "Ldap Port",
         "type": "integer"
      },
      "ldap_bind_dn": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Bind Dn"
      },
      "ldap_secret": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Secret"
      },
      "ldap_connection_timeout": {
         "default": 10,
         "title": "Ldap Connection Timeout",
         "type": "integer"
      },
      "ldap_read_only": {
         "default": false,
         "title": "Ldap Read Only",
         "type": "boolean"
      },
      "ldap_valid_names": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Valid Names"
      },
      "ldap_private_key_password": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Private Key Password"
      },
      "ldap_raise_exceptions": {
         "default": false,
         "title": "Ldap Raise Exceptions",
         "type": "boolean"
      },
      "ldap_user_login_attr": {
         "default": "mail",
         "title": "Ldap User Login Attr",
         "type": "string"
      },
      "force_attribute_value_as_list": {
         "default": false,
         "title": "Force Attribute Value As List",
         "type": "boolean"
      },
      "ldap_use_ssl": {
         "default": false,
         "title": "Ldap Use Ssl",
         "type": "boolean"
      },
      "ldap_use_tls": {
         "default": true,
         "title": "Ldap Use Tls",
         "type": "boolean"
      },
      "ldap_tls_version": {
         "default": 3,
         "title": "Ldap Tls Version",
         "type": "integer"
      },
      "ldap_require_cert": {
         "default": 2,
         "title": "Ldap Require Cert",
         "type": "integer"
      },
      "ldap_client_private_key": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Client Private Key"
      },
      "ldap_client_cert": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Client Cert"
      },
      "ldap_ca_certs_file": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Ca Certs File"
      },
      "ldap_ca_certs_path": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": "/usr/lib/ssl/certs",
         "title": "Ldap Ca Certs Path"
      },
      "ldap_ca_certs_data": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ldap Ca Certs Data"
      },
      "lims_export_config": {
         "anyOf": [
            {
               "format": "file-path",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Path to custom LIMS exporter YAML configuration.If omitted, the application will fall back the packaged default.",
         "examples": [
            "/etc/bonsai/lims.yaml"
         ],
         "title": "Lims Export Config"
      }
   },
   "$defs": {
      "EmailConfig": {
         "additionalProperties": false,
         "properties": {
            "subject_prefix": {
               "default": "[ Bonsai ]",
               "title": "Subject Prefix",
               "type": "string"
            },
            "sender": {
               "default": "do-not-reply@bonsai.app",
               "title": "Sender",
               "type": "string"
            },
            "sender_name": {
               "default": "Bonsai",
               "title": "Sender Name",
               "type": "string"
            }
         },
         "title": "EmailConfig",
         "type": "object"
      },
      "SmtpConfig": {
         "additionalProperties": false,
         "description": "SMTP server configuration.",
         "properties": {
            "host": {
               "title": "Host",
               "type": "string"
            },
            "port": {
               "default": 25,
               "title": "Port",
               "type": "integer"
            },
            "timeout": {
               "default": 60,
               "description": "Conection timeout in seconds.",
               "title": "Timeout",
               "type": "integer"
            },
            "use_tls": {
               "default": false,
               "title": "Use Tls",
               "type": "boolean"
            },
            "use_ssl": {
               "default": false,
               "title": "Use Ssl",
               "type": "boolean"
            }
         },
         "required": [
            "host"
         ],
         "title": "SmtpConfig",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • env_file_encoding: str = utf-8

  • env_nested_delimiter: str = __

Fields:
field access_token_expire_minutes: int = 180
field allowed_origins: list[str] = []
field annotations_dir: str = '/tmp/annotations'
field api_authentication: bool = True
field database_name: str = 'bonsai'
field db_host: str = 'mongodb'
field db_port: str = '27017'
field email: EmailConfig = EmailConfig(subject_prefix='[ Bonsai ]', sender='do-not-reply@bonsai.app', sender_name='Bonsai')
field force_attribute_value_as_list: bool = False
field ldap_base_dn: str | None = None
field ldap_bind_dn: str | None = None
field ldap_ca_certs_data: str | None = None
field ldap_ca_certs_file: str | None = None
field ldap_ca_certs_path: str | None = '/usr/lib/ssl/certs'
field ldap_client_cert: str | None = None
field ldap_client_private_key: str | None = None
field ldap_connection_timeout: int = 10
field ldap_host: str | None = None
field ldap_port: int = 1389
field ldap_private_key_password: str | None = None
field ldap_raise_exceptions: bool = False
field ldap_read_only: bool = False
field ldap_require_cert: int = VerifyMode.CERT_REQUIRED
field ldap_search_attr: str = 'mail'
field ldap_search_filter: str | None = None
field ldap_secret: str | None = None
field ldap_tls_version: int = _SSLMethod.PROTOCOL_TLSv1
field ldap_use_ssl: bool = False
field ldap_use_tls: bool = True
field ldap_user_login_attr: str = 'mail'
field ldap_valid_names: str | None = None
field lims_export_config: Path | None = None

Path to custom LIMS exporter YAML configuration.If omitted, the application will fall back the packaged default.

Constraints:
  • func = <function _validate_yaml_file at 0x798d06cfd6c0>

field max_connections: int = 10
field min_connections: int = 10
field redis_host: str = 'redis'
field redis_port: str = '6379'
field reference_genomes_dir: str = '/tmp/reference_genomes'
field secret_key: str = 'not-so-secret'
field smtp: SmtpConfig | None = None
property mongodb_uri: str | None

Create mongodb connection string.

property use_ldap_auth: bool

Return True if LDAP authentication is enabled.

Returns:

Return True if LDAP authentication is enabled

Return type:

bool

Minhash service

Minhash service environmental variables

Env

Function

Default

SIGNATURE_KMER_SIZE

Kmer size used to build signature files.

31

GENOME_SIGNATURE_DIR

Path to directory where signatures are kept.

/data/signature_db

REDIS_HOST

Redis server hostname

redis

REDIS_PORT

Redis server port

6379

Allele clustering service

Allele cluster service environmental variables

Env

Function

Default

REDIS_HOST

Redis server hostname

redis

REDIS_PORT

Redis server port

6379

Volume mappings

Mouting directories and files from the host file system to the container is used to make assetes, such as reference genomes or configurations, available to the software. It can also be used to make data persistant accros updates to the container which is usefull for databases.

Please ensure that the mounted asset directory match the path specified in the service configuration.

Note

Please ensure that the container have permission to read mounted files and directories.

API service volumes

The API can serve reference genome sequences and annotation files to the integrated IGV browser. These could be stored on the host file system and mounted to the docker container.

API service volume mounts.

Volume

Function

/tmp/reference_genomes

Reference genomes for IGV.

/tmp/annotations

IGV annotation files.

Minhash service volumes

The genome signatures sent to the minhash service container and written to disk. The directory should be mounted to the host file system for the data to be persistant. For more information see data persistance.

Minhash service volume mounts.

Volume

Function

/data/signature_db

Directory for genome signatures.