Oso's Blog

Articles about authorization, and other news from Oso's engineering team

More Concise Policy Tests with “iff” and wildcards

Learn how to simplify and scale your authorization tests in Oso Cloud using assert variables and the iff operator. Write fewer test cases, validate multiple permissions at once, and ensure your access control policies stay correct as they grow.

June 27, 2025 — Greg Sarjeant
Product

Oso Sync is now GA!

Oso Sync ensures your authorization data stays consistent between your app and Oso Cloud by detecting and fixing data drift caused by issues like latency or manual changes. It supports PostgreSQL, MongoDB, and CSVs for other databases, offering both reporting and automatic updates.

June 27, 2025 — Mike Cen
Product

Building an Authorized RAG Chatbot with Oso Cloud

Use Oso Cloud, OpenAI, and Supabase to build a permissions-aware RAG chatbot, so users only see context from documents they have permission to view.

July 2, 2025 — Greg Sarjeant
Product

Duolingo’s Experience Migrating to Oso for Access Control

Duolingo migrated to Oso to simplify authorization and improve developer productivity. Previously, permission changes took hours or even days—now, they take minutes. In this interview, Tom Whittaker, Senior Engineering Manager at Duolingo, shares how Oso helped them focus on core business features instead of workarounds. Watch the full story and explore real-world authorization insights from top engineering teams.

June 27, 2025 — Hazal Mestci
Customers & Ecosystem

How to build a secure LLM chatbot?

List filtering is the process of retrieving only the data a user is authorized to access, rather than fetching everything and filtering in-memory. In an LLM chatbot, this means ensuring users only see responses or documents they have permission for. Instead of checking authorization for each item one by one, which is slow at scale, Oso Cloud provides two efficient methods: centralized filtering, where the chatbot queries Oso Cloud for a list of authorized item IDs before retrieving them from the database, and local filtering, where Oso Cloud generates a database filter to apply directly in SQL, reducing unnecessary data transfers.

July 23, 2025 — Hazal Mestci
Best Practices

Feature or Product?: Vector Databases

Accordingly, vector databases were positioned to be the next it category of data storage—following previous waves that targeted search (e.g. Elastic), unstructured data (e.g. MongoDB), and analytical data (e.g. ClickHouse). Today, however, it’s unclear if vector databases will remain a standalone category. A vector database is more of a conduit for language models—the models do the heavy-lifting, handling vectorizations (i.e. creating embeddings) and re-ranking. Accordingly, the database depends on these models to carry-out vector search. This raises the question: are vector databases actually an independent category, or is vector search just a need-to-have feature of today’s databases? 

June 27, 2025 — Graham Neray
Customers & Ecosystem

Building a Team That's Never Sink-ing

Oso’s team offsite at Hemlock Neversink was all about bonding, strategy, and fun—goat hikes, team workshops, and even casino lessons in access control. We returned recharged, motivated, and stronger than ever. Want to join us next time? We’re hiring!

June 27, 2025 — Hazal Mestci
Internals

Hey Database, What am I Authorized to See?

List filtering is the process of retrieving only the data a user is authorized to access, rather than fetching everything and filtering in-memory. In an LLM chatbot, this means ensuring users only see responses or documents they have permission for. Instead of checking authorization for each item one by one, which is slow at scale, Oso Cloud provides two efficient methods: centralized filtering, where the chatbot queries Oso Cloud for a list of authorized item IDs before retrieving them from the database, and local filtering, where Oso Cloud generates a database filter to apply directly in SQL, reducing unnecessary data transfers.

June 27, 2025 — Hazal Mestci
Best Practices

O’Reilly SuperStream: Retrieval-Augmented Generation in Production

Join our upcoming O’Reilly SuperStream: Retrieval-Augmented Generation (RAG) in Production.

June 27, 2025 — Hazal Mestci
Best Practices

Webinar: Fine-Grained Authorization in Python

We just led a webinar on Fine-Grained Authorization in Python, watch to learn more about whether it is the best approach to secure your application permissions.

June 27, 2025 — Hazal Mestci
Best Practices

Oso Bear of the Month - Evan Ziebart

Evan Ziebart, Software Engineer at Duolingo, takes us through their journey from a home-grown solution to moving to Oso and hugely simplifying their process for managing user permissions.

June 27, 2025 — Stephie Glaser
Customers & Ecosystem

The Hidden Complexity of CRM Authorization

Find out the hidden complexities of CRM authorization and learn how to do recursive authorization with Oso

June 27, 2025 — Sean Loiselle
Product

Use Oso to Help Your Customers Share Anything: Documents, Drawings, Data

Master resource-specific roles with Oso. Learn scalable permissions like Google Docs, GitHub, and Figma using Polar examples for flexible authorization.

June 27, 2025 — Sean Loiselle
Product

Implementing Fine-Grained Access Control in EMR Systems with Oso

How Oso provides EMR apps with the flexibility they need

June 27, 2025 — Sean Loiselle
Product

Local Authorization Enhancements: What’s New and Why It Matters

The updates to Oso’s Local Authorization in the V2 SDKs make it easier to build flexible authorization workflows.

June 27, 2025 — Jordan Killpack
Product

Fallback Is Now GA

Fallback ensures your app remains up and operational, even in the case of an unexpected Oso Cloud outage.

June 27, 2025 — Shaun Verch
Product

Webinar: How Google Handles Authorization at Scale

We just led a webinar on How Google handles Authorization at scale, watch to learn more about whether it is the best approach to secure your application permissions

June 27, 2025 — Hazal Mestci
Best Practices

Google Zanzibar Isn't Flexible

ReBAC - especially Google Zanzibar's implementation of it - is the wrong abstraction for authorization.

July 23, 2025 — Greg Sarjeant
Customers & Ecosystem

Announcing our new Python Client

Simplified fact management and powerful query builder API's - and much more!

June 27, 2025 — Hazal Mestci
Product

Announcing our new Go Client

Simplified fact management and powerful query builder API's - and much more!

June 27, 2025 — Hazal Mestci
Product

Is the TypeScript vs JavaScript war dumb or relevant?

A look into the pros and cons of using TypeScript versus JavaScript, plus some thoughts on why there is so much drama around them lately.

June 27, 2025 — Vijay Ramamurthy
Best Practices

Documentation So Good, You Can Take It to Prod

A new set of reference material to help users take Oso into prod

June 27, 2025 — Sean Loiselle
Best Practices

Oso Bear of the Month - Ashwyn Nair

Ashwyn Nair, Senior Software Engineer at Sensat, dives into how Oso has helped them create a safe space for their users to have full control over who can access their data.

June 27, 2025 —
Customers & Ecosystem

Announcing our new Node.js Client

Generate TypeScript types from your Polar policy - and much more!

June 27, 2025 — Vijay Ramamurthy
Product

Polar LSP: A Little Help with the Rules

Polar now has its own language server implementation, making it easier to write your authentication policies

June 27, 2025 — Jordan Killpack & Sean Loiselle
Product