release / release (push) Canceled after 0s
Steps 1, 2, 4 and 5 called get_comprehensive_roles() for every row of morbac.rules (and org_in_scope() per row), so a decision cost grew with every tenant's rules: ~240 ms with 2376 rules across 27 orgs. Roles are now resolved once per org where the user can hold one and that has a rule for the request, rules are read through those (org, role) pairs, and org_in_scope() runs once per (org, scope) pair. Decisions are unchanged. Release 1.0.1 with the 1.0.0 -> 1.0.1 upgrade script. Test 17 compares every decision with the 1.0.0 body on a seeded random fixture and checks the cost no longer follows unrelated tenants' rules. bump_version.sh no longer rewrites the PGXN meta-spec version.
50 lines
1.3 KiB
JSON
50 lines
1.3 KiB
JSON
{
|
|
"name": "pgmorbac",
|
|
"abstract": "Multi-OrBAC: Organization-Based Access Control with multi-organization support",
|
|
"description": "A PostgreSQL extension implementing the Multi-OrBAC access control model \u2014 enabling organization-centric, context-aware, and hierarchical access control with delegation, separation of duty, and cross-organizational policies.",
|
|
"version": "1.0.1",
|
|
"maintainer": [
|
|
"Marc VILLAIN <marc.villain@epita.fr>"
|
|
],
|
|
"license": "mit",
|
|
"provides": {
|
|
"pgmorbac": {
|
|
"abstract": "Multi-OrBAC access control extension",
|
|
"file": "pgmorbac--1.0.1.sql",
|
|
"version": "1.0.1"
|
|
}
|
|
},
|
|
"prereqs": {
|
|
"runtime": {
|
|
"requires": {
|
|
"PostgreSQL": "13.0.0"
|
|
}
|
|
}
|
|
},
|
|
"resources": {
|
|
"homepage": "https://pgmorbac.crudy.fr",
|
|
"bugtracker": {
|
|
"web": "https://github.com/crudylabs/pgmorbac/issues"
|
|
},
|
|
"repository": {
|
|
"url": "https://github.com/crudylabs/pgmorbac.git",
|
|
"web": "https://github.com/crudylabs/pgmorbac",
|
|
"type": "git"
|
|
}
|
|
},
|
|
"generated_by": "pgmorbac contributors",
|
|
"meta-spec": {
|
|
"version": "1.0.0",
|
|
"url": "https://pgxn.org/meta/spec.txt"
|
|
},
|
|
"tags": [
|
|
"access control",
|
|
"authorization",
|
|
"multi-tenancy",
|
|
"rbac",
|
|
"orbac",
|
|
"security",
|
|
"row-level security"
|
|
]
|
|
}
|