@mastra/mcp-docs-server 1.0.0-beta.13 → 1.0.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +28 -28
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +98 -98
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +30 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +171 -171
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +10 -10
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +12 -12
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +22 -22
- package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Freact.md +9 -2
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +94 -94
- package/.docs/organized/changelogs/create-mastra.md +3 -3
- package/.docs/organized/changelogs/mastra.md +17 -17
- package/.docs/organized/code-examples/agent-v6.md +151 -0
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +2 -3
- package/.docs/raw/agents/agent-approval.mdx +5 -6
- package/.docs/raw/agents/agent-memory.mdx +22 -30
- package/.docs/raw/agents/guardrails.mdx +60 -50
- package/.docs/raw/agents/networks.mdx +8 -12
- package/.docs/raw/agents/overview.mdx +39 -23
- package/.docs/raw/agents/processors.mdx +20 -19
- package/.docs/raw/agents/structured-output.mdx +11 -7
- package/.docs/raw/agents/using-tools.mdx +4 -5
- package/.docs/raw/deployment/mastra-server.mdx +3 -3
- package/.docs/raw/deployment/overview.mdx +7 -0
- package/.docs/raw/deployment/web-framework.mdx +4 -6
- package/.docs/raw/evals/custom-scorers.mdx +9 -6
- package/.docs/raw/evals/overview.mdx +3 -6
- package/.docs/raw/evals/running-in-ci.mdx +2 -2
- package/.docs/raw/getting-started/manual-install.mdx +20 -20
- package/.docs/raw/getting-started/mcp-docs-server.mdx +2 -2
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +4 -4
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +30 -30
- package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +11 -11
- package/.docs/raw/guides/deployment/amazon-ec2.mdx +9 -9
- package/.docs/raw/guides/deployment/aws-lambda.mdx +11 -11
- package/.docs/raw/guides/deployment/azure-app-services.mdx +2 -2
- package/.docs/raw/guides/deployment/cloudflare-deployer.mdx +5 -6
- package/.docs/raw/guides/deployment/digital-ocean.mdx +10 -10
- package/.docs/raw/guides/deployment/index.mdx +1 -1
- package/.docs/raw/guides/deployment/inngest.mdx +386 -0
- package/.docs/raw/guides/deployment/netlify-deployer.mdx +4 -4
- package/.docs/raw/guides/deployment/vercel-deployer.mdx +5 -6
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +7 -7
- package/.docs/raw/guides/getting-started/hono.mdx +18 -18
- package/.docs/raw/guides/getting-started/next-js.mdx +19 -20
- package/.docs/raw/guides/getting-started/quickstart.mdx +4 -4
- package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
- package/.docs/raw/guides/getting-started/vite-react.mdx +21 -21
- package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
- package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
- package/.docs/raw/guides/guide/research-assistant.mdx +13 -13
- package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
- package/.docs/raw/guides/guide/web-search.mdx +8 -8
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +0 -2
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
- package/.docs/raw/index.mdx +2 -2
- package/.docs/raw/mastra-cloud/setting-up.mdx +6 -2
- package/.docs/raw/mcp/overview.mdx +31 -13
- package/.docs/raw/mcp/publishing-mcp-server.mdx +2 -2
- package/.docs/raw/memory/memory-processors.mdx +9 -9
- package/.docs/raw/memory/message-history.mdx +69 -0
- package/.docs/raw/memory/overview.mdx +34 -76
- package/.docs/raw/memory/semantic-recall.mdx +58 -49
- package/.docs/raw/memory/storage.mdx +188 -0
- package/.docs/raw/memory/working-memory.mdx +7 -7
- package/.docs/raw/observability/logging.mdx +9 -10
- package/.docs/raw/observability/overview.mdx +0 -1
- package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/default.mdx +3 -3
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -2
- package/.docs/raw/observability/tracing/overview.mdx +23 -25
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/rag/chunking-and-embedding.mdx +6 -6
- package/.docs/raw/rag/graph-rag.mdx +7 -7
- package/.docs/raw/rag/overview.mdx +1 -1
- package/.docs/raw/rag/retrieval.mdx +21 -22
- package/.docs/raw/rag/vector-databases.mdx +22 -22
- package/.docs/raw/reference/agents/agent.mdx +3 -3
- package/.docs/raw/reference/agents/generate.mdx +1 -1
- package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +2 -2
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +2 -2
- package/.docs/raw/reference/agents/getLLM.mdx +2 -2
- package/.docs/raw/reference/agents/getMemory.mdx +2 -2
- package/.docs/raw/reference/agents/getModel.mdx +2 -2
- package/.docs/raw/reference/agents/getTools.mdx +2 -2
- package/.docs/raw/reference/agents/getVoice.mdx +2 -2
- package/.docs/raw/reference/agents/listAgents.mdx +2 -2
- package/.docs/raw/reference/agents/listScorers.mdx +2 -2
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +2 -2
- package/.docs/raw/reference/agents/network.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/network-route.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +6 -6
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +2 -2
- package/.docs/raw/reference/auth/auth0.mdx +1 -2
- package/.docs/raw/reference/auth/clerk.mdx +1 -2
- package/.docs/raw/reference/auth/firebase.mdx +2 -4
- package/.docs/raw/reference/auth/jwt.mdx +1 -2
- package/.docs/raw/reference/auth/supabase.mdx +1 -2
- package/.docs/raw/reference/auth/workos.mdx +1 -2
- package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
- package/.docs/raw/reference/cli/mastra.mdx +9 -9
- package/.docs/raw/reference/client-js/agents.mdx +1 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +1 -1
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +1 -1
- package/.docs/raw/reference/core/getLogger.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServerById.mdx +1 -1
- package/.docs/raw/reference/core/getMemory.mdx +2 -2
- package/.docs/raw/reference/core/getServer.mdx +1 -1
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getStoredAgentById.mdx +3 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +1 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +1 -1
- package/.docs/raw/reference/core/listMemory.mdx +2 -2
- package/.docs/raw/reference/core/listStoredAgents.mdx +4 -4
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/setLogger.mdx +1 -1
- package/.docs/raw/reference/core/setStorage.mdx +2 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -1
- package/.docs/raw/reference/deployer/netlify.mdx +1 -1
- package/.docs/raw/reference/deployer/vercel.mdx +2 -4
- package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/bias.mdx +1 -1
- package/.docs/raw/reference/evals/completeness.mdx +1 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/context-precision.mdx +1 -1
- package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
- package/.docs/raw/reference/evals/hallucination.mdx +1 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
- package/.docs/raw/reference/evals/prompt-alignment.mdx +7 -7
- package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +10 -10
- package/.docs/raw/reference/evals/toxicity.mdx +1 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +6 -7
- package/.docs/raw/reference/memory/createThread.mdx +2 -2
- package/.docs/raw/reference/memory/deleteMessages.mdx +2 -2
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +2 -2
- package/.docs/raw/reference/memory/memory-class.mdx +3 -3
- package/.docs/raw/reference/memory/query.mdx +2 -2
- package/.docs/raw/reference/memory/recall.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
- package/.docs/raw/reference/processors/language-detector.mdx +2 -2
- package/.docs/raw/reference/processors/message-history-processor.mdx +2 -2
- package/.docs/raw/reference/processors/moderation-processor.mdx +3 -3
- package/.docs/raw/reference/processors/pii-detector.mdx +3 -3
- package/.docs/raw/reference/processors/processor-interface.mdx +13 -13
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +2 -2
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +2 -2
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -2
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
- package/.docs/raw/reference/processors/tool-call-filter.mdx +3 -3
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
- package/.docs/raw/reference/processors/working-memory-processor.mdx +3 -3
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +2 -2
- package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
- package/.docs/raw/reference/server/create-route.mdx +13 -13
- package/.docs/raw/reference/server/express-adapter.mdx +6 -7
- package/.docs/raw/reference/server/hono-adapter.mdx +6 -7
- package/.docs/raw/reference/server/mastra-server.mdx +20 -20
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +3 -3
- package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
- package/.docs/raw/reference/storage/convex.mdx +6 -6
- package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
- package/.docs/raw/reference/storage/lance.mdx +3 -3
- package/.docs/raw/reference/storage/libsql.mdx +69 -54
- package/.docs/raw/reference/storage/mongodb.mdx +80 -7
- package/.docs/raw/reference/storage/mssql.mdx +4 -4
- package/.docs/raw/{memory → reference}/storage/overview.mdx +12 -110
- package/.docs/raw/reference/storage/postgresql.mdx +78 -7
- package/.docs/raw/reference/storage/upstash.mdx +74 -2
- package/.docs/raw/reference/streaming/agents/stream.mdx +5 -5
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +4 -4
- package/.docs/raw/reference/templates/overview.mdx +1 -2
- package/.docs/raw/reference/tools/create-tool.mdx +1 -4
- package/.docs/raw/reference/tools/vector-query-tool.mdx +1 -1
- package/.docs/raw/reference/vectors/astra.mdx +3 -3
- package/.docs/raw/reference/vectors/chroma.mdx +3 -3
- package/.docs/raw/reference/vectors/convex.mdx +12 -12
- package/.docs/raw/reference/vectors/couchbase.mdx +5 -5
- package/.docs/raw/reference/vectors/duckdb.mdx +10 -10
- package/.docs/raw/reference/vectors/elasticsearch.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +4 -4
- package/.docs/raw/reference/vectors/libsql.mdx +61 -11
- package/.docs/raw/reference/vectors/mongodb.mdx +58 -5
- package/.docs/raw/reference/vectors/pg.mdx +53 -6
- package/.docs/raw/reference/vectors/pinecone.mdx +3 -3
- package/.docs/raw/reference/vectors/qdrant.mdx +3 -3
- package/.docs/raw/reference/vectors/s3vectors.mdx +6 -6
- package/.docs/raw/reference/vectors/turbopuffer.mdx +4 -4
- package/.docs/raw/reference/vectors/upstash.mdx +55 -6
- package/.docs/raw/reference/vectors/vectorize.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +1 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/start.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +5 -5
- package/.docs/raw/reference/workflows/run.mdx +1 -1
- package/.docs/raw/reference/workflows/step.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +6 -6
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow.mdx +3 -3
- package/.docs/raw/server/auth/auth0.mdx +20 -14
- package/.docs/raw/server/auth/clerk.mdx +16 -9
- package/.docs/raw/server/auth/firebase.mdx +21 -15
- package/.docs/raw/server/auth/jwt.mdx +14 -7
- package/.docs/raw/server/auth/supabase.mdx +16 -9
- package/.docs/raw/server/auth/workos.mdx +19 -13
- package/.docs/raw/server/custom-adapters.mdx +10 -10
- package/.docs/raw/server/custom-api-routes.mdx +2 -4
- package/.docs/raw/server/mastra-client.mdx +24 -13
- package/.docs/raw/server/mastra-server.mdx +3 -3
- package/.docs/raw/server/middleware.mdx +7 -7
- package/.docs/raw/server/request-context.mdx +31 -30
- package/.docs/raw/server/server-adapters.mdx +6 -6
- package/.docs/raw/streaming/events.mdx +14 -7
- package/.docs/raw/streaming/overview.mdx +21 -10
- package/.docs/raw/streaming/tool-streaming.mdx +6 -6
- package/.docs/raw/streaming/workflow-streaming.mdx +6 -8
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +31 -12
- package/.docs/raw/tools-mcp/overview.mdx +9 -10
- package/.docs/raw/voice/overview.mdx +1 -1
- package/.docs/raw/workflows/agents-and-tools.mdx +28 -19
- package/.docs/raw/workflows/control-flow.mdx +27 -40
- package/.docs/raw/workflows/error-handling.mdx +15 -22
- package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
- package/.docs/raw/workflows/inngest-workflow.mdx +8 -9
- package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
- package/.docs/raw/workflows/overview.mdx +33 -22
- package/.docs/raw/workflows/snapshots.mdx +14 -44
- package/.docs/raw/workflows/suspend-and-resume.mdx +7 -7
- package/.docs/raw/workflows/time-travel.mdx +16 -16
- package/.docs/raw/workflows/workflow-state.mdx +5 -8
- package/CHANGELOG.md +9 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/stdio.js +53 -0
- package/package.json +4 -4
- package/.docs/raw/memory/conversation-history.mdx +0 -24
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
- package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
- package/.docs/raw/memory/threads-and-resources.mdx +0 -95
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Inngest | Deployment"
|
|
3
|
+
description: "Deploy Mastra workflows with Inngest"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Inngest Workflow
|
|
7
|
+
|
|
8
|
+
[Inngest](https://www.inngest.com/docs) is a developer platform for building and running background workflows, without managing infrastructure.
|
|
9
|
+
|
|
10
|
+
For a complete example with advanced flow control features, see the [Inngest workflow example](https://github.com/mastra-ai/mastra/tree/main/examples/inngest).
|
|
11
|
+
|
|
12
|
+
## How Inngest Works with Mastra
|
|
13
|
+
|
|
14
|
+
Inngest and Mastra integrate by aligning their workflow models: Inngest organizes logic into functions composed of steps, and Mastra workflows defined using `createWorkflow` and `createStep` map directly onto this paradigm. Each Mastra workflow becomes an Inngest function with a unique identifier, and each step within the workflow maps to an Inngest step.
|
|
15
|
+
|
|
16
|
+
The `serve` function bridges the two systems by registering Mastra workflows as Inngest functions and setting up the necessary event handlers for execution and monitoring.
|
|
17
|
+
|
|
18
|
+
When an event triggers a workflow, Inngest executes it step by step, memoizing each step's result. This means if a workflow is retried or resumed, completed steps are skipped, ensuring efficient and reliable execution. Control flow primitives in Mastra, such as loops, conditionals, and nested workflows are seamlessly translated into the same Inngest's function/step model, preserving advanced workflow features like composition, branching, and suspension.
|
|
19
|
+
|
|
20
|
+
Real-time monitoring, suspend/resume, and step-level observability are enabled via Inngest's publish-subscribe system and dashboard. As each step executes, its state and output are tracked using Mastra storage and can be resumed as needed.
|
|
21
|
+
|
|
22
|
+
## Setup
|
|
23
|
+
|
|
24
|
+
Install the required Inngest package:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
npm install @mastra/inngest@beta
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Building an Inngest Workflow
|
|
31
|
+
|
|
32
|
+
This guide walks through creating a workflow with Inngest and Mastra, demonstrating a counter application that increments a value until it reaches 10.
|
|
33
|
+
|
|
34
|
+
### Inngest Initialization
|
|
35
|
+
|
|
36
|
+
Initialize the Inngest integration to obtain Mastra-compatible workflow helpers. The createWorkflow and createStep functions are used to create workflow and step objects that are compatible with Mastra and inngest.
|
|
37
|
+
|
|
38
|
+
In development:
|
|
39
|
+
|
|
40
|
+
```ts title="src/mastra/inngest/index.ts"
|
|
41
|
+
import { Inngest } from "inngest";
|
|
42
|
+
import { realtimeMiddleware } from "@inngest/realtime/middleware";
|
|
43
|
+
|
|
44
|
+
export const inngest = new Inngest({
|
|
45
|
+
id: "mastra",
|
|
46
|
+
baseUrl: "http://localhost:8288",
|
|
47
|
+
isDev: true,
|
|
48
|
+
middleware: [realtimeMiddleware()],
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
In production:
|
|
53
|
+
|
|
54
|
+
```ts title="src/mastra/inngest/index.ts"
|
|
55
|
+
import { Inngest } from "inngest";
|
|
56
|
+
import { realtimeMiddleware } from "@inngest/realtime/middleware";
|
|
57
|
+
|
|
58
|
+
export const inngest = new Inngest({
|
|
59
|
+
id: "mastra",
|
|
60
|
+
middleware: [realtimeMiddleware()],
|
|
61
|
+
});
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Creating Steps
|
|
65
|
+
|
|
66
|
+
Define the individual steps that will compose your workflow:
|
|
67
|
+
|
|
68
|
+
```ts title="src/mastra/workflows/index.ts"
|
|
69
|
+
import { z } from "zod";
|
|
70
|
+
import { inngest } from "../inngest";
|
|
71
|
+
import { init } from "@mastra/inngest";
|
|
72
|
+
|
|
73
|
+
// Initialize Inngest with Mastra, pointing to your local Inngest server
|
|
74
|
+
const { createWorkflow, createStep } = init(inngest);
|
|
75
|
+
|
|
76
|
+
// Step: Increment the counter value
|
|
77
|
+
const incrementStep = createStep({
|
|
78
|
+
id: "increment",
|
|
79
|
+
inputSchema: z.object({
|
|
80
|
+
value: z.number(),
|
|
81
|
+
}),
|
|
82
|
+
outputSchema: z.object({
|
|
83
|
+
value: z.number(),
|
|
84
|
+
}),
|
|
85
|
+
execute: async ({ inputData }) => {
|
|
86
|
+
return { value: inputData.value + 1 };
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Creating the Workflow
|
|
92
|
+
|
|
93
|
+
Compose the steps into a workflow using the `dountil` loop pattern. The createWorkflow function creates a function on inngest server that is invocable.
|
|
94
|
+
|
|
95
|
+
```ts title="src/mastra/workflows/index.ts"
|
|
96
|
+
// workflow that is registered as a function on inngest server
|
|
97
|
+
const workflow = createWorkflow({
|
|
98
|
+
id: "increment-workflow",
|
|
99
|
+
inputSchema: z.object({
|
|
100
|
+
value: z.number(),
|
|
101
|
+
}),
|
|
102
|
+
outputSchema: z.object({
|
|
103
|
+
value: z.number(),
|
|
104
|
+
}),
|
|
105
|
+
}).then(incrementStep);
|
|
106
|
+
|
|
107
|
+
workflow.commit();
|
|
108
|
+
|
|
109
|
+
export { workflow as incrementWorkflow };
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Configuring the Mastra Instance and Executing the Workflow
|
|
113
|
+
|
|
114
|
+
Register the workflow with Mastra and configure the Inngest API endpoint:
|
|
115
|
+
|
|
116
|
+
```ts title="src/mastra/index.ts"
|
|
117
|
+
import { Mastra } from "@mastra/core";
|
|
118
|
+
import { serve as inngestServe } from "@mastra/inngest";
|
|
119
|
+
import { incrementWorkflow } from "./workflows";
|
|
120
|
+
import { inngest } from "./inngest";
|
|
121
|
+
import { PinoLogger } from "@mastra/loggers";
|
|
122
|
+
|
|
123
|
+
// Configure Mastra with the workflow and Inngest API endpoint
|
|
124
|
+
export const mastra = new Mastra({
|
|
125
|
+
workflows: {
|
|
126
|
+
incrementWorkflow,
|
|
127
|
+
},
|
|
128
|
+
server: {
|
|
129
|
+
// The server configuration is required to allow local docker container can connect to the mastra server
|
|
130
|
+
host: "0.0.0.0",
|
|
131
|
+
apiRoutes: [
|
|
132
|
+
// This API route is used to register the Mastra workflow (inngest function) on the inngest server
|
|
133
|
+
{
|
|
134
|
+
path: "/api/inngest",
|
|
135
|
+
method: "ALL",
|
|
136
|
+
createHandler: async ({ mastra }) => inngestServe({ mastra, inngest }),
|
|
137
|
+
// The inngestServe function integrates Mastra workflows with Inngest by:
|
|
138
|
+
// 1. Creating Inngest functions for each workflow with unique IDs (workflow.${workflowId})
|
|
139
|
+
// 2. Setting up event handlers that:
|
|
140
|
+
// - Generate unique run IDs for each workflow execution
|
|
141
|
+
// - Create an InngestExecutionEngine to manage step execution
|
|
142
|
+
// - Handle workflow state persistence and real-time updates
|
|
143
|
+
// 3. Establishing a publish-subscribe system for real-time monitoring
|
|
144
|
+
// through the workflow:${workflowId}:${runId} channel
|
|
145
|
+
//
|
|
146
|
+
// Optional: You can also pass additional Inngest functions to serve alongside workflows:
|
|
147
|
+
// createHandler: async ({ mastra }) => inngestServe({
|
|
148
|
+
// mastra,
|
|
149
|
+
// inngest,
|
|
150
|
+
// functions: [customFunction1, customFunction2] // User-defined Inngest functions
|
|
151
|
+
// }),
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
logger: new PinoLogger({
|
|
156
|
+
name: "Mastra",
|
|
157
|
+
level: "info",
|
|
158
|
+
}),
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Running the Workflow locally
|
|
163
|
+
|
|
164
|
+
:::info[Prerequisites]
|
|
165
|
+
|
|
166
|
+
- Docker installed and running
|
|
167
|
+
- Mastra project set up
|
|
168
|
+
- Dependencies installed (`npm install`)
|
|
169
|
+
|
|
170
|
+
:::
|
|
171
|
+
|
|
172
|
+
1. Run `npx mastra dev` to start the Mastra server on local to serve the server on port 4111.
|
|
173
|
+
2. Start the Inngest Dev Server (via Docker)
|
|
174
|
+
In a new terminal, run:
|
|
175
|
+
|
|
176
|
+
```sh
|
|
177
|
+
docker run --rm -p 8288:8288 \
|
|
178
|
+
inngest/inngest \
|
|
179
|
+
inngest dev -u http://host.docker.internal:4111/api/inngest
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
:::note
|
|
183
|
+
|
|
184
|
+
The URL after `-u` tells the Inngest dev server where to find your Mastra `/api/inngest` endpoint.
|
|
185
|
+
|
|
186
|
+
:::
|
|
187
|
+
|
|
188
|
+
3. Open the Inngest Dashboard
|
|
189
|
+
|
|
190
|
+
- Visit [http://localhost:8288](http://localhost:8288) in your browser.
|
|
191
|
+
- Go to the **Apps** section in the sidebar.
|
|
192
|
+
- You should see your Mastra workflow registered.
|
|
193
|
+
|
|
194
|
+

|
|
195
|
+
|
|
196
|
+
4. Invoke the Workflow
|
|
197
|
+
|
|
198
|
+
- Go to the **Functions** section in the sidebar.
|
|
199
|
+
- Select your Mastra workflow.
|
|
200
|
+
- Click **Invoke** and use the following input:
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"data": {
|
|
205
|
+
"inputData": {
|
|
206
|
+
"value": 5
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+

|
|
213
|
+
|
|
214
|
+
5. **Monitor the Workflow Execution**
|
|
215
|
+
|
|
216
|
+
- Go to the **Runs** tab in the sidebar.
|
|
217
|
+
- Click on the latest run to see step-by-step execution progress.
|
|
218
|
+
|
|
219
|
+

|
|
220
|
+
|
|
221
|
+
### Running the Workflow in Production
|
|
222
|
+
|
|
223
|
+
:::info[Prerequisites]
|
|
224
|
+
|
|
225
|
+
- Vercel account and Vercel CLI installed (`npm i -g vercel`)
|
|
226
|
+
- Inngest account
|
|
227
|
+
- Vercel token (recommended: set as environment variable)
|
|
228
|
+
|
|
229
|
+
:::
|
|
230
|
+
|
|
231
|
+
1. Add Vercel Deployer to Mastra instance
|
|
232
|
+
|
|
233
|
+
```ts title="src/mastra/index.ts"
|
|
234
|
+
import { VercelDeployer } from "@mastra/deployer-vercel";
|
|
235
|
+
|
|
236
|
+
export const mastra = new Mastra({
|
|
237
|
+
deployer: new VercelDeployer({
|
|
238
|
+
teamSlug: "your_team_slug",
|
|
239
|
+
projectName: "your_project_name",
|
|
240
|
+
// you can get your vercel token from the vercel dashboard by clicking on the user icon in the top right corner
|
|
241
|
+
// and then clicking on "Account Settings" and then clicking on "Tokens" on the left sidebar.
|
|
242
|
+
token: "your_vercel_token",
|
|
243
|
+
}),
|
|
244
|
+
});
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
:::note
|
|
248
|
+
|
|
249
|
+
Set your Vercel token in your environment:
|
|
250
|
+
|
|
251
|
+
```sh
|
|
252
|
+
export VERCEL_TOKEN=your_vercel_token
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
:::
|
|
256
|
+
|
|
257
|
+
2. Build the mastra instance
|
|
258
|
+
|
|
259
|
+
```sh
|
|
260
|
+
npx mastra build
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
3. Deploy to Vercel
|
|
264
|
+
|
|
265
|
+
```sh
|
|
266
|
+
cd .mastra/output
|
|
267
|
+
vercel --prod
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
:::tip
|
|
271
|
+
|
|
272
|
+
If you haven't already, log in to Vercel CLI with `vercel login`.
|
|
273
|
+
|
|
274
|
+
:::
|
|
275
|
+
|
|
276
|
+
4. Sync with Inngest Dashboard
|
|
277
|
+
|
|
278
|
+
- Go to the [Inngest dashboard](https://app.inngest.com/env/production/apps).
|
|
279
|
+
- Click **Sync new app with Vercel** and follow the instructions.
|
|
280
|
+
- You should see your Mastra workflow registered as an app.
|
|
281
|
+
|
|
282
|
+

|
|
283
|
+
|
|
284
|
+
5. Invoke the Workflow
|
|
285
|
+
|
|
286
|
+
- In the **Functions** section, select `workflow.increment-workflow`.
|
|
287
|
+
- Click **All actions** (top right) > **Invoke**.
|
|
288
|
+
- Provide the following input:
|
|
289
|
+
|
|
290
|
+
```json
|
|
291
|
+
{
|
|
292
|
+
"data": {
|
|
293
|
+
"inputData": {
|
|
294
|
+
"value": 5
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+

|
|
301
|
+
|
|
302
|
+
6. Monitor Execution
|
|
303
|
+
|
|
304
|
+
- Go to the **Runs** tab.
|
|
305
|
+
- Click the latest run to see step-by-step execution progress.
|
|
306
|
+
|
|
307
|
+

|
|
308
|
+
|
|
309
|
+
## Advanced Usage: Adding Custom Inngest Functions
|
|
310
|
+
|
|
311
|
+
You can serve additional Inngest functions alongside your Mastra workflows by using the optional `functions` parameter in `inngestServe`.
|
|
312
|
+
|
|
313
|
+
### Creating Custom Functions
|
|
314
|
+
|
|
315
|
+
First, create your custom Inngest functions:
|
|
316
|
+
|
|
317
|
+
```ts title="src/inngest/custom-functions.ts"
|
|
318
|
+
import { inngest } from "./inngest";
|
|
319
|
+
|
|
320
|
+
// Define custom Inngest functions
|
|
321
|
+
export const customEmailFunction = inngest.createFunction(
|
|
322
|
+
{ id: "send-welcome-email" },
|
|
323
|
+
{ event: "user/registered" },
|
|
324
|
+
async ({ event }) => {
|
|
325
|
+
// Custom email logic here
|
|
326
|
+
console.log(`Sending welcome email to ${event.data.email}`);
|
|
327
|
+
return { status: "email_sent" };
|
|
328
|
+
},
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
export const customWebhookFunction = inngest.createFunction(
|
|
332
|
+
{ id: "process-webhook" },
|
|
333
|
+
{ event: "webhook/received" },
|
|
334
|
+
async ({ event }) => {
|
|
335
|
+
// Custom webhook processing
|
|
336
|
+
console.log(`Processing webhook: ${event.data.type}`);
|
|
337
|
+
return { processed: true };
|
|
338
|
+
},
|
|
339
|
+
);
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Serving Custom Functions with Workflows
|
|
343
|
+
|
|
344
|
+
Update your Mastra configuration to include the custom functions:
|
|
345
|
+
|
|
346
|
+
```ts title="src/mastra/index.ts"
|
|
347
|
+
import { Mastra } from "@mastra/core";
|
|
348
|
+
import { serve as inngestServe } from "@mastra/inngest";
|
|
349
|
+
import { incrementWorkflow } from "./workflows";
|
|
350
|
+
import { inngest } from "./inngest";
|
|
351
|
+
import {
|
|
352
|
+
customEmailFunction,
|
|
353
|
+
customWebhookFunction,
|
|
354
|
+
} from "./inngest/custom-functions";
|
|
355
|
+
|
|
356
|
+
export const mastra = new Mastra({
|
|
357
|
+
workflows: {
|
|
358
|
+
incrementWorkflow,
|
|
359
|
+
},
|
|
360
|
+
server: {
|
|
361
|
+
host: "0.0.0.0",
|
|
362
|
+
apiRoutes: [
|
|
363
|
+
{
|
|
364
|
+
path: "/api/inngest",
|
|
365
|
+
method: "ALL",
|
|
366
|
+
createHandler: async ({ mastra }) =>
|
|
367
|
+
inngestServe({
|
|
368
|
+
mastra,
|
|
369
|
+
inngest,
|
|
370
|
+
functions: [customEmailFunction, customWebhookFunction], // Add your custom functions
|
|
371
|
+
}),
|
|
372
|
+
},
|
|
373
|
+
],
|
|
374
|
+
},
|
|
375
|
+
});
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Function Registration
|
|
379
|
+
|
|
380
|
+
When you include custom functions:
|
|
381
|
+
|
|
382
|
+
1. **Mastra workflows** are automatically converted to Inngest functions with IDs like `workflow.${workflowId}`
|
|
383
|
+
2. **Custom functions** retain their specified IDs (e.g., `send-welcome-email`, `process-webhook`)
|
|
384
|
+
3. **All functions** are served together on the same `/api/inngest` endpoint
|
|
385
|
+
|
|
386
|
+
This allows you to combine Mastra's workflow orchestration with your existing Inngest functions seamlessly.
|
|
@@ -8,18 +8,18 @@ description: "Learn how to deploy a Mastra application to Netlify using the Mast
|
|
|
8
8
|
The `NetlifyDeployer` class handles deployment of standalone Mastra applications to Netlify. It manages configuration, deployment, and extends the base [Deployer](/reference/v1/deployer/) class with Netlify specific functionality.
|
|
9
9
|
|
|
10
10
|
:::warning
|
|
11
|
-
Netlify Functions use an ephemeral filesystem. Remove any usage of [LibSQLStore](/
|
|
11
|
+
Netlify Functions use an ephemeral filesystem. Remove any usage of [LibSQLStore](/reference/v1/storage/libsql) with file URLs from your Mastra configuration. Use in-memory storage (`:memory:`) or external storage providers like Turso, PostgreSQL, or Upstash.
|
|
12
12
|
:::
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
16
|
-
```bash
|
|
16
|
+
```bash
|
|
17
17
|
npm install @mastra/deployer-netlify@beta
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Usage example
|
|
21
21
|
|
|
22
|
-
```typescript title="src/mastra/index.ts"
|
|
22
|
+
```typescript title="src/mastra/index.ts"
|
|
23
23
|
import { Mastra } from "@mastra/core";
|
|
24
24
|
import { NetlifyDeployer } from "@mastra/deployer-netlify";
|
|
25
25
|
|
|
@@ -48,7 +48,7 @@ Your project is now configured with automatic deployments which occur whenever y
|
|
|
48
48
|
|
|
49
49
|
Manual deployments are also possible using the [Netlify CLI](https://docs.netlify.com/cli/get-started/). With the Netlify CLI installed run the following from your project root to deploy your application. You can also run `netlify dev` from your project root to test your Mastra application locally.
|
|
50
50
|
|
|
51
|
-
```bash
|
|
51
|
+
```bash
|
|
52
52
|
netlify deploy --prod
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -8,23 +8,22 @@ description: "Learn how to deploy a Mastra application to Vercel using the Mastr
|
|
|
8
8
|
The `VercelDeployer` class handles deployment of standalone Mastra applications to Vercel. It manages configuration, deployment, and extends the base [Deployer](/reference/v1/deployer/) class with Vercel specific functionality.
|
|
9
9
|
|
|
10
10
|
:::warning
|
|
11
|
-
Vercel Functions use an ephemeral filesystem. Remove any usage of [LibSQLStore](/
|
|
11
|
+
Vercel Functions use an ephemeral filesystem. Remove any usage of [LibSQLStore](/reference/v1/storage/libsql) with file URLs from your Mastra configuration. Use in-memory storage (`:memory:`) or external storage providers like Turso, PostgreSQL, or Upstash.
|
|
12
12
|
:::
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
16
|
-
```bash
|
|
16
|
+
```bash
|
|
17
17
|
npm install @mastra/deployer-vercel@beta
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
## Usage example
|
|
21
21
|
|
|
22
|
-
```typescript title="src/mastra/index.ts"
|
|
22
|
+
```typescript title="src/mastra/index.ts"
|
|
23
23
|
import { Mastra } from "@mastra/core";
|
|
24
24
|
import { VercelDeployer } from "@mastra/deployer-vercel";
|
|
25
25
|
|
|
26
26
|
export const mastra = new Mastra({
|
|
27
|
-
// ...
|
|
28
27
|
deployer: new VercelDeployer(),
|
|
29
28
|
});
|
|
30
29
|
```
|
|
@@ -41,7 +40,7 @@ The Vercel deployer can write a few high‑value settings into the Vercel Output
|
|
|
41
40
|
|
|
42
41
|
Example:
|
|
43
42
|
|
|
44
|
-
```ts title="src/mastra/index.ts"
|
|
43
|
+
```ts title="src/mastra/index.ts"
|
|
45
44
|
deployer: new VercelDeployer({
|
|
46
45
|
maxDuration: 600,
|
|
47
46
|
memory: 1536,
|
|
@@ -67,7 +66,7 @@ Your project is now configured with automatic deployments which occur whenever y
|
|
|
67
66
|
|
|
68
67
|
Manual deployments are also possible using the [Vercel CLI](https://vercel.com/docs/cli). With the Vercel CLI installed run the following from your project root to deploy your application.
|
|
69
68
|
|
|
70
|
-
```bash
|
|
69
|
+
```bash
|
|
71
70
|
npm run build && vercel --prod --prebuilt --archive=tgz
|
|
72
71
|
```
|
|
73
72
|
|