{"id":15568536,"url":"https://github.com/cetanu/sovereign","last_synced_at":"2026-03-05T22:04:50.196Z","repository":{"id":39761482,"uuid":"208954074","full_name":"cetanu/sovereign","owner":"cetanu","description":"JSON control-plane for Lyft's Envoy proxy","archived":false,"fork":false,"pushed_at":"2026-01-21T23:33:33.000Z","size":3480,"stargazers_count":20,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-22T12:49:45.112Z","etag":null,"topics":["control-plane","envoy","envoy-proxy","fastapi","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cetanu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-17T03:47:13.000Z","updated_at":"2026-01-21T23:33:50.000Z","dependencies_parsed_at":"2023-12-13T01:28:17.373Z","dependency_job_id":"6cdaf43a-a064-4446-bf5b-b76e099fd4f6","html_url":"https://github.com/cetanu/sovereign","commit_stats":{"total_commits":754,"total_committers":16,"mean_commits":47.125,"dds":0.4708222811671088,"last_synced_commit":"2bffd939edae7d2f970fd1dcce6dd2f7617f2bc4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cetanu/sovereign","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cetanu%2Fsovereign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cetanu%2Fsovereign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cetanu%2Fsovereign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cetanu%2Fsovereign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cetanu","download_url":"https://codeload.github.com/cetanu/sovereign/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cetanu%2Fsovereign/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30152002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T21:15:50.531Z","status":"ssl_error","status_checked_at":"2026-03-05T21:15:11.173Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["control-plane","envoy","envoy-proxy","fastapi","python"],"created_at":"2024-10-02T17:16:53.132Z","updated_at":"2026-03-05T22:04:50.174Z","avatar_url":"https://github.com/cetanu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"sovereign\n=========\n\n\nMission statement\n-----------------\nThis project implements a JSON control-plane based on the [envoy](https://envoyproxy.io) [data-plane-api](https://github.com/envoyproxy/data-plane-api)\n\nThe purpose of `sovereign` is to supply downstream envoy proxies with dynamic configuration.\n\n\nMechanism of Operation\n----------------------\nSovereign allows you to define templates that represent each resource type\nprovided by Envoy. For example, clusters, routes, listeners, secrets,\nextension_configs, etc.\n\nIn order to enrich the templates with data, Sovereign has ways of polling data\nout-of-band which it then includes as variables that can be accessed within the\ntemplates.\n\nThis allows Sovereign to provide configuration to Envoy that changes over time\ndepending on the data sources, without needing to redeploy the control-plane.\n\nSovereign provides some built-in ways of polling data (such as over HTTP, or\non-disk) but also exposes extension points, allowing you to write your own\nplugins in Python.\n\n\nSupport\n------------\n[Submit new issues here](https://bitbucket.org/atlassian/sovereign/issues/new)\n\nIf you're unable to submit an issue on Bitbucket, send an email to [vsyrakis@atlassian.com](mailto:vsyrakis@atlassian.com)\n\n\nRelease\n------------\nSee [RELEASE.md]\n\n\nRoadmap\n------------\n* Performance improvements\n* Data persistence\n* Push API (versus polling)\n* Client for Sovereign\n* gRPC\n\n\nRequirements\n------------\n* Python 3.8+\n\n\nInstallation\n------------\n```\npip install sovereign\n```\n\nDocumentation\n-------------\n[Read the docs here!](https://developer.atlassian.com/platform/sovereign/)\n\n\n\nLocal development\n=================\n\n\nRequirements\n------------\n* uv\n* Docker\n* Docker-compose\n\n\nInstalling dependencies for dev\n-------------------------------\nDependencies and creation of virtualenv is handled by uv\n```\nuv sync\nuv venv activate\nuv run \u003ccommand\u003e\n```\n\nRunning locally\n---------------\nRunning the test env\n```\nmake run\n```\n    \nRunning the test env daemonized\n```\nmake run-daemon\n```\n\nPylint\n```\nmake lint\n```\n\nUnit tests\n```\nmake unit\n```\n\nAcceptance tests\n```\nmake run-daemon acceptance\n```\n\n\nContributors\n============\nPull requests, issues and comments welcome. For pull requests:\n\n* Add tests for new features and bug fixes\n* Follow the existing style\n* Separate unrelated changes into multiple pull requests\n\nSee the existing issues for things to start contributing.\n\nFor bigger changes, make sure you start a discussion first by creating\nan issue and explaining the intended change.\n\nAtlassian requires contributors to sign a Contributor License Agreement,\nknown as a CLA. This serves as a record stating that the contributor is\nentitled to contribute the code/documentation/translation to the project\nand is willing to have it used in distributions and derivative works\n(or is willing to transfer ownership).\n\nPrior to accepting your contributions we ask that you please follow the appropriate\nlink below to digitally sign the CLA. The Corporate CLA is for those who are\ncontributing as a member of an organization and the individual CLA is for\nthose contributing as an individual.\n\n* [CLA for corporate contributors](https://na2.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=e1c17c66-ca4d-4aab-a953-2c231af4a20b)\n* [CLA for individuals](https://na2.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=3f94fbdc-2fbe-46ac-b14c-5d152700ae5d)\n\n\nLicense\n========\nCopyright (c) 2018 Atlassian and others.\nApache 2.0 licensed, see [LICENSE.txt](LICENSE.txt) file.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcetanu%2Fsovereign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcetanu%2Fsovereign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcetanu%2Fsovereign/lists"}