{"adoption": {"forks": 1446, "observed_at": "2026-08-28T04:09:03.856581+00:00", "stars": 4958}, "canonical_url": "https://ross.abutalabs.com/products/flask-appbuilder", "card": {"archived": false, "artifact_type": "framework", "description": "Simple and rapid application development framework, built on top of Flask. includes detailed security, auto CRUD generation for your models, google charts and much more. Demo (login with guest/welcome) - http://flaskappbuilder.pythonanywhere.com/", "domain": ["web-development", "backend", "developer-tools", "security"], "enriched": true, "function": ["web-framework", "auth", "authorization", "orm", "api-framework", "data-visualization"], "health_score": 94, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["dpgaspar/Flask-AppBuilder"], "name": "dpgaspar/Flask-AppBuilder", "platform": ["python", "cross-platform"], "pushed_at": "2026-07-10T15:26:46+00:00", "repo": "dpgaspar/Flask-AppBuilder", "stars": 4958, "tags": ["flask", "crud-generation", "rbac", "sqlalchemy", "admin-interface", "rest-api", "ldap", "oauth", "web-server"], "topics": ["web", "flask", "crud", "sql", "python", "rest-api", "rest", "authentication", "rbac"], "urls": [], "use_cases": ["build an admin panel with CRUD for my SQLAlchemy models", "add role-based access control to a Flask app", "generate a REST API from database models", "add LDAP or OAuth login to a Flask application", "quickly scaffold an internal business tool with Flask", "auto-generate menus and views for a data app"], "what_it_is": "Flask-AppBuilder is a rapid application development framework built on top of Flask, providing automatic CRUD generation for SQLAlchemy models, role-based security, and chart widgets. It handles authentication (OAuth, LDAP, OpenID, database), permissions, menus, and REST API generation out of the box.", "when_to_avoid": ["you want a lightweight microservice with minimal framework overhead", "you need a frontend SPA framework or non-Python stack", "you prefer writing explicit custom views over generated conventions"], "when_to_choose": ["you want a batteries-included admin/CRUD layer on Flask", "you need fine-grained role-based permissions and multiple auth backends", "you're building internal tools or data apps quickly on Python/SQLAlchemy"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flask-appbuilder", "repo": "dpgaspar/Flask-AppBuilder", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "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:09:03.856581+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:03.856581+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:17:49.081971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1479fdd06b77bf552f9cd5542d06df6a75eca4f393ffd33594eb2696d5ddc07b", "fetched_at": "2026-08-28T04:09:03.856581+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dpgaspar/Flask-AppBuilder"}, {"content_hash": "c13ac066b8955c0b18557c6b183625a6a3d187210e146c8a968dbaea8189fecd", "fetched_at": "2026-08-29T08:59:08.834681+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/flask-appbuilder/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 90}, "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": 4680, "days_push": 54, "days_rel": 71, "gap_med": 25, "n_releases_24m": 18}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}