marc
1cf23c37ce
fix: is_allowed_nocache resolves roles once per org, not per rule
...
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.
2026-10-14 23:41:00 +02:00
marc
493c2ec429
refactor: the npm package moves to pgmorbac-node
...
This repository is the SQL extension only. @crudy/pgmorbac is published from
pgmorbac-node, which packs the SQL of each signed release.
2026-10-03 09:57:08 +02:00
marc
cfe370f761
docs: release process covers the npm package
...
bump_version.sh also bumps package.json, so prepack's version check holds.
2026-10-03 02:19:06 +02:00
marc
0e3b90af22
feat(system): introduce global rules and system principals for easier system account handling
2026-04-04 09:23:46 +02:00
marc
f64cd73159
feat(rules): add rules for users
2026-04-01 23:18:01 +02:00
marc
5ef8bae1b4
feat(all): add scope handling in rules
2026-04-01 23:07:20 +02:00
marc
bfcbf15379
feat(activity): add binding to views
2026-03-28 13:03:12 +01:00
marc
fca7e2053f
feat(rules): add preemptive warning when creating conflicting rules
2026-03-23 00:50:00 +01:00
marc
a448a73e37
misc(project): add missing documentation and cleanup
2026-03-22 23:57:49 +01:00
marc
c22d18063b
feat(tests): add more tests and make them pass
2026-03-22 23:25:48 +01:00
marc
9e1e448159
feat(src): ensure extension works and tests pass
2026-03-22 15:41:00 +01:00
marc
32a6a8dd17
refacto: pg_morbac -> pgmorbac
2026-02-22 22:29:52 +01:00
marc
38c08ff448
feat(tools,test): add better output
2026-02-22 21:35:51 +01:00
marc
c369e32c93
feat(tools,build): dynamically list files to build
2026-02-22 21:14:16 +01:00
marc
bba1dd5677
fix(tools,test): wrong user
2026-02-22 21:11:07 +01:00
marc
1f33854b27
remove(tools,docker): stderr ignore making it hard to debug
2026-02-22 21:06:47 +01:00
marc
ce44dde2c6
misc(tools): set exec flags
2026-02-22 21:02:02 +01:00
marc
ac6acbf42e
refacto(tools): action_docker -> docker_action
2026-02-22 20:57:18 +01:00
marc
d343524e05
feat(tools): add docker scripts
2026-02-22 20:50:26 +01:00
marc
5957ac4789
feat(tools): cleanup scripts and Makefile
2026-02-22 20:33:04 +01:00
marc
2d5f4ca669
refacto: morbac_pg -> pg_morbac
2026-02-20 10:36:19 +01:00
marc
5b4095677e
build: cleanup build process
2026-02-20 01:40:15 +01:00
marc
d80b9f387b
refacto: add build and cleanup file structure
2026-02-20 01:32:08 +01:00