spicedb

Document SpiceDB APIs for managing relationships, permissions, and schemas.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/pepegar/nix-home --skill spicedb
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: spicedb
Source: https://github.com/pepegar/nix-home/tree/main/skills/spicedb
Command: npx skills add https://github.com/pepegar/nix-home --skill spicedb

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides comprehensive documentation and API references for interacting with SpiceDB, an open-source database designed for managing fine-grained authorization data and answering complex permission queries.

Core Features & Use Cases

  • API Interaction: Guides users on using client libraries (Go, Python, Node.js, Java, Ruby, .NET) for various SpiceDB operations like checking permissions, writing relationships, and managing schemas.
  • Schema Definition: Explains the Spice Schema Language for defining relationships, permissions, and caveats.
  • Consistency Management: Details different consistency modes (Minimize Latency, At Least As Fresh, At Exact Snapshot, Fully Consistent) and their implications.
  • Use Case: Implement Role-Based Access Control (RBAC) or Relationship-Based Access Control (ReBAC) for your application by defining user roles, resource ownership, and permission rules within SpiceDB.

Quick Start

Use the spicedb skill to check if user 'alice' has 'view' permission on document '1'.

Frequently Asked Questions about spicedb

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement fine-grained access control using SpiceDB?

To implement fine-grained access control with SpiceDB, you define relationships, permissions, and caveats using the Spice Schema Language, then use client libraries to check permissions and manage authorization data. This enables complex permission queries for your application.

What is the difference between RBAC and ReBAC when defining permissions?

Role-Based Access Control (RBAC) manages permissions through defined user roles, while Relationship-Based Access Control (ReBAC) evaluates resource ownership and relationships. SpiceDB supports both models by allowing you to define relationship rules and permission logic within its schema.

How do I check user permissions in SpiceDB using client libraries?

You check user permissions in SpiceDB by utilizing its client libraries across languages like Go, Python, Node.js, and Java. These libraries provide methods to query whether a user has a specific permission on a resource, such as verifying if user 'alice' has 'view' access.

What consistency modes are available for permission queries in SpiceDB?

SpiceDB offers four consistency modes for permission queries: Minimize Latency, At Least As Fresh, At Exact Snapshot, and Fully Consistent. These modes allow you to balance query speed against data freshness according to your application's requirements.

Can I manage SpiceDB schemas and relationships using the command line interface?

Yes, you can manage SpiceDB schemas and relationships using its command line interface operations. The CLI allows you to interact directly with the authorization database to write relationships and manage schemas for fine-grained access control.

Does SpiceDB support adding conditional logic to authorization rules?

Yes, SpiceDB supports adding conditional logic to authorization rules through caveats. You can define caveats within the Spice Schema Language to apply context-aware conditions to your relationships and permissions.