Enhancement: Support for Row-Level Filtering and Column Masking in Druid OPA Authorizer
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java
- Lĩnh vực
- authorization, backend, security
Hướng nghiên cứu
Issue không nêu tệp, test hoặc entry point nào. Hãy bắt đầu bằng cách xác định phần xử lý hiện tại của plugin đối với các phản hồi cấp quyền boolean của OPA và phần tích hợp cấp quyền với Druid, sau đó làm rõ contract của phản hồi và các điểm thực thi cho row_filter và column_mask. Phần hoàn tất cần bao gồm các phản hồi OPA có cấu trúc, áp dụng lọc hàng và che cột, đồng thời giữ nguyên các quyết định allow/deny.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description:
We are currently using the druid-opa-authorizer plugin to integrate Open Policy Agent (OPA) with Apache Druid for fine-grained access control.
At present, the plugin only supports boolean authorization decisions (i.e., true or false) returned from OPA policies.
This works well for basic allow/deny authorization but does not support more granular data security requirements such as row-level filtering and column-level masking.
In enterprise environments, it’s common to need:
- Row-Level Security (RLS): Restricting access to specific rows based on user identity, role, or group (e.g., a user in the APAC region should only see records where
region = 'APAC'). - Column Masking: Masking or hiding sensitive columns (e.g., salary, SSN) from certain users while allowing others full access.
Currently, since the OPA policy can only return a boolean value, Druid cannot apply dynamic filtering or masking logic at the query level.
We propose enhancing the plugin to handle structured JSON responses from OPA that include both access decisions and filter/masking metadata.
Proposed Enhancement:
Support for JSON-based OPA responses, for example:
{
"allow": true,
"row_filter": "region = 'APAC'",
"column_mask": {
"ssn": "MASKED",
"salary": "NULL"
}
}
- Ngôn ngữ chính
- Java
- Star
- 5
- Fork
- 5
- Merge trung bình
- 2 giờ 7 phút
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của stackabletech/druid-opa-authorizer
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
stackabletech/druid-opa-authorizer#140 · 6 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
Dependency DashboardĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 15/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
stackabletech/druid-opa-authorizer#63 · 1 bình luận ·
Tất cả issue của stackabletech/druid-opa-authorizer
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Netcracker/qubership-integration-platform#1046 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`check_java_version()` fails when Java path contains spaces (Windows / Git Bash, `C:\Program Files`)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Fix Math.ceilDiv wrong result for exact positive divisionsCó thể đã có người làm @pamod-madubashana đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
scala-native/scala-native#5094 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
NullPointerException in blocking command completion callback when the command succeeds (3.52.0)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày