{ "agent": "03/20", "source": [ "docs/plan-permissions/01-feature-keys.json", "docs/plan-permissions/06-defaults-matrix.json", "docs/plan-permissions/03-permission-contract.md", "apps/web/src/lib/components/Nav.svelte", "apps/web/src/lib/components/AdminNav.svelte", "docs/migrate-from-descrybe-new.md", "docs/demo-user.md" ], "assumptions": [ "legacy_user / standard_user are product-cohort roles derived from plan name patterns (and/or plans.cohort), not company membership admin|member", "A1 company/plan example maps to legacy profile (including Local Demo Co when it is the renamed A1 tenant)", "effective(feature) = role_allows AND plan_allows AND global gates", "standard_user matrix is a ceiling (all registry keys true); Free/Starter denials still apply via 06-defaults-matrix", "support_staff has no dedicated DB flag yet — design-only until schema lands", "Platform /admin/* is orthogonal to dashboard feature_keys (is_platform_admin / staff)" ], "legacy_nav_allowlist": [ { "label": "Dashboard", "route": "/dashboard", "feature": "dashboard.overview" }, { "label": "Products", "route": "/products", "feature": "catalog.products" }, { "label": "Feeds", "route": "/feeds", "feature": "feeds.list" }, { "label": "Export Feeds", "route": "/export-feeds", "feature": "feeds.export_feeds" }, { "label": "Categories", "route": "/categories", "feature": "catalog.categories" }, { "label": "Attributes", "route": "/attributes", "feature": "catalog.attributes" }, { "label": "Standard Fields", "route": "/standard-fields", "feature": "catalog.standard_fields" }, { "label": "Usage & Billing", "route": "/billing", "feature": "billing.overview" }, { "label": "Settings", "route": "/settings", "feature": "settings.profile" } ], "legacy_nav_excluded": [ "processing.monitor", "stores.hub", "stores.woocommerce", "stores.shopify", "marketing.campaigns", "marketing.content_calendar", "marketing.brand_kit", "marketing.seo", "marketing.reviews", "integrations.ai", "integrations.email", "support.center", "catalog.structured_descriptions", "catalog.vector_categories" ], "plan_name_patterns": [ { "profile": "legacy", "match": "exact", "patterns": ["legacy"] }, { "profile": "legacy", "match": "regex", "patterns": ["(?i)^a1(\\b|[\\s_-])", "(?i)a1\\s*slovenija"], "examples": ["A1", "A1 Slovenija", "A1-Legacy"] }, { "profile": "legacy", "match": "company_example", "patterns": ["A1 Slovenija"], "legacy_company_id": "97e1a309-3d23-4aa2-b518-8e8d7afdfec7", "note": "Demo may rename display to Local Demo Co; cohort remains legacy when flagged or plan name matches" }, { "profile": "standard", "match": "exact", "patterns": ["free", "starter", "growth", "business", "enterprise"], "ladder_ref": "docs/plan-permissions/06-defaults-matrix.json" }, { "profile": "custom", "match": "is_custom_true_non_legacy", "patterns": [], "note": "is_custom=true and name does not match legacy patterns → all-on custom defaults" } ], "roles": { "legacy_user": { "description": "End-user on legacy-pattern company/plan; nav = legacy allow-list only", "plan_profile": "legacy", "platform_admin": false, "company_membership": ["admin", "member"], "features": { "shell.navigation": true, "shell.command_palette": true, "shell.company_switcher": true, "shell.support_notifications": false, "shell.tutorial": true, "shell.account_menu": true, "shell.billing_recovery_banner": true, "dashboard.overview": true, "dashboard.stats": true, "dashboard.quick_links": true, "dashboard.recent_jobs": true, "dashboard.news_feed": true, "dashboard.activation_checklist": true, "dashboard.migrated_checklist": true, "dashboard.etl_gaps": true, "dashboard.store_reconnect": false, "dashboard.upgrade_banners": true, "catalog.products": true, "catalog.products.tab_processed": true, "catalog.products.tab_needs_review": true, "catalog.products.tab_error": true, "catalog.products.tab_processing": true, "catalog.products.tab_unprocessed": true, "catalog.products.process_categories": true, "catalog.products.process_attributes": true, "catalog.products.process_ai_titles": true, "catalog.products.process_ai_descriptions": true, "catalog.products.enrichment_review": true, "catalog.products.export_selection": true, "catalog.products.upgrade_prompt": true, "catalog.categories": true, "catalog.categories.title_formula": true, "catalog.categories.description_formula": true, "catalog.attributes": true, "catalog.attributes.bulk_import": true, "catalog.standard_fields": true, "catalog.standard_fields.groups": true, "catalog.structured_descriptions": false, "catalog.vector_categories": false, "feeds.list": true, "feeds.add_url": true, "feeds.add_csv": true, "feeds.sync": true, "feeds.mapping": true, "feeds.mapping.select_item": true, "feeds.mapping.map_fields": true, "feeds.export_feeds": true, "feeds.export_feeds.create": true, "feeds.export_feeds.generate": true, "feeds.uploads": true, "stores.hub": false, "stores.woocommerce": false, "stores.woocommerce.connection": false, "stores.woocommerce.categories": false, "stores.woocommerce.attributes": false, "stores.woocommerce.orders": false, "stores.woocommerce.reviews": false, "stores.woocommerce.settings": false, "stores.shopify": false, "stores.shopify.connection": false, "stores.shopify.orders": false, "stores.shopify.settings": false, "processing.monitor": false, "marketing.campaigns": false, "marketing.campaigns.create": false, "marketing.campaigns.generate_ai": false, "marketing.campaigns.send": false, "marketing.content_calendar": false, "marketing.brand_kit": false, "marketing.brand_ai_apply": false, "marketing.seo": false, "marketing.seo.template_fill": false, "marketing.seo.ai_rewrite": false, "marketing.reviews": false, "integrations.ai": false, "integrations.ai.byok": false, "integrations.email": false, "integrations.email.test": false, "integrations.email.blast": false, "billing.overview": true, "billing.customer_portal": true, "billing.quick_upgrade": true, "billing.plans_compare": true, "billing.checkout": true, "settings.profile": true, "settings.company": true, "settings.alerts": true, "settings.api_keys": true, "settings.team": true, "settings.team_invite": true, "support.center": false, "support.ticket_create": false, "support.ticket_thread": false, "capability.sku_cap": true, "capability.ai_credits": true, "capability.ai_processing": true, "capability.eprel": true, "capability.normalize_specs_fill": true, "capability.campaign_ai": false, "capability.email_live_send": false, "capability.brand_ai_apply": false, "capability.seo_ai_rewrite": false, "capability.feed_source_limit": true, "capability.export_feed_limit": true, "capability.storage_limit": true, "capability.api_access": true, "capability.byok": false } }, "standard_user": { "description": "End-user on public ladder; features further restricted by Free→Enterprise plan matrix", "plan_profile": "standard", "platform_admin": false, "company_membership": ["admin", "member"], "plan_matrix_ref": "docs/plan-permissions/06-defaults-matrix.json", "features": { "shell.navigation": true, "shell.command_palette": true, "shell.company_switcher": true, "shell.support_notifications": true, "shell.tutorial": true, "shell.account_menu": true, "shell.billing_recovery_banner": true, "dashboard.overview": true, "dashboard.stats": true, "dashboard.quick_links": true, "dashboard.recent_jobs": true, "dashboard.news_feed": true, "dashboard.activation_checklist": true, "dashboard.migrated_checklist": true, "dashboard.etl_gaps": true, "dashboard.store_reconnect": true, "dashboard.upgrade_banners": true, "catalog.products": true, "catalog.products.tab_processed": true, "catalog.products.tab_needs_review": true, "catalog.products.tab_error": true, "catalog.products.tab_processing": true, "catalog.products.tab_unprocessed": true, "catalog.products.process_categories": true, "catalog.products.process_attributes": true, "catalog.products.process_ai_titles": true, "catalog.products.process_ai_descriptions": true, "catalog.products.enrichment_review": true, "catalog.products.export_selection": true, "catalog.products.upgrade_prompt": true, "catalog.categories": true, "catalog.categories.title_formula": true, "catalog.categories.description_formula": true, "catalog.attributes": true, "catalog.attributes.bulk_import": true, "catalog.standard_fields": true, "catalog.standard_fields.groups": true, "catalog.structured_descriptions": true, "catalog.vector_categories": true, "feeds.list": true, "feeds.add_url": true, "feeds.add_csv": true, "feeds.sync": true, "feeds.mapping": true, "feeds.mapping.select_item": true, "feeds.mapping.map_fields": true, "feeds.export_feeds": true, "feeds.export_feeds.create": true, "feeds.export_feeds.generate": true, "feeds.uploads": true, "stores.hub": true, "stores.woocommerce": true, "stores.woocommerce.connection": true, "stores.woocommerce.categories": true, "stores.woocommerce.attributes": true, "stores.woocommerce.orders": true, "stores.woocommerce.reviews": true, "stores.woocommerce.settings": true, "stores.shopify": true, "stores.shopify.connection": true, "stores.shopify.orders": true, "stores.shopify.settings": true, "processing.monitor": true, "marketing.campaigns": true, "marketing.campaigns.create": true, "marketing.campaigns.generate_ai": true, "marketing.campaigns.send": true, "marketing.content_calendar": true, "marketing.brand_kit": true, "marketing.brand_ai_apply": true, "marketing.seo": true, "marketing.seo.template_fill": true, "marketing.seo.ai_rewrite": true, "marketing.reviews": true, "integrations.ai": true, "integrations.ai.byok": true, "integrations.email": true, "integrations.email.test": true, "integrations.email.blast": true, "billing.overview": true, "billing.customer_portal": true, "billing.quick_upgrade": true, "billing.plans_compare": true, "billing.checkout": true, "settings.profile": true, "settings.company": true, "settings.alerts": true, "settings.api_keys": true, "settings.team": true, "settings.team_invite": true, "support.center": true, "support.ticket_create": true, "support.ticket_thread": true, "capability.sku_cap": true, "capability.ai_credits": true, "capability.ai_processing": true, "capability.eprel": true, "capability.normalize_specs_fill": true, "capability.campaign_ai": true, "capability.email_live_send": true, "capability.brand_ai_apply": true, "capability.seo_ai_rewrite": true, "capability.feed_source_limit": true, "capability.export_feed_limit": true, "capability.storage_limit": true, "capability.api_access": true, "capability.byok": true } }, "admin": { "description": "Platform admin (users.is_platform_admin); full dashboard + AdminNav", "plan_profile": null, "platform_admin": true, "admin_nav": [ "/admin", "/admin/users", "/admin/analytics", "/admin/billing", "/admin/support", "/admin/stuck-products", "/admin/settings" ], "features": { "shell.navigation": true, "shell.command_palette": true, "shell.company_switcher": true, "shell.support_notifications": true, "shell.tutorial": true, "shell.account_menu": true, "shell.billing_recovery_banner": true, "dashboard.overview": true, "dashboard.stats": true, "dashboard.quick_links": true, "dashboard.recent_jobs": true, "dashboard.news_feed": true, "dashboard.activation_checklist": true, "dashboard.migrated_checklist": true, "dashboard.etl_gaps": true, "dashboard.store_reconnect": true, "dashboard.upgrade_banners": true, "catalog.products": true, "catalog.products.tab_processed": true, "catalog.products.tab_needs_review": true, "catalog.products.tab_error": true, "catalog.products.tab_processing": true, "catalog.products.tab_unprocessed": true, "catalog.products.process_categories": true, "catalog.products.process_attributes": true, "catalog.products.process_ai_titles": true, "catalog.products.process_ai_descriptions": true, "catalog.products.enrichment_review": true, "catalog.products.export_selection": true, "catalog.products.upgrade_prompt": true, "catalog.categories": true, "catalog.categories.title_formula": true, "catalog.categories.description_formula": true, "catalog.attributes": true, "catalog.attributes.bulk_import": true, "catalog.standard_fields": true, "catalog.standard_fields.groups": true, "catalog.structured_descriptions": true, "catalog.vector_categories": true, "feeds.list": true, "feeds.add_url": true, "feeds.add_csv": true, "feeds.sync": true, "feeds.mapping": true, "feeds.mapping.select_item": true, "feeds.mapping.map_fields": true, "feeds.export_feeds": true, "feeds.export_feeds.create": true, "feeds.export_feeds.generate": true, "feeds.uploads": true, "stores.hub": true, "stores.woocommerce": true, "stores.woocommerce.connection": true, "stores.woocommerce.categories": true, "stores.woocommerce.attributes": true, "stores.woocommerce.orders": true, "stores.woocommerce.reviews": true, "stores.woocommerce.settings": true, "stores.shopify": true, "stores.shopify.connection": true, "stores.shopify.orders": true, "stores.shopify.settings": true, "processing.monitor": true, "marketing.campaigns": true, "marketing.campaigns.create": true, "marketing.campaigns.generate_ai": true, "marketing.campaigns.send": true, "marketing.content_calendar": true, "marketing.brand_kit": true, "marketing.brand_ai_apply": true, "marketing.seo": true, "marketing.seo.template_fill": true, "marketing.seo.ai_rewrite": true, "marketing.reviews": true, "integrations.ai": true, "integrations.ai.byok": true, "integrations.email": true, "integrations.email.test": true, "integrations.email.blast": true, "billing.overview": true, "billing.customer_portal": true, "billing.quick_upgrade": true, "billing.plans_compare": true, "billing.checkout": true, "settings.profile": true, "settings.company": true, "settings.alerts": true, "settings.api_keys": true, "settings.team": true, "settings.team_invite": true, "support.center": true, "support.ticket_create": true, "support.ticket_thread": true, "capability.sku_cap": true, "capability.ai_credits": true, "capability.ai_processing": true, "capability.eprel": true, "capability.normalize_specs_fill": true, "capability.campaign_ai": true, "capability.email_live_send": true, "capability.brand_ai_apply": true, "capability.seo_ai_rewrite": true, "capability.feed_source_limit": true, "capability.export_feed_limit": true, "capability.storage_limit": true, "capability.api_access": true, "capability.byok": true } }, "developer": { "description": "Engineering/ops; full feature ceiling including debug catalog extras", "plan_profile": null, "platform_admin": true, "admin_nav": [ "/admin", "/admin/users", "/admin/analytics", "/admin/billing", "/admin/support", "/admin/stuck-products", "/admin/settings" ], "features": { "shell.navigation": true, "shell.command_palette": true, "shell.company_switcher": true, "shell.support_notifications": true, "shell.tutorial": true, "shell.account_menu": true, "shell.billing_recovery_banner": true, "dashboard.overview": true, "dashboard.stats": true, "dashboard.quick_links": true, "dashboard.recent_jobs": true, "dashboard.news_feed": true, "dashboard.activation_checklist": true, "dashboard.migrated_checklist": true, "dashboard.etl_gaps": true, "dashboard.store_reconnect": true, "dashboard.upgrade_banners": true, "catalog.products": true, "catalog.products.tab_processed": true, "catalog.products.tab_needs_review": true, "catalog.products.tab_error": true, "catalog.products.tab_processing": true, "catalog.products.tab_unprocessed": true, "catalog.products.process_categories": true, "catalog.products.process_attributes": true, "catalog.products.process_ai_titles": true, "catalog.products.process_ai_descriptions": true, "catalog.products.enrichment_review": true, "catalog.products.export_selection": true, "catalog.products.upgrade_prompt": true, "catalog.categories": true, "catalog.categories.title_formula": true, "catalog.categories.description_formula": true, "catalog.attributes": true, "catalog.attributes.bulk_import": true, "catalog.standard_fields": true, "catalog.standard_fields.groups": true, "catalog.structured_descriptions": true, "catalog.vector_categories": true, "feeds.list": true, "feeds.add_url": true, "feeds.add_csv": true, "feeds.sync": true, "feeds.mapping": true, "feeds.mapping.select_item": true, "feeds.mapping.map_fields": true, "feeds.export_feeds": true, "feeds.export_feeds.create": true, "feeds.export_feeds.generate": true, "feeds.uploads": true, "stores.hub": true, "stores.woocommerce": true, "stores.woocommerce.connection": true, "stores.woocommerce.categories": true, "stores.woocommerce.attributes": true, "stores.woocommerce.orders": true, "stores.woocommerce.reviews": true, "stores.woocommerce.settings": true, "stores.shopify": true, "stores.shopify.connection": true, "stores.shopify.orders": true, "stores.shopify.settings": true, "processing.monitor": true, "marketing.campaigns": true, "marketing.campaigns.create": true, "marketing.campaigns.generate_ai": true, "marketing.campaigns.send": true, "marketing.content_calendar": true, "marketing.brand_kit": true, "marketing.brand_ai_apply": true, "marketing.seo": true, "marketing.seo.template_fill": true, "marketing.seo.ai_rewrite": true, "marketing.reviews": true, "integrations.ai": true, "integrations.ai.byok": true, "integrations.email": true, "integrations.email.test": true, "integrations.email.blast": true, "billing.overview": true, "billing.customer_portal": true, "billing.quick_upgrade": true, "billing.plans_compare": true, "billing.checkout": true, "settings.profile": true, "settings.company": true, "settings.alerts": true, "settings.api_keys": true, "settings.team": true, "settings.team_invite": true, "support.center": true, "support.ticket_create": true, "support.ticket_thread": true, "capability.sku_cap": true, "capability.ai_credits": true, "capability.ai_processing": true, "capability.eprel": true, "capability.normalize_specs_fill": true, "capability.campaign_ai": true, "capability.email_live_send": true, "capability.brand_ai_apply": true, "capability.seo_ai_rewrite": true, "capability.feed_source_limit": true, "capability.export_feed_limit": true, "capability.storage_limit": true, "capability.api_access": true, "capability.byok": true } }, "support_staff": { "description": "Support agents; support queue + assisted tenant context; no platform settings/billing writes", "plan_profile": null, "platform_admin": false, "staff_flag": "is_support_staff [UNCERTAIN — not in schema yet]", "admin_nav": [ "/admin/support", "/admin/users", "/admin/stuck-products" ], "admin_nav_denied": [ "/admin/settings", "/admin/billing" ], "features": { "shell.navigation": true, "shell.command_palette": true, "shell.company_switcher": true, "shell.support_notifications": true, "shell.tutorial": true, "shell.account_menu": true, "shell.billing_recovery_banner": true, "dashboard.overview": true, "dashboard.stats": true, "dashboard.quick_links": true, "dashboard.recent_jobs": true, "dashboard.news_feed": true, "dashboard.activation_checklist": true, "dashboard.migrated_checklist": true, "dashboard.etl_gaps": true, "dashboard.store_reconnect": false, "dashboard.upgrade_banners": true, "catalog.products": true, "catalog.products.tab_processed": true, "catalog.products.tab_needs_review": true, "catalog.products.tab_error": true, "catalog.products.tab_processing": true, "catalog.products.tab_unprocessed": true, "catalog.products.process_categories": true, "catalog.products.process_attributes": true, "catalog.products.process_ai_titles": true, "catalog.products.process_ai_descriptions": true, "catalog.products.enrichment_review": true, "catalog.products.export_selection": true, "catalog.products.upgrade_prompt": true, "catalog.categories": true, "catalog.categories.title_formula": true, "catalog.categories.description_formula": true, "catalog.attributes": true, "catalog.attributes.bulk_import": true, "catalog.standard_fields": true, "catalog.standard_fields.groups": true, "catalog.structured_descriptions": false, "catalog.vector_categories": false, "feeds.list": true, "feeds.add_url": true, "feeds.add_csv": true, "feeds.sync": true, "feeds.mapping": true, "feeds.mapping.select_item": true, "feeds.mapping.map_fields": true, "feeds.export_feeds": true, "feeds.export_feeds.create": true, "feeds.export_feeds.generate": true, "feeds.uploads": true, "stores.hub": false, "stores.woocommerce": false, "stores.woocommerce.connection": false, "stores.woocommerce.categories": false, "stores.woocommerce.attributes": false, "stores.woocommerce.orders": false, "stores.woocommerce.reviews": false, "stores.woocommerce.settings": false, "stores.shopify": false, "stores.shopify.connection": false, "stores.shopify.orders": false, "stores.shopify.settings": false, "processing.monitor": true, "marketing.campaigns": false, "marketing.campaigns.create": false, "marketing.campaigns.generate_ai": false, "marketing.campaigns.send": false, "marketing.content_calendar": false, "marketing.brand_kit": false, "marketing.brand_ai_apply": false, "marketing.seo": false, "marketing.seo.template_fill": false, "marketing.seo.ai_rewrite": false, "marketing.reviews": false, "integrations.ai": false, "integrations.ai.byok": false, "integrations.email": false, "integrations.email.test": false, "integrations.email.blast": false, "billing.overview": true, "billing.customer_portal": false, "billing.quick_upgrade": false, "billing.plans_compare": true, "billing.checkout": false, "settings.profile": true, "settings.company": true, "settings.alerts": true, "settings.api_keys": false, "settings.team": true, "settings.team_invite": false, "support.center": true, "support.ticket_create": true, "support.ticket_thread": true, "capability.sku_cap": true, "capability.ai_credits": true, "capability.ai_processing": true, "capability.eprel": true, "capability.normalize_specs_fill": true, "capability.campaign_ai": false, "capability.email_live_send": false, "capability.brand_ai_apply": false, "capability.seo_ai_rewrite": false, "capability.feed_source_limit": true, "capability.export_feed_limit": true, "capability.storage_limit": true, "capability.api_access": false, "capability.byok": false } } }, "plan_profiles": { "legacy": { "description": "A1 / Legacy package — same feature map as legacy_user", "features_ref_role": "legacy_user", "on_keys": [ "shell.navigation", "shell.command_palette", "shell.company_switcher", "shell.tutorial", "shell.account_menu", "shell.billing_recovery_banner", "dashboard.overview", "dashboard.stats", "dashboard.quick_links", "dashboard.recent_jobs", "dashboard.news_feed", "dashboard.activation_checklist", "dashboard.migrated_checklist", "dashboard.etl_gaps", "dashboard.upgrade_banners", "catalog.products", "catalog.products.tab_processed", "catalog.products.tab_needs_review", "catalog.products.tab_error", "catalog.products.tab_processing", "catalog.products.tab_unprocessed", "catalog.products.process_categories", "catalog.products.process_attributes", "catalog.products.process_ai_titles", "catalog.products.process_ai_descriptions", "catalog.products.enrichment_review", "catalog.products.export_selection", "catalog.products.upgrade_prompt", "catalog.categories", "catalog.categories.title_formula", "catalog.categories.description_formula", "catalog.attributes", "catalog.attributes.bulk_import", "catalog.standard_fields", "catalog.standard_fields.groups", "feeds.list", "feeds.add_url", "feeds.add_csv", "feeds.sync", "feeds.mapping", "feeds.mapping.select_item", "feeds.mapping.map_fields", "feeds.export_feeds", "feeds.export_feeds.create", "feeds.export_feeds.generate", "feeds.uploads", "billing.overview", "billing.customer_portal", "billing.quick_upgrade", "billing.plans_compare", "billing.checkout", "settings.profile", "settings.company", "settings.alerts", "settings.api_keys", "settings.team", "settings.team_invite", "capability.sku_cap", "capability.ai_credits", "capability.ai_processing", "capability.eprel", "capability.normalize_specs_fill", "capability.feed_source_limit", "capability.export_feed_limit", "capability.storage_limit", "capability.api_access" ], "off_sections": [ "stores", "processing", "marketing", "integrations", "support" ] }, "standard": { "description": "Public ladder Free→Enterprise; use 06-defaults-matrix per plan name", "matrix_ref": "docs/plan-permissions/06-defaults-matrix.json" }, "custom": { "description": "is_custom=true non-legacy deals; all registry keys ON by default", "all_features_on": true } } }