From 90f9661cb8700f4ce7cadc0b7e785c55c5898983 Mon Sep 17 00:00:00 2001 From: Maria Ines Parnisari Date: Mon, 6 Jul 2026 15:57:49 -0700 Subject: [PATCH] fix: slack previews --- app/authzed/api/http-api/page.mdx | 5 +++++ app/authzed/concepts/audit-logging/page.mdx | 5 +++++ app/authzed/concepts/authzed-materialize/page.mdx | 5 +++++ app/authzed/concepts/feature-maturity/page.mdx | 5 +++++ app/authzed/concepts/management-dashboard/page.mdx | 5 +++++ app/authzed/concepts/multi-region/page.mdx | 5 +++++ app/authzed/concepts/private-networking/page.mdx | 5 +++++ app/authzed/concepts/restricted-api-access/page.mdx | 5 +++++ app/authzed/concepts/security-embargo/page.mdx | 5 +++++ app/authzed/concepts/update-channels/page.mdx | 5 +++++ app/authzed/concepts/workload-isolation/page.mdx | 5 +++++ app/authzed/guides/cloud/page.mdx | 5 +++++ app/authzed/guides/picking-a-product/page.mdx | 5 +++++ app/authzed/guides/postgres-fdw/page.mdx | 5 +++++ .../guides/setting-up-private-networking/page.mdx | 5 +++++ app/best-practices/page.mdx | 5 +++++ app/layout.tsx | 9 +++++---- app/mcp/authzed/authzed-mcp-server/page.mdx | 5 +++++ app/mcp/authzed/spicedb-dev-mcp-server/page.mdx | 5 +++++ app/mcp/page.mdx | 5 +++++ app/page.mdx | 1 + app/spicedb/api/http-api/page.mdx | 5 +++++ app/spicedb/concepts/caveats/page.mdx | 5 +++++ app/spicedb/concepts/commands/page.mdx | 5 +++++ app/spicedb/concepts/consistency/page.mdx | 5 +++++ app/spicedb/concepts/datastore-migrations/page.mdx | 5 +++++ app/spicedb/concepts/datastores/page.mdx | 5 +++++ app/spicedb/concepts/expiring-relationships/page.mdx | 5 +++++ app/spicedb/concepts/querying-data/page.mdx | 5 +++++ app/spicedb/concepts/read-after-write/page.mdx | 5 +++++ app/spicedb/concepts/reflection-apis/page.mdx | 5 +++++ app/spicedb/concepts/relationships/page.mdx | 5 +++++ app/spicedb/concepts/schema/page.mdx | 5 +++++ app/spicedb/concepts/watch/page.mdx | 5 +++++ app/spicedb/concepts/zanzibar/page.mdx | 5 +++++ app/spicedb/getting-started/client-libraries/page.mdx | 5 +++++ .../getting-started/coming-from/cancancan/page.mdx | 5 +++++ app/spicedb/getting-started/coming-from/opa/page.mdx | 5 +++++ app/spicedb/getting-started/configuration/page.mdx | 5 +++++ app/spicedb/getting-started/discovering-spicedb/page.mdx | 5 +++++ app/spicedb/getting-started/faq/page.mdx | 5 +++++ app/spicedb/getting-started/first-steps/page.mdx | 5 +++++ app/spicedb/getting-started/install/debian/page.mdx | 5 +++++ app/spicedb/getting-started/install/docker/page.mdx | 5 +++++ app/spicedb/getting-started/install/kubernetes/page.mdx | 5 +++++ app/spicedb/getting-started/install/macos/page.mdx | 5 +++++ app/spicedb/getting-started/install/rhel/page.mdx | 5 +++++ app/spicedb/getting-started/install/windows/page.mdx | 5 +++++ app/spicedb/getting-started/installing-zed/page.mdx | 5 +++++ app/spicedb/getting-started/protecting-a-blog/page.mdx | 5 +++++ app/spicedb/integrations/langchain-spicedb/page.mdx | 5 +++++ app/spicedb/integrations/pinecone/page.mdx | 5 +++++ app/spicedb/integrations/testcontainers/page.mdx | 5 +++++ app/spicedb/modeling/access-control-audit/page.mdx | 5 +++++ app/spicedb/modeling/access-control-management/page.mdx | 5 +++++ app/spicedb/modeling/attributes/page.mdx | 5 +++++ app/spicedb/modeling/composable-schemas/page.mdx | 5 +++++ app/spicedb/modeling/developing-a-schema/page.mdx | 5 +++++ app/spicedb/modeling/migrating-schema/page.mdx | 5 +++++ app/spicedb/modeling/protecting-a-list-endpoint/page.mdx | 5 +++++ app/spicedb/modeling/recursion-and-max-depth/page.mdx | 5 +++++ app/spicedb/modeling/representing-users/page.mdx | 5 +++++ .../modeling/validation-testing-debugging/page.mdx | 5 +++++ app/spicedb/ops/data/bulk-operations/page.mdx | 5 +++++ app/spicedb/ops/data/migrations/page.mdx | 5 +++++ app/spicedb/ops/data/writing-relationships/page.mdx | 5 +++++ app/spicedb/ops/deploying-spicedb-operator/page.mdx | 5 +++++ app/spicedb/ops/eks/page.mdx | 5 +++++ app/spicedb/ops/load-testing/page.mdx | 5 +++++ app/spicedb/ops/observability/page.mdx | 5 +++++ app/spicedb/ops/operator/page.mdx | 5 +++++ app/spicedb/ops/performance/page.mdx | 5 +++++ app/spicedb/ops/postgres-fdw/page.mdx | 5 +++++ app/spicedb/ops/resilience/page.mdx | 5 +++++ app/spicedb/tutorials/agentic-rag/page.mdx | 5 +++++ app/spicedb/tutorials/ai-agent-authorization/page.mdx | 5 +++++ app/spicedb/tutorials/rag-motia-spicedb/page.mdx | 5 +++++ app/spicedb/tutorials/secure-rag-pipelines/page.mdx | 5 +++++ 78 files changed, 386 insertions(+), 4 deletions(-) diff --git a/app/authzed/api/http-api/page.mdx b/app/authzed/api/http-api/page.mdx index d5644f6e..4d0b914d 100644 --- a/app/authzed/api/http-api/page.mdx +++ b/app/authzed/api/http-api/page.mdx @@ -1,3 +1,8 @@ +--- +title: "HTTP API Documentation" +description: "Interactive Swagger reference for the SpiceDB and AuthZed HTTP API, documenting available endpoints, request parameters, and response schemas." +--- + import { Swagger } from "@/components/swagger"; # HTTP API Documentation diff --git a/app/authzed/concepts/audit-logging/page.mdx b/app/authzed/concepts/audit-logging/page.mdx index fa51ed45..2ad53d6f 100644 --- a/app/authzed/concepts/audit-logging/page.mdx +++ b/app/authzed/concepts/audit-logging/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Audit Logging" +description: "AuthZed functionality that publishes detailed logs of SpiceDB API operations to log sinks like AWS Kinesis and Kinesis Firehose." +--- + import { Callout, Tabs } from "nextra/components"; # Audit Logging diff --git a/app/authzed/concepts/authzed-materialize/page.mdx b/app/authzed/concepts/authzed-materialize/page.mdx index 0c8a51af..9b186779 100644 --- a/app/authzed/concepts/authzed-materialize/page.mdx +++ b/app/authzed/concepts/authzed-materialize/page.mdx @@ -1,3 +1,8 @@ +--- +title: "AuthZed Materialize" +description: "A service that precomputes permissions to speed up checks and lookups, with WatchPermissionSets and LookupPermissionSets APIs." +--- + import { Callout } from "nextra/components"; # AuthZed Materialize diff --git a/app/authzed/concepts/feature-maturity/page.mdx b/app/authzed/concepts/feature-maturity/page.mdx index ac0b13ae..9bff323c 100644 --- a/app/authzed/concepts/feature-maturity/page.mdx +++ b/app/authzed/concepts/feature-maturity/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Feature Maturity" +description: "The three AuthZed feature maturity stages: Tech Preview, Early Access, and General Availability, and the stability each provides." +--- + # Feature Maturity In order to provide a balance between stability and the ability to adopt new functionality in its early stages, features developed by AuthZed are classified under one of three states of maturity. diff --git a/app/authzed/concepts/management-dashboard/page.mdx b/app/authzed/concepts/management-dashboard/page.mdx index 03c21249..03b3c265 100644 --- a/app/authzed/concepts/management-dashboard/page.mdx +++ b/app/authzed/concepts/management-dashboard/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Management Dashboard" +description: "A web-based application for platform operators to configure and monitor SpiceDB deployments on AuthZed Dedicated and Cloud." +--- + # Management Dashboard The Management Dashboard is a web-based application for organizations to manage SpiceDB deployments. diff --git a/app/authzed/concepts/multi-region/page.mdx b/app/authzed/concepts/multi-region/page.mdx index 34fc43d5..2f657eb2 100644 --- a/app/authzed/concepts/multi-region/page.mdx +++ b/app/authzed/concepts/multi-region/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Multi-Region Deployments" +description: "A collection of SpiceDB deployments located in different regions worldwide that all share a single datastore." +--- + # Multi-Region Deployments Multi-Region Deployments are a collection of SpiceDB deployments that can be located in various regions across the world, but that all share a single [Datastore]. diff --git a/app/authzed/concepts/private-networking/page.mdx b/app/authzed/concepts/private-networking/page.mdx index f8d0b3ac..dc8e7d69 100644 --- a/app/authzed/concepts/private-networking/page.mdx +++ b/app/authzed/concepts/private-networking/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Private Networking" +description: "AuthZed Dedicated functionality that restricts network access to trusted internal networks, illustrated with AWS PrivateLink." +--- + import { Callout } from "nextra/components"; # Private Networking diff --git a/app/authzed/concepts/restricted-api-access/page.mdx b/app/authzed/concepts/restricted-api-access/page.mdx index 3a55da9c..150b0037 100644 --- a/app/authzed/concepts/restricted-api-access/page.mdx +++ b/app/authzed/concepts/restricted-api-access/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Restricted API Access" +description: "Apply least-privilege access to the SpiceDB API using service accounts, tokens, roles, policies, and CEL expressions in AuthZed products." +--- + import { Callout, Tabs } from "nextra/components"; # Restricted API Access diff --git a/app/authzed/concepts/security-embargo/page.mdx b/app/authzed/concepts/security-embargo/page.mdx index 36f37e3b..2c19d117 100644 --- a/app/authzed/concepts/security-embargo/page.mdx +++ b/app/authzed/concepts/security-embargo/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Security Embargo" +description: "How AuthZed's security embargo program privately reports, analyzes, and resolves security vulnerabilities before public disclosure." +--- + import { Callout } from "nextra/components"; # Security Embargo diff --git a/app/authzed/concepts/update-channels/page.mdx b/app/authzed/concepts/update-channels/page.mdx index c7ca28db..40fa5486 100644 --- a/app/authzed/concepts/update-channels/page.mdx +++ b/app/authzed/concepts/update-channels/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Update Channels" +description: "How AuthZed's Rapid and Regular update channels control the flow of SpiceDB updates, with configurable update and rollout strategies." +--- + # Update Channels Update Channels dictate the flow of updates to running SpiceDB clusters. diff --git a/app/authzed/concepts/workload-isolation/page.mdx b/app/authzed/concepts/workload-isolation/page.mdx index a3296f4d..718846a9 100644 --- a/app/authzed/concepts/workload-isolation/page.mdx +++ b/app/authzed/concepts/workload-isolation/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Workload Isolation" +description: "AuthZed functionality that gives SpiceDB deployments dedicated hardware to guarantee performance and prevent noisy neighbor problems." +--- + import YouTube from "@/components/youtube-wrapper"; # Workload Isolation diff --git a/app/authzed/guides/cloud/page.mdx b/app/authzed/guides/cloud/page.mdx index 9fdd88a8..b740984b 100644 --- a/app/authzed/guides/cloud/page.mdx +++ b/app/authzed/guides/cloud/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Getting Started with AuthZed Cloud" +description: "Create a permissions system in AuthZed Cloud and configure access with service accounts, tokens, roles, and policies." +--- + import { Callout } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; diff --git a/app/authzed/guides/picking-a-product/page.mdx b/app/authzed/guides/picking-a-product/page.mdx index 22565d8c..6506955d 100644 --- a/app/authzed/guides/picking-a-product/page.mdx +++ b/app/authzed/guides/picking-a-product/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Picking the right AuthZed Product" +description: "Compare AuthZed Open Source, Cloud, Dedicated, and Enterprise across features like audit logging, isolation, and support to choose the right option." +--- + import { Callout } from "nextra/components"; # Picking the right AuthZed Product diff --git a/app/authzed/guides/postgres-fdw/page.mdx b/app/authzed/guides/postgres-fdw/page.mdx index 01f4e993..cea82037 100644 --- a/app/authzed/guides/postgres-fdw/page.mdx +++ b/app/authzed/guides/postgres-fdw/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Using Postgres FDW with AuthZed Cloud/Dedicated" +description: "Query your AuthZed Cloud or Dedicated permissions system with SQL via the Postgres FDW, using Restricted API Access tokens for authentication." +--- + import { Callout, Steps } from "nextra/components"; # Using Postgres FDW with AuthZed Cloud/Dedicated diff --git a/app/authzed/guides/setting-up-private-networking/page.mdx b/app/authzed/guides/setting-up-private-networking/page.mdx index 8c209256..0c467449 100644 --- a/app/authzed/guides/setting-up-private-networking/page.mdx +++ b/app/authzed/guides/setting-up-private-networking/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Setting up Private Networking" +description: "Step-by-step guide to configuring AuthZed Dedicated Private Networking on AWS, GCP and Azure." +--- + import { Steps } from "nextra/components"; import { Callout } from "nextra/components"; diff --git a/app/best-practices/page.mdx b/app/best-practices/page.mdx index 84c13c7f..b60d8951 100644 --- a/app/best-practices/page.mdx +++ b/app/best-practices/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Best Practices" +description: "Prioritized best practices for running SpiceDB, covering schema design, datastore tuning, consistency, API usage, and operational recommendations." +--- + # Best Practices ## Rule Categories diff --git a/app/layout.tsx b/app/layout.tsx index 5b46f693..38fb06d2 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -28,10 +28,11 @@ export const generateMetadata = async ( }, description: "Welcome to the SpiceDB and AuthZed docs site.", openGraph: { - title: { - default: "Authzed Docs", - template: "%s - Authzed Docs", - }, + // Slack builds its preview links from these tags. + // Intentionally omit `title` here: an og:title template only applies when + // a child page sets `openGraph.title` as a string, which Nextra pages + // never do. Leaving it unset lets Next.js infer og:title from the + // (already templated) page `title`, so previews show the real page name. description: description ?? undefined, }, alternates: { diff --git a/app/mcp/authzed/authzed-mcp-server/page.mdx b/app/mcp/authzed/authzed-mcp-server/page.mdx index b4045045..8ab10399 100644 --- a/app/mcp/authzed/authzed-mcp-server/page.mdx +++ b/app/mcp/authzed/authzed-mcp-server/page.mdx @@ -1,3 +1,8 @@ +--- +title: "AuthZed MCP Server" +description: "Connect AI clients to the remote AuthZed MCP server at mcp.authzed.com to search SpiceDB and AuthZed docs, APIs, and authorization pattern examples." +--- + # AuthZed MCP Server Connect your AI tools to AuthZed and SpiceDB documentation using the Model Context Protocol (MCP). diff --git a/app/mcp/authzed/spicedb-dev-mcp-server/page.mdx b/app/mcp/authzed/spicedb-dev-mcp-server/page.mdx index e209c2cd..6deb22bc 100644 --- a/app/mcp/authzed/spicedb-dev-mcp-server/page.mdx +++ b/app/mcp/authzed/spicedb-dev-mcp-server/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB Dev MCP Server" +description: "Run a local, in-memory SpiceDB dev instance over MCP to build, test, and debug schemas and permissions interactively in your AI coding assistant." +--- + import { Callout } from "nextra/components"; # SpiceDB Dev MCP Server diff --git a/app/mcp/page.mdx b/app/mcp/page.mdx index 0947aff5..b46d20f8 100644 --- a/app/mcp/page.mdx +++ b/app/mcp/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Model Context Protocol" +description: "An overview of the Model Context Protocol (MCP), how it connects LLMs to external tools and data, its security model, and AuthZed's MCP resources." +--- + # Model Context Protocol ## Overview diff --git a/app/page.mdx b/app/page.mdx index 7012444e..4c31eca7 100644 --- a/app/page.mdx +++ b/app/page.mdx @@ -1,5 +1,6 @@ --- title: Authzed Docs +description: "Documentation for SpiceDB and AuthZed products, covering schema design, APIs, datastores, consistency, deployment, and authorization concepts." --- Browse documentation for **SpiceDB** or **AuthZed Products** by selecting one below. diff --git a/app/spicedb/api/http-api/page.mdx b/app/spicedb/api/http-api/page.mdx index d5644f6e..20f9e72c 100644 --- a/app/spicedb/api/http-api/page.mdx +++ b/app/spicedb/api/http-api/page.mdx @@ -1,3 +1,8 @@ +--- +title: "HTTP API Documentation" +description: "Interactive Swagger reference for the SpiceDB HTTP API, covering permission checks, relationship reads and writes, and schema operations." +--- + import { Swagger } from "@/components/swagger"; # HTTP API Documentation diff --git a/app/spicedb/concepts/caveats/page.mdx b/app/spicedb/concepts/caveats/page.mdx index 3b4eaf08..5a322765 100644 --- a/app/spicedb/concepts/caveats/page.mdx +++ b/app/spicedb/concepts/caveats/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Caveats" +description: "How to define and use SpiceDB caveats: CEL-based conditional relationships for ABAC, parameter types, providing context via the API and zed CLI, and validation." +--- + import { Callout } from "nextra/components"; # Caveats diff --git a/app/spicedb/concepts/commands/page.mdx b/app/spicedb/concepts/commands/page.mdx index 3efc6bd7..699c5cd3 100644 --- a/app/spicedb/concepts/commands/page.mdx +++ b/app/spicedb/concepts/commands/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB CLI Command Reference" +description: "Reference for the spicedb command-line tool and its subcommands, including serve, datastore migrate, lsp, and their configuration flags." +--- + ## Reference: `spicedb` A database that stores and computes permissions diff --git a/app/spicedb/concepts/consistency/page.mdx b/app/spicedb/concepts/consistency/page.mdx index 9a1c1459..d47067ff 100644 --- a/app/spicedb/concepts/consistency/page.mdx +++ b/app/spicedb/concepts/consistency/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Consistency" +description: "How SpiceDB balances caching performance with data freshness using ZedTokens and per-request consistency levels to avoid the New Enemy Problem." +--- + import YouTube from "@/components/youtube-wrapper"; import { Callout } from "nextra/components"; diff --git a/app/spicedb/concepts/datastore-migrations/page.mdx b/app/spicedb/concepts/datastore-migrations/page.mdx index c53e0e8a..04a17056 100644 --- a/app/spicedb/concepts/datastore-migrations/page.mdx +++ b/app/spicedb/concepts/datastore-migrations/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Datastore Migrations" +description: "How to migrate a SpiceDB datastore schema using spicedb datastore migrate, plus migration compatibility, overrides, and update recommendations." +--- + import { Callout } from "nextra/components"; # Datastore Migrations diff --git a/app/spicedb/concepts/datastores/page.mdx b/app/spicedb/concepts/datastores/page.mdx index 0e2deabf..c6b2920f 100644 --- a/app/spicedb/concepts/datastores/page.mdx +++ b/app/spicedb/concepts/datastores/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Datastores" +description: "SpiceDB's supported datastores (CockroachDB, Cloud Spanner, PostgreSQL, MySQL, memdb) with usage notes, consistency considerations, and configuration parameters." +--- + import { Callout } from "nextra/components"; # Datastores diff --git a/app/spicedb/concepts/expiring-relationships/page.mdx b/app/spicedb/concepts/expiring-relationships/page.mdx index f477c225..e1c8cd02 100644 --- a/app/spicedb/concepts/expiring-relationships/page.mdx +++ b/app/spicedb/concepts/expiring-relationships/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Writing Relationships that Expire" +description: "Grant time-bound access in SpiceDB v1.40+ using expiring relationships: schema setup, the API, zed, garbage collection, and migrating off caveats." +--- + import { Callout } from "nextra/components"; import { InlinePlayground } from "@/components/playground"; diff --git a/app/spicedb/concepts/querying-data/page.mdx b/app/spicedb/concepts/querying-data/page.mdx index 8df40614..84b64661 100644 --- a/app/spicedb/concepts/querying-data/page.mdx +++ b/app/spicedb/concepts/querying-data/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Querying Data" +description: "Compare SpiceDB's data-querying APIs including CheckPermission, CheckBulkPermissions, LookupResources, LookupSubjects, ReadRelationships, and Watch." +--- + import { Callout } from "nextra/components"; # Querying Data diff --git a/app/spicedb/concepts/read-after-write/page.mdx b/app/spicedb/concepts/read-after-write/page.mdx index 7791fb14..fbec8d49 100644 --- a/app/spicedb/concepts/read-after-write/page.mdx +++ b/app/spicedb/concepts/read-after-write/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Read-After-Write Consistency" +description: "How to ensure SpiceDB permission checks reflect recently written relationships using ZedTokens, fully_consistent, or eventual consistency." +--- + import { Callout } from "nextra/components"; # Read-After-Write Consistency diff --git a/app/spicedb/concepts/reflection-apis/page.mdx b/app/spicedb/concepts/reflection-apis/page.mdx index 687e410e..79e3dd67 100644 --- a/app/spicedb/concepts/reflection-apis/page.mdx +++ b/app/spicedb/concepts/reflection-apis/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Reflection APIs" +description: "SpiceDB's Reflection APIs (ReflectSchema, DiffSchema, DependentRelations, ComputablePermissions) for inspecting stored schema structure and permission dependencies." +--- + import { Callout } from "nextra/components"; import { InlinePlayground } from "@/components/playground"; diff --git a/app/spicedb/concepts/relationships/page.mdx b/app/spicedb/concepts/relationships/page.mdx index f648bb16..7be40fe1 100644 --- a/app/spicedb/concepts/relationships/page.mdx +++ b/app/spicedb/concepts/relationships/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Relationships" +description: "How relationships work in SpiceDB: relationship syntax, graph traversals for permission checks, and strategies for writing and keeping them in sync." +--- + import { Callout } from "nextra/components"; # Relationships diff --git a/app/spicedb/concepts/schema/page.mdx b/app/spicedb/concepts/schema/page.mdx index e6148b39..6094105c 100644 --- a/app/spicedb/concepts/schema/page.mdx +++ b/app/spicedb/concepts/schema/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Schema Language Reference" +description: "Reference for the SpiceDB schema language: object type definitions, relations, permissions, arrows, wildcards, caveats, typechecking, and common patterns." +--- + import { Callout } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; import { InlinePlayground } from "@/components/playground"; diff --git a/app/spicedb/concepts/watch/page.mdx b/app/spicedb/concepts/watch/page.mdx index 7f814457..e6d3fb9e 100644 --- a/app/spicedb/concepts/watch/page.mdx +++ b/app/spicedb/concepts/watch/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Watching Relationship Changes" +description: "Use SpiceDB's streaming Watch API to monitor relationship creates, touches, and deletes, including historical updates, checkpoints, and transaction metadata." +--- + import { Callout } from "nextra/components"; import { InlinePlayground } from "@/components/playground"; diff --git a/app/spicedb/concepts/zanzibar/page.mdx b/app/spicedb/concepts/zanzibar/page.mdx index abe88775..8ab2057e 100644 --- a/app/spicedb/concepts/zanzibar/page.mdx +++ b/app/spicedb/concepts/zanzibar/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Google Zanzibar" +description: "The history and significance of Google Zanzibar, the ReBAC authorization system SpiceDB is based on, and how SpiceDB differs from it." +--- + import YouTube from "@/components/youtube-wrapper"; import ObjectTypeDiagram from "@/public/images/object-type-regex.svg"; import ObjectIDDiagram from "@/public/images/object-id-regex.svg"; diff --git a/app/spicedb/getting-started/client-libraries/page.mdx b/app/spicedb/getting-started/client-libraries/page.mdx index 650a0668..834c6a88 100644 --- a/app/spicedb/getting-started/client-libraries/page.mdx +++ b/app/spicedb/getting-started/client-libraries/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Official Client Libraries" +description: "AuthZed's official gRPC client libraries for SpiceDB in Go, Node, Python, Ruby, Java, and .NET, plus HTTP client and local development setup." +--- + import { Tabs } from "nextra/components"; # Official Client Libraries diff --git a/app/spicedb/getting-started/coming-from/cancancan/page.mdx b/app/spicedb/getting-started/coming-from/cancancan/page.mdx index 2bffbe9b..d3fbb209 100644 --- a/app/spicedb/getting-started/coming-from/cancancan/page.mdx +++ b/app/spicedb/getting-started/coming-from/cancancan/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB for Ruby on Rails CanCanCan users" +description: "How SpiceDB differs from the Ruby on Rails CanCanCan gem across models, data, and engine, and when to choose each for authorization." +--- + import { Callout } from "nextra/components"; import PSDLight from "@/public/images/ps-light.svg"; import PSDDark from "@/public/images/ps-dark.svg"; diff --git a/app/spicedb/getting-started/coming-from/opa/page.mdx b/app/spicedb/getting-started/coming-from/opa/page.mdx index bc946b68..9347e0c1 100644 --- a/app/spicedb/getting-started/coming-from/opa/page.mdx +++ b/app/spicedb/getting-started/coming-from/opa/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB for Open Policy Agent (OPA) users" +description: "How SpiceDB differs from Open Policy Agent across models, data, and engine, and when to choose a database over a policy engine for authorization." +--- + import { Callout } from "nextra/components"; import PSDLight from "@/public/images/ps-light.svg"; import PSDDark from "@/public/images/ps-dark.svg"; diff --git a/app/spicedb/getting-started/configuration/page.mdx b/app/spicedb/getting-started/configuration/page.mdx index 645f793b..d9b5aa8c 100644 --- a/app/spicedb/getting-started/configuration/page.mdx +++ b/app/spicedb/getting-started/configuration/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Configuring SpiceDB" +description: "Ways to configure SpiceDB at runtime: command-line flags, environment variables, operator config, spicedb.env dotenv files, and their order of precedence." +--- + import { Tabs } from "nextra/components"; # Configuring SpiceDB diff --git a/app/spicedb/getting-started/discovering-spicedb/page.mdx b/app/spicedb/getting-started/discovering-spicedb/page.mdx index bd9eb976..35b531a4 100644 --- a/app/spicedb/getting-started/discovering-spicedb/page.mdx +++ b/app/spicedb/getting-started/discovering-spicedb/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB Documentation" +description: "Overview of SpiceDB, the open-source Google Zanzibar-inspired database for application permissions, its history, and its core features." +--- + import { Cards } from "nextra/components"; import { faQuestion, faHand, faDollarSign } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; diff --git a/app/spicedb/getting-started/faq/page.mdx b/app/spicedb/getting-started/faq/page.mdx index 421645fa..48d1df2e 100644 --- a/app/spicedb/getting-started/faq/page.mdx +++ b/app/spicedb/getting-started/faq/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Frequently-asked Questions" +description: "Answers to common SpiceDB questions on open-source licensing, IT infrastructure, policy engines, filtering resources by access, and getting involved." +--- + # Frequently-asked Questions ## Is SpiceDB Open Source? diff --git a/app/spicedb/getting-started/first-steps/page.mdx b/app/spicedb/getting-started/first-steps/page.mdx index 8fc3dca7..02a43051 100644 --- a/app/spicedb/getting-started/first-steps/page.mdx +++ b/app/spicedb/getting-started/first-steps/page.mdx @@ -1,3 +1,8 @@ +--- +title: "First steps" +description: "A guided starting path for SpiceDB: learn core concepts, watch videos, try the Playground, install the toolchain, and go to production." +--- + import { Cards, Steps } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; import { diff --git a/app/spicedb/getting-started/install/debian/page.mdx b/app/spicedb/getting-started/install/debian/page.mdx index 5505564b..b02f33fb 100644 --- a/app/spicedb/getting-started/install/debian/page.mdx +++ b/app/spicedb/getting-started/install/debian/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on Ubuntu or Debian" +description: "How to install SpiceDB on Debian-based Linux using apt-get, snap packages, or a manual binary download for AMD64 and ARM64." +--- + import { Callout } from "nextra/components"; # Installing SpiceDB on Ubuntu or Debian diff --git a/app/spicedb/getting-started/install/docker/page.mdx b/app/spicedb/getting-started/install/docker/page.mdx index 5c30215a..79f0637a 100644 --- a/app/spicedb/getting-started/install/docker/page.mdx +++ b/app/spicedb/getting-started/install/docker/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB with Docker" +description: "How to install SpiceDB via Docker: pulling images from Docker Hub, GHCR, and Quay, plus using the debug images for troubleshooting." +--- + import { Callout } from "nextra/components"; # Installing SpiceDB with Docker diff --git a/app/spicedb/getting-started/install/kubernetes/page.mdx b/app/spicedb/getting-started/install/kubernetes/page.mdx index 08c57891..88077c24 100644 --- a/app/spicedb/getting-started/install/kubernetes/page.mdx +++ b/app/spicedb/getting-started/install/kubernetes/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on Kubernetes" +description: "How to deploy SpiceDB on Kubernetes using the SpiceDB Operator, raw kubectl manifests, or a community-maintained Helm chart." +--- + import { Callout } from "nextra/components"; # Installing SpiceDB on Kubernetes diff --git a/app/spicedb/getting-started/install/macos/page.mdx b/app/spicedb/getting-started/install/macos/page.mdx index 168db3d5..18b184e0 100644 --- a/app/spicedb/getting-started/install/macos/page.mdx +++ b/app/spicedb/getting-started/install/macos/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on macOS" +description: "How to install SpiceDB on macOS with Homebrew for Intel and M-series Macs, how to upgrade, and how to install the binary manually." +--- + # Installing SpiceDB on macOS This document outlines how to install SpiceDB for systems running Apple's macOS. diff --git a/app/spicedb/getting-started/install/rhel/page.mdx b/app/spicedb/getting-started/install/rhel/page.mdx index 52cd1f01..84040a1c 100644 --- a/app/spicedb/getting-started/install/rhel/page.mdx +++ b/app/spicedb/getting-started/install/rhel/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on RHEL or CentOS" +description: "How to install SpiceDB on RPM-based Linux distributions using dnf with the AuthZed yum repository, or via a manual binary download." +--- + # Installing SpiceDB on RHEL or CentOS This document outlines how to install SpiceDB for systems running [RPM-based Linux distributions][rpm]. diff --git a/app/spicedb/getting-started/install/windows/page.mdx b/app/spicedb/getting-started/install/windows/page.mdx index f9ba0260..b638e905 100644 --- a/app/spicedb/getting-started/install/windows/page.mdx +++ b/app/spicedb/getting-started/install/windows/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on Windows" +description: "How to install SpiceDB on Windows using Chocolatey or by manually downloading the AMD64 and ARM64 executables from the releases page." +--- + # Installing SpiceDB on Windows This document outlines how to install SpiceDB for systems running on Windows. diff --git a/app/spicedb/getting-started/installing-zed/page.mdx b/app/spicedb/getting-started/installing-zed/page.mdx index 7dfd9ed1..9589adf5 100644 --- a/app/spicedb/getting-started/installing-zed/page.mdx +++ b/app/spicedb/getting-started/installing-zed/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing Zed" +description: "How to install zed, the SpiceDB command-line client, via Debian/RPM packages, Homebrew, Docker, or source, plus a full command reference." +--- + import { Callout } from 'nextra/components' # Installing Zed diff --git a/app/spicedb/getting-started/protecting-a-blog/page.mdx b/app/spicedb/getting-started/protecting-a-blog/page.mdx index 1bbd1398..32792dad 100644 --- a/app/spicedb/getting-started/protecting-a-blog/page.mdx +++ b/app/spicedb/getting-started/protecting-a-blog/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Tutorial: Protecting a Blog Application" +description: "Step-by-step tutorial integrating SpiceDB into a blog app: install a client, write a schema, create relationships, and check permissions." +--- + import { Callout, Tabs } from "nextra/components"; # Tutorial: Protecting a Blog Application diff --git a/app/spicedb/integrations/langchain-spicedb/page.mdx b/app/spicedb/integrations/langchain-spicedb/page.mdx index 5e7a6687..fcd7e350 100644 --- a/app/spicedb/integrations/langchain-spicedb/page.mdx +++ b/app/spicedb/integrations/langchain-spicedb/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Use SpiceDB with LangChain & LangGraph for RAG & AI Agent Authorization" +description: "Enforce per-document authorization in LangChain and LangGraph RAG pipelines using the langchain-spicedb library's retriever, filter, node, and permission tools." +--- + import { Callout } from "nextra/components"; # Use SpiceDB with LangChain & LangGraph for RAG & AI Agent Authorization diff --git a/app/spicedb/integrations/pinecone/page.mdx b/app/spicedb/integrations/pinecone/page.mdx index b1cc6138..a08978ff 100644 --- a/app/spicedb/integrations/pinecone/page.mdx +++ b/app/spicedb/integrations/pinecone/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Access Control in RAG with Pinecone and SpiceDB" +description: "Add fine-grained authorization to Pinecone RAG pipelines with SpiceDB using pre-filter (LookupResources) and post-filter (CheckBulkPermissions) strategies." +--- + import { Callout } from "nextra/components"; # Access Control in RAG with Pinecone and SpiceDB diff --git a/app/spicedb/integrations/testcontainers/page.mdx b/app/spicedb/integrations/testcontainers/page.mdx index 4224799d..fd8cf646 100644 --- a/app/spicedb/integrations/testcontainers/page.mdx +++ b/app/spicedb/integrations/testcontainers/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Testing RAG Pipelines with Testcontainers and SpiceDB" +description: "Write isolated integration tests for permission-aware RAG pipelines by spinning up throwaway SpiceDB instances with Testcontainers in Python and Go." +--- + import { Callout } from "nextra/components"; # Testing RAG Pipelines with Testcontainers and SpiceDB diff --git a/app/spicedb/modeling/access-control-audit/page.mdx b/app/spicedb/modeling/access-control-audit/page.mdx index 40ab8af5..977a0334 100644 --- a/app/spicedb/modeling/access-control-audit/page.mdx +++ b/app/spicedb/modeling/access-control-audit/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Access Control Audit" +description: "Audit permissions in SpiceDB: query a user's permissions, track access grant and permission changes over time, and log API requests." +--- + import { Callout } from "nextra/components"; # Access Control Audit diff --git a/app/spicedb/modeling/access-control-management/page.mdx b/app/spicedb/modeling/access-control-management/page.mdx index 7e9336e4..66dbb552 100644 --- a/app/spicedb/modeling/access-control-management/page.mdx +++ b/app/spicedb/modeling/access-control-management/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Access-Control Management" +description: "Build access-control management UIs with SpiceDB APIs to list and modify role assignments for coarse-grained and fine-grained (custom role) models." +--- + import { Callout } from "nextra/components"; # Access-Control Management diff --git a/app/spicedb/modeling/attributes/page.mdx b/app/spicedb/modeling/attributes/page.mdx index 5b0ea522..136551cb 100644 --- a/app/spicedb/modeling/attributes/page.mdx +++ b/app/spicedb/modeling/attributes/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Attributes" +description: "Model attribute-based access control in SpiceDB using boolean attributes, loop relationships, wildcards, attribute matching, and caveats." +--- + import { InlinePlayground } from "@/components/playground"; import { Callout } from "nextra/components"; diff --git a/app/spicedb/modeling/composable-schemas/page.mdx b/app/spicedb/modeling/composable-schemas/page.mdx index 374b085e..7968928f 100644 --- a/app/spicedb/modeling/composable-schemas/page.mdx +++ b/app/spicedb/modeling/composable-schemas/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Composable Schemas" +description: "Modularize SpiceDB schemas across files with zed schema compile using import statements, partial declarations, and partial references." +--- + import { Callout, Tabs } from "nextra/components"; # Composable Schemas diff --git a/app/spicedb/modeling/developing-a-schema/page.mdx b/app/spicedb/modeling/developing-a-schema/page.mdx index aba366ab..b62c64b2 100644 --- a/app/spicedb/modeling/developing-a-schema/page.mdx +++ b/app/spicedb/modeling/developing-a-schema/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Developing a Schema" +description: "Step-by-step guide to building a SpiceDB schema: defining object types, relations, permissions, inherited permissions, and validating with assertions." +--- + import { Callout } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; import { InlinePlayground } from "@/components/playground"; diff --git a/app/spicedb/modeling/migrating-schema/page.mdx b/app/spicedb/modeling/migrating-schema/page.mdx index 2cb8261c..09515e9a 100644 --- a/app/spicedb/modeling/migrating-schema/page.mdx +++ b/app/spicedb/modeling/migrating-schema/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Migrating a Schema in SpiceDB" +description: "How to safely migrate a SpiceDB schema via WriteSchema: adding relations and permissions, removing them, and migrating data between relations." +--- + import { Callout } from "nextra/components"; # Migrating a Schema in SpiceDB diff --git a/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx b/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx index 432a9ac0..5cbb8461 100644 --- a/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx +++ b/app/spicedb/modeling/protecting-a-list-endpoint/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Protecting a List Endpoint" +description: "Three ways to enforce SpiceDB authorization on a list endpoint: filtering with LookupResources, CheckBulkPermissions, and Authzed Materialize, with tradeoffs." +--- + import { Callout } from "nextra/components"; # Protecting a List Endpoint diff --git a/app/spicedb/modeling/recursion-and-max-depth/page.mdx b/app/spicedb/modeling/recursion-and-max-depth/page.mdx index 87c5d844..b8e8517f 100644 --- a/app/spicedb/modeling/recursion-and-max-depth/page.mdx +++ b/app/spicedb/modeling/recursion-and-max-depth/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Cyclical Relationships and Traversal Limits" +description: "How SpiceDB traverses the permissions tree, the dispatch-max-depth limit, why cycles cause max depth errors, and how to detect and break them with zed." +--- + import { Callout } from "nextra/components"; # Cyclical Relationships and Traversal Limits diff --git a/app/spicedb/modeling/representing-users/page.mdx b/app/spicedb/modeling/representing-users/page.mdx index a0c64bed..5efcb961 100644 --- a/app/spicedb/modeling/representing-users/page.mdx +++ b/app/spicedb/modeling/representing-users/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Representing Users" +description: "How to choose stable subject identifiers in SpiceDB for users, anonymous visitors, and services, using external IDs, primary keys, and wildcards." +--- + import { Callout } from "nextra/components"; # Representing Users diff --git a/app/spicedb/modeling/validation-testing-debugging/page.mdx b/app/spicedb/modeling/validation-testing-debugging/page.mdx index 8ceda168..09e2bf4e 100644 --- a/app/spicedb/modeling/validation-testing-debugging/page.mdx +++ b/app/spicedb/modeling/validation-testing-debugging/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Validation, Testing, Debugging SpiceDB Schemas" +description: "Tools for validating and debugging SpiceDB schemas: assertions, expected relations, check tracing, zed validate, explain and debug flags, and GitHub Actions." +--- + import { Callout } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; diff --git a/app/spicedb/ops/data/bulk-operations/page.mdx b/app/spicedb/ops/data/bulk-operations/page.mdx index 5225a784..3fd6944e 100644 --- a/app/spicedb/ops/data/bulk-operations/page.mdx +++ b/app/spicedb/ops/data/bulk-operations/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Bulk Importing Relationships" +description: "Using SpiceDB's ImportBulkRelationships gRPC streaming call to ingest large numbers of relationships faster than WriteRelationships." +--- + import { Tabs } from "nextra/components"; # Bulk Importing Relationships diff --git a/app/spicedb/ops/data/migrations/page.mdx b/app/spicedb/ops/data/migrations/page.mdx index 56ef77b6..83dacc5f 100644 --- a/app/spicedb/ops/data/migrations/page.mdx +++ b/app/spicedb/ops/data/migrations/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Migrating from SpiceDB to SpiceDB" +description: "How to migrate data between SpiceDB instances using zed backup, with options for write-downtime or near-zero-downtime migration." +--- + import { Callout } from "nextra/components"; # Migrating from SpiceDB to SpiceDB diff --git a/app/spicedb/ops/data/writing-relationships/page.mdx b/app/spicedb/ops/data/writing-relationships/page.mdx index 9642adaa..0701ea9d 100644 --- a/app/spicedb/ops/data/writing-relationships/page.mdx +++ b/app/spicedb/ops/data/writing-relationships/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Writing relationships" +description: "Practical guidance on writing relationships to SpiceDB, covering CREATE vs TOUCH operations and how to delete relationships." +--- + import { Tabs } from "nextra/components"; import { Callout } from "nextra/components"; diff --git a/app/spicedb/ops/deploying-spicedb-operator/page.mdx b/app/spicedb/ops/deploying-spicedb-operator/page.mdx index a83039eb..a6becd4b 100644 --- a/app/spicedb/ops/deploying-spicedb-operator/page.mdx +++ b/app/spicedb/ops/deploying-spicedb-operator/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Deploying the SpiceDB Operator" +description: "Step-by-step guide to install the SpiceDB Operator on a Kubernetes cluster and create and verify a SpiceDBCluster deployment." +--- + import { Callout, Steps } from "nextra/components"; # Deploying the SpiceDB Operator diff --git a/app/spicedb/ops/eks/page.mdx b/app/spicedb/ops/eks/page.mdx index 401c4166..0273291d 100644 --- a/app/spicedb/ops/eks/page.mdx +++ b/app/spicedb/ops/eks/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Installing SpiceDB on Amazon EKS" +description: "Deploy a highly available SpiceDB cluster on Amazon EKS with TLS from cert-manager and Route53, a Postgres datastore, and a load balancer." +--- + import { Callout, Steps } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; diff --git a/app/spicedb/ops/load-testing/page.mdx b/app/spicedb/ops/load-testing/page.mdx index 560a304f..a99bd949 100644 --- a/app/spicedb/ops/load-testing/page.mdx +++ b/app/spicedb/ops/load-testing/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Load Testing SpiceDB" +description: "Build realistic SpiceDB load tests: seed representative relationship data, distribute checks and lookups, and generate load with Thumper." +--- + import { Callout, Tabs } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; diff --git a/app/spicedb/ops/observability/page.mdx b/app/spicedb/ops/observability/page.mdx index bfd00d30..1a9a6a68 100644 --- a/app/spicedb/ops/observability/page.mdx +++ b/app/spicedb/ops/observability/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Observability Tooling" +description: "How SpiceDB exposes Prometheus metrics, pprof profiling, OpenTelemetry tracing, structured logging, audit logs, and telemetry." +--- + import { Callout, Tabs } from "nextra/components"; import YouTube from "@/components/youtube-wrapper"; diff --git a/app/spicedb/ops/operator/page.mdx b/app/spicedb/ops/operator/page.mdx index 64374384..f7b648af 100644 --- a/app/spicedb/ops/operator/page.mdx +++ b/app/spicedb/ops/operator/page.mdx @@ -1,3 +1,8 @@ +--- +title: "SpiceDB Operator" +description: "Reference for the SpiceDB Operator: configuring SpiceDBCluster flags, patches, global config, and automatic or manual SpiceDB updates." +--- + # SpiceDB Operator The [SpiceDB Operator] is a [Kubernetes Operator] that can manage the installation and lifecycle of SpiceDB clusters. diff --git a/app/spicedb/ops/performance/page.mdx b/app/spicedb/ops/performance/page.mdx index 50a83708..700e463b 100644 --- a/app/spicedb/ops/performance/page.mdx +++ b/app/spicedb/ops/performance/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Improving Performance" +description: "Tune SpiceDB performance with cross-node dispatch, Materialize, schema caching, revision quantization, connection pools, and overlap strategy." +--- + import { Callout } from "nextra/components"; # Improving Performance diff --git a/app/spicedb/ops/postgres-fdw/page.mdx b/app/spicedb/ops/postgres-fdw/page.mdx index ac7b529e..e74478bd 100644 --- a/app/spicedb/ops/postgres-fdw/page.mdx +++ b/app/spicedb/ops/postgres-fdw/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Using Postgres FDW with SpiceDB" +description: "Query SpiceDB permissions, relationships, and schema with standard SQL using the experimental Postgres Foreign Data Wrapper proxy." +--- + import { Callout, Steps } from "nextra/components"; # Using Postgres FDW with SpiceDB diff --git a/app/spicedb/ops/resilience/page.mdx b/app/spicedb/ops/resilience/page.mdx index 53d0e567..8c651c59 100644 --- a/app/spicedb/ops/resilience/page.mdx +++ b/app/spicedb/ops/resilience/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Improving Resilience" +description: "Configure gRPC retry policies and diagnose ResourceExhausted errors from memory pressure and datastore connection pool contention in SpiceDB." +--- + import { Steps } from "nextra/components"; # Improving Resilience diff --git a/app/spicedb/tutorials/agentic-rag/page.mdx b/app/spicedb/tutorials/agentic-rag/page.mdx index 83f64220..13f7df11 100644 --- a/app/spicedb/tutorials/agentic-rag/page.mdx +++ b/app/spicedb/tutorials/agentic-rag/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Building Agentic RAG with SpiceDB, LangChain & Weaviate" +description: "Add a non-bypassable authorization step to an agentic RAG pipeline using SpiceDB, LangGraph, and Weaviate, with batch permission checks and fail-closed security." +--- + # Building Agentic RAG with SpiceDB, LangChain & Weaviate This guide shows how to add fine-grained authorization to a production-like RAG system using SpiceDB. Standard RAG pipelines follow a fixed `query -> retrieve -> generate` flow. This implementation adds a deterministic authorization step that agents cannot bypass. The example uses SpiceDB for authorization, [Weaviate](https://github.com/weaviate/weaviate) as the vector database, and the [LangChain-SpiceDB library](https://pypi.org/project/langchain-spicedb/). diff --git a/app/spicedb/tutorials/ai-agent-authorization/page.mdx b/app/spicedb/tutorials/ai-agent-authorization/page.mdx index 755dbb3f..a5e375e3 100644 --- a/app/spicedb/tutorials/ai-agent-authorization/page.mdx +++ b/app/spicedb/tutorials/ai-agent-authorization/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Secure AI Agents with Fine Grained Authorization" +description: "Build a RAG pipeline where AI agents can only access and summarize documents they are authorized for, with SpiceDB enforcing decisions via OpenAI, Pinecone, and LangChain." +--- + import JupyterNotebookViewer from "@/components/JupyterNotebookViewer"; # Secure AI Agents with Fine Grained Authorization diff --git a/app/spicedb/tutorials/rag-motia-spicedb/page.mdx b/app/spicedb/tutorials/rag-motia-spicedb/page.mdx index 1217fb62..f6448dd1 100644 --- a/app/spicedb/tutorials/rag-motia-spicedb/page.mdx +++ b/app/spicedb/tutorials/rag-motia-spicedb/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Build a Multi-Tenant RAG with Fine-Grain Authorization using Motia and SpiceDB" +description: "Step-by-step tutorial building a multi-tenant RAG harvest logbook with Motia's event-driven framework, OpenAI embeddings, Pinecone, and SpiceDB authorization." +--- + import { Callout } from "nextra/components"; # Build a Multi-Tenant RAG with Fine-Grain Authorization using Motia and SpiceDB diff --git a/app/spicedb/tutorials/secure-rag-pipelines/page.mdx b/app/spicedb/tutorials/secure-rag-pipelines/page.mdx index b00551a6..db7b83f0 100644 --- a/app/spicedb/tutorials/secure-rag-pipelines/page.mdx +++ b/app/spicedb/tutorials/secure-rag-pipelines/page.mdx @@ -1,3 +1,8 @@ +--- +title: "Secure Your RAG Pipelines With Fine Grained Authorization" +description: "Use SpiceDB to pre-filter and post-filter vector database queries with authorized object IDs, demonstrated with OpenAI, Pinecone, LangChain, and Jupyter." +--- + import JupyterNotebookViewer from "@/components/JupyterNotebookViewer"; # Secure Your RAG Pipelines With Fine Grained Authorization