Fredrik Adelöw
2f0519cba3
permission: cache user info and parallelize resolution
...
The permission backend previously resolved userInfo and minted a plugin
request token sequentially for every authorize request with user
credentials. On high-traffic endpoints this meant two serial internal
HTTP round-trips per request, even when the same user made many
requests in quick succession.
This change:
1. Adds a 5-second TTL cache to DefaultUserInfoService so that repeated
getUserInfo() calls for the same user return the cached result
without an HTTP call to the auth backend.
2. Parallelises the getUserInfo() and getPluginRequestToken() calls in
the permission backend's handleRequest via Promise.all, saving one
sequential round-trip on cache misses.
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2026-05-16 17:39:50 +02:00
Gabriel Dugny
49171c9de4
chore: Update all imports to zod/v3
...
Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com >
2026-03-17 16:48:42 +01:00
Paul Schultz
161999e837
fix tsc issues
...
Signed-off-by: Paul Schultz <pschultz@pobox.com >
2025-10-14 08:29:22 -05:00
Fredrik Adelöw
3507fcdf89
Just some more circular dep cleanup
...
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2025-06-25 11:33:23 +02:00
Vincenzo Scamporlino
7853dac010
permission-backend: accept resourceRef as array
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2025-04-29 12:54:47 +02:00
Vincenzo Scamporlino
f2cd66a162
permission: minor tweaks
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2025-04-29 12:54:47 +02:00
Vincenzo Scamporlino
4d4ec58d6b
permission: batch apply conditions payload
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2025-04-29 12:54:47 +02:00
Patrik Oldsberg
876f2e1d16
permission-node: deprecate createPermisisonIntegrationRouter + docs fix
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-03-15 16:46:38 +01:00
Eric Peterson
22ace13d10
Remove backend-common from permission-node
...
Signed-off-by: Eric Peterson <ericpeterson@spotify.com >
2025-03-13 15:04:26 +01:00
Patrik Oldsberg
728e3e157d
permission-node: fix type inference of createPermissionRule
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-02-25 13:41:44 +01:00
Patrik Oldsberg
d1a4831725
permission-node: doc fixes
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-02-04 15:39:10 +01:00
Patrik Oldsberg
7500c99ecc
permission-node: refactor PermissionRuleAccessor to PermissionRuleset
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-30 15:38:22 +01:00
Patrik Oldsberg
ec07d0a579
permission-node: updated createPermissionRule to improve type inference
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-30 10:48:15 +01:00
Patrik Oldsberg
72cddf2971
packages/backend-plugin-api: updated PermissionsRegistryService to use rule accessors and resource refs
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-30 10:48:14 +01:00
Patrik Oldsberg
b71f634e3b
permission-node: added PermissionRuleAccessor
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-30 10:05:02 +01:00
Patrik Oldsberg
a9621deada
permission-node: add PermissionResourceRef
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-30 10:05:01 +01:00
Patrik Oldsberg
088f289323
permission-node: update error message for missing permission rules
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-15 09:57:50 +01:00
Patrik Oldsberg
45e0c1d645
permissions: add support for adding permission rules separately from resource type
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-10 10:06:08 +01:00
Patrik Oldsberg
049d5d4676
permission-node: refactor integration router to be mutable
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2025-01-10 10:06:07 +01:00
Fredrik Adelöw
d9d62ef90c
remove usages of some backend-common helpers
...
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2024-12-21 20:39:23 +01:00
Vincenzo Scamporlino
0aa3dd7fd3
permission-node: remove permission duplicates in createPermissionIntegrationRouter
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2024-12-05 13:07:08 +01:00
Patrik Oldsberg
1780a67bc5
backend-plugin-api: remove identity and token manager services
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-08-21 21:36:43 +02:00
MT Lewis
df784fe970
permissions: move MetadataResponse type to permission-common
...
This was missed when moving
MetadataResponseSerializedRule in
137fa342b4 - seems
useful to keep these two types together.
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com >
2024-07-31 14:06:48 +01:00
MT Lewis
5cd9878023
permission-node: re-export MetadataResponseSerializedRule from permission-common
...
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com >
2024-07-28 14:15:50 +01:00
Patrik Oldsberg
d6f6a99536
Merge pull request #25537 from adamdmharvey/ah-api-docs
...
chore: Improve API Reference documentation
2024-07-16 11:04:21 +02:00
Patrik Oldsberg
c5ce79a14c
Merge pull request #25569 from backstage/nbs10/rename-setup-request-handlers
...
[NBS 1.0]Rename `setupRequestMockHandlers` to `registerMswTestHooks`
2024-07-16 11:01:29 +02:00
Patrik Oldsberg
6e05fd4efe
Merge pull request #25601 from backstage/rugvip/perm
...
backend-plugin-api: remove deprecated token option from PermissionsService
2024-07-15 20:38:57 +02:00
Patrik Oldsberg
ed10fd202c
permission-node: update policy handler to work with new auth system
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-07-12 14:28:24 +02:00
Patrik Oldsberg
36f91e8956
backend-plugin-api,permission-node: remove deprecated token option from permissions service
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-07-12 12:17:39 +02:00
Camila Belo
b82aff92aa
refactor(test-utils): deprecate the isDockerDisabledForTests function
...
Signed-off-by: Camila Belo <camilaibs@gmail.com >
2024-07-10 17:06:00 +02:00
Camila Belo
95a3a0b91c
refactor(test-utils): rename setupRequestMockHandlers to setupMswHandler
...
Signed-off-by: Camila Belo <camilaibs@gmail.com >
2024-07-10 15:45:49 +02:00
Adam Harvey
c3837fb3fc
chore: Fix invalid API docs cross-reference
...
Signed-off-by: Adam Harvey <33203301+adamdmharvey@users.noreply.github.com >
2024-07-05 23:34:33 -04:00
Vincenzo Scamporlino
06051768bc
permission-node: remove references from backend-common
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2024-05-24 13:53:27 +02:00
Fredrik Adelöw
0639b07aa1
refactor the client a bit
...
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2024-05-22 16:14:52 +02:00
Fredrik Adelöw
b155d854bc
skip the plugin id for permissions client
...
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2024-05-22 16:14:26 +02:00
Fredrik Adelöw
9e63318311
Implement the scope feature of external access service tokens, as per BEP-0007
...
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2024-05-22 16:14:24 +02:00
Camila Belo
737f3ae5ef
Merge branch 'master' into camilaibs/nbs10-deprecate-legacy-system-commons
...
Signed-off-by: Camila Belo <camilaibs@gmail.com >
2024-05-21 15:12:02 +02:00
Camila Belo
3bd04bb3ac
reafactor: deprecate legacy handlers and context
...
Signed-off-by: Camila Belo <camilaibs@gmail.com >
2024-05-21 08:28:17 +02:00
Camila Belo
eb34b87d5a
refactor: stop using getVoidLogger in tests
...
Signed-off-by: Camila Belo <camilaibs@gmail.com >
2024-05-16 09:21:54 +02:00
Vincenzo Scamporlino
3c3fafb5cb
permission-node: fix target plugin id
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2024-04-10 11:50:07 +02:00
Fredrik Adelöw
f3e2e86c33
fix permissions being overwritten by the unprocessed entities module
...
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com >
Signed-off-by: Fredrik Adelöw <freben@gmail.com >
2024-03-22 11:41:57 +01:00
Patrik Oldsberg
5c3720a228
permission-node: assert user credentials forwarding in ServerPermissionClient
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-02-23 15:22:46 +01:00
Patrik Oldsberg
16b23eddd3
permission-node: added tests for ServerPermissionClient with credentials
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-02-23 15:12:18 +01:00
Patrik Oldsberg
6c06f99ba6
permission-node: refactor to true private fields for ServerPermissionClient
...
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-02-23 15:11:40 +01:00
Patrik Oldsberg
0502d826a5
permissions: migrate to new auth system and accept credentials
...
Co-authored-by: Fredrik Adelöw <freben@gmail.com >
Co-authored-by: Carl-Erik Bergström <cbergstrom@spotify.com >
Co-authored-by: blam <ben@blam.sh >
Co-authored-by: Camila Belo <camilaibs@gmail.com >
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com >
2024-02-23 10:15:02 +01:00
Patrik Oldsberg
16685cf8a2
Merge pull request #17077 from backstage/permission-router-options-array
...
createPermissionIntegrationRouter: accept an array of options
2023-04-25 10:37:18 +02:00
Vincenzo Scamporlino
7996d8900b
permission-node: improve naming
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2023-04-13 21:02:40 +02:00
Vincenzo Scamporlino
4dd6bbe59e
permission-node: add support for extra permissions
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2023-04-12 17:13:52 +02:00
Vincenzo Scamporlino
2c837e99a3
permission-node: add example to changeset
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2023-04-12 11:51:14 +02:00
Vincenzo Scamporlino
b947f4230d
permission-node: improve typings
...
Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com >
2023-04-12 11:39:08 +02:00