| name | harper-best-practices | ||||
|---|---|---|---|---|---|
| description | Best practices for building Harper applications, covering schema definition, automatic APIs, authentication, custom resources, and data handling. Triggers on tasks involving Harper database design, API implementation, and deployment. | ||||
| license | Apache-2.0 | ||||
| metadata |
|
Guidelines for building scalable, secure, and performant applications on Harper. These practices cover everything from initial schema design to advanced deployment strategies.
Reference these guidelines when:
- Defining or modifying database schemas
- Implementing or extending REST/WebSocket APIs
- Handling authentication and session management
- Working with custom resources and extensions
- Optimizing data storage and retrieval (Blobs, Vector Indexing)
- Deploying applications to Harper Fabric
- Review the requirements for the task (schema design, API needs, or infrastructure setup).
- Consult the relevant category under "Rule Categories by Priority" to understand the impact of your decisions.
- Apply specific rules from the "Quick Reference" section below by reading their detailed rule files.
- If you're building a new table, prioritize the
schema-rules. - If you're extending functionality, consult the
logic-andapi-rules. - Validate your implementation against the
ops-rules before deployment.
See the concrete examples embedded in each rule subsection below (GraphQL schemas, REST query patterns, and deployment workflow snippets).
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Schema & Data Design | HIGH | schema- |
| 2 | API & Communication | HIGH | api- |
| 3 | Logic & Extension | MEDIUM | logic- |
| 4 | Infrastructure & Ops | MEDIUM | ops- |
adding-tables-with-schemas- Define tables using GraphQL schemas and directivesschema-design-tooling- Core directives and GraphQL IDE/agent configurationdefining-relationships- Link tables using the@relationshipdirectivevector-indexing- Efficient similarity search with vector indexesusing-blob-datatype- Store and retrieve large data (Blobs)handling-binary-data- Manage binary data like images or MP3s
automatic-apis- Leverage automatically generated CRUD endpointsquerying-rest-apis- Filters, sorting, and pagination in REST requestsreal-time-apps- WebSockets and Pub/Sub for Real-Time Appschecking-authentication- Secure apps with session-based identity verification
custom-resources- Define custom REST endpoints using JS/TSextending-tables- Add custom logic to generated table resourcesprogrammatic-table-requests- Advanced filtering and sorting in codetypescript-type-stripping- Use TypeScript without build toolscaching- Implement and define caching for performance
deploying-to-harper-fabric- Scale globally with Harper Fabriccreating-a-fabric-account-and-cluster- Setting up your Harper Fabric cloud infrastructurecreating-harper-apps- Quickstart withnpm create harper@latestserving-web-content- Ways to serve web content from Harper
Read individual rule files for detailed explanations and code examples:
rules/adding-tables-with-schemas.md
rules/schema-design-tooling.md
rules/automatic-apis.md
rules/creating-harper-apps.md
For the complete guide with all rules expanded: AGENTS.md