/bkend-storage
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets. Triggers: bkend file, bkend upload, bkend download, bkend storage, bkend presigned URL
$ npx -y skills add popup-studio-ai/bkit-claude-code --skill bkend-storage --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/bkend-storage
Context preview
The summary Claude sees to decide when to auto-load this skill.
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets. Triggers: bkend file, bkend upload, bkend download, bkend storage, bkend presigned URL
SKILL.md
bkend-storage.SKILL.mdname: bkend-storage
classification: capability
classification-reason: Pattern guidance may overlap with model's built-in knowledge as it improves
deprecation-risk: medium
effort: medium
description: |
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets.
Triggers: bkend file, bkend upload, bkend download, bkend storage, bkend presigned URL
user-invocable: false
agent: bkit:bkend-expert
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- mcp__bkend__*
imports:
- ${PLUGIN_ROOT}/templates/shared/bkend-patterns.mdbkend.ai Storage Guide
Upload Methods
| Method | Use Case | Process | |--------|----------|---------| | Single | Normal files | Presigned URL -> PUT upload -> Register metadata | | Multiple | Multiple files | Repeat single upload | | Multipart | Large files | Initialize -> Part URLs -> Complete |
Presigned URL
- Validity: 15 minutes
- PUT method with file binary
- Content-Type header required
File Visibility (4 levels)
| Level | Access | URL Type | |-------|--------|----------| | public | Anyone | CDN URL (no expiry) | | private | Owner only | Presigned URL (1 hour) | | protected | Authenticated users | Presigned URL (1 hour) | | shared | Specified targets | Presigned URL (1 hour) |
Size Limits
| Category | Max Size | |----------|----------| | Images | 10 MB | | Videos | 100 MB | | Documents | 20 MB |
Storage Categories
images, documents, media, attachments
MCP Storage Workflow
bkend MCP does NOT have dedicated storage tools. Use this workflow:
1. **Search docs**: `search_docs` with query "file upload presigned url" 2. **Get examples**: `search_docs` with query "file upload code examples" 3. **Generate code**: AI generates REST API code for file operations
Searchable Storage Docs
| Doc ID | Content | |--------|---------| | `7_code_examples_data` | CRUD + file upload code examples |
REST Storage API
| Method | Endpoint | Description | |--------|----------|-------------| | POST | /v1/files/presigned-url | Generate presigned URL | | POST | /v1/files | Register metadata (complete upload) | | GET | /v1/files | File list | | GET | /v1/files/:fileId | File detail | | PATCH | /v1/files/:fileId | Update metadata | | DELETE | /v1/files/:fileId | Delete file | | POST | /v1/files/:fileId/download-url | Generate download URL |
Multipart Upload (Large Files)
| Method | Endpoint | Description | |--------|----------|-------------| | POST | /v1/files/multipart/init | Initialize multipart upload | | POST | /v1/files/multipart/presigned-url | Get part upload URL | | POST | /v1/files/multipart/complete | Complete multipart upload | | POST | /v1/files/multipart/abort | Abort multipart upload |
Upload Flow (Single File)
1. POST /v1/files/presigned-url -> { url, fileId }
2. PUT {url} with file binary + Content-Type header
3. POST /v1/files with { fileId, filename, contentType, size, visibility }Multipart Upload Flow (Large File)
1. POST /v1/files/multipart/init -> { uploadId }
2. POST /v1/files/multipart/presigned-url -> [{ partNumber, url }]
3. PUT each part URL with file chunk
4. POST /v1/files/multipart/complete -> { file }Official Documentation (Live Reference)
For the latest storage documentation, use WebFetch:
- Storage Overview: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/storage/01-overview.md
- MCP Storage Guide: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/mcp/07-storage-tools.md
- Full TOC: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/SUMMARY.md
Read more
name: bkend-storage
classification: capability
classification-reason: Pattern guidance may overlap with model's built-in knowledge as it improves
deprecation-risk: medium
effort: medium
description: |
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets.
Triggers: bkend file, bkend upload, bkend download, bkend storage, bkend presigned URL
user-invocable: false
agent: bkit:bkend-expert
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- mcp__bkend__*
imports:
- ${PLUGIN_ROOT}/templates/shared/bkend-patterns.mdbkend.ai Storage Guide
Upload Methods
| Method | Use Case | Process | |--------|----------|---------| | Single | Normal files | Presigned URL -> PUT upload -> Register metadata | | Multiple | Multiple files | Repeat single upload | | Multipart | Large files | Initialize -> Part URLs -> Complete |
Presigned URL
- Validity: 15 minutes
- PUT method with file binary
- Content-Type header required
File Visibility (4 levels)
| Level | Access | URL Type | |-------|--------|----------| | public | Anyone | CDN URL (no expiry) | | private | Owner only | Presigned URL (1 hour) | | protected | Authenticated users | Presigned URL (1 hour) | | shared | Specified targets | Presigned URL (1 hour) |
Size Limits
| Category | Max Size | |----------|----------| | Images | 10 MB | | Videos | 100 MB | | Documents | 20 MB |
Storage Categories
images, documents, media, attachments
MCP Storage Workflow
bkend MCP does NOT have dedicated storage tools. Use this workflow:
1. **Search docs**: `search_docs` with query "file upload presigned url" 2. **Get examples**: `search_docs` with query "file upload code examples" 3. **Generate code**: AI generates REST API code for file operations
Searchable Storage Docs
| Doc ID | Content | |--------|---------| | `7_code_examples_data` | CRUD + file upload code examples |
REST Storage API
| Method | Endpoint | Description | |--------|----------|-------------| | POST | /v1/files/presigned-url | Generate presigned URL | | POST | /v1/files | Register metadata (complete upload) | | GET | /v1/files | File list | | GET | /v1/files/:fileId | File detail | | PATCH | /v1/files/:fileId | Update metadata | | DELETE | /v1/files/:fileId | Delete file | | POST | /v1/files/:fileId/download-url | Generate download URL |
Multipart Upload (Large Files)
| Method | Endpoint | Description | |--------|----------|-------------| | POST | /v1/files/multipart/init | Initialize multipart upload | | POST | /v1/files/multipart/presigned-url | Get part upload URL | | POST | /v1/files/multipart/complete | Complete multipart upload | | POST | /v1/files/multipart/abort | Abort multipart upload |
Upload Flow (Single File)
1. POST /v1/files/presigned-url -> { url, fileId }
2. PUT {url} with file binary + Content-Type header
3. POST /v1/files with { fileId, filename, contentType, size, visibility }Multipart Upload Flow (Large File)
1. POST /v1/files/multipart/init -> { uploadId }
2. POST /v1/files/multipart/presigned-url -> [{ partNumber, url }]
3. PUT each part URL with file chunk
4. POST /v1/files/multipart/complete -> { file }Official Documentation (Live Reference)
For the latest storage documentation, use WebFetch:
- Storage Overview: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/storage/01-overview.md
- MCP Storage Guide: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/en/mcp/07-storage-tools.md
- Full TOC: https://raw.githubusercontent.com/popup-studio-ai/bkend-docs/main/SUMMARY.md
A Claude Code plugin that verifies AI-generated code against its own design specs. Three commands. Anyone — even someone vibe-coding for the first time — can ship robust, production-quality software.
Repo: popup-studio-ai/bkit-claude-code
Other skills on bkit.
- /audit
View audit logs, decision traces, and session history for AI transparency. ACTION_TYPES (19 entries) include PDCA events (phase_transition, gate_passed/failed, agent_spawned/completed/failed, rollback_executed, destructive_blocked) and Sprint events (sprint_paused,
Open skill - /bkend-auth
bkend.ai authentication — email/social login, JWT tokens, RBAC, session management. Triggers: bkend auth, bkend login, bkend signup, bkend JWT, bkend RBAC
Open skill - /bkend-cookbook
bkend.ai project tutorials (todo to SaaS) and common error troubleshooting. Triggers: bkend tutorial, bkend cookbook, bkend troubleshooting
Open skill - /bkend-data
bkend.ai database — CRUD, column types, filtering, sorting, relations, indexing. Triggers: bkend table, bkend CRUD, bkend column, bkend relation, bkend data
Open skill - /bkend-quickstart
bkend.ai onboarding — MCP setup, resource hierarchy, tenant/user model, first project. Triggers: bkend quickstart, bkend onboarding, bkend setup, bkend MCP
Open skill - /bkit-evals
Run skill evals via evals/runner.js — wrapper validates skill names, captures stdout/stderr, persists JSON results. Triggers: bkit evals, evals run, skill quality, eval runner
Open skill

