Initial commit of Descrybe v2 without local scratch artifacts.

Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
This commit is contained in:
2026-08-09 22:47:43 +02:00
commit 8580c996c3
1285 changed files with 325780 additions and 0 deletions
@@ -0,0 +1,250 @@
{
"generated_at": "2026-08-04T00:38:05Z",
"mode": "live",
"domains": "settings,formulas,tags,woo,usage",
"resume": true,
"counts": {
"companies": 27,
"company_settings_skipped": 5,
"demo_memberships": 30,
"demo_user": 1,
"feed_tags_skipped": 1,
"field_groups_skipped": 23,
"memberships": 15,
"standard_fields_skipped": 145,
"structured_description_fields_skipped": 28,
"usage_metrics": 5,
"users": 21,
"woocommerce_configs": 0
},
"validation": {
"mode": "live",
"counts": [
{
"entity": "companies",
"mysql": 27,
"postgres": 30,
"delta": 3
},
{
"entity": "profiles",
"mysql": 21,
"postgres": 77,
"delta": 56,
"note": "profiles → memberships"
},
{
"entity": "users",
"mysql": -1,
"postgres": 25,
"delta": 0,
"note": "no password_hash imported mysql_missing"
},
{
"entity": "admin_users",
"mysql": 1,
"postgres": -1,
"delta": 0,
"note": "folded into users.is_platform_admin"
},
{
"entity": "plans",
"mysql": 5,
"postgres": 9,
"delta": 4
},
{
"entity": "company_plans",
"mysql": 5,
"postgres": 10,
"delta": 5
},
{
"entity": "credit_balances",
"mysql": 6,
"postgres": 8,
"delta": 2
},
{
"entity": "categories",
"mysql": 8278,
"postgres": 8280,
"delta": 2
},
{
"entity": "attributes",
"mysql": 95292,
"postgres": 57630,
"delta": -37662
},
{
"entity": "category_attributes",
"mysql": 74377,
"postgres": 74377,
"delta": 0
},
{
"entity": "custom_variables",
"mysql": 36,
"postgres": 37,
"delta": 1,
"note": "label/example → value"
},
{
"entity": "xml_feeds",
"mysql": 31,
"postgres": 34,
"delta": 3,
"note": "xml_feeds → input_feeds"
},
{
"entity": "raw_products",
"mysql": 126516,
"postgres": 124426,
"delta": -2090
},
{
"entity": "processed_products",
"mysql": 7219,
"postgres": 7221,
"delta": 2
},
{
"entity": "export_feeds",
"mysql": 8,
"postgres": 9,
"delta": 1
},
{
"entity": "files",
"mysql": 1,
"postgres": 3,
"delta": 2,
"note": "metadata only; blobs not copied"
}
],
"postgres_counts": {
"attributes": 57630,
"categories": 8280,
"category_attributes": 74377,
"companies": 30,
"company_plans": 10,
"credit_balances": 8,
"custom_variables": 37,
"export_feeds": 9,
"feed_mappings": 25,
"files": 3,
"input_feeds": 34,
"memberships": 77,
"plans": 9,
"processed_products": 7221,
"raw_products": 124426,
"users": 25
},
"orphans": [
{
"check": "memberships_missing_user",
"count": 0,
"pass": true
},
{
"check": "memberships_missing_company",
"count": 0,
"pass": true
},
{
"check": "categories_missing_company",
"count": 0,
"pass": true
},
{
"check": "attributes_missing_company",
"count": 0,
"pass": true
},
{
"check": "custom_variables_missing_company",
"count": 0,
"pass": true
},
{
"check": "raw_products_missing_company",
"count": 0,
"pass": true
},
{
"check": "raw_products_missing_feed",
"count": 0,
"pass": true
},
{
"check": "processed_missing_company",
"count": 0,
"pass": true
},
{
"check": "processed_missing_raw",
"count": 0,
"pass": true
},
{
"check": "processed_missing_feed",
"count": 0,
"pass": true
},
{
"check": "export_feeds_missing_company",
"count": 0,
"pass": true
},
{
"check": "export_feeds_missing_source",
"count": 0,
"pass": true
},
{
"check": "feed_mappings_missing_feed",
"count": 0,
"pass": true
},
{
"check": "files_missing_company",
"count": 0,
"pass": true
},
{
"check": "company_plans_missing_plan",
"count": 0,
"pass": true
},
{
"check": "platform_admins",
"count": 3,
"pass": true
}
],
"orphan_summary": {
"passed": 16,
"failed": 0,
"total": 16
},
"ok": true
},
"demo": {
"email": "demo@descrybe.local",
"password_set": true,
"user_id": "276d5d0e-665a-40e4-ac78-1cf27e807b10",
"primary_company": "ee246275-dec0-4446-9e83-58d0c16c258a",
"primary_company_name": "Local Demo Co",
"memberships_admin": 30,
"platform_admin": true,
"note": "Password documented in docs/portable-mysql-pg-migration.md (not written to report JSON)."
},
"notes": [
"Clerk is excluded: users mapped by email only; no Clerk API.",
"Legacy password hashes are never imported.",
"API key secrets are not migrated; use seed-demo / ensure-demo for local keys.",
"File blobs are metadata-only; resync object storage separately."
],
"elapsed_ms": 2235
}