{"id":18792181,"url":"https://github.com/johto/allas","last_synced_at":"2025-07-24T21:10:29.105Z","repository":{"id":26806013,"uuid":"30264491","full_name":"johto/allas","owner":"johto","description":"LISTEN / NOTIFY connection pooler for PostgreSQL","archived":false,"fork":false,"pushed_at":"2023-12-01T13:34:38.000Z","size":299,"stargazers_count":45,"open_issues_count":6,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-20T06:26:55.064Z","etag":null,"topics":["connection-pooler","listen","notifications","notify","postgresql"],"latest_commit_sha":null,"homepage":"","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/johto.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}},"created_at":"2015-02-03T21:04:15.000Z","updated_at":"2024-06-07T13:45:35.000Z","dependencies_parsed_at":"2024-06-20T05:44:05.708Z","dependency_job_id":"022e09d9-5965-4396-a0a5-0ebdf97b563f","html_url":"https://github.com/johto/allas","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johto%2Fallas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johto%2Fallas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johto%2Fallas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johto%2Fallas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johto","download_url":"https://codeload.github.com/johto/allas/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223589451,"owners_count":17169972,"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","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":["connection-pooler","listen","notifications","notify","postgresql"],"created_at":"2024-11-07T21:18:44.036Z","updated_at":"2024-11-07T21:18:44.748Z","avatar_url":"https://github.com/johto.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"allas\n=====\n\nIntroduction\n------------\n\n_allas_ is a connection pooler for [PostgreSQL](http://www.postgresql.org)\nwhich only supports LISTEN / NOTIFY.  The idea is to allow the application to\nuse e.g. pgbouncer in transaction pooling mode while only receiving\nnotifications through _allas_.  _allas_ only uses a single PostgreSQL\nconnection and takes care of LISTENing and UNLISTENing appropriately on that\nconnection to make sure all of its clients get the set of notifications they're\ninterested in.\n\nHow to build\n------------\n\nClone the repository, and run \"go build\" in the cloned directory.  This should\nproduce a binary called \"allas\".\n\nConfiguration\n-------------\n\nThe configuration file uses a JSON format and is organized into sections.  The\ntop level structure is a JSON object, with the following keys (\"sections\"):\n\n###### listen\n\n`listen` specifies how `allas` listens to new connections.  It has three possible options:\n\n  1. **port** (integer) specifies the port to listen on.\n  2. **host** (string) specifies the address to listen on.  The asterisk\n  (`\"*\"`) can be used to listen on all TCP interfaces, or an absolute path can\n  be used to listen on a UNIX domain socket.\n  3. **keepalive** (boolean) specifies whether TCP keepalives should be enabled or not.\n\n###### connect\n\n`connect` is a [pq](http://godoc.org/github.com/lib/pq) connection string.  It\nsupports many of libpq's options.\n\n###### startup\\_parameters\n\n`startup_parameters` is a JSON object specifying the list of \"startup\nparameters\" (such as the server's version number) to send to each client when\nthey connect.\n\n###### prometheus\n\n`prometheus` is a JSON object with the following keys:\n\n  1. **listen** (object) specifies how `allas` listens to connections from the\n  Prometheus scraping process.  The keys are the same as used by the main\n  `listen` section, documented above.  The port 9226 has been allocated in the\n  [Prometheus wiki](https://github.com/prometheus/prometheus/wiki/Default-port-allocations)\n  for allas's use.\n\n###### databases\n\n`databases` is an array of JSON objects with the following keys:\n\n  1. **name** (string) specifies the name of the database.\n  2. **auth** (object) is described in the section `Database\n  authentication`, below.\n\n#### Database authentication\n\nThe `auth` key of a database configuration section is a JSON object with a\ncombination of the following keys:\n\n  1. **method** (string) is the authentication method used.  There are only two\n  values values: \"trust\" and \"md5\".  Both match their respective counterpart in\n  PostgreSQL HBA configuration.\n  2. **user** (string) is the user name the user has to pass to match the\n  authentication method.\n  3. **password** (string) is a clear-text copy of the password the client\n  should use for authentication.\n\nConfiguration example\n---------------------\n\nHere's an example configuration file:\n\n```\n{\n    \"listen\": {\n        \"port\": 6433,\n        \"host\": \"localhost\"\n    },\n    \"connect\": \"host=localhost port=5432 sslmode=disable\",\n    \"startup_parameters\": {\n        \"server_version\": \"9.1.24\",\n        \"client_encoding\": \"UTF8\"\n    },\n    \"prometheus\": {\n        \"listen\": {\n            \"port\": 9226,\n            \"host\": \"*\"\n        }\n    },\n    \"databases\": [\n        {\n            \"name\": \"allas\",\n            \"auth\": {\n                \"method\": \"md5\",\n                \"user\": \"allas\",\n                \"password\": \"s3cret\"\n            }\n        }\n    ]\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohto%2Fallas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohto%2Fallas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohto%2Fallas/lists"}