Skip to content
This repository was archived by the owner on Feb 20, 2024. It is now read-only.

Commit c8bf309

Browse files
Merge pull request #20 from solace-iot-team/feature-asset-tags
Feature asset tags
2 parents 4b3dbe1 + 57602be commit c8bf309

File tree

116 files changed

+9525
-655
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+9525
-655
lines changed

ReleaseNotes.md

+16-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,26 @@
22

33
Solace Async API Management.
44

5+
## Version 0.1.1
6+
* [API-M Admin & Developer Portal](https://github.com/solace-iot-team/async-apim/tree/main/apim-portal): 0.1.1
7+
* [API-M Server OpenAPI](https://github.com/solace-iot-team/async-apim/blob/main/apim-server/server/common/api.yml): 0.1.0
8+
* [API-M Server](https://github.com/solace-iot-team/async-apim/tree/main/apim-server): 0.1.0
9+
* [API-M Connector OpenAPI](https://github.com/solace-iot-team/platform-api): 0.6.5
10+
11+
#### API-M Admin & Developer Portal
12+
13+
**New Features:**
14+
- **API Products**
15+
- added owning Business Group attribute management
16+
- refactored edit/new UI components
17+
- list only shows API Products owned by the currently selected business group
18+
- **_Note:_** Existing API Products not tagged with the correct attribute settings will not be displayed
19+
520
## Version 0.1.0
621
* [API-M Admin & Developer Portal](https://github.com/solace-iot-team/async-apim/tree/main/apim-portal): 0.1.0
722
* [API-M Server OpenAPI](https://github.com/solace-iot-team/async-apim/blob/main/apim-server/server/common/api.yml): 0.1.0
823
* [API-M Server](https://github.com/solace-iot-team/async-apim/tree/main/apim-server): 0.1.0
9-
* [API-M Connector OpenAPI](https://github.com/solace-iot-team/platform-api): 0.6.5
24+
* [API-M Connector OpenAPI](https://github.com/solace-iot-team/platform-api): 0.7.6
1025

1126
#### API-M Admin & Developer Portal
1227

apim-portal/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "async-apim-portal",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"description": "Solace Async API Management Portal",
55
"repository": {
66
"type": "git",
@@ -24,7 +24,7 @@
2424
},
2525
"dependencies": {
2626
"@asyncapi/react-component": "1.0.0-next.33",
27-
"@solace-iot-team/apim-connector-openapi-browser": "^0.6.5",
27+
"@solace-iot-team/apim-connector-openapi-browser": "^0.7.6",
2828
"async-mutex": "^0.3.2",
2929
"base-64": "^1.0.0",
3030
"js-yaml": "^4.1.0",

apim-portal/src/admin-portal/AdminPortalAppRoutes.tsx

+9-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { ManageSystemSettingsPage } from "./pages/ManageSystemSettingsPage";
1010
import { MonitorSystemHealthPage } from "./pages/MonitorSystemHealthPage";
1111
import { ManageOrgEnvironmentsPage } from "./pages/ManageOrgEnvironmentsPage";
1212
import { ManageApisPage } from "./pages/ManageApisPage";
13-
import { ManageApiProductsPage } from "./pages/ManageApiProductsPage";
1413
import { ManageAppsPage } from './pages/ManageAppsPage';
1514
import { AdminPortalHealthCheckViewPage } from "./pages/AdminPortalHealthCheckViewPage";
1615
import { ManageOrgUsersPage } from "./pages/ManageOrgUsersPage";
@@ -20,6 +19,11 @@ import { ManageSystemUsersPage } from "./pages/ManageSystemUsersPage";
2019
import { ManageOrganizationSettingsPage } from "./pages/ManageOrganizationSettingsPage";
2120
import { ManageSystemOrganizationsPage } from "./pages/ManageSystemOrganizationsPage";
2221
import { MonitorOrganizationStatusPage } from "./pages/MonitorOrganizationStatusPage";
22+
import { ManageApiProductsPage } from "./pages/ManageApiProductsPage";
23+
24+
import { ManageApiProductsPage as deleteme_ManageApiProductsPage} from "./pages/deleteme.ManageApiProductsPage";
25+
26+
2327

2428
export const AdminPortalAppRoutes = (): Array<JSX.Element> => {
2529
// const componentName = 'AdminPortalAppRoutes';
@@ -44,6 +48,10 @@ export const AdminPortalAppRoutes = (): Array<JSX.Element> => {
4448
/* API Team*/
4549
<ProtectedRouteWithRbacAndOrgAccess path={EUIAdminPortalResourcePaths.ManageOrganizationApis} component={ManageApisPage} exact key={EUIAdminPortalResourcePaths.ManageOrganizationApis} />,
4650
<ProtectedRouteWithRbacAndOrgAccess path={EUIAdminPortalResourcePaths.ManageOrganizationApiProducts} component={ManageApiProductsPage} exact key={EUIAdminPortalResourcePaths.ManageOrganizationApiProducts} />,
51+
52+
<ProtectedRouteWithRbacAndOrgAccess path={EUIAdminPortalResourcePaths.deleteme_ManageOrganizationApiProducts} component={deleteme_ManageApiProductsPage} exact key={EUIAdminPortalResourcePaths.deleteme_ManageOrganizationApiProducts} />,
53+
54+
4755
<ProtectedRouteWithRbacAndOrgAccess path={EUIAdminPortalResourcePaths.ManageOrganizationApps} component={ManageAppsPage} exact key={EUIAdminPortalResourcePaths.ManageOrganizationApps} />,
4856
]
4957
);

apim-portal/src/admin-portal/components/AdminPortalSideBar/AdminPortalSideBar.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export const AdminPortalSideBar: React.FC<IAdminPortalSideBarProps> = (props: IA
4747
const getApimMenuItems = (): Array<MenuItem> => {
4848
if(
4949
isDisabled(EUIAdminPortalResourcePaths.ManageOrganizationApps) &&
50-
isDisabled(EUIAdminPortalResourcePaths.ManageOrganizationApiProducts) &&
50+
isDisabled(EUIAdminPortalResourcePaths.deleteme_ManageOrganizationApiProducts) &&
5151
isDisabled(EUIAdminPortalResourcePaths.ManageOrganizationApis)
5252
) return [];
5353

@@ -62,6 +62,11 @@ export const AdminPortalSideBar: React.FC<IAdminPortalSideBarProps> = (props: IA
6262
disabled: isDisabledWithConnectorUnavailable(isDisabledWithoutOrg, EUIAdminPortalResourcePaths.ManageOrganizationApiProducts),
6363
command: () => { navigateTo(EUIAdminPortalResourcePaths.ManageOrganizationApiProducts); }
6464
},
65+
// {
66+
// label: 'OLD API Products',
67+
// disabled: isDisabledWithConnectorUnavailable(isDisabledWithoutOrg, EUIAdminPortalResourcePaths.deleteme_ManageOrganizationApiProducts),
68+
// command: () => { navigateTo(EUIAdminPortalResourcePaths.deleteme_ManageOrganizationApiProducts); }
69+
// },
6570
{
6671
label: 'APIs',
6772
disabled: isDisabledWithConnectorUnavailable(isDisabledWithoutOrg, EUIAdminPortalResourcePaths.ManageOrganizationApis),

apim-portal/src/admin-portal/components/ManageApiProducts/DeleteApiProduct.tsx

+11-11
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import { Dialog } from 'primereact/dialog';
77
import { APClientConnectorOpenApi } from "../../../utils/APClientConnectorOpenApi";
88
import { ApiCallState, TApiCallState } from "../../../utils/ApiCallState";
99
import { ApiCallStatusError } from "../../../components/ApiCallStatusError/ApiCallStatusError";
10-
import { E_CALL_STATE_ACTIONS } from "./ManageApiProductsCommon";
11-
import APAdminPortalApiProductsService from "../../utils/APAdminPortalApiProductsService";
1210

1311
import '../../../components/APComponents.css';
1412
import "./ManageApiProducts.css";
13+
import { TAPEntityId } from "../../../utils/APEntityIdsService";
14+
import { E_CALL_STATE_ACTIONS } from "./ManageApiProductsCommon";
15+
import APAdminPortalApiProductsDisplayService from "../../displayServices/APAdminPortalApiProductsDisplayService";
1516

1617
export interface IDeleteApiProductProps {
17-
organizationId: string,
18-
apiProductId: string;
19-
apiProductDisplayName: string;
18+
organizationId: string;
19+
apiProductEntityId: TAPEntityId;
2020
onError: (apiCallState: TApiCallState) => void;
21-
onSuccess: (apiCallState: TApiCallState) => void;
21+
onDeleteSuccess: (apiCallState: TApiCallState) => void;
2222
onCancel: () => void;
2323
onLoadingChange: (isLoading: boolean) => void;
2424
}
@@ -35,11 +35,11 @@ export const DeleteApiProduct: React.FC<IDeleteApiProductProps> = (props: IDelet
3535
const apiDeleteManagedObject = async(): Promise<TApiCallState> => {
3636
const funcName = 'apiDeleteManagedObject';
3737
const logName = `${componentName}.${funcName}()`;
38-
let callState: TApiCallState = ApiCallState.getInitialCallState(E_CALL_STATE_ACTIONS.API_DELETE_API_PRODUCT, `delete api product: ${props.apiProductDisplayName}`);
38+
let callState: TApiCallState = ApiCallState.getInitialCallState(E_CALL_STATE_ACTIONS.API_DELETE_API_PRODUCT, `delete api product: ${props.apiProductEntityId.displayName}`);
3939
try {
40-
await APAdminPortalApiProductsService.deleteApApiProductDisplay({
40+
await APAdminPortalApiProductsDisplayService.apiDelete_ApApiProductDisplay({
4141
organizationId: props.organizationId,
42-
apiProductId: props.apiProductId
42+
apiProductId: props.apiProductEntityId.id
4343
});
4444
} catch(e) {
4545
APClientConnectorOpenApi.logError(logName, e);
@@ -53,7 +53,7 @@ export const DeleteApiProduct: React.FC<IDeleteApiProductProps> = (props: IDelet
5353
React.useEffect(() => {
5454
if (apiCallStatus !== null) {
5555
if(!apiCallStatus.success) props.onError(apiCallStatus);
56-
else props.onSuccess(apiCallStatus);
56+
else props.onDeleteSuccess(apiCallStatus);
5757
}
5858
}, [apiCallStatus]); /* eslint-disable-line react-hooks/exhaustive-deps */
5959

@@ -76,7 +76,7 @@ export const DeleteApiProduct: React.FC<IDeleteApiProductProps> = (props: IDelet
7676
const renderDeleteManagedObjectDialogContent = (): JSX.Element => {
7777
return (
7878
<React.Fragment>
79-
<p>Deleting API Product: <b>{props.apiProductDisplayName}</b>.</p>
79+
<p>Deleting API Product: <b>{props.apiProductEntityId.displayName}</b>.</p>
8080
<p>Are you sure you want to delete it?</p>
8181
</React.Fragment>
8282
);

0 commit comments

Comments
 (0)