Files
HiveGrid-Wireframes/hivegrid-cloud/docs/feature-manifests/product-core.json
T

152 lines
5.9 KiB
JSON

{
"schemaVersion": "1.0",
"id": "product-core",
"title": "Product Core CRM SaaS",
"classification": "core",
"status": "active",
"owner": "product-core",
"description": "Versioned Product Core contract for the default CRM SaaS showcase and retained product modules.",
"rationale": [
"The default product is a CRM SaaS rather than an empty minimal shell.",
"Product modules are governed by versioned blueprints and entitlement gates instead of undocumented plugin-candidate assumptions.",
"Runtime access must resolve through blueprint, plan, custom plan, tenant override, and tenant-owned role permissions."
],
"codeAreas": [
"packages/entitlements/src/blueprints.ts",
"packages/entitlements/src/product-access.ts",
"packages/entitlements/src/plans.ts",
"apps/web/app/modules/crm",
"apps/web/app/modules/emailMarketing",
"apps/web/app/modules/knowledgeBase",
"apps/web/app/modules/helpDesk",
"apps/web/app/modules/workflowEngine",
"apps/web/app/modules/ai-gen",
"apps/web/app/modules/mcp",
"apps/web/app/modules/templates/defaultEntityTemplates.ts"
],
"dependencies": [
"core",
"auth-tenancy",
"billing",
"transactional-mail",
"rows-entities-runtime"
],
"consumers": [
"admin-app-shell",
"billing"
],
"integration": {
"ownership": "hybrid",
"surfaces": {
"adminRoutes": [
"Admin Center remains the operator toolbox for Product Core configuration and diagnostics."
],
"tenantRoutes": [
"Tenant CRM, support, KB, marketing, workflow and customization surfaces are enabled only through the CRM SaaS blueprint and entitlement decision."
],
"publicRoutes": [
"Public Product Core surfaces are limited to documented knowledge-base reads and auth/billing entrypoints."
],
"apiRoutes": [
"/v1/usage",
"/v1/support/inbound-email",
"Product Core API routes must evaluate blueprint and plan gates before tenant data access."
]
},
"configuration": {
"admin": [
"Blueprint version selection, custom plans, tenant overrides, provider diagnostics and plan catalog."
],
"tenant": [
"Tenant-owned role permissions, tenant toggles where the blueprint allows them, tenant workflow and KB settings."
],
"environment": [
"APP_BASE_DOMAIN",
"WEB_APP_HOST",
"ADMIN_APP_HOST",
"API_HOST",
"BULLMQ_REDIS_URL",
"CRYPTO_SECRET",
"MAILJET_WEBHOOK_SECRET",
"STORAGE_PROVIDER",
"STORAGE_ENDPOINT",
"STORAGE_REGION",
"STORAGE_BUCKET",
"STORAGE_ACCESS_KEY_ID",
"STORAGE_SECRET_ACCESS_KEY",
"STORAGE_LOCAL_ROOT"
],
"secrets": [
"Provider credentials remain platform/admin-owned unless a blueprint explicitly declares tenant-owned credentials."
]
},
"workers": {
"required": false,
"queues": [],
"jobs": [],
"notes": [
"Product Core owns entitlement and blueprint access decisions, while workflow, AI, mail, and plugin runtime queue execution is owned by the corresponding feature manifests and worker groups.",
"Workflow and AI jobs stay behind queue/worker boundaries when the corresponding blueprint and plan gates allow access.",
"Workflow outbound HTTP blocks must use the shared server-side outbound request guard for URL validation, redirects, timeouts and response-size limits."
]
},
"externalProviders": [
"stripe",
"deployment-region-ai-provider",
"s3-compatible-storage"
],
"permissions": [
"app.dashboard.view",
"app.settings.roles.set",
"app.settings.apiKeys.create",
"admin.pricing.*"
],
"auditEvents": [
"product_core.blueprint.enabled",
"product_core.tenant_override.updated",
"product_core.access.denied"
],
"billingImpacts": [
"Starter, Pro and Business plans expose strict CRM SaaS feature limits.",
"Custom hidden plans and tenant overrides can change effective entitlement decisions without making the plan public."
],
"uat": [
"Starter can use CRM basics, support tickets and KB reads but cannot use API, email marketing, workflow engine or MCP.",
"Pro can use email marketing, imported lists, CRM-based lists, onboarding, API and AI credits but cannot use workflow engine or MCP.",
"Business can use workflow engine, advanced builder, high import/export limits and tenant MCP only when the blueprint enables MCP.",
"A tenant user without the required tenant-owned role permission is denied even when blueprint and plan allow the feature."
]
},
"boundaries": {
"mustKeep": [
"Blueprint definitions are versioned code and manifest contracts.",
"Entitlement decisions compose blueprint, plan, tenant override and tenant-owned role checks.",
"Admin Center remains operator-owned for configuration and diagnostics."
],
"mayMoveToPlugin": [
"Provider-specific implementation adapters can become plugins after Product Core gates remain intact."
],
"mustNotTouch": [
"Client/UI code must not read secrets or bypass server/package boundaries.",
"Worker-backed features must not run synchronously in UI request handlers."
]
},
"pruning": {
"phase": "product-core",
"action": "keep",
"notes": [
"This manifest supersedes the earlier assumption that CRM SaaS product modules are merely plugin candidates for the default product.",
"Forms, Surveys and Public Forms are excluded from Product Core and covered by the removal manifest."
]
},
"validation": {
"source": [
"packages/entitlements/src/blueprints.ts",
"packages/entitlements/src/product-access.ts",
"docs/feature-manifests/core.json",
"docs/feature-manifests/remove-candidates.json"
],
"lastReviewed": "2026-05-27"
}
}