{"id":21939750,"url":"https://github.com/pbar1/gravity","last_synced_at":"2025-08-28T16:43:30.953Z","repository":{"id":115677508,"uuid":"192141068","full_name":"pbar1/gravity","owner":"pbar1","description":"Terraform dynamic state driver","archived":false,"fork":false,"pushed_at":"2019-06-16T02:34:21.000Z","size":9993,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-27T14:52:28.882Z","etag":null,"topics":["infrastructure-as-code","terraform"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pbar1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-06-16T02:12:34.000Z","updated_at":"2022-03-27T04:10:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b8d97d2-b26f-495b-aab6-a664e3af465c","html_url":"https://github.com/pbar1/gravity","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/pbar1%2Fgravity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbar1%2Fgravity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbar1%2Fgravity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pbar1%2Fgravity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pbar1","download_url":"https://codeload.github.com/pbar1/gravity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244973775,"owners_count":20541025,"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":["infrastructure-as-code","terraform"],"created_at":"2024-11-29T02:27:06.781Z","updated_at":"2025-03-22T15:12:23.823Z","avatar_url":"https://github.com/pbar1.png","language":"Go","readme":"\u003ch1 align=\"center\" style=\"border-bottom: none;\"\u003eGravity\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eTerraform dynamic state-driver\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/blackhole.png\"/\u003e\n  \u003ch5 align=\"center\"\u003eToday in history (Apr 10, 2019): the first photograph of a black hole was released (not pictured)\u003c/h5\u003e\n\u003c/p\u003e\n\n## Goal\n\nThe Terraform binary functions as a barrier that definitions must pass through\nin order to be instantiated into real infrastructure, and once this happens\nsuccessfully the state is stored remotely. This means the state of the\ninfrastructure can drift in between runs of the Terraform binary's `apply`\ncommand. In essence, we want to check the current state continuously and take\naction to pull the infrastructure back into the desired state. Thus, the name\n_Gravity_.\n\n## Features\n\n- Continuous scanning of environmental drift from desired state\n- Take action to return to desired state\n- Create short-lived clone of the infrastructure based on branch (coming soon)\n\n## Testing\n\nYou can run end-to-end tests using a local Consul cluster for both remote state and as a resource provider. `make consul-config` to start one running in a container.\n\n## TODOs\n\nTier 0\n- Support workspaces in core server logic\n- Cache results in in-memory database\n- Add a status UI that reads from cache\n\nTier 1\n- Check that git path and backend path match\n- Check that code complies to `terraform fmt`\n- Set _warn_ and _enforce_ mode\n\nTier 2\n- Prometheus metrics\n- Slack notifications\n- Terragrunt support\n- Watch git branches to spin up short-lived infrastructure\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbar1%2Fgravity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpbar1%2Fgravity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpbar1%2Fgravity/lists"}