Remove criticity on assets

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-10-13 22:06:49 +02:00
parent 344b340d1a
commit f808a90bba
22 changed files with 71 additions and 409 deletions

View File

@@ -22,7 +22,6 @@ export const assetNodeQuery = graphql`
snapshotId
name
amount
criticity
assetType
dataTypesStored
owner {
@@ -58,7 +57,6 @@ export const createAssetMutation = graphql`
snapshotId
name
amount
criticity
assetType
dataTypesStored
owner {
@@ -89,7 +87,6 @@ export const updateAssetMutation = graphql`
snapshotId
name
amount
criticity
assetType
dataTypesStored
owner {
@@ -163,7 +160,6 @@ export const useCreateAsset = (connectionId: string) => {
return (input: {
name: string;
amount: number;
criticity: string;
assetType: string;
ownerId: string;
organizationId: string;
@@ -188,7 +184,6 @@ export const useCreateAsset = (connectionId: string) => {
input: {
name: input.name,
amount: input.amount,
criticity: input.criticity,
assetType: input.assetType,
dataTypesStored: input.dataTypesStored || "",
ownerId: input.ownerId,
@@ -209,7 +204,6 @@ export const useUpdateAsset = () => {
id: string;
name?: string;
amount?: number;
criticity?: string;
assetType?: string;
dataTypesStored?: string;
ownerId?: string;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<9f6605e9adebeee2a681da0278642501>>
* @generated SignedSource<<0f47a0632a7158414d8c87cf9de16a7a>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,11 +10,9 @@
import { ConcreteRequest } from 'relay-runtime';
export type AssetType = "PHYSICAL" | "VIRTUAL";
export type CriticityLevel = "HIGH" | "LOW" | "MEDIUM";
export type CreateAssetInput = {
amount: number;
assetType: AssetType;
criticity?: CriticityLevel;
dataTypesStored: string;
name: string;
organizationId: string;
@@ -32,7 +30,6 @@ export type AssetGraphCreateMutation$data = {
readonly amount: number;
readonly assetType: AssetType;
readonly createdAt: any;
readonly criticity: CriticityLevel;
readonly dataTypesStored: string;
readonly id: string;
readonly name: string;
@@ -123,13 +120,6 @@ v5 = {
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -290,16 +280,16 @@ return {
]
},
"params": {
"cacheID": "f11f5052ed6dd175bd701812c0cd136b",
"cacheID": "bc22942b9b4b5efb63a0167c083823fc",
"id": null,
"metadata": {},
"name": "AssetGraphCreateMutation",
"operationKind": "mutation",
"text": "mutation AssetGraphCreateMutation(\n $input: CreateAssetInput!\n) {\n createAsset(input: $input) {\n assetEdge {\n node {\n id\n snapshotId\n name\n amount\n criticity\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n }\n }\n }\n}\n"
"text": "mutation AssetGraphCreateMutation(\n $input: CreateAssetInput!\n) {\n createAsset(input: $input) {\n assetEdge {\n node {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n }\n }\n }\n}\n"
}
};
})();
(node as any).hash = "3cec119022d8dffb8536d93294e2633b";
(node as any).hash = "1d36f3080ab525417516779740f5977c";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<8d257a13d23e2dd68542540dd12ca35b>>
* @generated SignedSource<<cd1648fe4f86e16da121483001ec1a80>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -177,13 +177,6 @@ return {
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -361,12 +354,12 @@ return {
]
},
"params": {
"cacheID": "29eec1243d3cceb5d9931562635e1f24",
"cacheID": "273752608722b727e8c8999b93d45cd4",
"id": null,
"metadata": {},
"name": "AssetGraphListQuery",
"operationKind": "query",
"text": "query AssetGraphListQuery(\n $organizationId: ID!\n $snapshotId: ID\n) {\n node(id: $organizationId) {\n __typename\n ... on Organization {\n ...AssetsPageFragment_3iomuz\n }\n id\n }\n}\n\nfragment AssetsPageFragment_3iomuz on Organization {\n assets(first: 10, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n snapshotId\n name\n amount\n criticity\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
"text": "query AssetGraphListQuery(\n $organizationId: ID!\n $snapshotId: ID\n) {\n node(id: $organizationId) {\n __typename\n ... on Organization {\n ...AssetsPageFragment_3iomuz\n }\n id\n }\n}\n\nfragment AssetsPageFragment_3iomuz on Organization {\n assets(first: 10, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
}
};
})();

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<f1d88685da6d13c894f029b8ac4cf3e4>>
* @generated SignedSource<<c8cbb4eb1df9d733a86642b8f27d6df6>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,7 +10,6 @@
import { ConcreteRequest } from 'relay-runtime';
export type AssetType = "PHYSICAL" | "VIRTUAL";
export type CriticityLevel = "HIGH" | "LOW" | "MEDIUM";
export type VendorCategory = "ANALYTICS" | "CLOUD_MONITORING" | "CLOUD_PROVIDER" | "COLLABORATION" | "CUSTOMER_SUPPORT" | "DATA_STORAGE_AND_PROCESSING" | "DOCUMENT_MANAGEMENT" | "EMPLOYEE_MANAGEMENT" | "ENGINEERING" | "FINANCE" | "IDENTITY_PROVIDER" | "IT" | "MARKETING" | "OFFICE_OPERATIONS" | "OTHER" | "PASSWORD_MANAGEMENT" | "PRODUCT_AND_DESIGN" | "PROFESSIONAL_SERVICES" | "RECRUITING" | "SALES" | "SECURITY" | "VERSION_CONTROL";
export type AssetGraphNodeQuery$variables = {
assetId: string;
@@ -20,7 +19,6 @@ export type AssetGraphNodeQuery$data = {
readonly amount?: number;
readonly assetType?: AssetType;
readonly createdAt?: any;
readonly criticity?: CriticityLevel;
readonly dataTypesStored?: string;
readonly id?: string;
readonly name?: string;
@@ -94,24 +92,17 @@ v6 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"name": "assetType",
"storageKey": null
},
v7 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "assetType",
"storageKey": null
},
v8 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "dataTypesStored",
"storageKey": null
},
v9 = {
v8 = {
"alias": null,
"args": null,
"concreteType": "People",
@@ -130,7 +121,7 @@ v9 = {
],
"storageKey": null
},
v10 = {
v9 = {
"alias": null,
"args": [
{
@@ -185,14 +176,14 @@ v10 = {
],
"storageKey": "vendors(first:50)"
},
v11 = {
v10 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "createdAt",
"storageKey": null
},
v12 = {
v11 = {
"alias": null,
"args": null,
"kind": "ScalarField",
@@ -226,8 +217,7 @@ return {
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/)
(v11/*: any*/)
],
"type": "Asset",
"abstractKey": null
@@ -272,8 +262,7 @@ return {
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/)
(v11/*: any*/)
],
"type": "Asset",
"abstractKey": null
@@ -284,16 +273,16 @@ return {
]
},
"params": {
"cacheID": "6c6e10d25c9bd116703346393adb7a3f",
"cacheID": "f0aebb3dbefaf776a518bb72892d8983",
"id": null,
"metadata": {},
"name": "AssetGraphNodeQuery",
"operationKind": "query",
"text": "query AssetGraphNodeQuery(\n $assetId: ID!\n) {\n node(id: $assetId) {\n __typename\n ... on Asset {\n id\n snapshotId\n name\n amount\n criticity\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n category\n }\n }\n }\n createdAt\n updatedAt\n }\n id\n }\n}\n"
"text": "query AssetGraphNodeQuery(\n $assetId: ID!\n) {\n node(id: $assetId) {\n __typename\n ... on Asset {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n category\n }\n }\n }\n createdAt\n updatedAt\n }\n id\n }\n}\n"
}
};
})();
(node as any).hash = "60053f70c9a65d4658be7b830a3dae72";
(node as any).hash = "08e11e09bc4462efdbebc36aec347c4c";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<6bc692e9d9ab5b78611dc2a326227761>>
* @generated SignedSource<<0d663dac1f9d0086e52882297fbc8944>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,11 +10,9 @@
import { ConcreteRequest } from 'relay-runtime';
export type AssetType = "PHYSICAL" | "VIRTUAL";
export type CriticityLevel = "HIGH" | "LOW" | "MEDIUM";
export type UpdateAssetInput = {
amount?: number | null | undefined;
assetType?: AssetType | null | undefined;
criticity?: CriticityLevel | null | undefined;
dataTypesStored?: string | null | undefined;
id: string;
name?: string | null | undefined;
@@ -29,7 +27,6 @@ export type AssetGraphUpdateMutation$data = {
readonly asset: {
readonly amount: number;
readonly assetType: AssetType;
readonly criticity: CriticityLevel;
readonly dataTypesStored: string;
readonly id: string;
readonly name: string;
@@ -117,13 +114,6 @@ v3 = [
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -237,16 +227,16 @@ return {
"selections": (v3/*: any*/)
},
"params": {
"cacheID": "1447ea6f965bbd6fcdba1ebc72e2d23f",
"cacheID": "ee67fc797e7a09d39db357b1b8e68d11",
"id": null,
"metadata": {},
"name": "AssetGraphUpdateMutation",
"operationKind": "mutation",
"text": "mutation AssetGraphUpdateMutation(\n $input: UpdateAssetInput!\n) {\n updateAsset(input: $input) {\n asset {\n id\n snapshotId\n name\n amount\n criticity\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n updatedAt\n }\n }\n}\n"
"text": "mutation AssetGraphUpdateMutation(\n $input: UpdateAssetInput!\n) {\n updateAsset(input: $input) {\n asset {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n updatedAt\n }\n }\n}\n"
}
};
})();
(node as any).hash = "21b0c94b6245eb849e6118a58fb97490";
(node as any).hash = "65a76cfab2b2fba398cd19e566e3ee33";
export default node;

View File

@@ -26,13 +26,12 @@ import { PeopleSelectField } from "/components/form/PeopleSelectField";
import { VendorsMultiSelectField } from "/components/form/VendorsMultiSelectField";
import { useFormWithSchema } from "/hooks/useFormWithSchema";
import z from "zod";
import { getAssetTypeVariant, getCriticityVariant, validateSnapshotConsistency } from "@probo/helpers";
import { getAssetTypeVariant, validateSnapshotConsistency } from "@probo/helpers";
import { SnapshotBanner } from "/components/SnapshotBanner";
const updateAssetSchema = z.object({
name: z.string().min(1, "Name is required"),
amount: z.number().min(1, "Amount is required"),
criticity: z.enum(["LOW", "MEDIUM", "HIGH"]),
assetType: z.enum(["PHYSICAL", "VIRTUAL"]),
dataTypesStored: z.string().min(1, "Data types stored is required"),
ownerId: z.string().min(1, "Owner is required"),
@@ -71,7 +70,6 @@ export default function AssetDetailsPage(props: Props) {
defaultValues: {
name: assetEntry?.name || "",
amount: assetEntry?.amount || 0,
criticity: assetEntry?.criticity || "LOW",
assetType: assetEntry?.assetType || "VIRTUAL",
dataTypesStored: assetEntry?.dataTypesStored || "",
ownerId: assetEntry?.owner?.id || "",
@@ -118,9 +116,6 @@ export default function AssetDetailsPage(props: Props) {
<Badge variant={getAssetTypeVariant(assetEntry?.assetType)}>
{assetEntry?.assetType === "PHYSICAL" ? __("Physical") : __("Virtual")}
</Badge>
<Badge variant={getCriticityVariant(assetEntry?.criticity)}>
{assetEntry?.criticity}
</Badge>
</div>
{!isSnapshotMode && (
<ActionDropdown variant="secondary">
@@ -150,18 +145,6 @@ export default function AssetDetailsPage(props: Props) {
disabled={isSnapshotMode}
/>
<ControlledField
control={control}
name="criticity"
type="select"
label={__("Criticity")}
disabled={isSnapshotMode}
>
<Option value="LOW">{__("Low")}</Option>
<Option value="MEDIUM">{__("Medium")}</Option>
<Option value="HIGH">{__("High")}</Option>
</ControlledField>
<ControlledField
control={control}
name="assetType"

View File

@@ -28,7 +28,7 @@ import { useDeleteAsset, assetsQuery } from "../../../hooks/graph/AssetGraph";
import type { AssetGraphListQuery } from "/hooks/graph/__generated__/AssetGraphListQuery.graphql";
import { faviconUrl } from "@probo/helpers";
import type { NodeOf } from "/types";
import { getAssetTypeVariant, getCriticityVariant } from "@probo/helpers";
import { getAssetTypeVariant } from "@probo/helpers";
import type {
AssetsPageFragment$data,
AssetsPageFragment$key,
@@ -62,7 +62,6 @@ const paginatedAssetsFragment = graphql`
snapshotId
name
amount
criticity
assetType
dataTypesStored
owner {
@@ -130,7 +129,6 @@ export default function AssetsPage(props: Props) {
<Tr>
<Th>{__("Name")}</Th>
<Th>{__("Type")}</Th>
<Th>{__("Criticity")}</Th>
<Th>{__("Amount")}</Th>
<Th>{__("Owner")}</Th>
<Th>{__("Vendors")}</Th>
@@ -177,11 +175,6 @@ function AssetRow({
{entry.assetType === "PHYSICAL" ? __("Physical") : __("Virtual")}
</Badge>
</Td>
<Td>
<Badge variant={getCriticityVariant(entry.criticity)}>
{entry.criticity}
</Badge>
</Td>
<Td>{entry.amount}</Td>
<Td>{entry.owner?.fullName ?? __("Unassigned")}</Td>
<Td>

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<f2135bf85e1d0dffde8c1bcaa7940504>>
* @generated SignedSource<<794ba3ed2ccc75355a8c69c83d143587>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,7 +10,7 @@
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type AssetOrderField = "AMOUNT" | "CREATED_AT" | "CRITICITY";
export type AssetOrderField = "AMOUNT" | "CREATED_AT";
export type OrderDirection = "ASC" | "DESC";
export type AssetOrder = {
direction: OrderDirection;
@@ -252,13 +252,6 @@ return {
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -436,16 +429,16 @@ return {
]
},
"params": {
"cacheID": "2eab5fe4d402f48ac4dcd8220284ea41",
"cacheID": "71aa6b89d4eba225262e326fdfe04cf7",
"id": null,
"metadata": {},
"name": "AssetsListQuery",
"operationKind": "query",
"text": "query AssetsListQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 10\n $last: Int = null\n $orderBy: AssetOrder = null\n $snapshotId: ID = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...AssetsPageFragment_38J9tm\n id\n }\n}\n\nfragment AssetsPageFragment_38J9tm on Organization {\n assets(first: $first, after: $after, last: $last, before: $before, orderBy: $orderBy, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n snapshotId\n name\n amount\n criticity\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
"text": "query AssetsListQuery(\n $after: CursorKey = null\n $before: CursorKey = null\n $first: Int = 10\n $last: Int = null\n $orderBy: AssetOrder = null\n $snapshotId: ID = null\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...AssetsPageFragment_38J9tm\n id\n }\n}\n\nfragment AssetsPageFragment_38J9tm on Organization {\n assets(first: $first, after: $after, last: $last, before: $before, orderBy: $orderBy, filter: {snapshotId: $snapshotId}) {\n edges {\n node {\n id\n snapshotId\n name\n amount\n assetType\n dataTypesStored\n owner {\n id\n fullName\n }\n vendors(first: 50) {\n edges {\n node {\n id\n name\n websiteUrl\n }\n }\n }\n createdAt\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n hasPreviousPage\n startCursor\n }\n }\n id\n}\n"
}
};
})();
(node as any).hash = "4bc1af55d208f3c773c49b753a76aa5c";
(node as any).hash = "a230182c928f189b50fdc39950602ffd";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<663b14d82ccaeebe2dda8dc256fddfc5>>
* @generated SignedSource<<6f077a71ef62a9c059bee1b50d3a23ef>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,7 +10,6 @@
import { ReaderFragment } from 'relay-runtime';
export type AssetType = "PHYSICAL" | "VIRTUAL";
export type CriticityLevel = "HIGH" | "LOW" | "MEDIUM";
import { FragmentRefs } from "relay-runtime";
export type AssetsPageFragment$data = {
readonly assets: {
@@ -20,7 +19,6 @@ export type AssetsPageFragment$data = {
readonly amount: number;
readonly assetType: AssetType;
readonly createdAt: any;
readonly criticity: CriticityLevel;
readonly dataTypesStored: string;
readonly id: string;
readonly name: string;
@@ -188,13 +186,6 @@ return {
"name": "amount",
"storageKey": null
},
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "criticity",
"storageKey": null
},
{
"alias": null,
"args": null,
@@ -364,6 +355,6 @@ return {
};
})();
(node as any).hash = "4bc1af55d208f3c773c49b753a76aa5c";
(node as any).hash = "a230182c928f189b50fdc39950602ffd";
export default node;

View File

@@ -19,7 +19,6 @@ import { useCreateAsset } from "/hooks/graph/AssetGraph";
const schema = z.object({
name: z.string().min(1, "Name is required"),
amount: z.number().min(1, "Amount is required"),
criticity: z.enum(["LOW", "MEDIUM", "HIGH"]),
assetType: z.enum(["PHYSICAL", "VIRTUAL"]),
ownerId: z.string().min(1, "Owner is required"),
vendorIds: z.array(z.string()).optional(),
@@ -43,7 +42,6 @@ export function CreateAssetDialog({
defaultValues: {
name: "",
amount: 0,
criticity: "LOW",
assetType: "VIRTUAL",
ownerId: "",
vendorIds: [],
@@ -79,16 +77,6 @@ export function CreateAssetDialog({
{...register("amount", { valueAsNumber: true })}
type="number"
/>
<ControlledField
control={control}
name="criticity"
type="select"
label={__("Criticity")}
>
<Option value="LOW">{__("Low")}</Option>
<Option value="MEDIUM">{__("Medium")}</Option>
<Option value="HIGH">{__("High")}</Option>
</ControlledField>
<ControlledField
control={control}
name="assetType"