Page Templates and Layouts

Save prefilled row starting points and layout keys separately from live rows, with schema-safe reconciliation.

Overview

Description

Page Templates and Layouts give each Dotabase reusable, prefilled starting points for new rows while keeping templates out of row search and counts.

A row template stores body content, schema-checked initial properties, and an optional registered layout key in a table separate from live rows. Creating a row from it copies the starting values once through ordinary row services. When the Dotabase schema evolves, reconciliation removes stale assumptions so a template cannot keep seeding properties that no longer exist.

Selling Points

  • Starts recurring records with the right body and properties.
  • Preserves a chosen layout on created rows.
  • Reconciles saved templates as schemas evolve.
  • Keeps templates out of row counts, search, and operational views.
  • Reduces repeated setup without making later row content centrally controlled.

User Story

As a team lead, I create every incident from the same response scaffold without polluting the incident list with template rows. I save the standard body, initial status, and supported layout as a template. A responder selects it when creating an incident and then edits the resulting row normally. I walk away with consistent starting structure, while the template itself never appears as an incident or overwrites the responder's later work.

Extension Surface

Configurable: users save templates and select registered layout keys; the storage contract and key syntax are fixed.

packages/dotabases/src/row-templates/service.ts exposes lifecycle operations for tenant-owned template data. Users configure supported content and keys; they cannot attach executable creation hooks through this surface.

Capabilities & Limits

  • Capability: Executes the scoped workflow described above through the cited live implementation paths.
  • Capability: Preserves typed validation and applicable tenant, schema, lifecycle, or service boundaries.
  • Limit: Templates seed new rows but do not continuously overwrite later edits. The feature supports template create, update, list, delete, schema reconciliation, prefilled bodies and properties, and layout selection. It cannot keep instances synchronized, bypass property validation, or preserve values for deleted schema keys. Layout rendering still belongs to the application that recognizes the stored key.

Implementation Map

  • packages/dotabases/src/row-templates/service.ts
  • packages/dotabases/src/row-templates/reconcile-properties.ts
  • packages/db/src/schema/dotabase-row-templates.ts

Properties

Property
Value
product
dots-platform
extensibility
configurable
module
Dotabases
packages
dotabases, db
status
shipped
surface
cross-cutting
summary
Save prefilled row starting points and layout keys separately from live rows, with schema-safe reconciliation.

Connections

Page Templates and Layouts · Explore connections

  • implemented bytopackages/db/src/schema/dotabase-row-templates.ts
  • implemented bytopackages/dotabases/src/internal/row-templates/service.ts
  • implemented bytopackages/dotabases/src/internal/row-templates/reconcile-properties.ts
  • complementstoDotabase Templates
  • implementstoDS_Dotabase-Templates — Comprehensive Module Spec
  • implemented bytobuildRowTemplateService
  • implemented bytodotabaseRowTemplates
  • complementsfromDotabase Templates

Connected Records8

Complements
Implemented by
buildRowTemplateService
dotabaseRowTemplates
packages/db/src/schema/dotabase-row-templates.ts
packages/dotabases/src/internal/row-templates/reconcile-properties.ts
packages/dotabases/src/internal/row-templates/service.ts
Implements
DS_Dotabase-Templates — Comprehensive Module Spec
8 connections.