Skip to main content
Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See coverage and review notes.

Form templates

Host: control.<ROOT_DOMAIN> · Route: /forms

Purpose and access

Create platform-managed form templates.You need an account session and platform access. Platform privileges are separate from tenant roles; privileged writes remain subject to endpoint role checks.

Screen layout

Form Templates lists forms and New form. Creation asks name, key, category, and whether the form is platform-wide.

Fields and displayed information

Displayed table columns: Name, Key, Category, Version, Assignment.

Fields and filters: Create form dialog

Actions

Linked navigation

Interaction sequence

New form → enter identity/category and assignment scope → Create form → navigate to /forms/ to define version fields.

States and rules

The forms route exists but is absent from the current control sidebar; document it as a direct route. Creating a template does not publish its fields or complete member self-service integration.The rendered action controls bind loading indicators to pending state. Failed API saves keep their documented error/notification path; a loading indicator alone does not establish persistence.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/control/(app)/forms/page.tsx
  • apps/web/src/features/platform/forms-table.tsx
  • apps/web/src/features/platform/create-form-dialog.tsx
Data and access helpers: apps/web/src/lib/session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/platform.ts, apps/web/src/lib/forms.ts, apps/web/src/lib/api-client.ts

Form template detail

Host: control.<ROOT_DOMAIN> · Route: /forms/[templateId]

Purpose and access

Maintain form versions, fields, publication, and tenant assignment.You need an account session and platform access. Platform privileges are separate from tenant roles; privileged writes remain subject to endpoint role checks.

Screen layout

The detail view has version history, draft-field editing, Publish/Open new draft version controls, Assignment, and Delete form. Fields specify identity, type, options, required status, description, and order.

Fields and displayed information

Displayed table columns: Order, Label, Key, Type, Required.

Fields and filters: Form field dialog

Fields and filters: Form assignment editor

Actions

Linked navigation

Interaction sequence

Open a draft → add/edit fields → Publish with confirmation → create a new draft for subsequent changes. Choose platform-wide or selected tenants → Save assignment. Delete form returns to /forms.

States and rules

Published and draft versions are distinct. Template editing and tenant assignment save independently; published forms are not automatically wired to the placeholder request buttons in the member dashboard.The rendered action controls bind loading indicators to pending state. Failed API saves keep their documented error/notification path; a loading indicator alone does not establish persistence.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/control/(app)/forms/[templateId]/page.tsx
  • apps/web/src/features/platform/form-fields-list.tsx
  • apps/web/src/features/platform/form-field-dialog.tsx
  • apps/web/src/features/platform/form-version-actions.tsx
  • apps/web/src/features/platform/form-assignment-editor.tsx
  • apps/web/src/features/platform/delete-form-button.tsx
Data and access helpers: apps/web/src/lib/session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/platform.ts, apps/web/src/lib/forms.ts, apps/web/src/lib/api-client.ts

API behavior references

  • apps/api/src/platform/platform-tenant-access.controller.ts
  • apps/api/src/platform/platform.controller.ts
  • apps/api/src/billing/plans.controller.ts
  • apps/api/src/billing/tenant-billing.controller.ts
  • apps/api/src/features/features.controller.ts
  • apps/api/src/features/tenant-features.controller.ts
  • apps/api/src/forms/forms.controller.ts
  • apps/api/src/analytics/analytics.controller.ts
  • apps/api/src/analytics/tenant-analytics.controller.ts