{"catalogRevision":"cat_f13ab9a494120b5e","nodeId":"intent:connect-app-to-storage","label":"Connect app to storage","facet":"intent","nodeType":"atom","canonicalPath":"/discover/intent/connect-app-to-storage","breadcrumbs":[{"id":"discovery","label":"Agent hosting discovery","canonicalPath":"/discover/discovery","kind":"root"},{"id":"intent","label":"Tasks and intentions","canonicalPath":"/discover/intent","kind":"facet"},{"id":"intent:extend","label":"Extend","canonicalPath":"/discover/intent/extend","kind":"group"},{"id":"intent:connect-app-to-storage","label":"Connect app to storage","canonicalPath":"/discover/intent/connect-app-to-storage","kind":"atom"}],"parents":{"items":[{"id":"intent:extend","label":"Extend","canonicalPath":"/discover/intent/extend","kind":"group"}],"total":1,"offset":0,"limit":100},"children":{"items":[],"total":0,"offset":0,"limit":50},"recipes":{"items":[{"id":"page:guides:next-js:object-client","label":"Configure S3-compatible access for Next.js","canonicalPath":"/guides/next-js/object-client","kind":"recipe"},{"id":"page:guides:next-js:private-file-access","label":"Enforce private-file authorization for Next.js","canonicalPath":"/guides/next-js/private-file-access","kind":"recipe"},{"id":"page:guides:nuxt:object-client","label":"Configure S3-compatible access for Nuxt","canonicalPath":"/guides/nuxt/object-client","kind":"recipe"},{"id":"page:guides:nuxt:private-file-access","label":"Enforce private-file authorization for Nuxt","canonicalPath":"/guides/nuxt/private-file-access","kind":"recipe"},{"id":"page:guides:sveltekit:object-client","label":"Configure S3-compatible access for SvelteKit","canonicalPath":"/guides/sveltekit/object-client","kind":"recipe"},{"id":"page:guides:sveltekit:private-file-access","label":"Enforce private-file authorization for SvelteKit","canonicalPath":"/guides/sveltekit/private-file-access","kind":"recipe"},{"id":"page:guides:astro:object-client","label":"Configure S3-compatible access for Astro","canonicalPath":"/guides/astro/object-client","kind":"recipe"},{"id":"page:guides:astro:private-file-access","label":"Enforce private-file authorization for Astro","canonicalPath":"/guides/astro/private-file-access","kind":"recipe"},{"id":"page:guides:react-router:object-client","label":"Configure S3-compatible access for React Router","canonicalPath":"/guides/react-router/object-client","kind":"recipe"},{"id":"page:guides:react-router:private-file-access","label":"Enforce private-file authorization for React Router","canonicalPath":"/guides/react-router/private-file-access","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:private-file-access","label":"Enforce private-file authorization for Express","canonicalPath":"/guides/express/private-file-access","kind":"recipe"},{"id":"page:guides:fastify:object-client","label":"Configure S3-compatible access for Fastify","canonicalPath":"/guides/fastify/object-client","kind":"recipe"},{"id":"page:guides:fastify:private-file-access","label":"Enforce private-file authorization for Fastify","canonicalPath":"/guides/fastify/private-file-access","kind":"recipe"},{"id":"page:guides:nestjs:object-client","label":"Configure S3-compatible access for NestJS","canonicalPath":"/guides/nestjs/object-client","kind":"recipe"},{"id":"page:guides:nestjs:private-file-access","label":"Enforce private-file authorization for NestJS","canonicalPath":"/guides/nestjs/private-file-access","kind":"recipe"},{"id":"page:guides:hono:object-client","label":"Configure S3-compatible access for Hono","canonicalPath":"/guides/hono/object-client","kind":"recipe"},{"id":"page:guides:hono:private-file-access","label":"Enforce private-file authorization for Hono","canonicalPath":"/guides/hono/private-file-access","kind":"recipe"},{"id":"page:guides:django:object-client","label":"Configure S3-compatible access for Django","canonicalPath":"/guides/django/object-client","kind":"recipe"},{"id":"page:guides:django:private-file-access","label":"Enforce private-file authorization for Django","canonicalPath":"/guides/django/private-file-access","kind":"recipe"},{"id":"page:guides:fastapi:object-client","label":"Configure S3-compatible access for FastAPI","canonicalPath":"/guides/fastapi/object-client","kind":"recipe"},{"id":"page:guides:fastapi:private-file-access","label":"Enforce private-file authorization for FastAPI","canonicalPath":"/guides/fastapi/private-file-access","kind":"recipe"},{"id":"page:guides:flask:object-client","label":"Configure S3-compatible access for Flask","canonicalPath":"/guides/flask/object-client","kind":"recipe"},{"id":"page:guides:flask:private-file-access","label":"Enforce private-file authorization for Flask","canonicalPath":"/guides/flask/private-file-access","kind":"recipe"},{"id":"page:guides:starlette:object-client","label":"Configure S3-compatible access for Starlette","canonicalPath":"/guides/starlette/object-client","kind":"recipe"},{"id":"page:guides:starlette:private-file-access","label":"Enforce private-file authorization for Starlette","canonicalPath":"/guides/starlette/private-file-access","kind":"recipe"},{"id":"page:guides:laravel:object-client","label":"Configure S3-compatible access for Laravel","canonicalPath":"/guides/laravel/object-client","kind":"recipe"},{"id":"page:guides:laravel:private-file-access","label":"Enforce private-file authorization for Laravel","canonicalPath":"/guides/laravel/private-file-access","kind":"recipe"},{"id":"page:guides:symfony:object-client","label":"Configure S3-compatible access for Symfony","canonicalPath":"/guides/symfony/object-client","kind":"recipe"},{"id":"page:guides:symfony:private-file-access","label":"Enforce private-file authorization for Symfony","canonicalPath":"/guides/symfony/private-file-access","kind":"recipe"},{"id":"page:guides:rails:object-client","label":"Configure S3-compatible access for Rails","canonicalPath":"/guides/rails/object-client","kind":"recipe"},{"id":"page:guides:rails:private-file-access","label":"Enforce private-file authorization for Rails","canonicalPath":"/guides/rails/private-file-access","kind":"recipe"},{"id":"page:guides:sinatra:object-client","label":"Configure S3-compatible access for Sinatra","canonicalPath":"/guides/sinatra/object-client","kind":"recipe"},{"id":"page:guides:sinatra:private-file-access","label":"Enforce private-file authorization for Sinatra","canonicalPath":"/guides/sinatra/private-file-access","kind":"recipe"},{"id":"page:guides:gin:object-client","label":"Configure S3-compatible access for Gin","canonicalPath":"/guides/gin/object-client","kind":"recipe"},{"id":"page:guides:gin:private-file-access","label":"Enforce private-file authorization for Gin","canonicalPath":"/guides/gin/private-file-access","kind":"recipe"},{"id":"page:guides:echo:object-client","label":"Configure S3-compatible access for Echo","canonicalPath":"/guides/echo/object-client","kind":"recipe"},{"id":"page:guides:echo:private-file-access","label":"Enforce private-file authorization for Echo","canonicalPath":"/guides/echo/private-file-access","kind":"recipe"},{"id":"page:guides:spring-boot:object-client","label":"Configure S3-compatible access for Spring Boot","canonicalPath":"/guides/spring-boot/object-client","kind":"recipe"},{"id":"page:guides:spring-boot:private-file-access","label":"Enforce private-file authorization for Spring Boot","canonicalPath":"/guides/spring-boot/private-file-access","kind":"recipe"},{"id":"page:guides:quarkus:object-client","label":"Configure S3-compatible access for Quarkus","canonicalPath":"/guides/quarkus/object-client","kind":"recipe"},{"id":"page:guides:quarkus:private-file-access","label":"Enforce private-file authorization for Quarkus","canonicalPath":"/guides/quarkus/private-file-access","kind":"recipe"},{"id":"page:guides:asp-net-core:object-client","label":"Configure S3-compatible access for ASP.NET Core","canonicalPath":"/guides/asp-net-core/object-client","kind":"recipe"},{"id":"page:guides:asp-net-core:private-file-access","label":"Enforce private-file authorization for ASP.NET Core","canonicalPath":"/guides/asp-net-core/private-file-access","kind":"recipe"},{"id":"page:guides:axum:object-client","label":"Configure S3-compatible access for Axum","canonicalPath":"/guides/axum/object-client","kind":"recipe"},{"id":"page:guides:axum:private-file-access","label":"Enforce private-file authorization for Axum","canonicalPath":"/guides/axum/private-file-access","kind":"recipe"},{"id":"page:guides:phoenix:object-client","label":"Configure S3-compatible access for Phoenix","canonicalPath":"/guides/phoenix/object-client","kind":"recipe"},{"id":"page:guides:phoenix:private-file-access","label":"Enforce private-file authorization for Phoenix","canonicalPath":"/guides/phoenix/private-file-access","kind":"recipe"}],"total":48,"offset":0,"limit":50},"related":[],"requiredBy":{"items":[],"total":0,"offset":0,"limit":50},"publishedRecipeCount":48,"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":"Connect app to storage"}},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:guides:next-js:object-client","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Aguides%3Anext-js%3Aobject-client","origin":"api","parameters":{"recipeId":"page:guides:next-js:object-client"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:guides:next-js:private-file-access","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Aguides%3Anext-js%3Aprivate-file-access","origin":"api","parameters":{"recipeId":"page:guides:next-js:private-file-access"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:guides:nuxt:object-client","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Aguides%3Anuxt%3Aobject-client","origin":"api","parameters":{"recipeId":"page:guides:nuxt:object-client"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:guides:nuxt:private-file-access","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Aguides%3Anuxt%3Aprivate-file-access","origin":"api","parameters":{"recipeId":"page:guides:nuxt:private-file-access"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:guides:sveltekit:object-client","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Aguides%3Asveltekit%3Aobject-client","origin":"api","parameters":{"recipeId":"page:guides:sveltekit:object-client"},"requiresAuthentication":false,"requiresApproval":false}]}