Rename permissions

Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Signed-off-by: Dominika Zemanovicova <dzemanov@redhat.com>
This commit is contained in:
Dominika Zemanovicova
2025-01-09 20:10:18 +01:00
parent 7d7497785f
commit 10974de8d9
9 changed files with 36 additions and 32 deletions
+3 -3
View File
@@ -5,6 +5,6 @@
'@backstage/plugin-kubernetes': minor
---
**BREAKING** The `/clusters` endpoint is now protected by the `kubernetes.clusters` permission.
**BREAKING** The `/services/:serviceId` endpoint is now protected by the `kubernetes.resources` permission.
**BREAKING** The `/resources` endpoints are now protected by the `kubernetes.resources` permission.
**BREAKING** The `/clusters` endpoint is now protected by the `kubernetes.clusters.read` permission.
**BREAKING** The `/services/:serviceId` endpoint is now protected by the `kubernetes.resources.read` permission.
**BREAKING** The `/resources` endpoints are now protected by the `kubernetes.resources.read` permission.
@@ -25,7 +25,7 @@ import { KubernetesObjectsProvider } from '@backstage/plugin-kubernetes-node';
import { AuthService, HttpAuthService } from '@backstage/backend-plugin-api';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import { requirePermission } from '../auth/requirePermission';
import { kubernetesResourcesPermission } from '@backstage/plugin-kubernetes-common';
import { kubernetesResourcesReadPermission } from '@backstage/plugin-kubernetes-common';
export const addResourceRoutesToRouter = (
router: express.Router,
@@ -68,7 +68,7 @@ export const addResourceRoutesToRouter = (
router.post('/resources/workloads/query', async (req, res) => {
await requirePermission(
permissionApi,
kubernetesResourcesPermission,
kubernetesResourcesReadPermission,
httpAuth,
req,
);
@@ -86,7 +86,7 @@ export const addResourceRoutesToRouter = (
router.post('/resources/custom/query', async (req, res) => {
await requirePermission(
permissionApi,
kubernetesResourcesPermission,
kubernetesResourcesReadPermission,
httpAuth,
req,
);
@@ -795,8 +795,8 @@ metadata:
expect(response.body).toMatchObject({
permissions: [
{ type: 'basic', name: 'kubernetes.proxy', attributes: {} },
{ type: 'basic', name: 'kubernetes.resources', attributes: {} },
{ type: 'basic', name: 'kubernetes.clusters', attributes: {} },
{ type: 'basic', name: 'kubernetes.resources.read', attributes: {} },
{ type: 'basic', name: 'kubernetes.clusters.read', attributes: {} },
],
rules: [],
});
@@ -18,9 +18,9 @@ import { Config } from '@backstage/config';
import {
ANNOTATION_KUBERNETES_AUTH_PROVIDER,
ANNOTATION_KUBERNETES_OIDC_TOKEN_PROVIDER,
kubernetesClustersPermission,
kubernetesClustersReadPermission,
kubernetesPermissions,
kubernetesResourcesPermission,
kubernetesResourcesReadPermission,
} from '@backstage/plugin-kubernetes-common';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-node';
@@ -398,7 +398,7 @@ export class KubernetesBuilder {
router.post('/services/:serviceId', async (req, res) => {
await requirePermission(
permissionApi,
kubernetesResourcesPermission,
kubernetesResourcesReadPermission,
httpAuth,
req,
);
@@ -424,7 +424,7 @@ export class KubernetesBuilder {
router.get('/clusters', async (req, res) => {
await requirePermission(
permissionApi,
kubernetesClustersPermission,
kubernetesClustersReadPermission,
httpAuth,
req,
);
@@ -24,7 +24,7 @@ import {
useKubernetesClusterError,
} from '../KubernetesClusterErrorContext/KubernetesClusterErrorContext';
import { WarningPanel } from '@backstage/core-components';
import { kubernetesClustersPermission } from '@backstage/plugin-kubernetes-common';
import { kubernetesClustersReadPermission } from '@backstage/plugin-kubernetes-common';
import { RequirePermission } from '@backstage/plugin-permission-react';
const ContentGrid = () => {
@@ -61,12 +61,12 @@ const ContentGrid = () => {
export const KubernetesClusterContent = () => {
return (
<RequirePermission
permission={kubernetesClustersPermission}
permission={kubernetesClustersReadPermission}
errorPage={
<WarningPanel
title="Permission required"
message={`To view Kubernetes objects, contact your administrator to give you the
'${kubernetesClustersPermission.name}' permission.`}
'${kubernetesClustersReadPermission.name}' permission.`}
/>
}
>
+2 -2
View File
@@ -318,7 +318,7 @@ export interface JobsFetchResponse {
}
// @public
export const kubernetesClustersPermission: BasicPermission;
export const kubernetesClustersReadPermission: BasicPermission;
// @public (undocumented)
export type KubernetesErrorTypes =
@@ -351,7 +351,7 @@ export interface KubernetesRequestBody {
}
// @public
export const kubernetesResourcesPermission: BasicPermission;
export const kubernetesResourcesReadPermission: BasicPermission;
// @public (undocumented)
export interface LimitRangeFetchResponse {
+2 -2
View File
@@ -25,8 +25,8 @@ export * from './catalog-entity-constants';
export * from './certificate-authority-constants';
export {
kubernetesProxyPermission,
kubernetesClustersPermission,
kubernetesResourcesPermission,
kubernetesClustersReadPermission,
kubernetesResourcesReadPermission,
kubernetesPermissions,
} from './permissions';
export * from './error-detection';
+12 -8
View File
@@ -27,17 +27,21 @@ export const kubernetesProxyPermission = createPermission({
/** This permission is used to check access to the /resources and /services/:serviceId endpoints
* @public
*/
export const kubernetesResourcesPermission = createPermission({
name: 'kubernetes.resources',
attributes: {},
export const kubernetesResourcesReadPermission = createPermission({
name: 'kubernetes.resources.read',
attributes: {
action: 'read',
},
});
/** This permission is used to check access to the /clusters endpoint
* @public
*/
export const kubernetesClustersPermission = createPermission({
name: 'kubernetes.clusters',
attributes: {},
export const kubernetesClustersReadPermission = createPermission({
name: 'kubernetes.clusters.read',
attributes: {
action: 'read',
},
});
/**
@@ -46,6 +50,6 @@ export const kubernetesClustersPermission = createPermission({
*/
export const kubernetesPermissions = [
kubernetesProxyPermission,
kubernetesResourcesPermission,
kubernetesClustersPermission,
kubernetesResourcesReadPermission,
kubernetesClustersReadPermission,
];
@@ -15,8 +15,8 @@
*/
import React, { ReactNode } from 'react';
import {
kubernetesClustersPermission,
kubernetesResourcesPermission,
kubernetesClustersReadPermission,
kubernetesResourcesReadPermission,
} from '@backstage/plugin-kubernetes-common';
import { usePermission } from '@backstage/plugin-permission-react';
import { Content, Page, WarningPanel } from '@backstage/core-components';
@@ -29,10 +29,10 @@ export function RequireKubernetesPermissions(
props: RequireKubernetesPermissionProps,
): JSX.Element | null {
const kubernetesClustersPermissionResult = usePermission({
permission: kubernetesClustersPermission,
permission: kubernetesClustersReadPermission,
});
const kubernetesResourcesPermissionResult = usePermission({
permission: kubernetesResourcesPermission,
permission: kubernetesResourcesReadPermission,
});
if (
@@ -55,7 +55,7 @@ export function RequireKubernetesPermissions(
<WarningPanel
title="Permission required"
message={`To view Kubernetes objects, contact your administrator to give you the
'${kubernetesClustersPermission.name}' and '${kubernetesResourcesPermission.name}' permission.`}
'${kubernetesClustersReadPermission.name}' and '${kubernetesResourcesReadPermission.name}' permission.`}
/>
</Content>
</Page>