{"adoption": {"forks": 215, "observed_at": "2026-08-28T04:04:54.073625+00:00", "stars": 1499}, "canonical_url": "https://ross.abutalabs.com/products/sqle", "card": {"archived": false, "artifact_type": "application", "description": "一个支持多种不同类型数据库，覆盖事前控制、事后监督、标准发布场景，帮助您建立质量规范的SQL全生命周期质量管理平台", "domain": ["databases", "developer-tools", "backend"], "enriched": true, "function": ["database", "monitoring", "analytics", "workflow-automation", "ci-cd"], "health_score": 99, "homepage": null, "language": "Go", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["actiontech/sqle"], "name": "actiontech/sqle", "platform": ["self-hosted", "go", "editor-plugin"], "pushed_at": "2026-08-26T07:32:58+00:00", "repo": "actiontech/sqle", "stars": 1499, "tags": ["sql-audit", "sql-quality", "database-ops", "sql-optimization", "mysql", "postgresql", "oracle", "sql-review", "change-management", "slow-query-analysis", "devops", "linux", "docker", "web-server"], "topics": ["mysql", "sql-audit", "sql", "audit", "mybatis", "optimize", "advisor", "suggestion", "pg", "postgresql", "oracle", "mssql", "jetbrains"], "urls": [], "use_cases": ["audit SQL before deploying to production", "find and optimize slow queries", "enforce SQL coding standards across teams", "generate rollback statements for database changes", "integrate SQL review into CI/CD pipelines", "check SQL quality from IDE or MyBatis code", "track and approve database change workflows", "analyze execution plans and index recommendations"], "what_it_is": "SQLE is a self-hosted SQL quality management platform that audits, monitors, and governs SQL across its full lifecycle, from development-time review to production change control. It supports many databases (MySQL, PostgreSQL, Oracle, SQL Server, and Chinese databases like OceanBase and DM) with 1000+ built-in audit rules, rollback generation, and CI/CD and IDE integrations.", "when_to_avoid": ["you only need a lightweight linter without a server or approval workflows", "your database is not among the supported engines", "you want a fully managed SaaS rather than self-hosted deployment"], "when_to_choose": ["your team needs automated SQL review gates before release", "you manage MySQL, PostgreSQL, Oracle, or domestic Chinese databases and want unified SQL governance", "you want slow query collection, execution plan analysis, and index advice in one platform", "you need approval workflows with DingTalk/Feishu/WeCom notifications for DB changes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sqle", "repo": "actiontech/sqle", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "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:54.073625+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:54.073625+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:01.979546+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f81f8c4b57b9401d55acd58589e51bc83551ad84980376183c2e645155698e1", "fetched_at": "2026-08-28T04:04:54.073625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/actiontech/sqle"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 91}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2095, "days_push": 7, "days_rel": 61, "gap_med": 28.0, "n_releases_24m": 23}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}