Aggregate catalog permissions (#12832)

As a follow up to https://github.com/backstage/backstage/pull/11695, the catalog permissions will now be aggregated and made available on the `/.well-known/backstage/permissions/metadata/` endpoint.

Signed-off-by: Joon Park <joonp@spotify.com>
This commit is contained in:
Joon Park
2022-08-01 11:07:05 +01:00
committed by GitHub
parent 91ad85fefb
commit 92103db537
5 changed files with 31 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-common': patch
---
Export aggregated list of all catalog permissions
@@ -91,7 +91,10 @@ import {
} from '@backstage/plugin-permission-node';
import { AuthorizedEntitiesCatalog } from './AuthorizedEntitiesCatalog';
import { basicEntityFilter } from './request/basicEntityFilter';
import { RESOURCE_TYPE_CATALOG_ENTITY } from '@backstage/plugin-catalog-common';
import {
catalogPermissions,
RESOURCE_TYPE_CATALOG_ENTITY,
} from '@backstage/plugin-catalog-common';
import { AuthorizedLocationService } from './AuthorizedLocationService';
/** @public */
@@ -435,6 +438,7 @@ export class CatalogBuilder {
entitiesByRef[stringifyEntityRef(parseEntityRef(resourceRef))],
);
},
permissions: catalogPermissions,
rules: this.permissionRules,
});
const stitcher = new Stitcher(dbClient, logger);
+6
View File
@@ -49,6 +49,12 @@ export const catalogLocationDeletePermission: BasicPermission;
// @alpha
export const catalogLocationReadPermission: BasicPermission;
// @alpha
export const catalogPermissions: (
| BasicPermission
| ResourcePermission<'catalog-entity'>
)[];
// @alpha
export const RESOURCE_TYPE_CATALOG_ENTITY = 'catalog-entity';
```
+1
View File
@@ -30,6 +30,7 @@ export {
catalogLocationReadPermission,
catalogLocationCreatePermission,
catalogLocationDeletePermission,
catalogPermissions,
} from './permissions';
export type { CatalogEntityPermission } from './permissions';
+14
View File
@@ -129,3 +129,17 @@ export const catalogLocationDeletePermission = createPermission({
action: 'delete',
},
});
/**
* List of all catalog permissions.
* @alpha
*/
export const catalogPermissions = [
catalogEntityReadPermission,
catalogEntityCreatePermission,
catalogEntityDeletePermission,
catalogEntityRefreshPermission,
catalogLocationReadPermission,
catalogLocationCreatePermission,
catalogLocationDeletePermission,
];