25 repositorios
Mechanisms for restricting read, write, or creation access to specific data fields based on user permissions.
Distinguishing note: Focuses on granular field-level security rather than broad authentication.
Explore 25 awesome GitHub repositories matching security & cryptography · Field-Level Access Controls. Refine with filters or upvote what's useful.
Payload is a headless content management system and application framework that uses a code-first approach to define data schemas and administrative interfaces. By utilizing a centralized, type-safe configuration object, it automatically generates database schemas, API endpoints, and a fully customizable admin panel. The system is built on a database-agnostic architecture, allowing it to interface with various storage engines while providing a unified, type-safe API for server-side operations, REST, and GraphQL. What distinguishes Payload is its deep extensibility and developer-centric design.
Restricts field modification during document creation using custom boolean logic.
graphql-engine is an automated GraphQL API engine that transforms database tables and relationships into a queryable GraphQL schema. It functions as a federation gateway and mapper, instantly generating APIs with built-in filtering, pagination, and mutations from existing databases and remote schemas. The project distinguishes itself through a fine-grained access control layer that enforces row-level and field-level permissions. It further provides a real-time data subscription server that converts standard queries into live streams and a system for triggering event-driven webhooks and notifi
Enforces granular row and field level permissions to ensure users only access authorized data records.
Filament is a full-stack framework for building administrative panels and management interfaces within the Laravel ecosystem. It provides a declarative, component-based architecture that allows developers to construct complex, data-driven applications using server-side configuration objects rather than manual HTML. By inspecting database model structures and relationships, the framework automates the generation of CRUD interfaces, forms, and data tables, significantly reducing boilerplate code. The project distinguishes itself through a highly modular and extensible design that supports custo
Configures validation lifecycle to determine when specific fields undergo checks during data entry.
Saleor is a headless, API-first commerce platform designed to manage complex retail operations through a decoupled architecture. It provides a centralized backend that uses a GraphQL-based interface to handle product catalogs, order lifecycles, and multi-channel sales across diverse global markets. By separating the commerce engine from the storefront, the platform enables developers to build custom, high-performance shopping experiences while maintaining granular control over data interactions. The platform distinguishes itself through an event-driven architecture that allows for deep extens
Separates stored information into public fields for storefronts and private fields accessible only to authorized staff.
Parse Server is a backend-as-a-service solution and Node.js framework that provides a ready-to-use REST and GraphQL API for mobile and web applications. It functions as a core backend infrastructure for managing database schemas, user authentication, and API routing. The system distinguishes itself with a real-time data engine that pushes database updates to clients via WebSockets and a GraphQL server that automatically generates schemas based on application data models. It also features an adapter-based storage layer that abstracts interactions with various cloud and local backends. The pla
Restricts access to specific object fields based on the identity of the requester or the trigger.
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 hig
Restricts read and write operations based on assigned integrity levels to prevent data corruption.
TinaCMS is a headless content management framework that bridges local Git-based file storage with a visual, in-context editing interface. By treating your repository as the single source of truth, it enables developers to manage content as structured data files while providing editors with a browser-based dashboard to modify website content directly within a live preview. The framework distinguishes itself by transforming local files into a unified GraphQL API, which powers both the administrative interface and the application's data retrieval layer. This architecture allows for compile-time
Allows hiding specific data fields from the visual interface while keeping them available for programmatic access.
Puck is a headless visual CMS and React visual page editor that provides a drag-and-drop interface for designing page layouts and managing content. It functions as a JSON-based content management system, storing page structures as JSON and exposing them via API for dynamic rendering within applications. The project enables dynamic route authoring by mapping visual editor instances to specific URL paths, allowing content editing for any page. It integrates a visual authoring layer into existing applications to facilitate the design of page structures using custom React components. The system
Restricts access to specific components or fields based on user permissions evaluated via API.
Pundit is a Ruby authorization framework that implements policy-based access control. It maps domain models to dedicated logic classes that determine whether a user is permitted to perform specific actions on data objects. The framework utilizes plain Ruby objects to decouple authorization logic from the model. It includes mechanisms for data query scoping to filter record collections based on user permissions, as well as attribute-level permission control to restrict which specific model fields a user can modify. The system provides tools for authorization coverage verification to ensure se
Restricts which specific model fields a user can update based on their assigned permission level and role.
Jeesite is a full-stack low-code development framework designed for building enterprise administrative portals using Spring Boot, MyBatis, and Vue. It functions as a comprehensive platform for creating administrative dashboards with integrated role-based access control and organizational data permission systems. The framework distinguishes itself through a combination of automated CRUD code generation and an integrated RAG platform that connects large language models to enterprise data via vector stores. It further incorporates a BPMN-based workflow engine to automate complex business process
Restricts read, write, or visibility access to specific database columns based on the user's assigned role.
Rails Admin is a web-based management dashboard and Active Record model manager for Ruby on Rails applications. It provides a graphical user interface for creating, reading, updating, and deleting database records, serving as a secure back office for database content management and administrative data auditing. The project distinguishes itself through a reflection-based schema mapping system that automatically generates CRUD interfaces from database metadata. It includes specialized tools for data versioning and change auditing to track administrative activity, as well as utilities for import
Implements granular field-level access controls to hide or show specific data fields based on user roles.
Vendure is a Node.js e-commerce engine and headless commerce framework built with NestJS and TypeScript. It serves as a multi-channel commerce platform that manages product catalogs, orders, and customers via a strongly typed GraphQL API. The platform is distinguished by its highly extensible architecture, featuring a customizable administrative dashboard where developers can inject custom React components and entity views. It supports multi-channel commerce, allowing the isolation of products, currencies, and regional catalogs from a single unified backend. The engine covers a broad range o
Blocks access to specific entity fields based on whether the user possesses the required granular permissions.
CASL is a JavaScript authorization library for defining and enforcing declarative access control rules across both frontend and backend environments. It provides an attribute-based access control system that manages permissions based on user roles and specific object properties. The library is designed for isomorphic access control, allowing a consistent set of permission rules to be shared between a server API and a client interface. It enables the serialization of permission sets as plain data objects to maintain synchronization across these different layers. Its capabilities include trans
Controls which specific attributes of a resource a user is permitted to interact with.
SpringBlade is a development framework and platform designed for building multi-tenant SaaS applications. It provides a comprehensive scaffold for both Spring Cloud microservices and monolithic Spring Boot architectures, enabling the rapid construction of enterprise-grade software. The platform distinguishes itself through integrated LLM orchestration and industrial IoT management. It features an LLM orchestration platform that combines large language models with knowledge bases and visual AI agent workflows, alongside an IoT hub for device connectivity, state synchronization, and edge flow o
Hides specific field-level information based on user roles and predefined masking strategies.
GraphQL.NET es un framework del lado del servidor para construir y ejecutar APIs de GraphQL dentro de aplicaciones C#. Proporciona un toolkit integral para la construcción de esquemas, un motor federado para grafos de datos distribuidos y un manejador de suscripciones para gestionar flujos de datos en tiempo real. El proyecto se distingue por un constructor de esquemas flexible que admite tanto definiciones programáticas code-first como enfoques declarativos schema-first utilizando el lenguaje de definición de esquemas estándar. Incluye un motor de federación dedicado para dividir grafos de datos en subgrafos y componerlos en una puerta de enlace unificada, así como una implementación de cargador de datos (data loader) diseñada específicamente para resolver el problema de consultas N+1 mediante procesamiento por lotes y caché. El framework cubre una amplia gama de capacidades operativas, incluyendo la integración de inyección de dependencias para la gestión del ciclo de vida de los servicios, pipelines de middleware para la interceptación de resolución de campos y un pipeline de ejecución optimizado con tipos de valor para reducir las asignaciones de memoria. También proporciona herramientas para el análisis de complejidad de consultas, caché de documentos y control de acceso basado en roles para asegurar los endpoints de la API. La compatibilidad con la compilación de esquemas ahead-of-time permite que el framework se ejecute en entornos que prohíben la generación dinámica de código.
Restricts access to specific types or fields based on defined security policies or user roles.
GraphQL-Ruby es una biblioteca de Ruby para construir APIs de GraphQL con un esquema fuertemente tipado y un motor de ejecución de consultas dedicado. Proporciona un framework integral para mapear objetos de la aplicación a un sistema de tipos formal, permitiendo la obtención estructurada de datos mediante resolvers definidos. El proyecto destaca por sus mecanismos avanzados de rendimiento y entrega, incluyendo un data loader para batching y caché que evita patrones de consulta N+1. Admite la entrega de datos de alto rendimiento mediante streaming de respuestas incremental, respuestas de consulta diferidas y obtención de datos en paralelo usando fibers. Además, proporciona soporte nativo para convenciones de Relay, incluyendo helpers especializados para conexiones e identificación de objetos. La biblioteca cubre una amplia superficie de gestión de API, con control de acceso granular, versionado de esquemas para mantener la compatibilidad hacia atrás y actualizaciones en tiempo real mediante suscripciones. También incluye herramientas de gestión de tráfico para proteger los recursos del servidor, como la limitación de complejidad de consultas y de tasa de peticiones. El desarrollo y la observabilidad están respaldados por herramientas de análisis de AST, trazado de ejecución y utilidades de prueba especializadas para la verificación de carga por lotes.
Restricts read or write access to specific data fields based on granular user permissions.
Qor es un framework de administración en Go y toolkit de backend utilizado para construir interfaces administrativas, sistemas de gestión de contenido headless y generadores de API REST. Proporciona un entorno estructurado para implementar backends de aplicaciones de negocio, especializándose en la gestión de contenido estructurado y activos multimedia. El proyecto se distingue por una gestión de contenido multilingüe integral, con versionado de datos basado en locale y un sistema dedicado para la internacionalización y administración de traducciones. Diferencia aún más su oferta con una implementación de máquina de estados integrada para la automatización de procesos de negocio y un flujo de trabajo de staging de contenido para revisar cambios antes de la publicación. El framework cubre una amplia gama de capacidades, incluyendo control de acceso basado en roles, gestión de sesiones y programación de trabajos en segundo plano. Su superficie de gestión de datos incluye anulaciones de manejadores CRUD, gestión de relaciones y una UI basada en metadatos que genera dashboards y entradas de formulario basadas en definiciones de recursos de backend. Además, proporciona herramientas para la generación de API RESTful con soporte para negociación de contenido y endpoints anidados. El sistema permite la optimización del despliegue compilando plantillas HTML directamente en el binario de la aplicación Go para eliminar dependencias del sistema de archivos.
Restricts API endpoint availability using authentication and fine-grained permissions at both the resource and field levels.
Strawberry es una biblioteca GraphQL con tipado fuerte para Python que permite el diseño de esquemas utilizando anotaciones de tipo y dataclasses de Python. Funciona como un servidor GraphQL asíncrono y motor de ejecución, proporcionando un puente para exponer esquemas a través de frameworks web compatibles con ASGI como FastAPI, Django, Flask y Litestar. El proyecto implementa GraphQL Federation, permitiendo la creación de esquemas y entidades distribuidas que se fusionan en un supergrafo unificado a través de múltiples servicios. También incluye un kit de herramientas dedicado para la especificación Relay, soportando la identificación global de objetos y la paginación basada en conexiones. El framework cubre un amplio conjunto de capacidades, incluyendo streaming de datos en tiempo real mediante WebSockets y Server-Sent Events, mapeo de modelos Pydantic y generación automática de código. Proporciona herramientas integradas para seguridad y observabilidad, como limitación de complejidad de consultas, control de acceso basado en roles y rastreo de métricas de ejecución. Los desarrolladores pueden realizar prototipos utilizando un servidor de desarrollo integrado con una interfaz de inspección de esquemas interactiva.
Provides mechanisms to restrict access to specific GraphQL fields based on custom permission logic.
Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing access control. It functions as a policy-as-code platform, allowing teams to define, test, and distribute authorization rules using declarative YAML or JSON configurations. By decoupling access logic from application code, it enables consistent permission enforcement across diverse service stacks. The project distinguishes itself through its ability to translate high-level authorization policies into native database query filters. This capability allows applications to enforce sec
Controls access to specific resource attributes by evaluating granular permissions or returning lists of permitted fields for application-level filtering.
Graphene-Django es un framework de integración GraphQL y mapeador de esquemas utilizado para construir APIs tipadas para aplicaciones Django. Funciona como una capa de API de base de datos que transforma campos y relaciones de modelos de Django en un esquema de grafo, permitiendo a los clientes solicitar datos específicos en una sola llamada. El proyecto implementa la especificación Relay, proporcionando herramientas para la identificación global de objetos y paginación estandarizada basada en conexiones para gestionar grandes datasets. Se distingue por mapear modelos de base de datos, formularios y serializadores directamente en tipos de objetos y mutaciones de GraphQL. El framework cubre una amplia gama de capacidades, incluyendo control de acceso a nivel de campo, interceptación de solicitudes basada en middleware y el manejo de operaciones en tiempo real a través de enrutamiento WebSocket. También incluye utilidades para la inspección del rendimiento de SQL y envoltura de transacciones de mutación para garantizar la integridad de los datos durante las actualizaciones. Se proporciona un cliente de prueba especializado para verificar las respuestas de la API y ejecutar consultas contra el endpoint.
Hides or exposes specific model fields in the API using inclusion or exclusion lists based on permissions.