{"catalogRevision":"cat_f13ab9a494120b5e","nodeId":"stack:framework-express","label":"Express","facet":"stack","nodeType":"atom","canonicalPath":"/discover/stack/framework-express","breadcrumbs":[{"id":"discovery","label":"Agent hosting discovery","canonicalPath":"/discover/discovery","kind":"root"},{"id":"stack","label":"Frameworks and execution targets","canonicalPath":"/discover/stack","kind":"facet"},{"id":"stack:frameworks","label":"Frameworks","canonicalPath":"/discover/stack/frameworks","kind":"group"},{"id":"stack:framework-express","label":"Express","canonicalPath":"/discover/stack/framework-express","kind":"atom"}],"parents":{"items":[{"id":"stack:frameworks","label":"Frameworks","canonicalPath":"/discover/stack/frameworks","kind":"group"}],"total":1,"offset":0,"limit":100},"children":{"items":[],"total":0,"offset":0,"limit":50},"recipes":{"items":[{"id":"page:recipes:rest-api:express:persistent-state","label":"Host rest api with Express: Postgres-backed state","canonicalPath":"/recipes/rest-api/express/persistent-state","kind":"recipe"},{"id":"page:recipes:rest-api:express:artifact-storage","label":"Host rest api with Express: stored input and output artifacts","canonicalPath":"/recipes/rest-api/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:rest-api:express:response-streaming","label":"Host rest api with Express: streamed responses","canonicalPath":"/recipes/rest-api/express/response-streaming","kind":"recipe"},{"id":"page:recipes:rest-api:express:worker-state","label":"Host rest api with Express: worker execution and job state","canonicalPath":"/recipes/rest-api/express/worker-state","kind":"recipe"},{"id":"page:recipes:graphql-api:express:persistent-state","label":"Host graphql api with Express: Postgres-backed state","canonicalPath":"/recipes/graphql-api/express/persistent-state","kind":"recipe"},{"id":"page:recipes:graphql-api:express:artifact-storage","label":"Host graphql api with Express: stored input and output artifacts","canonicalPath":"/recipes/graphql-api/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:graphql-api:express:response-streaming","label":"Host graphql api with Express: streamed responses","canonicalPath":"/recipes/graphql-api/express/response-streaming","kind":"recipe"},{"id":"page:recipes:graphql-api:express:worker-state","label":"Host graphql api with Express: worker execution and job state","canonicalPath":"/recipes/graphql-api/express/worker-state","kind":"recipe"},{"id":"page:recipes:mobile-backend:express:persistent-state","label":"Host mobile backend with Express: Postgres-backed state","canonicalPath":"/recipes/mobile-backend/express/persistent-state","kind":"recipe"},{"id":"page:recipes:mobile-backend:express:artifact-storage","label":"Host mobile backend with Express: stored input and output artifacts","canonicalPath":"/recipes/mobile-backend/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:mobile-backend:express:response-streaming","label":"Host mobile backend with Express: streamed responses","canonicalPath":"/recipes/mobile-backend/express/response-streaming","kind":"recipe"},{"id":"page:recipes:mobile-backend:express:worker-state","label":"Host mobile backend with Express: worker execution and job state","canonicalPath":"/recipes/mobile-backend/express/worker-state","kind":"recipe"},{"id":"page:recipes:mcp-server:express:persistent-state","label":"Host mcp server with Express: Postgres-backed state","canonicalPath":"/recipes/mcp-server/express/persistent-state","kind":"recipe"},{"id":"page:recipes:mcp-server:express:artifact-storage","label":"Host mcp server with Express: stored input and output artifacts","canonicalPath":"/recipes/mcp-server/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:mcp-server:express:response-streaming","label":"Host mcp server with Express: streamed responses","canonicalPath":"/recipes/mcp-server/express/response-streaming","kind":"recipe"},{"id":"page:recipes:mcp-server:express:worker-state","label":"Host mcp server with Express: worker execution and job state","canonicalPath":"/recipes/mcp-server/express/worker-state","kind":"recipe"},{"id":"page:recipes:ai-chat-application:express:persistent-state","label":"Host ai chat application with Express: Postgres-backed state","canonicalPath":"/recipes/ai-chat-application/express/persistent-state","kind":"recipe"},{"id":"page:recipes:ai-chat-application:express:artifact-storage","label":"Host ai chat application with Express: stored input and output artifacts","canonicalPath":"/recipes/ai-chat-application/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:ai-chat-application:express:response-streaming","label":"Host ai chat application with Express: streamed responses","canonicalPath":"/recipes/ai-chat-application/express/response-streaming","kind":"recipe"},{"id":"page:recipes:ai-chat-application:express:worker-state","label":"Host ai chat application with Express: worker execution and job state","canonicalPath":"/recipes/ai-chat-application/express/worker-state","kind":"recipe"},{"id":"page:recipes:ai-workflow-runner:express:persistent-state","label":"Host ai workflow runner with Express: Postgres-backed state","canonicalPath":"/recipes/ai-workflow-runner/express/persistent-state","kind":"recipe"},{"id":"page:recipes:ai-workflow-runner:express:artifact-storage","label":"Host ai workflow runner with Express: stored input and output artifacts","canonicalPath":"/recipes/ai-workflow-runner/express/artifact-storage","kind":"recipe"},{"id":"page:recipes:ai-workflow-runner:express:response-streaming","label":"Host ai workflow runner with Express: streamed responses","canonicalPath":"/recipes/ai-workflow-runner/express/response-streaming","kind":"recipe"},{"id":"page:recipes:ai-workflow-runner:express:worker-state","label":"Host ai workflow runner with Express: worker execution and job state","canonicalPath":"/recipes/ai-workflow-runner/express/worker-state","kind":"recipe"},{"id":"page:migrate:vercel-app:express","label":"Migrate Vercel app: Express","canonicalPath":"/migrate/vercel-app/express","kind":"recipe"},{"id":"page:migrate:netlify-web-app:express","label":"Migrate Netlify web app: Express","canonicalPath":"/migrate/netlify-web-app/express","kind":"recipe"},{"id":"page:migrate:heroku-app:express","label":"Migrate Heroku app: Express","canonicalPath":"/migrate/heroku-app/express","kind":"recipe"},{"id":"page:migrate:render-web-service:express","label":"Migrate Render web service: Express","canonicalPath":"/migrate/render-web-service/express","kind":"recipe"},{"id":"page:migrate:railway-app:express","label":"Migrate Railway app: Express","canonicalPath":"/migrate/railway-app/express","kind":"recipe"},{"id":"page:migrate:fly-io-app:express","label":"Migrate Fly.io app: Express","canonicalPath":"/migrate/fly-io-app/express","kind":"recipe"},{"id":"page:migrate:aws-ec2-app:express","label":"Migrate AWS EC2 app: Express","canonicalPath":"/migrate/aws-ec2-app/express","kind":"recipe"},{"id":"page:migrate:digitalocean-droplet-app:express","label":"Migrate DigitalOcean Droplet app: Express","canonicalPath":"/migrate/digitalocean-droplet-app/express","kind":"recipe"},{"id":"page:guides:express:build-and-start","label":"Configure build and start for Express","canonicalPath":"/guides/express/build-and-start","kind":"recipe"},{"id":"page:guides:express:database-connection","label":"Connect Postgres for Express","canonicalPath":"/guides/express/database-connection","kind":"recipe"},{"id":"page:guides:express:schema-changes","label":"Apply database schema changes for Express","canonicalPath":"/guides/express/schema-changes","kind":"recipe"},{"id":"page:guides:express:object-client","label":"Configure S3-compatible access for Express","canonicalPath":"/guides/express/object-client","kind":"recipe"},{"id":"page:guides:express:cdn-assets","label":"Deliver public assets through CDN for Express","canonicalPath":"/guides/express/cdn-assets","kind":"recipe"},{"id":"page:guides:express:configuration-secrets","label":"Configure environment and secrets for Express","canonicalPath":"/guides/express/configuration-secrets","kind":"recipe"},{"id":"page:guides:express:private-file-access","label":"Enforce private-file authorization for Express","canonicalPath":"/guides/express/private-file-access","kind":"recipe"},{"id":"page:guides:express:deployment-diagnostics","label":"Diagnose deployment failures for Express","canonicalPath":"/guides/express/deployment-diagnostics","kind":"recipe"}],"total":40,"offset":0,"limit":50},"related":[],"requiredBy":{"items":[],"total":0,"offset":0,"limit":50},"publishedRecipeCount":40,"nextActions":[{"actionId":"browse-catalog","label":"Browse the catalog index","operationId":"catalog_index","method":"GET","relativePath":"/v1/catalog","origin":"api","parameters":{},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"search-recipes","label":"Search published recipes by intent, stack and constraints","operationId":"search_recipes","method":"POST","relativePath":"/v1/catalog/search","origin":"api","parameters":{"body":{"limit":5,"query":"Express"}},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:rest-api:express:persistent-state","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Arest-api%3Aexpress%3Apersistent-state","origin":"api","parameters":{"recipeId":"page:recipes:rest-api:express:persistent-state"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:rest-api:express:artifact-storage","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Arest-api%3Aexpress%3Aartifact-storage","origin":"api","parameters":{"recipeId":"page:recipes:rest-api:express:artifact-storage"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:rest-api:express:response-streaming","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Arest-api%3Aexpress%3Aresponse-streaming","origin":"api","parameters":{"recipeId":"page:recipes:rest-api:express:response-streaming"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:rest-api:express:worker-state","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Arest-api%3Aexpress%3Aworker-state","origin":"api","parameters":{"recipeId":"page:recipes:rest-api:express:worker-state"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:recipes:graphql-api:express:persistent-state","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Arecipes%3Agraphql-api%3Aexpress%3Apersistent-state","origin":"api","parameters":{"recipeId":"page:recipes:graphql-api:express:persistent-state"},"requiresAuthentication":false,"requiresApproval":false}]}