Open-source services and frameworks for implementing fine-grained access control based on complex entity relationships.
Django REST Framework is a toolkit for building standards-compliant web services that map complex data models to structured HTTP responses. It provides a modular architecture for handling the request lifecycle, including authentication, permission checks, and content negotiation. The framework is designed to facilitate the development of robust APIs by transforming complex data types into native formats and validating incoming request payloads against defined schemas. The project distinguishes itself through a highly modular, class-based design that allows developers to build complex views and API logic through inheritance and mixin composition. It features a powerful serialization system that automatically generates schemas from database models, alongside a flexible policy-based system for managing access control, rate limiting, and versioning. The framework also includes automated schema generation, which introspects view logic to produce interactive, machine-readable API documentation at runtime. Beyond its core serialization and view architecture, the framework provides a comprehensive suite of tools for managing the entire API lifecycle. This includes extensive support for authentication methods, content negotiation, pagination, and filtering, as well as robust error handling and testing utilities. These components are designed to be highly customizable, allowing developers to override default behaviors or implement custom logic to meet specific application requirements.
Refine is a headless framework designed for building data-intensive internal business applications, such as admin panels and dashboards. It provides a core set of hooks and architectural patterns that decouple business logic, authentication, and data operations from the user interface, allowing developers to integrate any design system while maintaining a consistent application structure. The framework distinguishes itself through a resource-centric approach that automatically maps application views to data entities via centralized configuration. It features a unified data provider interface that standardizes communication with diverse backend services, including REST and GraphQL, and employs a declarative access control layer to enforce granular, role-based security policies across the entire application. Beyond its core routing and data handling, the platform supports complex organizational workflows through modular plugins and hierarchical state management. It is built to facilitate self-hosted deployments, ensuring that teams retain full control over their data security, regulatory compliance, and infrastructure without reliance on third-party cloud providers. Comprehensive documentation is available to guide the construction of CRUD-based applications, including tools for debugging application state and monitoring system activity.
OpenFGA is a fine-grained authorization server and policy decision point that implements relationship-based access control. It serves as a centralized authorization service for evaluating access requests and managing relationship tuples across distributed microservices and multi-tenant environments. The engine combines relationship graphs with attribute-based access control, using the Common Expression Language to evaluate dynamic runtime attributes and conditional access rules. It handles complex hierarchies and nested permissions by traversing chains of associations and parent-child links to determine if a principal is authorized to perform a specific action. The system supports a wide range of operational capabilities, including authorization as code via versioned schema models, batch permission processing, and multi-backend persistence with support for PostgreSQL, MySQL, and SQLite. It provides tools for model visualization, automated deployment through continuous integration pipelines, and comprehensive observability via OpenTelemetry. The server can be installed and configured across Docker and Kubernetes environments using Helm charts.
The Model Context Protocol is a standardized communication framework designed to connect language models to external data sources, functional tools, and interactive user interfaces. It provides a vendor-neutral interface layer that enables AI hosts to discover and execute capabilities across heterogeneous service environments, using a JSON-RPC based messaging standard to facilitate bidirectional communication between clients and servers. The protocol distinguishes itself through a robust capability-based handshake that negotiates feature sets during session initialization, ensuring compatibility and supporting graceful degradation when client and server capabilities are mismatched. It enforces security through a mediation framework that manages isolated connections, implements least-privilege access controls, and provides standardized authorization flows. By executing server instances as independent, host-managed processes, the protocol maintains strict security boundaries while allowing for modular growth through a defined lifecycle for protocol extensions. Beyond its core messaging and security primitives, the protocol covers a broad range of integration needs, including structured resource access, schema-defined tool invocation, and parameterized prompt templates. It supports advanced interaction patterns such as asynchronous task management with durable handles, interactive UI rendering, and dynamic user input elicitation. The ecosystem also includes developer tooling for session management, server metadata discovery, and diagnostic inspection to assist in the integration of local and remote services.
Kratos is a centralized identity and access management server designed to handle user registration, authentication, and profile management. It functions as an identity flow orchestrator, managing the state and security of authentication processes across web, mobile, and command-line interfaces. The system provides a standards-compliant authorization server that issues tokens and manages delegated access for third-party applications and internal services, supporting multi-factor authentication and custom identity schemas to secure user accounts. The project distinguishes itself through a headless architecture that decouples identity flows from the user interface. By providing JSON-based API responses, it allows developers to build custom authentication experiences for any platform. It also implements a relationship-based access control model, which evaluates permissions by traversing a directed graph of relationships between subjects and objects. This approach enables fine-grained access control, allowing developers to model complex authorization requirements and verify user permissions dynamically across distributed software systems. Beyond core identity and authorization, the platform includes extensive developer tooling, such as language-specific client libraries and a command-line interface for managing projects and authentication sessions. It supports lifecycle extensions through hooks, allowing custom business logic to trigger after specific identity events. The system also provides robust session management using cryptographically signed tokens that track authentication assurance levels, ensuring consistent security across disparate application boundaries.
Cloudreve is a self-hosted cloud storage platform designed to provide personal and organizational file management. It functions as a web-based solution that allows users to store, organize, and share digital files across multiple devices while maintaining control over their own data infrastructure. The platform distinguishes itself through a storage backend abstraction layer, which provides a unified interface to manage files across diverse local and remote cloud providers. It incorporates a robust identity and authorization layer that supports standard OAuth 2.0 flows for secure third-party integration, alongside a persistent event notification service that streams real-time file system updates to connected clients. To maintain high performance and efficient data handling, the system utilizes a bitwise configuration management architecture. This approach encodes complex permission sets and boolean flag states into compact formats, optimizing database storage and retrieval. The platform also includes specialized tools for developers, such as token-based debug authentication and standardized URI construction for consistent file access.
SpiceDB is a distributed permission store and relationship-based access control system. It provides a scalable database for storing and querying fine-grained authorization relationships, implementing a consistency model inspired by Google Zanzibar to manage access rights across large-scale applications. The system uses a dedicated schema language to define the rules and logic governing how relationships translate into permissions independently of application code. It functions as a pluggable authorization engine that persists relationship tuples in external relational databases such as PostgreSQL, MySQL, or Spanner. The platform covers a broad range of capabilities including authorization schema management, recursive permission evaluation, and the ability to query access data via SQL. It includes infrastructure for managing data lifecycles through relationship expiration and garbage collection, as well as performance optimizations using set theory for query planning and read-replica request routing. The project can be deployed via containers and supports telemetry export for observability.
This project is a modular authentication framework designed to manage user identity, session tracking, and access control across web applications. It provides a unified solution for handling email-based credentials and social identity federation, allowing developers to implement secure login and registration flows that maintain consistent user states across client and server environments. The system utilizes a plugin-based architecture and middleware-driven request interception to allow for the extension of core authentication logic. It features type-safe schema generation, which derives database structures and API contracts directly from configuration, and employs a database-agnostic adapter pattern to interface with various storage backends. These capabilities enable the creation of custom security logic and database schemas that adapt to specific application requirements. To support development, the framework includes integrated tooling that provides context-aware knowledge to coding assistants. By configuring agent skills and connecting documentation through standardized protocols, developers can automate the implementation of authentication patterns while ensuring adherence to established conventions and security standards.
FalkorDB is a high-performance graph database management system and vector graph database. It serves as a knowledge graph construction tool and a GraphRAG knowledge store, integrating structured property graphs with vector search to provide grounded context for large language models. The engine is designed as a multi-tenant graph engine, capable of hosting thousands of isolated datasets within a single instance. The system distinguishes itself by using linear algebra for query execution, treating relationship tensors as matrix multiplications to achieve low-latency multi-hop traversals. It utilizes sparse-matrix graph storage and vectorized traversals to process thousands of relationships simultaneously. These capabilities are combined with hybrid vector-graph indexing to unify semantic similarity search with structural graph exploration. The platform covers a broad range of capabilities, including GraphRAG orchestration, AI agent memory implementation, and advanced graph analytics such as community detection and centrality ranking. It supports OpenCypher query execution and provides connectivity via the Bolt and RESP protocols. Additional functionality includes automated ontology loading, temporal data tracking, and real-time binary replication for high availability. The database supports migration from Neo4j and can be deployed as a distributed cluster or as an embedded graph engine.
ERPNext is a comprehensive enterprise resource planning suite designed to integrate core organizational functions, including accounting, inventory, human resources, and project management, into a single unified platform. It operates as a metadata-driven business application, where data structures and application logic are defined through configuration rather than hard-coded programming to facilitate rapid customization. The system distinguishes itself through a robust security and governance framework that enforces granular, role-based access control across all document operations. It features a dedicated data privacy layer that performs field-level masking, intercepting and transforming sensitive information at the application level based on user authorization. This ensures that private data remains protected while maintaining full operational functionality for authorized staff. The platform manages business processes through an event-driven workflow engine that triggers automated tasks and notifications based on document status changes. Its document-oriented persistence layer handles relationships and validation logic centrally, while server-side hooks allow for the injection of custom logic into the document lifecycle. The system is documented and distributed as a configurable framework for managing complex organizational data.
RustDesk is a cross-platform remote desktop client that enables users to initiate and receive remote sessions. It provides a complete infrastructure for self-hosted remote access, utilizing a signaling and relay server architecture to maintain connectivity when direct peer-to-peer links are unavailable. The software is designed to function across desktop and mobile environments, offering native remote control, screen sharing, and file management capabilities. What distinguishes the platform is its centralized administrative control plane, which allows for granular management of security policies, user identities, and device access permissions. Administrators can define scoped roles, implement hierarchical permission logic, and enforce security strategies across large deployments. The system supports integration with external identity providers, including OIDC and LDAP, alongside multi-factor authentication methods like TOTP to secure access to the infrastructure. The software provides extensive tools for managed environments, including automated deployment scripts, command-line configuration, and bulk policy management. It includes specialized mechanisms for handling system-level elevation, allowing remote operators to interact with administrative prompts on target machines. The server infrastructure is designed for flexibility, supporting containerized deployments and geolocation-based routing to optimize connection paths and minimize latency. Documentation and installation support cover a wide range of operating systems, providing native packages, portable formats, and guidance for running server components as persistent background services.
Ory Keto is an open-source authorization server that implements Google Zanzibar’s relationship-based access control model. It stores every access relationship as a tuple in a SQL database and exposes a declarative TypeScript-like namespace language for defining object types, relations, and permissions. The service provides bidirectional permission resolution, configurable consistency levels for checks, and dual gRPC and REST APIs for broad integration. Keto extends the Zanzibar model with edge enforcement of access policies, structured compliance auditing of permission decisions, and infrastructure-as-code management through Terraform, Pulumi, and Helm. It includes agent-level security controls with identity authentication, action authorization against the permission model, and graduated policy enforcement from observation to strict blocking. Observability is supported via OpenTelemetry, Prometheus metrics, and SIEM event streaming. The system also covers identity verification workflows, consent synchronization, automated data subject request fulfillment, and billing integrations. Deployment options include managed SaaS, on-premises, and private cloud, with containerized execution and Kubernetes Helm charts for orchestration. The project, written in Go, provides full documentation and a command-line interface for configuration and management.
LangGraph is a framework for building stateful, multi-step agentic workflows by modeling application logic as a directed graph. It provides a runtime environment where complex tasks are orchestrated through interconnected nodes and edges, allowing developers to manage state transitions, persistent memory, and control flow across long-running automated processes. The platform distinguishes itself through its native support for human-in-the-loop automation, enabling developers to define breakpoints that pause execution for manual review, modification, or approval. It also features checkpoint-based persistence, which serializes the entire graph state to external storage to facilitate fault tolerance, process recovery, and the ability to inspect or replay historical execution states for debugging. Beyond its core orchestration capabilities, the project functions as a comprehensive agent deployment platform. It includes administrative tools for scaling and monitoring agent instances, enforcing metadata-driven access control, and managing resource consumption through rate and usage limits. The system also provides real-time visibility into internal processes by streaming execution updates from individual nodes as they progress.
Hanko is an open-source identity provider and customer identity and access management system. It serves as a passkey authentication service and an OAuth and SAML SSO gateway, allowing applications to authenticate users and issue tokens via standard identity protocols. The project distinguishes itself through a strong focus on passwordless access using WebAuthn-based passkeys and email-based passcodes. It provides framework-agnostic authentication interfaces as customizable web components that can be embedded directly into web applications to handle login, registration, and profile management. The platform covers a broad range of identity capabilities, including multi-factor authentication, social login integrations, and enterprise single sign-on. It also provides comprehensive session management, role-based and attribute-based access control, and tools for synchronizing identity data via webhooks and external database integrations. The service is integrated into applications through client and server-side SDKs and supports custom branded domain mapping.
Deno is a high-performance runtime for JavaScript and TypeScript that prioritizes security and developer productivity. Built on the V8 engine, it provides a secure execution environment that enforces a default-deny security model, requiring explicit user authorization for access to system resources like the file system, network, and environment variables. The runtime natively supports modern web-standard APIs, ensuring consistent behavior and portability across different environments. What distinguishes Deno is its integrated approach to the software development lifecycle. It bundles essential utilities—including a formatter, linter, test runner, and dependency manager—directly into the runtime, eliminating the need for external build tools or complex transpilation steps. The platform features a universal module resolution system that supports remote HTTPS URLs, local paths, and standard package registries, all backed by lockfiles to ensure build determinism and supply chain security. Beyond its core runtime capabilities, Deno includes a built-in, persistent key-value database engine that supports atomic transactions and reactive data monitoring. It also provides a robust compatibility layer for the Node.js ecosystem, allowing for the seamless execution of legacy modules and native binary addons. For multi-tenant or distributed applications, the runtime offers isolated sandbox environments that manage resource constraints and security boundaries, facilitating secure code execution in shared infrastructure. The project is distributed as a single binary, providing a unified toolchain for managing dependencies, executing tasks, and configuring runtime security policies.
Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse application environments. It decouples authorization logic from application code by using a configuration-driven approach, allowing developers to define access rules and evaluation logic independently. The system supports a wide range of access control models, including role-based, attribute-based, and relationship-based patterns, which are evaluated at runtime to determine if a subject is permitted to perform an action on a resource. The project distinguishes itself through a highly modular architecture that includes adapter-based storage abstraction, enabling the engine to connect to various persistent backends for policy management. It supports complex, context-aware policy execution by allowing developers to inject custom functions for domain-specific matching and validation. Furthermore, the engine handles hierarchical role resolution and provides mechanisms for aggregating multiple policy outcomes, such as allow-override or deny-override, to resolve conflicting permissions. The platform covers a broad capability surface, including middleware integration for web frameworks, API gateways, and service mesh architectures. It offers extensive tooling for policy administration, observability, and performance optimization, such as result caching and asynchronous execution. The system also supports multi-tenancy through domain-aware authorization and provides programmatic interfaces for automating policy updates and lifecycle management. The library is designed for integration into existing stacks, offering middleware components and support for distributed deployments to ensure consistent authorization state across multiple service instances.
Authelia is a centralized identity and access management server designed to secure web applications through unified authentication and authorization. It functions as an identity authority that enables single sign-on across diverse platforms, allowing users to access multiple services with a single set of credentials. By acting as a standards-compliant provider, it facilitates secure identity propagation and token issuance for client applications. The platform distinguishes itself through its ability to integrate directly with web gateways as a reverse proxy authentication middleware, intercepting requests to validate user identity before granting access to protected resources. It enforces granular access control policies and provides robust multi-factor authentication, supporting various verification methods such as hardware security keys, mobile push notifications, and time-based one-time passwords. To maintain consistency across distributed environments, it utilizes stateless session management via encrypted cookies. Authelia offers a flexible integration surface, featuring a pluggable backend that supports multiple external directory services like LDAP alongside internal database options. Its configuration is managed through a declarative, version-controlled YAML schema, which can be further automated using environment variables. The project provides comprehensive command-line tooling for policy validation and configuration management, with native support for deployment in containerized and orchestrated environments.
This project is a service mesh platform designed to manage, secure, and observe service-to-service communication within Kubernetes clusters. It functions as a control plane that orchestrates transparent sidecar proxies, which intercept and manage network traffic to provide reliable connectivity for microservices. By automating the injection of these proxies, the platform ensures that infrastructure-level policies are applied consistently across all workloads without requiring manual configuration changes. The platform distinguishes itself through its focus on zero-trust security and cross-cluster connectivity. It enforces mutual TLS for all inter-service communication by automatically issuing and rotating short-lived cryptographic certificates, ensuring that traffic is encrypted and identities are verified. Furthermore, it provides robust multicluster capabilities, enabling unified service discovery, traffic routing, and load balancing across distinct network environments, effectively bridging distributed workloads into a single logical communication fabric. Beyond its core security and connectivity features, the project offers a comprehensive suite for traffic management and observability. It supports advanced routing strategies, including header-based and protocol-aware traffic shifting, alongside resilience patterns like circuit breaking, retries, and fault injection to maintain system stability. The observability framework collects real-time telemetry, request metrics, and distributed traces, providing deep visibility into service health, performance, and dependencies through integrated dashboards and diagnostic tools. The project is managed via a command-line interface that supports automated installation, upgrades, and cluster diagnostics to ensure operational readiness. It allows for extensive customization of proxy behavior and resource allocation through standard Kubernetes manifests and annotations, facilitating integration into diverse infrastructure environments.
Tailscale is a zero-trust networking overlay that connects distributed devices and services into a private, encrypted mesh network. By utilizing a high-performance, user-space implementation of the WireGuard protocol, it establishes secure peer-to-peer tunnels across diverse network topologies without requiring complex firewall configuration. The platform operates on a centralized control plane that manages global network state, authentication, and policy distribution, ensuring that connectivity is governed by identity rather than traditional IP-based rules. What distinguishes Tailscale is its deep integration with existing identity providers, which allows organizations to bind network access to verified user accounts and device posture. It enforces granular security through declarative access control lists and microsegmentation, enabling administrators to define precise permissions for users and services. Beyond standard connectivity, the platform includes a secure AI gateway that proxies and audits language model requests, providing centralized control over API usage, spending limits, and security guardrails. The project offers a comprehensive suite of administrative and developer tools, including infrastructure-as-code support, automated node registration, and identity-based SSH access that eliminates the need for manual key management. It also provides flexible traffic management capabilities, such as exit nodes for egress control, subnet routers for bridging isolated network segments, and public-facing service exposure through encrypted tunnels. The software is distributed as an open-source command-line daemon, supporting a wide range of operating systems and containerized environments to facilitate automated infrastructure deployment.