{"adoption": {"forks": 630, "observed_at": "2026-08-28T04:05:04.422871+00:00", "stars": 1566}, "canonical_url": "https://ross.abutalabs.com/products/archer", "card": {"archived": false, "artifact_type": "application", "description": "基于inception的自动化SQL操作平台，支持SQL执行、LDAP认证、发邮件、OSC、SQL查询、SQL优化建议、权限管理等功能，支持docker镜像", "domain": ["databases", "self-hosted", "developer-tools", "backend"], "enriched": true, "function": ["database", "auth", "authorization", "web-framework", "monitoring", "email", "workflow-automation", "developer-tools"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jly8866/archer"], "name": "jly8866/archer", "platform": ["python", "self-hosted"], "pushed_at": "2023-07-25T21:51:06+00:00", "repo": "jly8866/archer", "stars": 1566, "tags": ["sql-audit", "mysql", "inception", "sql-review", "django", "database-operations", "slow-query-analysis", "data-masking", "ticket-workflow", "devops", "linux", "docker", "web-server"], "topics": ["sql", "inception", "mysql", "devops", "python", "django", "web"], "urls": [], "use_cases": ["submit SQL changes for automated and manual review before executing on production MySQL", "manage database query permissions down to the table level with approval workflows", "mask sensitive data in query results dynamically", "analyze and browse slow query logs from a web UI", "schedule SQL executions and roll back changes with one click", "run and monitor pt-osc schema changes online"], "what_it_is": "Archer is a self-hosted web platform for automated SQL operations on MySQL, built on Django and the Inception SQL audit engine. It provides ticket-based SQL review and execution, query permissions, dynamic data masking, slow query management, and email notifications.", "when_to_avoid": ["you use databases other than MySQL", "you need a lightweight CLI tool rather than a full web platform", "you require actively developed software with modern framework versions (it uses old Django and depends on the unmaintained Inception fork)"], "when_to_choose": ["your team needs a DBA approval workflow for MySQL schema and data changes", "you want centralized, audited SQL execution with rollback support", "you need fine-grained MySQL query permissions and data masking in a self-hosted tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/archer", "repo": "jly8866/archer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "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:05:04.422871+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.422871+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.232190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37bcde2620499dac7917d708b3ca67afcfeb4e916a607e412e963b0828f4e6a0", "fetched_at": "2026-08-28T04:05:04.422871+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jly8866/archer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3561, "days_push": 1135, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}