extension-object-storage
The extension-object-storage skill provides off-chain file and object storage for Caffeine AI applications. It enables management of bulk data like images and videos by storing file references on-chain while offloading actual content to a storage gateway.
Is extension-object-storage safe to install?
Review the source first: our audit of extension-object-storage's source files found 1 shell command, 0 external URLs, file reads and writes (high risk). Every command and URL listed appears verbatim in the skill's source. The skill requires modifying backend configuration files and installing external dependencies. Incorrect implementation of storage methods or missing dependencies results in 403 Forbidden errors.
How we audit skills: our security review methodology.
Who is this skill for?
Developers building applications on Caffeine AI who need to store and retrieve files, images, or documents.
What can you do with it?
- Storing and displaying image galleries
- Managing video content
- Handling document uploads and downloads
- Storing bulk data files exceeding IC limits
How good is this skill?
Quality score: 5/10. The documentation is clear, provides specific code examples for both backend and frontend, and includes a troubleshooting guide for common errors.
What does the skill file contain?
# Object Storage Object storage extension for [Caffeine AI](https://caffeine.ai?utm_source=caffeine-skill&utm_medium=referral). ## Overview This skill adds off-chain file/object storage with on-chain references. The `MixinObjectStorage` mixin provides infrastructure for file operations; you track uploaded files in your own data structures using `Storage.ExternalBlob`. ## Required Setup Checklist All four steps are mandatory. Skipping any one causes `403 Forbidden: Invalid payload` at upload time. 1. **mops dependency** — add `caffeineai-object-storage` to `mops.toml` under `[dependencies]...
Frequently asked questions
Can I implement my own storage methods?
No. You must use the MixinObjectStorage mixin. Hand-written implementations of platform-reserved methods like _immutableObjectStorageCreateCertificate cause upload failures.
How do I determine the file type of an uploaded object?
Use the filename or mimeType field from your backend record. Never inspect the URL returned by getDirectURL() as it is an opaque proxy URL without a file extension.
What happens if I only install the npm package?
The storage will fail. You must install both the @caffeineai/object-storage npm package and the caffeineai-object-storage mops dependency for the system to function.
Related skills
convex-create-component
82.5KConvex developers building modular backend logic, reusable integrations, or component-based architectures
This skill guides the creation of reusable Convex components by defining isolated tables, schemas, and backend functions. It enforces architectural boundaries by requiring authentication, environment variables, and HTTP routing to remain in the parent application.
convex-migration-helper
81.1KDevelopers managing Convex database schemas who need to perform breaking changes, backfills, or table restructuring
The Convex Migration Helper provides a structured workflow for executing breaking schema changes and data migrations in Convex applications. It emphasizes a widen-migrate-narrow pattern to ensure data integrity and zero-downtime deployments using the @convex-dev/migrations component.
convex-setup-auth
80.1KDevelopers building applications on the Convex platform who need to integrate authentication providers like Clerk, Auth0, WorkOS, or Convex Auth
This skill provides a structured workflow for implementing authentication, identity mapping, and access control within Convex applications. It guides the agent to identify the appropriate auth provider, consult official documentation, and apply secure patterns for protecting backend functions.
convex-quickstart
78.3KDevelopers and AI agents building applications with Convex who need to initialize projects or integrate Convex into existing codebases
This skill automates the setup and configuration of Convex in new or existing web applications. It handles project scaffolding, environment variable generation, provider wiring, and local deployment provisioning.