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>
This commit is contained in:
Patrik Oldsberg
2024-02-15 17:32:04 +01:00
parent 72572b2fe1
commit 0502d826a5
11 changed files with 168 additions and 43 deletions
@@ -14,7 +14,38 @@
* limitations under the License.
*/
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import {
AuthorizePermissionRequest,
AuthorizePermissionResponse,
PermissionEvaluator,
QueryPermissionRequest,
QueryPermissionResponse,
} from '@backstage/plugin-permission-common';
import { BackstageCredentials } from './AuthService';
/**
* Options for {@link @backstage/plugin-permission-common#PermissionEvaluator} requests.
*
* @public
*/
export type PermissionsServiceRequestOptions =
| {
/** @deprecated use the `credentials` option instead. */
token?: string;
}
| {
credentials: BackstageCredentials;
};
/** @public */
export interface PermissionsService extends PermissionEvaluator {}
export interface PermissionsService extends PermissionEvaluator {
authorize(
requests: AuthorizePermissionRequest[],
options?: PermissionsServiceRequestOptions,
): Promise<AuthorizePermissionResponse[]>;
authorizeConditional(
requests: QueryPermissionRequest[],
options?: PermissionsServiceRequestOptions,
): Promise<QueryPermissionResponse[]>;
}
@@ -44,7 +44,10 @@ export type {
LifecycleServiceShutdownOptions,
} from './LifecycleService';
export type { LoggerService } from './LoggerService';
export type { PermissionsService } from './PermissionsService';
export type {
PermissionsService,
PermissionsServiceRequestOptions,
} from './PermissionsService';
export type { PluginMetadataService } from './PluginMetadataService';
export type { RootHttpRouterService } from './RootHttpRouterService';
export type { RootLifecycleService } from './RootLifecycleService';