CRUD over an existing table
Recipe — take any existing database table and produce a working list / edit / add / delete UI on top of it in five Settings clicks. The fastest path from 'I have a table' to 'users are using it'.
Excel export
Recipe — every screen ships with an Excel export by default. Customise the column list, add a server-side aggregation export, or schedule a daily Excel sent to email.
File upload
Recipe — let users attach files to a row (contracts, invoices, photos) and serve them back from the same row. Two patterns: store the file in the database, or store a reference and offload to object storage.
Audit trail
Recipe — automatically populate created_by, created_at, updated_by, updated_at columns on every write, without trusting the client. The framework's form-layer LOGIN and SYSDATE defaults do the work.
Bulk import
Recipe — let operators upload a CSV or Excel file and import its rows into a database table. Validates per row, reports successes and failures, leaves the database untouched on errors.
Multi-step form / workflow
Recipe — model an approval workflow with status transitions, per-state visibility of fields, role-gated actions and scheduled escalations. The framework's form conditions + custom actions do the work.
OIDC sign-in
Recipe — wire the framework against Authentik, Keycloak, Azure AD or Okta in 10 minutes. Single sign-on, group-to-role mapping, auto-provisioning, break-glass admin.
Scheduled report email
Recipe — every weekday at 08:00, run a SQL aggregate, render it as XLSX, email it to a recipient list. The framework's Nomaflow job + http step + Excel export endpoint do the work.
Expose data to the AI assistant
Recipe — decide which connectors the AI assistant can read, restrict writes, write a good tool description so the model picks the right query. The difference between a useful assistant and one that hallucinates.
Row-level access
Recipe — give each user access to only their own rows. Salesperson sees only their customers; tenant sees only their data. The :session_user placeholder and a per-query WHERE clause do the work — no app code, no extra middleware.