{"adoption": {"forks": 425, "observed_at": "2026-08-28T04:04:09.839052+00:00", "stars": 1259}, "canonical_url": "https://ross.abutalabs.com/products/heketi", "card": {"archived": true, "artifact_type": "service", "description": "RESTful based volume management framework for GlusterFS", "domain": ["infrastructure-as-code", "cloud-computing", "self-hosted"], "enriched": true, "function": ["api-framework", "http-server", "deployment"], "health_score": 10, "homepage": null, "language": "Go", "license": "NOASSERTION", "license_family": "other", "maturity": "abandoned", "member_repos": ["heketi/heketi"], "name": "heketi/heketi", "platform": ["go", "self-hosted"], "pushed_at": "2023-07-06T18:37:01+00:00", "repo": "heketi/heketi", "stars": 1259, "tags": ["glusterfs", "volume-management", "rest-api", "storage-provisioning", "openshift", "unmaintained", "storage", "containers", "linux", "kubernetes", "docker"], "topics": ["heketi", "glusterfs", "glusterfs-volumes", "bricks", "glusterfs-clusters", "kubernetes", "openshift", "golang", "storage", "rest", "negroni", "boltdb"], "urls": [], "use_cases": ["dynamically provision glusterfs volumes from kubernetes", "manage glusterfs volume lifecycle via a rest api", "automate brick placement across failure domains", "provide persistent storage for openshift clusters", "manage multiple glusterfs clusters from one control plane"], "what_it_is": "Heketi is a RESTful volume management framework for GlusterFS that automates the lifecycle of GlusterFS volumes, including brick placement across failure domains. It enables dynamic provisioning of GlusterFS storage from platforms like Kubernetes, OpenShift, and OpenStack Manila.", "when_to_avoid": ["starting a new project - the repository is archived and unmaintained", "you need actively supported dynamic storage provisioning on modern Kubernetes (use CSI drivers instead)"], "when_to_choose": ["you already run GlusterFS and need API-driven volume provisioning on a legacy platform", "you maintain a fork or an environment that still depends on Heketi"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/heketi", "repo": "heketi/heketi", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.839052+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:05:30.244374+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0486f75b8a76461c6b18105c2888913253538c678dd29d1d7b551924032b2c2", "fetched_at": "2026-08-28T04:04:09.839052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heketi/heketi"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4097, "days_push": 1154, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}