{"id":23156746,"url":"https://github.com/userver-framework/uservice-dynconf","last_synced_at":"2025-08-17T23:32:49.124Z","repository":{"id":37919083,"uuid":"477854449","full_name":"userver-framework/uservice-dynconf","owner":"userver-framework","description":"The service to control dynamic configs of the other userver-based services","archived":false,"fork":false,"pushed_at":"2024-11-19T09:10:10.000Z","size":173,"stargazers_count":31,"open_issues_count":0,"forks_count":14,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-11-19T10:22:25.967Z","etag":null,"topics":["config-service","configs","cplusplus-17","cpp","posgtresql","postgres","service","userver"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/userver-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-04T20:01:27.000Z","updated_at":"2024-11-19T09:10:14.000Z","dependencies_parsed_at":"2024-04-18T18:45:38.083Z","dependency_job_id":"a229d0cd-84d7-40dc-aa21-3f471bbae5d2","html_url":"https://github.com/userver-framework/uservice-dynconf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"userver-framework/service_template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userver-framework%2Fuservice-dynconf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userver-framework%2Fuservice-dynconf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userver-framework%2Fuservice-dynconf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userver-framework%2Fuservice-dynconf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/userver-framework","download_url":"https://codeload.github.com/userver-framework/uservice-dynconf/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230181474,"owners_count":18185938,"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":["config-service","configs","cplusplus-17","cpp","posgtresql","postgres","service","userver"],"created_at":"2024-12-17T21:14:29.347Z","updated_at":"2025-08-17T23:32:49.115Z","avatar_url":"https://github.com/userver-framework.png","language":"Python","readme":"# uservice-dynconf\n[![CI](https://github.com/userver-framework/uservice-dynconf/actions/workflows/ci.yml/badge.svg)](https://github.com/userver-framework/uservice-dynconf/actions/workflows/ci.yml)\n[![Docker build](https://github.com/userver-framework/uservice-dynconf/actions/workflows/docker.yaml/badge.svg?branch=develop)](https://github.com/userver-framework/uservice-dynconf/actions/workflows/docker.yaml)\n\nThe service to control [dynamic configs](https://userver.tech/d5/d46/md_en_2userver_2dynamic__config.html) of the other userver-based services.\n\nService using PostgreSQL version 10+\n\nThe service is ready to use, contains minimal web interface for configs administration. `make start-*` commands will start the service with a message close to:\n```\n=================================================\nStarted service at http://localhost:8083/\n=================================================\n```\nAt the provided address the web interface is available: ![web interface](https://github.com/user-attachments/assets/f4011abe-941f-4fe4-985a-dfac47643586)\n\n\n## Run uservice-dynconf without testsuite\n\n```sh\n# Clone the service\ngit clone git@github.com:userver-framework/uservice-dynconf.git\ncd uservice-dynconf\n\n# Create schemas and struct db for storage configs\npsql -f ./postgresql/schemas/uservice_dynconf.sql\n\n# Full db default value configs\npsql -f ./postgresql/data/default_configs.sql\n\n# Run build or install (optional Env PREFIX set install dir)\nmake install\n\n# Run service\nuservice-dynconf --config /etc/uservice-dynconf/config_vars.yaml\n```\n\n## HowTo configure other userver-based microservices to use uservice-dynconf\n\nIn [file `static_configs.yaml`](https://github.com/userver-framework/service_template/blob/develop/configs/static_config.yaml#L26) of the microservice add the following lines to connect and retrieve configurations from the `uservice-dynconf`:\n```yaml\n        dynamic-config-client:\n            # uservice-dynconf address\n            config-url: http://localhost:8083\n            # service name to send to uservice-dynconf\n            service-name: microservice-name\n            http-retries: 5\n            http-timeout: 20s\n        dynamic-config-client-updater:\n            config-settings: false\n            full-update-interval: 1m\n            load-only-my-values: true\n            store-enabled: true\n            update-interval: 5s\n```\n\n## HTTP API\n\nHTTP REST API of the uservice-dynconf is described in OpenAPI format in [file](https://github.com/userver-framework/uservice-dynconf/blob/develop/docs/api/api.yaml)\n\n## Makefile\n\nMakefile contains useful targets for development:\n\n* `make build-debug` - debug build of the service with all the assertions and sanitizers enabled\n* `make build-release` - release build of the service with LTO\n* `make test-debug` - does a `make build-debug` and runs all the tests on the result\n* `make test-release` - does a `make build-release` and runs all the tests on the result\n* `make start-debug` - builds the service in debug mode and starts it with web interface\n* `make start-release` - builds the service in release mode and starts it with web interface\n* `make` or `make all` - builds and runs all the tests in release and debug modes\n* `make format` - autoformat all the C++ and Python sources\n* `make clean-` - cleans the object files\n* `make dist-clean` - clean all, including the CMake cached configurations\n* `make install` - does a `make build-release` and runs install in directory set in environment `PREFIX`\n* `make install-debug` - does a `make build-debug` and runs install in directory set in environment `PREFIX`\n* `make docker-COMMAND` - run `make COMMAND` in docker environment\n* `make docker-build-debug` - debug build of the service with all the assertions and sanitizers enabled in docker environment\n* `make docker-test-debug` - does a `make build-debug` and runs all the tests on the result in docker environment\n* `make docker-start-release` - does a `make install-release` and runs service in docker environment\n* `make docker-start-debug` - does a `make install-debug` and runs service in docker environment\n* `make docker-clean-data` - stop docker containers and clean database data\n\nEdit `Makefile.local` to change the default configuration and build options.\n\n# License\n\nDistributed under the [Apache-2.0 License](https://github.com/userver-framework/userver-dynconf/blob/develop/LICENSE) with the [CLA](https://github.com/userver-framework/userver-dynconf/blob/develop/CONTRIBUTING.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserver-framework%2Fuservice-dynconf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuserver-framework%2Fuservice-dynconf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserver-framework%2Fuservice-dynconf/lists"}