Skip to content

OCPBUGS-56179: Add isAllNamespacesKey function to dynamic plugin API #15066

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 77 additions & 63 deletions frontend/packages/console-dynamic-plugin-sdk/docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,69 +11,70 @@
9. [SuccessStatus](#successstatus)
10. [checkAccess](#checkaccess)
11. [useAccessReview](#useaccessreview)
12. [useResolvedExtensions](#useresolvedextensions)
13. [HorizontalNav](#horizontalnav)
14. [TableData](#tabledata)
15. [useActiveColumns](#useactivecolumns)
16. [ListPageHeader](#listpageheader)
17. [ListPageCreate](#listpagecreate)
18. [ListPageCreateLink](#listpagecreatelink)
19. [ListPageCreateButton](#listpagecreatebutton)
20. [ListPageCreateDropdown](#listpagecreatedropdown)
21. [ResourceLink](#resourcelink)
22. [ResourceIcon](#resourceicon)
23. [useK8sModel](#usek8smodel)
24. [useK8sModels](#usek8smodels)
25. [useK8sWatchResource](#usek8swatchresource)
26. [useK8sWatchResources](#usek8swatchresources)
27. [consoleFetch](#consolefetch)
28. [consoleFetchJSON](#consolefetchjson)
29. [consoleFetchText](#consolefetchtext)
30. [getConsoleRequestHeaders](#getconsolerequestheaders)
31. [k8sGetResource](#k8sgetresource)
32. [k8sCreateResource](#k8screateresource)
33. [k8sUpdateResource](#k8supdateresource)
34. [k8sPatchResource](#k8spatchresource)
35. [k8sDeleteResource](#k8sdeleteresource)
36. [k8sListResource](#k8slistresource)
37. [k8sListResourceItems](#k8slistresourceitems)
38. [getAPIVersionForModel](#getapiversionformodel)
39. [getGroupVersionKindForResource](#getgroupversionkindforresource)
40. [getGroupVersionKindForModel](#getgroupversionkindformodel)
41. [StatusPopupSection](#statuspopupsection)
42. [StatusPopupItem](#statuspopupitem)
43. [Overview](#overview)
44. [OverviewGrid](#overviewgrid)
45. [InventoryItem](#inventoryitem)
46. [InventoryItemTitle](#inventoryitemtitle)
47. [InventoryItemBody](#inventoryitembody)
48. [InventoryItemStatus](#inventoryitemstatus)
49. [InventoryItemLoading](#inventoryitemloading)
50. [useFlag](#useflag)
51. [CodeEditor](#codeeditor)
52. [ResourceYAMLEditor](#resourceyamleditor)
53. [ResourceEventStream](#resourceeventstream)
54. [DocumentTitle](#documenttitle)
55. [usePrometheusPoll](#useprometheuspoll)
56. [Timestamp](#timestamp)
57. [useModal](#usemodal)
58. [ActionServiceProvider](#actionserviceprovider)
59. [NamespaceBar](#namespacebar)
60. [ErrorBoundaryFallbackPage](#errorboundaryfallbackpage)
61. [QueryBrowser](#querybrowser)
62. [useAnnotationsModal](#useannotationsmodal)
63. [useDeleteModal](#usedeletemodal)
64. [useLabelsModal](#uselabelsmodal)
65. [useActiveNamespace](#useactivenamespace)
66. [useUserSettings](#useusersettings)
67. [useQuickStartContext](#usequickstartcontext)
68. [DEPRECATED] [PerspectiveContext](#perspectivecontext)
69. [DEPRECATED] [useAccessReviewAllowed](#useaccessreviewallowed)
70. [DEPRECATED] [useSafetyFirst](#usesafetyfirst)
71. [DEPRECATED] [VirtualizedTable](#virtualizedtable)
72. [DEPRECATED] [ListPageFilter](#listpagefilter)
73. [DEPRECATED] [useListPageFilter](#uselistpagefilter)
74. [DEPRECATED] [YAMLEditor](#yamleditor)
12. [isAllNamespacesKey](#isallnamespaceskey)
13. [useResolvedExtensions](#useresolvedextensions)
14. [HorizontalNav](#horizontalnav)
15. [TableData](#tabledata)
16. [useActiveColumns](#useactivecolumns)
17. [ListPageHeader](#listpageheader)
18. [ListPageCreate](#listpagecreate)
19. [ListPageCreateLink](#listpagecreatelink)
20. [ListPageCreateButton](#listpagecreatebutton)
21. [ListPageCreateDropdown](#listpagecreatedropdown)
22. [ResourceLink](#resourcelink)
23. [ResourceIcon](#resourceicon)
24. [useK8sModel](#usek8smodel)
25. [useK8sModels](#usek8smodels)
26. [useK8sWatchResource](#usek8swatchresource)
27. [useK8sWatchResources](#usek8swatchresources)
28. [consoleFetch](#consolefetch)
29. [consoleFetchJSON](#consolefetchjson)
30. [consoleFetchText](#consolefetchtext)
31. [getConsoleRequestHeaders](#getconsolerequestheaders)
32. [k8sGetResource](#k8sgetresource)
33. [k8sCreateResource](#k8screateresource)
34. [k8sUpdateResource](#k8supdateresource)
35. [k8sPatchResource](#k8spatchresource)
36. [k8sDeleteResource](#k8sdeleteresource)
37. [k8sListResource](#k8slistresource)
38. [k8sListResourceItems](#k8slistresourceitems)
39. [getAPIVersionForModel](#getapiversionformodel)
40. [getGroupVersionKindForResource](#getgroupversionkindforresource)
41. [getGroupVersionKindForModel](#getgroupversionkindformodel)
42. [StatusPopupSection](#statuspopupsection)
43. [StatusPopupItem](#statuspopupitem)
44. [Overview](#overview)
45. [OverviewGrid](#overviewgrid)
46. [InventoryItem](#inventoryitem)
47. [InventoryItemTitle](#inventoryitemtitle)
48. [InventoryItemBody](#inventoryitembody)
49. [InventoryItemStatus](#inventoryitemstatus)
50. [InventoryItemLoading](#inventoryitemloading)
51. [useFlag](#useflag)
52. [CodeEditor](#codeeditor)
53. [ResourceYAMLEditor](#resourceyamleditor)
54. [ResourceEventStream](#resourceeventstream)
55. [DocumentTitle](#documenttitle)
56. [usePrometheusPoll](#useprometheuspoll)
57. [Timestamp](#timestamp)
58. [useModal](#usemodal)
59. [ActionServiceProvider](#actionserviceprovider)
60. [NamespaceBar](#namespacebar)
61. [ErrorBoundaryFallbackPage](#errorboundaryfallbackpage)
62. [QueryBrowser](#querybrowser)
63. [useAnnotationsModal](#useannotationsmodal)
64. [useDeleteModal](#usedeletemodal)
65. [useLabelsModal](#uselabelsmodal)
66. [useActiveNamespace](#useactivenamespace)
67. [useUserSettings](#useusersettings)
68. [useQuickStartContext](#usequickstartcontext)
69. [DEPRECATED] [PerspectiveContext](#perspectivecontext)
70. [DEPRECATED] [useAccessReviewAllowed](#useaccessreviewallowed)
71. [DEPRECATED] [useSafetyFirst](#usesafetyfirst)
72. [DEPRECATED] [VirtualizedTable](#virtualizedtable)
73. [DEPRECATED] [ListPageFilter](#listpagefilter)
74. [DEPRECATED] [useListPageFilter](#uselistpagefilter)
75. [DEPRECATED] [YAMLEditor](#yamleditor)

---

Expand Down Expand Up @@ -420,6 +421,19 @@ Hook that provides information about user access to a given resource.
Array with `isAllowed` and `loading` values.


---

## `isAllNamespacesKey`

### Summary

Returns true if the provided value represents the special "all" namespaces option key.






---

## `useResolvedExtensions`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import { StatusPopupSectionProps, StatusPopupItemProps } from '../extensions/das

export * from '../app/components';
export * from './common-types';
export * from './utils';

/**
* React hook for consuming Console extensions with resolved `CodeRef` properties.
Expand Down
6 changes: 6 additions & 0 deletions frontend/packages/console-dynamic-plugin-sdk/src/api/utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { ALL_NAMESPACES_KEY } from '../constants';

/**
* Returns true if the provided value represents the special "all" namespaces option key.
*/
export const isAllNamespacesKey = (ns: string) => ns === ALL_NAMESPACES_KEY;
3 changes: 3 additions & 0 deletions frontend/packages/console-dynamic-plugin-sdk/src/constants.ts
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
export const extensionsFile = 'console-extensions.json';

// Special key for the "all" namespaces option to avoid a potential clash with actual namespace names
export const ALL_NAMESPACES_KEY = '#ALL_NS#';
5 changes: 2 additions & 3 deletions frontend/packages/console-shared/src/constants/common.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/* eslint-disable @typescript-eslint/naming-convention */

export { ALL_NAMESPACES_KEY } from '@console/dynamic-plugin-sdk/src/constants';

export const CONST = Object.freeze({
// http://kubernetes.io/docs/user-guide/images/#bypassing-kubectl-create-secrets
PULL_SECRET_TYPE: 'kubernetes.io/dockerconfigjson',
Expand All @@ -22,9 +24,6 @@ export const KEYBOARD_SHORTCUTS = Object.freeze({

export const RESOURCE_NAME_TRUNCATE_LENGTH = 13;

// Use a key for the "all" namespaces option that would be an invalid namespace name to avoid a potential clash
export const ALL_NAMESPACES_KEY = '#ALL_NS#';

// Use a key for the "all" applications option that would be an invalid application name to avoid a potential clash
export const ALL_APPLICATIONS_KEY = '#ALL_APPS#';
export const UNASSIGNED_APPLICATIONS_KEY = '#UNASSIGNED_APP#';
Expand Down