Provision Resource
provision_resourceProvision a Floot-managed backend resource for the project — fully server-side (Floot mints all secrets; no keys to paste). Also seeds the working code for it. Available:
database — A Floot-managed Postgres database (Neon). FLOOT_DATABASE_URL is set for the app.
auth — Email/password + session auth (JWT_SECRET, auto-provisions a database if none). Injects auth pages, endpoints, and helpers.
oauth-login — Sign in with Google via Floot's brokered OAuth (FLOOT_OAUTH). Injects OAuth provider classes, login buttons, helpers.
microsoft-login — Sign in with Microsoft via Floot's brokered login (FLOOT_MICROSOFT_LOGIN). Injects button + auth endpoints.
google-integration — FLOOT_GOOGLE_INTEGRATIONS is built-in Google integration. Use it to let end users connect their Google account so the app can read/write their Gmail, Google Calendar, or Google Drive — unless the user specifies they want to use their own Google client. See get_guides("floot-provided-google-integrations").
microsoft-integration — Microsoft Graph access (Outlook/Teams/etc.) via Floot's brokered Microsoft OAuth (FLOOT_MICROSOFT_INTEGRATIONS). Injects Connect button + endpoints.
push-notifications — Web + native push (FLOOT_PUSH). Mints VAPID keys, injects helpers/pushClient (subscribe/unsubscribe) + a service worker.
payments — FLOOT_PAYMENTS is built-in payments. Use it to take payments in the app — unless the user specifies they want to use their own Stripe account. See get_guides("floot-payments").
shipping — FLOOT_SHIPPING is shipping through the project owner's own Shippo account (rates, labels, tracking). Use it to ship physical goods in the app. The preview runs on Floot's built-in test shipping; the published app connects the owner's Shippo at publish. See get_guides("floot-shipping"). Enum values not listed above are beta-gated and unavailable on most accounts. SENDING email from the app is NOT a resource — the builtin @floot/email handles it with zero setup (get_guides("email")). For a user's OWN external key (their OpenAI key, an external database), this is NOT the tool — use request_external_resource instead. Idempotent: re-running returns the existing resource and skips seed files that already exist. To turn Floot Payments OFF (publishing refuses while it is attached and Stripe setup is unfinished, also when the app no longer uses it, e.g. it uses its own checkout): action "turn_off" with resource "payments". Owner only; ask the user first and call it only once they agree. It keeps the app's data and the owner's Stripe setup, and the owner can turn it back on in Floot (Services → Payments).
app-connection — let this project's backend call functions ANOTHER Floot app exports (no API keys): pass app_target and app_functions. Only apps the user can edit, only functions in the other app's helpers/flootAppExports.tsx (saved is enough: write both apps first, connect, then publish both); the user confirms in a dialog. Read get_guides("app-calls") first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Default "provision". "turn_off" only with resource "payments": turns Floot Payments off for the project (owner only, after the user confirms). | |
| app_note | No | Only for resource "app-connection": one sentence for the user on why this project needs these functions. Shown in the confirmation dialog. | |
| resource | Yes | ||
| projectId | Yes | ||
| app_target | No | Only for resource "app-connection": the OTHER Floot app — its project id, name.floot.app address or custom domain. | |
| app_functions | No | Only for resource "app-connection": the exact function names this project needs from the other app's helpers/flootAppExports.tsx. |