Initial commit
This commit is contained in:
359
skills/pocketbase/SKILL.md
Normal file
359
skills/pocketbase/SKILL.md
Normal file
@@ -0,0 +1,359 @@
|
||||
---
|
||||
name: pocketbase
|
||||
description: Comprehensive PocketBase development and deployment skill providing setup guides, schema templates, security patterns, API examples, data management scripts, and real-time integration patterns for building backend services with PocketBase.
|
||||
---
|
||||
|
||||
# PocketBase Skill - Comprehensive Reference
|
||||
|
||||
## Overview
|
||||
|
||||
This skill provides modular, searchable documentation for PocketBase development. Use the table of contents below to navigate to specific topics. The researcher-pocketbase agent can efficiently search and extract information from the reference files based on your query. PocketBase is an open source backend in 1 file. It provides a realtime database, authentication, file storage, an admin dashboard and is extendable to much more.
|
||||
|
||||
## Quick Navigation
|
||||
|
||||
### For Newcomers
|
||||
→ Start with [Getting Started](references/core/getting_started.md) for initial setup and basic concepts
|
||||
→ Review [Collections](references/core/collections.md) to understand data modeling
|
||||
→ See [Authentication](references/core/authentication.md) for user management
|
||||
→ Check [API Rules & Filters](references/core/api_rules_filters.md) for security
|
||||
|
||||
### For Implementation
|
||||
→ Browse [Schema Templates](references/templates/schema_templates.md) for pre-built data models
|
||||
→ Use [Records API](references/api/api_records.md) for CRUD operations
|
||||
→ Implement [Real-time](references/api/api_realtime.md) for live updates
|
||||
→ Follow [Files Handling](references/core/files_handling.md) for file uploads
|
||||
→ Read [Working with Relations](references/core/working_with_relations.md) for data relationships
|
||||
|
||||
### For Production
|
||||
→ See [Going to Production](references/core/going_to_production.md) for deployment
|
||||
→ Review [Security Rules](references/security_rules.md) for access control
|
||||
→ Check [API Reference](references/api_reference.md) for complete API documentation
|
||||
|
||||
### For Advanced Users
|
||||
→ Explore [Go Extensions](references/go/go_overview.md) for custom functionality
|
||||
→ Study [Event Hooks](references/go/go_event_hooks.md) for automation
|
||||
→ Learn [Database Operations](references/go/go_database.md) for advanced queries
|
||||
→ Plan data migrations with [Data Migration Workflows](references/core/data_migration.md)
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
### Core Concepts & Setup
|
||||
| Topic | Description | When to Use |
|
||||
|-------|-------------|-------------|
|
||||
| [Getting Started](references/core/getting_started.md) | Initial setup, quick start, basic concepts | First time using PocketBase, initial configuration |
|
||||
| [CLI Commands](references/core/cli_commands.md) | PocketBase CLI, serve, migrate, admin, superuser | Development workflow, server management, migrations |
|
||||
| [Collections](references/core/collections.md) | Collection types, schema design, rules, indexes | Designing data models, creating collections |
|
||||
| [Authentication](references/core/authentication.md) | User registration, login, OAuth2, JWT tokens | Building user accounts, login systems |
|
||||
| [API Rules & Filters](references/core/api_rules_filters.md) | Security rules, filtering, sorting, query optimization | Controlling data access, writing efficient queries |
|
||||
| [Files Handling](references/core/files_handling.md) | File uploads, thumbnails, CDN, security | Managing file uploads, image processing |
|
||||
| [Working with Relations](references/core/working_with_relations.md) | One-to-many, many-to-many, data relationships | Building complex data models, linking collections |
|
||||
| [Going to Production](references/core/going_to_production.md) | Deployment, security hardening, monitoring, backups | Moving from development to production |
|
||||
| [Data Migration Workflows](references/core/data_migration.md) | Import/export strategies, scripts, and tooling | Planning and executing data migrations |
|
||||
|
||||
---
|
||||
|
||||
### API Reference
|
||||
| Endpoint | Description | Reference File |
|
||||
|----------|-------------|----------------|
|
||||
| Records API | CRUD operations, pagination, filtering, batch operations | [api_records.md](references/api/api_records.md) |
|
||||
| Realtime API | WebSocket subscriptions, live updates, event handling | [api_realtime.md](references/api/api_realtime.md) |
|
||||
| Files API | File uploads, downloads, thumbnails, access control | [api_files.md](references/api/api_files.md) |
|
||||
| Collections API | Manage collections, schemas, rules, indexes | [api_collections.md](references/api/api_collections.md) |
|
||||
| Settings API | App configuration, CORS, SMTP, general settings | [api_settings.md](references/api/api_settings.md) |
|
||||
| Logs API | Access logs, authentication logs, request logs | [api_logs.md](references/api/api_logs.md) |
|
||||
| Crons API | Background jobs, scheduled tasks, automation | [api_crons.md](references/api/api_crons.md) |
|
||||
| Backups API | Database backups, data export, disaster recovery | [api_backups.md](references/api/api_backups.md) |
|
||||
| Health API | System health, metrics, performance monitoring | [api_health.md](references/api/api_health.md) |
|
||||
|
||||
---
|
||||
|
||||
### SDKs & Development Tools
|
||||
| SDK | Description | Reference File |
|
||||
|-----|-------------|----------------|
|
||||
| JavaScript SDK | Frontend integration, React, Vue, vanilla JS | [js_sdk.md](references/sdk/js_sdk.md) |
|
||||
| Go SDK | Server-side integration, custom apps | [go_sdk.md](references/sdk/go_sdk.md) |
|
||||
| Dart SDK | Mobile app integration (Flutter, etc.) | [dart_sdk.md](references/sdk/dart_sdk.md) |
|
||||
|
||||
---
|
||||
|
||||
### Go Extension Framework
|
||||
| Topic | Description | Reference File |
|
||||
|-------|-------------|----------------|
|
||||
| Go Overview | Project structure, basic concepts, getting started | [go_overview.md](references/go/go_overview.md) |
|
||||
| Event Hooks | Before/After hooks, custom logic, automation | [go_event_hooks.md](references/go/go_event_hooks.md) |
|
||||
| Routing | Custom API endpoints, middleware, handlers | [go_routing.md](references/go/go_routing.md) |
|
||||
| Database | Query builder, transactions, advanced queries | [go_database.md](references/go/go_database.md) |
|
||||
| Records | Record CRUD, validation, custom fields | [go_records.md](references/go/go_records.md) |
|
||||
| Collections | Dynamic schemas, collection management | [go_collections.md](references/go/go_collections.md) |
|
||||
| Migrations | Schema changes, version control, deployment | [go_migrations.md](references/go/go_migrations.md) |
|
||||
| Jobs & Scheduling | Background tasks, cron jobs, queues | [go_jobs_scheduling.md](references/go/go_jobs_scheduling.md) |
|
||||
| Sending Emails | SMTP configuration, templated emails | [go_sending_emails.md](references/go/go_sending_emails.md) |
|
||||
| Rendering Templates | HTML templates, email templates, PDFs | [go_rendering_templates.md](references/go/go_rendering_templates.md) |
|
||||
| Console Commands | CLI commands, migrations, maintenance | [go_console_commands.md](references/go/go_console_commands.md) |
|
||||
| Realtime | Custom realtime logic, event handling | [go_realtime.md](references/go/go_realtime.md) |
|
||||
| File System | File storage, CDN, external storage providers | [go_filesystem.md](references/go/go_filesystem.md) |
|
||||
| Logging | Structured logging, monitoring, debugging | [go_logging.md](references/go/go_logging.md) |
|
||||
| Testing | Unit tests, integration tests, test helpers | [go_testing.md](references/go/go_testing.md) |
|
||||
| Miscellaneous | Advanced features, utilities, tips | [go_miscellaneous.md](references/go/go_miscellaneous.md) |
|
||||
| Record Proxy | Dynamic record behavior, computed fields | [go_record_proxy.md](references/go/go_record_proxy.md) |
|
||||
|
||||
---
|
||||
|
||||
### Reference Materials
|
||||
| File | Description | Contents |
|
||||
|------|-------------|----------|
|
||||
| [Security Rules](references/security_rules.md) | Comprehensive security patterns | Owner-based access, role-based access, API rules |
|
||||
| [Schema Templates](references/templates/schema_templates.md) | Pre-built data models | Blog, E-commerce, Social Network, Forums, Task Management |
|
||||
| [API Reference](references/api_reference.md) | Complete API documentation | All endpoints, parameters, examples |
|
||||
|
||||
---
|
||||
|
||||
### Development Resources
|
||||
| Resource | Description | Location |
|
||||
|----------|-------------|----------|
|
||||
| Scripts | Executable utilities for development | `scripts/` directory |
|
||||
| Assets | Templates and configuration files | `assets/` directory |
|
||||
| Docker Config | Production-ready Docker setup | `assets/docker-compose.yml` |
|
||||
| Caddy Config | Automatic HTTPS configuration | `assets/Caddyfile` |
|
||||
| Frontend Template | HTML/JS integration example | `assets/frontend-template.html` |
|
||||
| Collection Schema | Blank collection template | `assets/collection-schema-template.json` |
|
||||
|
||||
---
|
||||
|
||||
## How to Use This Skill
|
||||
|
||||
### For the Researcher-Pocketbase Agent
|
||||
|
||||
This skill is designed for efficient information retrieval. When researching PocketBase topics:
|
||||
|
||||
1. **Start with Core Concepts** - Review `references/core/` for foundational knowledge
|
||||
2. **Find API Details** - Use `references/api/` for specific API endpoints
|
||||
3. **Look up Go Extensions** - Check `references/go/` for custom functionality
|
||||
4. **Find Examples** - Reference `references/templates/` and `references/security_rules.md`
|
||||
|
||||
### Topic Categories
|
||||
|
||||
**Setup & Configuration**
|
||||
- Getting Started → Initial setup and basic concepts
|
||||
- CLI Commands → Development workflow, server management
|
||||
- Going to Production → Deployment and production configuration
|
||||
- Collections → Data model design
|
||||
|
||||
**Data Management**
|
||||
- Collections → Creating and managing collections
|
||||
- Working with Relations → Linking data across collections
|
||||
- Files Handling → File uploads and storage
|
||||
|
||||
**Security & Access Control**
|
||||
- Authentication → User management
|
||||
- API Rules & Filters → Access control and queries
|
||||
- Security Rules → Comprehensive security patterns
|
||||
|
||||
**API Integration**
|
||||
- Records API → CRUD operations
|
||||
- Realtime API → Live updates
|
||||
- Files API → File management
|
||||
- Other API endpoints → Settings, logs, backups, health
|
||||
|
||||
**Frontend Development**
|
||||
- JavaScript SDK → Web integration
|
||||
- Schema Templates → Pre-built data models
|
||||
- Frontend Template → Integration example
|
||||
|
||||
**Backend Development**
|
||||
- Go SDK → Server-side integration
|
||||
- Go Extensions → Custom functionality
|
||||
- Console Commands → CLI tools
|
||||
|
||||
### Common Query Patterns
|
||||
|
||||
**"How do I..."**
|
||||
- How do I create a blog? → Schema Templates
|
||||
- How do I set up authentication? → Authentication
|
||||
- How do I upload files? → Files Handling
|
||||
- How do I add real-time updates? → Realtime API
|
||||
|
||||
**"How to configure..."**
|
||||
- How to configure production? → Going to Production
|
||||
- How to set up security rules? → API Rules & Filters, Security Rules
|
||||
- How to create custom endpoints? → Go Routing
|
||||
- How to schedule jobs? → Jobs & Scheduling
|
||||
|
||||
**"What's the best way to..."**
|
||||
- What's the best way to structure my data? → Collections, Working with Relations
|
||||
- What's the best way to secure my API? → API Rules & Filters, Security Rules
|
||||
- What's the best way to optimize queries? → API Rules & Filters
|
||||
- What's the best way to handle files? → Files Handling
|
||||
|
||||
**"Error:..."**
|
||||
- CORS errors → Authentication, Going to Production
|
||||
- Permission errors → API Rules & Filters, Security Rules
|
||||
- File upload errors → Files Handling
|
||||
- Slow queries → API Rules & Filters (indexing)
|
||||
|
||||
**"Need to implement..."**
|
||||
- Need user roles? → Authentication, Security Rules
|
||||
- Need file uploads? → Files Handling
|
||||
- Need real-time chat? → Realtime API
|
||||
- Need custom logic? → Go Extensions
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference Index
|
||||
|
||||
### Common Tasks
|
||||
- [Set up PocketBase](references/core/getting_started.md#quick-setup)
|
||||
- [Master the CLI](references/core/cli_commands.md#overview)
|
||||
- [Create collection](references/core/collections.md#creating-collections)
|
||||
- [Add authentication](references/core/authentication.md#registration)
|
||||
- [Write security rules](references/core/api_rules_filters.md#common-rule-patterns)
|
||||
- [Upload files](references/core/files_handling.md#uploading-files)
|
||||
- [Create relations](references/core/working_with_relations.md#creating-relations)
|
||||
- [Query data](references/api/api_records.md#read-records)
|
||||
- [Set up real-time](references/api/api_realtime.md#subscriptions)
|
||||
- [Deploy to production](references/core/going_to_production.md#deployment-options)
|
||||
|
||||
### Code Examples
|
||||
- [React integration](references/core/getting_started.md#react-integration)
|
||||
- [Vue.js integration](references/core/getting_started.md#vuejs-example)
|
||||
- [Create record](references/api/api_records.md#create-record)
|
||||
- [Filter queries](references/api/api_records.md#filtering)
|
||||
- [File upload](references/core/files_handling.md#single-file-upload)
|
||||
- [Custom endpoint](references/go/go_overview.md#custom-api-endpoints)
|
||||
- [Event hook](references/go/go_overview.md#event-hooks)
|
||||
|
||||
### Best Practices
|
||||
- [Schema design](references/core/collections.md#best-practices)
|
||||
- [Security rules](references/security_rules.md#best-practices)
|
||||
- [Query optimization](references/api/api_records.md#performance-tips)
|
||||
- [Production deployment](references/core/going_to_production.md#best-practices-checklist)
|
||||
|
||||
---
|
||||
|
||||
## File Locations
|
||||
|
||||
### Core Documentation
|
||||
```
|
||||
/references/core/
|
||||
├── getting_started.md # Initial setup and concepts
|
||||
├── cli_commands.md # CLI commands and server management
|
||||
├── collections.md # Data modeling and collections
|
||||
├── authentication.md # User management
|
||||
├── api_rules_filters.md # Security and querying
|
||||
├── files_handling.md # File uploads and storage
|
||||
├── working_with_relations.md # Data relationships
|
||||
└── going_to_production.md # Deployment guide
|
||||
```
|
||||
|
||||
### API Reference
|
||||
```
|
||||
/references/api/
|
||||
├── api_records.md # CRUD operations
|
||||
├── api_realtime.md # WebSocket subscriptions
|
||||
├── api_files.md # File management
|
||||
├── api_collections.md # Collection operations
|
||||
├── api_settings.md # App configuration
|
||||
├── api_logs.md # Logging
|
||||
├── api_crons.md # Background jobs
|
||||
├── api_backups.md # Backups
|
||||
└── api_health.md # Health checks
|
||||
```
|
||||
|
||||
### Go Extensions
|
||||
```
|
||||
/references/go/
|
||||
├── go_overview.md # Getting started
|
||||
├── go_event_hooks.md # Event system
|
||||
├── go_routing.md # Custom routes
|
||||
├── go_database.md # Database operations
|
||||
├── go_records.md # Record management
|
||||
├── go_collections.md # Collection management
|
||||
├── go_migrations.md # Schema changes
|
||||
├── go_jobs_scheduling.md # Background tasks
|
||||
├── go_sending_emails.md # Email integration
|
||||
├── go_rendering_templates.md # Templates
|
||||
├── go_console_commands.md # CLI tools
|
||||
├── go_realtime.md # Custom realtime
|
||||
├── go_filesystem.md # File storage
|
||||
├── go_logging.md # Logging
|
||||
├── go_testing.md # Testing
|
||||
├── go_miscellaneous.md # Advanced topics
|
||||
└── go_record_proxy.md # Dynamic behavior
|
||||
```
|
||||
|
||||
### SDKs
|
||||
```
|
||||
/references/sdk/
|
||||
├── js_sdk.md # JavaScript
|
||||
├── go_sdk.md # Go
|
||||
└── dart_sdk.md # Dart
|
||||
```
|
||||
|
||||
### Templates & Security
|
||||
```
|
||||
/references/
|
||||
├── security_rules.md # Security patterns
|
||||
├── templates/
|
||||
│ └── schema_templates.md # Pre-built schemas
|
||||
└── api_reference.md # Complete API docs
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Information Architecture
|
||||
|
||||
This skill follows a modular architecture designed for progressive disclosure:
|
||||
|
||||
1. **Quick Access** - SKILL.md provides immediate overview and navigation
|
||||
2. **Focused Topics** - Each reference file covers one specific area
|
||||
3. **Cross-References** - Files link to related topics
|
||||
4. **Examples First** - Practical code examples in each file
|
||||
5. **Searchable** - Clear titles and descriptions for quick lookup
|
||||
|
||||
### When to Use Each Section
|
||||
|
||||
**references/core/**
|
||||
- New users starting with PocketBase
|
||||
- Understanding fundamental concepts
|
||||
- Basic implementation tasks
|
||||
|
||||
**references/api/**
|
||||
- Implementing specific API features
|
||||
- Looking up endpoint details
|
||||
- API integration examples
|
||||
|
||||
**references/go/**
|
||||
- Building custom PocketBase extensions
|
||||
- Advanced functionality
|
||||
- Custom business logic
|
||||
|
||||
**references/sdk/**
|
||||
- Frontend or mobile integration
|
||||
- SDK-specific features
|
||||
- Language-specific examples
|
||||
|
||||
**references/security_rules.md**
|
||||
- Complex access control scenarios
|
||||
- Security best practices
|
||||
- Multi-tenant applications
|
||||
|
||||
**references/templates/**
|
||||
- Rapid prototyping
|
||||
- Common application patterns
|
||||
- Pre-built data models
|
||||
|
||||
---
|
||||
|
||||
## Notes for Researchers
|
||||
|
||||
This skill contains over 30 reference files covering all aspects of PocketBase development. The researcher-pocketbase agent should:
|
||||
|
||||
1. Match queries to appropriate topic areas
|
||||
2. Extract specific information from relevant files
|
||||
3. Provide comprehensive answers using multiple references
|
||||
4. Suggest related topics for further reading
|
||||
5. Identify best practices and common pitfalls
|
||||
|
||||
Each reference file is self-contained with examples, explanations, and best practices. Use the table of contents above to quickly navigate to the most relevant information for any PocketBase-related question.
|
||||
Reference in New Issue
Block a user