Files
HiveGrid-Wireframes/hivegrid-cloud/docs/feature-manifests/rows-entities-runtime.json
T

138 lines
3.9 KiB
JSON

{
"schemaVersion": "1.0",
"id": "rows-entities-runtime",
"title": "Rows and Entities Runtime",
"classification": "mixed",
"status": "review-needed",
"owner": "core-pruning",
"description": "Prisma, database access, rows, entity data structures, and minimal runtime pieces that other features build on.",
"rationale": [
"Many features depend on Prisma, entities, and rows as data foundations.",
"The runtime foundation is core, while no-code builders and code generation are candidates for extraction."
],
"codeAreas": [
"packages/db",
"prisma",
"apps/web/app/modules/rows",
"apps/web/app/utils/db/**",
"apps/web/app/modules/templates/defaultEntityTemplates.ts",
"apps/web/app/routes/admin/entities*",
"apps/web/app/routes/app.$tenant/settings/entities*",
"apps/api/src/app.ts",
"/v1/entities/:entity",
"/v1/entities/:entity/rows",
"/v1/entities/:entity/rows/:rowId",
"/v1/relationships",
"/v1/relationships/:id",
"/v1/exports/:exportJobId/download-url",
"packages/exports/src",
"apps/web/app/modules/codeGenerator",
"apps/web/app/modules/formulas",
"apps/web/app/modules/jsonProperties"
],
"dependencies": [
"auth-tenancy"
],
"consumers": [
"core",
"billing",
"plugin-candidates",
"remove-candidates"
],
"integration": {
"ownership": "system-only",
"surfaces": {
"adminRoutes": [
"apps/web/app/routes/admin/entities*"
],
"tenantRoutes": [
"apps/web/app/routes/app.$tenant/settings/entities*"
],
"publicRoutes": [],
"apiRoutes": [
"apps/api/src/app.ts",
"/v1/entities/:entity",
"/v1/entities/:entity/rows",
"/v1/entities/:entity/rows/:rowId",
"/v1/relationships",
"/v1/relationships/:id",
"/v1/exports/:exportJobId/download-url"
]
},
"configuration": {
"admin": [
"Entity schema and runtime policy"
],
"tenant": [
"Tenant row/entity usage where enabled"
],
"environment": [
"DATABASE_URL"
],
"secrets": [
"Database credentials are deployment-owned."
]
},
"workers": {
"required": false,
"queues": [],
"jobs": [],
"notes": [
"Rows runtime should not require workers unless a feature layer adds async processing."
]
},
"externalProviders": [
"database"
],
"permissions": [
"admin.entities.*",
"app.rows.*"
],
"auditEvents": [
"entity.updated",
"row.created",
"row.updated",
"row.deleted"
],
"billingImpacts": [
"May support plan limits or usage meters owned by billing/plugin manifests."
],
"uat": [
"Rows runtime supports retained app data flows.",
"CSV and XLSX exports neutralize spreadsheet formula injection prefixes before artifact delivery.",
"No-code builder surfaces can be separated from runtime."
]
},
"boundaries": {
"mustKeep": [
"Prisma schema and database package foundation",
"Rows runtime required by retained app data flows",
"Entity data primitives used by core features"
],
"mayMoveToPlugin": [
"No-code entity builder UI",
"Code generator",
"Formula and JSON property authoring surfaces",
"Default CRM-oriented entity templates"
],
"mustNotTouch": [
"Runtime routes or APIs during manifest Phase 1",
"Route and navigation edits owned by parallel workers"
]
},
"pruning": {
"phase": "1",
"action": "review",
"notes": [
"Split core runtime from no-code product surfaces before deleting any rows or entity code.",
"Audit CRM and email marketing coupling before changing default entity templates."
]
},
"validation": {
"source": [
"docs/feature-inventory.md"
],
"lastReviewed": "2026-05-16"
}
}