Bulk actions
bulk-actionsOne action over many rows: up to a limit in one call with a result per row, and larger sets as a background run on the jobs queue that runs as the user who started it.
Work managementmanagedadoptcustom
Install
The command also installs updated-at, memberships, permissions, the modules it needs.
npx better-supabase add bulk-actionsConfigure
The blocks entries in your config, with the default mode.
import { defineConfig } from "better-supabase/config";
export default defineConfig({
blocks: {
// Required by bulk-actions; add installs them too.
"updated-at": {},
memberships: {},
permissions: {},
// Modes: "managed", "adopt", "custom". The default is "managed".
"bulk-actions": { mode: "managed" },
},
});Migrations
The files
npx better-supabase add bulk-actions writes into your declarative schema with the default layout.Client
This block has no React entry yet. Its TypeScript side is in better-supabase/blocks/bulk-actions, which runs on the server.
Events
With the outbox installed, the module writes these in the same transaction as the change.
- bulk_run.completed
Dependencies
Recipes
More in Work management
- TagstagsTenant tags with a kind, and a link from a tag to a subject. Adopt mode can use one link table per subject.React hooks
- State machinestate-machineAllowed status transitions as the caller, a history row and a status.changed event. A machine can also write a stages timeline and keep a lifecycle row (pause, flags, pinned version). Each machine is a subject table named in options.machines, or a config.records type.
- Custom fieldscustom-fieldsField definitions, options and typed values. A sensitive value is readable only with the field's permission. Inline layout stores the definition on the value row.
- Saved viewssaved-viewsNamed, ranked list states (filters, sort, columns, grouping, density) for one user, a team or the whole tenant.React hooks
- RelationsrelationsTyped links between subjects (blocks, parent, relates, or your own kinds), with inverse names, cycle checks, one-target kinds, walks and rollups.
- SearchsearchA search_documents index kept up by triggers from each config.records search entry, with search(q) as the caller (websearch, trigram prefixes, can_subject, hybrid with embeddings), and recents and favorites from the share-links user state.React hooks