diff --git a/apps/console/src/pages/organizations/data/DataListView.tsx b/apps/console/src/pages/organizations/data/DataListView.tsx
index 5ec924267..46c6e65e7 100644
--- a/apps/console/src/pages/organizations/data/DataListView.tsx
+++ b/apps/console/src/pages/organizations/data/DataListView.tsx
@@ -60,7 +60,7 @@ const dataListFragment = graphql`
node {
id
name
- dataSensitivity
+ dataClassification
owner {
id
fullName
@@ -236,29 +236,27 @@ function DataListContent({
- {item?.dataSensitivity === "NONE"
- ? "No sensitive data"
- : item?.dataSensitivity === "LOW"
- ? "Public or non-sensitive data"
- : item?.dataSensitivity === "MEDIUM"
- ? "Internal/restricted data"
- : item?.dataSensitivity === "HIGH"
- ? "Confidential data"
- : item?.dataSensitivity === "CRITICAL"
- ? "Regulated/PII/financial data"
- : "No sensitive data"}
+ {item?.dataClassification === "PUBLIC"
+ ? "Public"
+ : item?.dataClassification === "INTERNAL"
+ ? "Internal"
+ : item?.dataClassification === "CONFIDENTIAL"
+ ? "Confidential"
+ : item?.dataClassification === "SECRET"
+ ? "Secret"
+ : "Unknown"}
diff --git a/apps/console/src/pages/organizations/data/NewDatumView.tsx b/apps/console/src/pages/organizations/data/NewDatumView.tsx
index 1b631b102..6a79a1c7d 100644
--- a/apps/console/src/pages/organizations/data/NewDatumView.tsx
+++ b/apps/console/src/pages/organizations/data/NewDatumView.tsx
@@ -44,7 +44,7 @@ const createDatumMutation = graphql`
node {
id
name
- dataSensitivity
+ dataClassification
owner {
id
fullName
@@ -129,7 +129,7 @@ function NewDataViewContent({
const [formData, setFormData] = useState({
name: "",
- dataSensitivity: "NONE" as "NONE" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL",
+ dataClassification: "INTERNAL" as "PUBLIC" | "INTERNAL" | "CONFIDENTIAL" | "SECRET",
ownerId: "",
selectedVendorIds: [] as string[],
});
@@ -184,7 +184,7 @@ function NewDataViewContent({
input: {
organizationId: organizationId!,
name: formData.name,
- dataSensitivity: formData.dataSensitivity,
+ dataClassification: formData.dataClassification,
ownerId: formData.ownerId,
vendorIds: formData.selectedVendorIds.length > 0 ? formData.selectedVendorIds : undefined,
} satisfies CreateDatumInput,
@@ -278,19 +278,18 @@ function NewDataViewContent({
diff --git a/apps/console/src/pages/organizations/data/__generated__/DataListViewPaginationQuery.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/DataListViewPaginationQuery.graphql.ts
index 12b1f236f..fd4bf2def 100644
--- a/apps/console/src/pages/organizations/data/__generated__/DataListViewPaginationQuery.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/DataListViewPaginationQuery.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<9fb6bfbd0ba80aa33ef3d8edfdb53a19>>
+ * @generated SignedSource<<390d190ae303b0edd4858bc50f58c048>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -208,7 +208,7 @@ return {
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
{
@@ -368,16 +368,16 @@ return {
]
},
"params": {
- "cacheID": "1a9be11b8d32e569f75ae591226e7b8b",
+ "cacheID": "7a663a198e00b6cc15d889565e48f4e2",
"id": null,
"metadata": {},
"name": "DataListViewPaginationQuery",
"operationKind": "query",
- "text": "query DataListViewPaginationQuery(\n $after: CursorKey\n $before: CursorKey\n $first: Int\n $last: Int\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...DataListView_data_pbnwq\n id\n }\n}\n\nfragment DataListView_data_pbnwq on Organization {\n id\n data(first: $first, after: $after, last: $last, before: $before, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n dataSensitivity\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n createdAt\n updatedAt\n __typename\n }\n cursor\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n"
+ "text": "query DataListViewPaginationQuery(\n $after: CursorKey\n $before: CursorKey\n $first: Int\n $last: Int\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...DataListView_data_pbnwq\n id\n }\n}\n\nfragment DataListView_data_pbnwq on Organization {\n id\n data(first: $first, after: $after, last: $last, before: $before, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n dataClassification\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n createdAt\n updatedAt\n __typename\n }\n cursor\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n"
}
};
})();
-(node as any).hash = "d1b1652f1f59c091709bce823b6a0eaa";
+(node as any).hash = "b8465a1295d6d7351cee98f2e4f9756a";
export default node;
diff --git a/apps/console/src/pages/organizations/data/__generated__/DataListViewQuery.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/DataListViewQuery.graphql.ts
index cdd783ec5..55fbeb684 100644
--- a/apps/console/src/pages/organizations/data/__generated__/DataListViewQuery.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/DataListViewQuery.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<905fb20472d2c30aabb9a9afc41acf41>>
+ * @generated SignedSource<>
* @lightSyntaxTransform
* @nogrep
*/
@@ -208,7 +208,7 @@ return {
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
{
@@ -368,12 +368,12 @@ return {
]
},
"params": {
- "cacheID": "0c5725c38efb32dc65674c4bbd8dd154",
+ "cacheID": "164b5819fe6d186b9baa512c67b59e9a",
"id": null,
"metadata": {},
"name": "DataListViewQuery",
"operationKind": "query",
- "text": "query DataListViewQuery(\n $organizationId: ID!\n $first: Int\n $after: CursorKey\n $last: Int\n $before: CursorKey\n) {\n organization: node(id: $organizationId) {\n __typename\n ...DataListView_data_pbnwq\n id\n }\n}\n\nfragment DataListView_data_pbnwq on Organization {\n id\n data(first: $first, after: $after, last: $last, before: $before, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n dataSensitivity\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n createdAt\n updatedAt\n __typename\n }\n cursor\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n"
+ "text": "query DataListViewQuery(\n $organizationId: ID!\n $first: Int\n $after: CursorKey\n $last: Int\n $before: CursorKey\n) {\n organization: node(id: $organizationId) {\n __typename\n ...DataListView_data_pbnwq\n id\n }\n}\n\nfragment DataListView_data_pbnwq on Organization {\n id\n data(first: $first, after: $after, last: $last, before: $before, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n dataClassification\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n createdAt\n updatedAt\n __typename\n }\n cursor\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n"
}
};
})();
diff --git a/apps/console/src/pages/organizations/data/__generated__/DataListView_data.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/DataListView_data.graphql.ts
index 46e335871..c144b2035 100644
--- a/apps/console/src/pages/organizations/data/__generated__/DataListView_data.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/DataListView_data.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<25f5cfd4e1e5f0724a1082db9d9b10d6>>
+ * @generated SignedSource<<63f7ca6490b6387c5950790772723ebc>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,7 +9,7 @@
// @ts-nocheck
import { ReaderFragment } from 'relay-runtime';
-export type DataSensitivity = "CRITICAL" | "HIGH" | "LOW" | "MEDIUM" | "NONE";
+export type DataClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
import { FragmentRefs } from "relay-runtime";
export type DataListView_data$data = {
readonly data: {
@@ -17,7 +17,7 @@ export type DataListView_data$data = {
readonly edges: ReadonlyArray<{
readonly node: {
readonly createdAt: string;
- readonly dataSensitivity: DataSensitivity;
+ readonly dataClassification: DataClassification;
readonly id: string;
readonly name: string;
readonly owner: {
@@ -165,7 +165,7 @@ return {
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
{
@@ -316,6 +316,6 @@ return {
};
})();
-(node as any).hash = "d1b1652f1f59c091709bce823b6a0eaa";
+(node as any).hash = "b8465a1295d6d7351cee98f2e4f9756a";
export default node;
diff --git a/apps/console/src/pages/organizations/data/__generated__/DatumViewQuery.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/DatumViewQuery.graphql.ts
index 575dac7c8..1ce4b639b 100644
--- a/apps/console/src/pages/organizations/data/__generated__/DatumViewQuery.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/DatumViewQuery.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<272734160b60bf94a6f031e685751b64>>
+ * @generated SignedSource<<435da2b0f7d8b9ec259d386a752c18b7>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -10,7 +10,7 @@
import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
-export type DataSensitivity = "CRITICAL" | "HIGH" | "LOW" | "MEDIUM" | "NONE";
+export type DataClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
export type DatumViewQuery$variables = {
datumId: string;
organizationId: string;
@@ -18,7 +18,7 @@ export type DatumViewQuery$variables = {
export type DatumViewQuery$data = {
readonly node: {
readonly createdAt?: string;
- readonly dataSensitivity?: DataSensitivity;
+ readonly dataClassification?: DataClassification;
readonly id?: string;
readonly name?: string;
readonly owner?: {
@@ -91,7 +91,7 @@ v4 = {
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
v5 = {
@@ -469,7 +469,7 @@ return {
]
},
"params": {
- "cacheID": "c3fd8609637a69d90a532344150b4d6a",
+ "cacheID": "958954258516869d985feedba1cf9db3",
"id": null,
"metadata": {
"connection": [
@@ -486,11 +486,11 @@ return {
},
"name": "DatumViewQuery",
"operationKind": "query",
- "text": "query DatumViewQuery(\n $datumId: ID!\n $organizationId: ID!\n) {\n node(id: $datumId) {\n __typename\n ... on Datum {\n id\n name\n dataSensitivity\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n owner {\n id\n fullName\n }\n createdAt\n updatedAt\n }\n id\n }\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n ...PeopleSelector_organization\n vendors(first: 100, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment PeopleSelector_organization on Organization {\n id\n peoples(first: 100, orderBy: {direction: ASC, field: FULL_NAME}) {\n edges {\n node {\n id\n fullName\n primaryEmailAddress\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n"
+ "text": "query DatumViewQuery(\n $datumId: ID!\n $organizationId: ID!\n) {\n node(id: $datumId) {\n __typename\n ... on Datum {\n id\n name\n dataClassification\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n owner {\n id\n fullName\n }\n createdAt\n updatedAt\n }\n id\n }\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n ...PeopleSelector_organization\n vendors(first: 100, orderBy: {direction: ASC, field: NAME}) {\n edges {\n node {\n id\n name\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment PeopleSelector_organization on Organization {\n id\n peoples(first: 100, orderBy: {direction: ASC, field: FULL_NAME}) {\n edges {\n node {\n id\n fullName\n primaryEmailAddress\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n"
}
};
})();
-(node as any).hash = "2f759d45493db37e45b3a7166dd36c2e";
+(node as any).hash = "836074301e1d6f8c2aec59fc569bd68e";
export default node;
diff --git a/apps/console/src/pages/organizations/data/__generated__/DatumViewUpdateDatumMutation.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/DatumViewUpdateDatumMutation.graphql.ts
index ee67d7b47..4c17408e0 100644
--- a/apps/console/src/pages/organizations/data/__generated__/DatumViewUpdateDatumMutation.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/DatumViewUpdateDatumMutation.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<4aa66259b93ace779a3e38430cf8c1ee>>
+ * @generated SignedSource<<6a2c795f1b3328794d9e3db73151feaa>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,9 +9,9 @@
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
-export type DataSensitivity = "CRITICAL" | "HIGH" | "LOW" | "MEDIUM" | "NONE";
+export type DataClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
export type UpdateDatumInput = {
- dataSensitivity?: DataSensitivity | null | undefined;
+ dataClassification?: DataClassification | null | undefined;
id: string;
name?: string | null | undefined;
ownerId?: string | null | undefined;
@@ -23,7 +23,7 @@ export type DatumViewUpdateDatumMutation$variables = {
export type DatumViewUpdateDatumMutation$data = {
readonly updateDatum: {
readonly datum: {
- readonly dataSensitivity: DataSensitivity;
+ readonly dataClassification: DataClassification;
readonly id: string;
readonly name: string;
readonly owner: {
@@ -96,7 +96,7 @@ v2 = [
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
{
@@ -184,16 +184,16 @@ return {
"selections": (v2/*: any*/)
},
"params": {
- "cacheID": "1e5b2489558fef74becf57d2457a4891",
+ "cacheID": "ec5c79edccc379aae627f969ec18c55e",
"id": null,
"metadata": {},
"name": "DatumViewUpdateDatumMutation",
"operationKind": "mutation",
- "text": "mutation DatumViewUpdateDatumMutation(\n $input: UpdateDatumInput!\n) {\n updateDatum(input: $input) {\n datum {\n id\n name\n dataSensitivity\n vendors {\n edges {\n node {\n id\n }\n }\n }\n owner {\n id\n fullName\n }\n updatedAt\n }\n }\n}\n"
+ "text": "mutation DatumViewUpdateDatumMutation(\n $input: UpdateDatumInput!\n) {\n updateDatum(input: $input) {\n datum {\n id\n name\n dataClassification\n vendors {\n edges {\n node {\n id\n }\n }\n }\n owner {\n id\n fullName\n }\n updatedAt\n }\n }\n}\n"
}
};
})();
-(node as any).hash = "ac445fa9f2ccebef8203e0138c794ea8";
+(node as any).hash = "38b1842eb3e3549efc9e961c56c22879";
export default node;
diff --git a/apps/console/src/pages/organizations/data/__generated__/NewDatumViewCreateDatumMutation.graphql.ts b/apps/console/src/pages/organizations/data/__generated__/NewDatumViewCreateDatumMutation.graphql.ts
index 13758a432..d4363ca4d 100644
--- a/apps/console/src/pages/organizations/data/__generated__/NewDatumViewCreateDatumMutation.graphql.ts
+++ b/apps/console/src/pages/organizations/data/__generated__/NewDatumViewCreateDatumMutation.graphql.ts
@@ -1,5 +1,5 @@
/**
- * @generated SignedSource<<5b93fe65ad69563bbcb6e75d0b913eb8>>
+ * @generated SignedSource<<87179d28750a2a84a6c1ea1b779cbd49>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -9,9 +9,9 @@
// @ts-nocheck
import { ConcreteRequest } from 'relay-runtime';
-export type DataSensitivity = "CRITICAL" | "HIGH" | "LOW" | "MEDIUM" | "NONE";
+export type DataClassification = "CONFIDENTIAL" | "INTERNAL" | "PUBLIC" | "SECRET";
export type CreateDatumInput = {
- dataSensitivity: DataSensitivity;
+ dataClassification: DataClassification;
name: string;
organizationId: string;
ownerId: string;
@@ -25,7 +25,7 @@ export type NewDatumViewCreateDatumMutation$data = {
readonly createDatum: {
readonly datumEdge: {
readonly node: {
- readonly dataSensitivity: DataSensitivity;
+ readonly dataClassification: DataClassification;
readonly id: string;
readonly name: string;
readonly owner: {
@@ -103,7 +103,7 @@ v5 = {
"alias": null,
"args": null,
"kind": "ScalarField",
- "name": "dataSensitivity",
+ "name": "dataClassification",
"storageKey": null
},
{
@@ -232,16 +232,16 @@ return {
]
},
"params": {
- "cacheID": "0ab550803b091f5dfa1935f810eaecdc",
+ "cacheID": "1349272a7b0c9f14ee6e257f66ad5cea",
"id": null,
"metadata": {},
"name": "NewDatumViewCreateDatumMutation",
"operationKind": "mutation",
- "text": "mutation NewDatumViewCreateDatumMutation(\n $input: CreateDatumInput!\n) {\n createDatum(input: $input) {\n datumEdge {\n node {\n id\n name\n dataSensitivity\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n }\n }\n }\n}\n"
+ "text": "mutation NewDatumViewCreateDatumMutation(\n $input: CreateDatumInput!\n) {\n createDatum(input: $input) {\n datumEdge {\n node {\n id\n name\n dataClassification\n owner {\n id\n fullName\n }\n vendors {\n edges {\n node {\n id\n name\n }\n }\n }\n }\n }\n }\n}\n"
}
};
})();
-(node as any).hash = "697a260fb7d44115c617682d38b9259d";
+(node as any).hash = "9b5546ff1b7563fdb7db2bbcba53f3fe";
export default node;
diff --git a/pkg/coredata/data.go b/pkg/coredata/data.go
index 14cb10d1c..8978e8f29 100644
--- a/pkg/coredata/data.go
+++ b/pkg/coredata/data.go
@@ -27,13 +27,13 @@ import (
)
type Data struct {
- ID gid.GID `db:"id"`
- Name string `db:"name"`
- OrganizationID gid.GID `db:"organization_id"`
- OwnerID gid.GID `db:"owner_id"`
- DataSensitivity DataSensitivity `db:"data_sensitivity"`
- CreatedAt time.Time `db:"created_at"`
- UpdatedAt time.Time `db:"updated_at"`
+ ID gid.GID `db:"id"`
+ Name string `db:"name"`
+ OrganizationID gid.GID `db:"organization_id"`
+ OwnerID gid.GID `db:"owner_id"`
+ DataClassification DataClassification `db:"data_classification"`
+ CreatedAt time.Time `db:"created_at"`
+ UpdatedAt time.Time `db:"updated_at"`
}
func (d *Data) CursorKey(field DatumOrderField) page.CursorKey {
@@ -42,8 +42,8 @@ func (d *Data) CursorKey(field DatumOrderField) page.CursorKey {
return page.NewCursorKey(d.ID, d.CreatedAt)
case DatumOrderFieldName:
return page.NewCursorKey(d.ID, d.Name)
- case DatumOrderFieldDataSensitivity:
- return page.NewCursorKey(d.ID, d.DataSensitivity)
+ case DatumOrderFieldDataClassification:
+ return page.NewCursorKey(d.ID, d.DataClassification)
}
panic(fmt.Sprintf("unsupported order by: %s", field))
@@ -63,7 +63,7 @@ SELECT
name,
owner_id,
organization_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
FROM
@@ -105,7 +105,7 @@ SELECT
name,
owner_id,
organization_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
FROM
@@ -148,7 +148,7 @@ SELECT
id,
name,
owner_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
FROM
@@ -193,7 +193,7 @@ SELECT
name,
organization_id,
owner_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
FROM
@@ -237,7 +237,7 @@ INSERT INTO data (
name,
owner_id,
organization_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
) VALUES (
@@ -246,21 +246,21 @@ INSERT INTO data (
@name,
@owner_id,
@organization_id,
- @data_sensitivity,
+ @data_classification,
@created_at,
@updated_at
)
`
args := pgx.StrictNamedArgs{
- "id": d.ID,
- "tenant_id": scope.GetTenantID(),
- "name": d.Name,
- "owner_id": d.OwnerID,
- "organization_id": d.OrganizationID,
- "data_sensitivity": d.DataSensitivity,
- "created_at": d.CreatedAt,
- "updated_at": d.UpdatedAt,
+ "id": d.ID,
+ "tenant_id": scope.GetTenantID(),
+ "name": d.Name,
+ "owner_id": d.OwnerID,
+ "organization_id": d.OrganizationID,
+ "data_classification": d.DataClassification,
+ "created_at": d.CreatedAt,
+ "updated_at": d.UpdatedAt,
}
_, err := conn.Exec(ctx, q, args)
@@ -281,7 +281,7 @@ UPDATE data
SET
name = @name,
owner_id = @owner_id,
- data_sensitivity = @data_sensitivity,
+ data_classification = @data_classification,
updated_at = @updated_at
WHERE
%s
@@ -291,7 +291,7 @@ RETURNING
name,
owner_id,
organization_id,
- data_sensitivity,
+ data_classification,
created_at,
updated_at
`
@@ -299,11 +299,11 @@ RETURNING
q = fmt.Sprintf(q, scope.SQLFragment())
args := pgx.StrictNamedArgs{
- "id": d.ID,
- "name": d.Name,
- "owner_id": d.OwnerID,
- "data_sensitivity": d.DataSensitivity,
- "updated_at": time.Now(),
+ "id": d.ID,
+ "name": d.Name,
+ "owner_id": d.OwnerID,
+ "data_classification": d.DataClassification,
+ "updated_at": time.Now(),
}
maps.Copy(args, scope.SQLArguments())
diff --git a/pkg/coredata/data_classification.go b/pkg/coredata/data_classification.go
new file mode 100644
index 000000000..06c5ebf6b
--- /dev/null
+++ b/pkg/coredata/data_classification.go
@@ -0,0 +1,24 @@
+// Copyright (c) 2025 Probo Inc .
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+package coredata
+
+type DataClassification string
+
+const (
+ DataClassificationPublic DataClassification = "PUBLIC"
+ DataClassificationInternal DataClassification = "INTERNAL"
+ DataClassificationConfidential DataClassification = "CONFIDENTIAL"
+ DataClassificationSecret DataClassification = "SECRET"
+)
diff --git a/pkg/coredata/datum_order_field.go b/pkg/coredata/datum_order_field.go
index ad36a7e4a..896e53979 100644
--- a/pkg/coredata/datum_order_field.go
+++ b/pkg/coredata/datum_order_field.go
@@ -21,9 +21,9 @@ import (
type DatumOrderField string
const (
- DatumOrderFieldCreatedAt DatumOrderField = "CREATED_AT"
- DatumOrderFieldName DatumOrderField = "NAME"
- DatumOrderFieldDataSensitivity DatumOrderField = "DATA_SENSITIVITY"
+ DatumOrderFieldCreatedAt DatumOrderField = "CREATED_AT"
+ DatumOrderFieldName DatumOrderField = "NAME"
+ DatumOrderFieldDataClassification DatumOrderField = "DATA_CLASSIFICATION"
)
func (p DatumOrderField) Column() string {
@@ -43,7 +43,7 @@ func (p *DatumOrderField) UnmarshalText(text []byte) error {
switch val {
case string(DatumOrderFieldCreatedAt),
string(DatumOrderFieldName),
- string(DatumOrderFieldDataSensitivity):
+ string(DatumOrderFieldDataClassification):
*p = DatumOrderField(val)
return nil
}
diff --git a/pkg/coredata/migrations/20250609T193222Z.sql b/pkg/coredata/migrations/20250609T193222Z.sql
new file mode 100644
index 000000000..e476151ac
--- /dev/null
+++ b/pkg/coredata/migrations/20250609T193222Z.sql
@@ -0,0 +1,24 @@
+CREATE TYPE data_classification_type AS ENUM (
+ 'PUBLIC',
+ 'INTERNAL',
+ 'CONFIDENTIAL',
+ 'SECRET'
+);
+
+ALTER TABLE data
+ADD COLUMN data_classification data_classification_type;
+
+UPDATE data
+SET data_classification = CASE
+ WHEN data_sensitivity = 'NONE' THEN 'PUBLIC'::data_classification_type
+ WHEN data_sensitivity = 'LOW' THEN 'INTERNAL'::data_classification_type
+ WHEN data_sensitivity = 'MEDIUM' THEN 'INTERNAL'::data_classification_type
+ WHEN data_sensitivity = 'HIGH' THEN 'CONFIDENTIAL'::data_classification_type
+ WHEN data_sensitivity = 'CRITICAL' THEN 'SECRET'::data_classification_type
+END;
+
+ALTER TABLE data
+ALTER COLUMN data_classification SET NOT NULL;
+
+ALTER TABLE data
+DROP COLUMN data_sensitivity;
diff --git a/pkg/probo/datum_service.go b/pkg/probo/datum_service.go
index dd2614840..cddebc639 100644
--- a/pkg/probo/datum_service.go
+++ b/pkg/probo/datum_service.go
@@ -30,19 +30,19 @@ type DatumService struct {
}
type CreateDatumRequest struct {
- OrganizationID gid.GID
- Name string
- DataSensitivity coredata.DataSensitivity
- OwnerID gid.GID
- VendorIDs []gid.GID
+ OrganizationID gid.GID
+ Name string
+ DataClassification coredata.DataClassification
+ OwnerID gid.GID
+ VendorIDs []gid.GID
}
type UpdateDatumRequest struct {
- ID gid.GID
- Name *string
- DataSensitivity *coredata.DataSensitivity
- OwnerID *gid.GID
- VendorIDs []gid.GID
+ ID gid.GID
+ Name *string
+ DataClassification *coredata.DataClassification
+ OwnerID *gid.GID
+ VendorIDs []gid.GID
}
func (s DatumService) Get(
@@ -126,21 +126,21 @@ func (s DatumService) Update(
}
datum := &coredata.Data{
- ID: req.ID,
- OrganizationID: existing.OrganizationID,
- Name: existing.Name,
- DataSensitivity: existing.DataSensitivity,
- OwnerID: existing.OwnerID,
- CreatedAt: existing.CreatedAt,
- UpdatedAt: now,
+ ID: req.ID,
+ OrganizationID: existing.OrganizationID,
+ Name: existing.Name,
+ DataClassification: existing.DataClassification,
+ OwnerID: existing.OwnerID,
+ CreatedAt: existing.CreatedAt,
+ UpdatedAt: now,
}
// Update fields from request
if req.Name != nil {
datum.Name = *req.Name
}
- if req.DataSensitivity != nil {
- datum.DataSensitivity = *req.DataSensitivity
+ if req.DataClassification != nil {
+ datum.DataClassification = *req.DataClassification
}
if req.OwnerID != nil {
datum.OwnerID = *req.OwnerID
@@ -161,13 +161,13 @@ func (s DatumService) Create(
datumID := gid.New(s.svc.scope.GetTenantID(), coredata.DatumEntityType)
datum := &coredata.Data{
- ID: datumID,
- OrganizationID: req.OrganizationID,
- Name: req.Name,
- DataSensitivity: req.DataSensitivity,
- OwnerID: req.OwnerID,
- CreatedAt: now,
- UpdatedAt: now,
+ ID: datumID,
+ OrganizationID: req.OrganizationID,
+ Name: req.Name,
+ DataClassification: req.DataClassification,
+ OwnerID: req.OwnerID,
+ CreatedAt: now,
+ UpdatedAt: now,
}
err := s.svc.pg.WithTx(
diff --git a/pkg/server/api/console/v1/schema.graphql b/pkg/server/api/console/v1/schema.graphql
index e8fa8276d..74fda2443 100644
--- a/pkg/server/api/console/v1/schema.graphql
+++ b/pkg/server/api/console/v1/schema.graphql
@@ -367,7 +367,19 @@ enum AssetOrderField @goModel(model: "github.com/getprobo/probo/pkg/coredata.Ass
enum DatumOrderField @goModel(model: "github.com/getprobo/probo/pkg/coredata.DatumOrderField") {
CREATED_AT @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldCreatedAt")
NAME @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldName")
- DATA_SENSITIVITY @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldDataSensitivity")
+ DATA_CLASSIFICATION @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldDataClassification")
+}
+
+enum DataClassification
+ @goModel(model: "github.com/getprobo/probo/pkg/coredata.DataClassification") {
+ PUBLIC
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationPublic")
+ INTERNAL
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationInternal")
+ CONFIDENTIAL
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationConfidential")
+ SECRET
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationSecret")
}
# Input Types
@@ -2029,7 +2041,7 @@ type DeleteAssetPayload {
type Datum implements Node {
id: ID!
name: String!
- dataSensitivity: DataSensitivity!
+ dataClassification: DataClassification!
owner: People! @goField(forceResolver: true)
vendors(
first: Int
@@ -2051,7 +2063,7 @@ input DatumOrder {
input CreateDatumInput {
organizationId: ID!
name: String!
- dataSensitivity: DataSensitivity!
+ dataClassification: DataClassification!
ownerId: ID!
vendorIds: [ID!]
}
@@ -2059,7 +2071,7 @@ input CreateDatumInput {
input UpdateDatumInput {
id: ID!
name: String
- dataSensitivity: DataSensitivity
+ dataClassification: DataClassification
ownerId: ID
vendorIds: [ID!]
}
diff --git a/pkg/server/api/console/v1/schema/schema.go b/pkg/server/api/console/v1/schema/schema.go
index 8e1344ee2..a9ff58b6e 100644
--- a/pkg/server/api/console/v1/schema/schema.go
+++ b/pkg/server/api/console/v1/schema/schema.go
@@ -221,14 +221,14 @@ type ComplexityRoot struct {
}
Datum struct {
- CreatedAt func(childComplexity int) int
- DataSensitivity func(childComplexity int) int
- ID func(childComplexity int) int
- Name func(childComplexity int) int
- Organization func(childComplexity int) int
- Owner func(childComplexity int) int
- UpdatedAt func(childComplexity int) int
- Vendors func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.VendorOrderBy) int
+ CreatedAt func(childComplexity int) int
+ DataClassification func(childComplexity int) int
+ ID func(childComplexity int) int
+ Name func(childComplexity int) int
+ Organization func(childComplexity int) int
+ Owner func(childComplexity int) int
+ UpdatedAt func(childComplexity int) int
+ Vendors func(childComplexity int, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.VendorOrderBy) int
}
DatumConnection struct {
@@ -1518,12 +1518,12 @@ func (e *executableSchema) Complexity(ctx context.Context, typeName, field strin
return e.complexity.Datum.CreatedAt(childComplexity), true
- case "Datum.dataSensitivity":
- if e.complexity.Datum.DataSensitivity == nil {
+ case "Datum.dataClassification":
+ if e.complexity.Datum.DataClassification == nil {
break
}
- return e.complexity.Datum.DataSensitivity(childComplexity), true
+ return e.complexity.Datum.DataClassification(childComplexity), true
case "Datum.id":
if e.complexity.Datum.ID == nil {
@@ -5061,7 +5061,19 @@ enum AssetOrderField @goModel(model: "github.com/getprobo/probo/pkg/coredata.Ass
enum DatumOrderField @goModel(model: "github.com/getprobo/probo/pkg/coredata.DatumOrderField") {
CREATED_AT @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldCreatedAt")
NAME @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldName")
- DATA_SENSITIVITY @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldDataSensitivity")
+ DATA_CLASSIFICATION @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DatumOrderFieldDataClassification")
+}
+
+enum DataClassification
+ @goModel(model: "github.com/getprobo/probo/pkg/coredata.DataClassification") {
+ PUBLIC
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationPublic")
+ INTERNAL
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationInternal")
+ CONFIDENTIAL
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationConfidential")
+ SECRET
+ @goEnum(value: "github.com/getprobo/probo/pkg/coredata.DataClassificationSecret")
}
# Input Types
@@ -6723,7 +6735,7 @@ type DeleteAssetPayload {
type Datum implements Node {
id: ID!
name: String!
- dataSensitivity: DataSensitivity!
+ dataClassification: DataClassification!
owner: People! @goField(forceResolver: true)
vendors(
first: Int
@@ -6745,7 +6757,7 @@ input DatumOrder {
input CreateDatumInput {
organizationId: ID!
name: String!
- dataSensitivity: DataSensitivity!
+ dataClassification: DataClassification!
ownerId: ID!
vendorIds: [ID!]
}
@@ -6753,7 +6765,7 @@ input CreateDatumInput {
input UpdateDatumInput {
id: ID!
name: String
- dataSensitivity: DataSensitivity
+ dataClassification: DataClassification
ownerId: ID
vendorIds: [ID!]
}
@@ -14755,8 +14767,8 @@ func (ec *executionContext) fieldContext_Datum_name(_ context.Context, field gra
return fc, nil
}
-func (ec *executionContext) _Datum_dataSensitivity(ctx context.Context, field graphql.CollectedField, obj *types.Datum) (ret graphql.Marshaler) {
- fc, err := ec.fieldContext_Datum_dataSensitivity(ctx, field)
+func (ec *executionContext) _Datum_dataClassification(ctx context.Context, field graphql.CollectedField, obj *types.Datum) (ret graphql.Marshaler) {
+ fc, err := ec.fieldContext_Datum_dataClassification(ctx, field)
if err != nil {
return graphql.Null
}
@@ -14769,7 +14781,7 @@ func (ec *executionContext) _Datum_dataSensitivity(ctx context.Context, field gr
}()
resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) {
ctx = rctx // use context from middleware stack in children
- return obj.DataSensitivity, nil
+ return obj.DataClassification, nil
})
if err != nil {
ec.Error(ctx, err)
@@ -14781,19 +14793,19 @@ func (ec *executionContext) _Datum_dataSensitivity(ctx context.Context, field gr
}
return graphql.Null
}
- res := resTmp.(coredata.DataSensitivity)
+ res := resTmp.(coredata.DataClassification)
fc.Result = res
- return ec.marshalNDataSensitivity2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx, field.Selections, res)
+ return ec.marshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx, field.Selections, res)
}
-func (ec *executionContext) fieldContext_Datum_dataSensitivity(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
+func (ec *executionContext) fieldContext_Datum_dataClassification(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
fc = &graphql.FieldContext{
Object: "Datum",
Field: field,
IsMethod: false,
IsResolver: false,
Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) {
- return nil, errors.New("field of type DataSensitivity does not have child fields")
+ return nil, errors.New("field of type DataClassification does not have child fields")
},
}
return fc, nil
@@ -15285,8 +15297,8 @@ func (ec *executionContext) fieldContext_DatumEdge_node(_ context.Context, field
return ec.fieldContext_Datum_id(ctx, field)
case "name":
return ec.fieldContext_Datum_name(ctx, field)
- case "dataSensitivity":
- return ec.fieldContext_Datum_dataSensitivity(ctx, field)
+ case "dataClassification":
+ return ec.fieldContext_Datum_dataClassification(ctx, field)
case "owner":
return ec.fieldContext_Datum_owner(ctx, field)
case "vendors":
@@ -29608,8 +29620,8 @@ func (ec *executionContext) fieldContext_UpdateDatumPayload_datum(_ context.Cont
return ec.fieldContext_Datum_id(ctx, field)
case "name":
return ec.fieldContext_Datum_name(ctx, field)
- case "dataSensitivity":
- return ec.fieldContext_Datum_dataSensitivity(ctx, field)
+ case "dataClassification":
+ return ec.fieldContext_Datum_dataClassification(ctx, field)
case "owner":
return ec.fieldContext_Datum_owner(ctx, field)
case "vendors":
@@ -36225,7 +36237,7 @@ func (ec *executionContext) unmarshalInputCreateDatumInput(ctx context.Context,
asMap[k] = v
}
- fieldsInOrder := [...]string{"organizationId", "name", "dataSensitivity", "ownerId", "vendorIds"}
+ fieldsInOrder := [...]string{"organizationId", "name", "dataClassification", "ownerId", "vendorIds"}
for _, k := range fieldsInOrder {
v, ok := asMap[k]
if !ok {
@@ -36246,13 +36258,13 @@ func (ec *executionContext) unmarshalInputCreateDatumInput(ctx context.Context,
return it, err
}
it.Name = data
- case "dataSensitivity":
- ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("dataSensitivity"))
- data, err := ec.unmarshalNDataSensitivity2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx, v)
+ case "dataClassification":
+ ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("dataClassification"))
+ data, err := ec.unmarshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx, v)
if err != nil {
return it, err
}
- it.DataSensitivity = data
+ it.DataClassification = data
case "ownerId":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("ownerId"))
data, err := ec.unmarshalNID2githubᚗcomᚋgetproboᚋproboᚋpkgᚋgidᚐGID(ctx, v)
@@ -38465,7 +38477,7 @@ func (ec *executionContext) unmarshalInputUpdateDatumInput(ctx context.Context,
asMap[k] = v
}
- fieldsInOrder := [...]string{"id", "name", "dataSensitivity", "ownerId", "vendorIds"}
+ fieldsInOrder := [...]string{"id", "name", "dataClassification", "ownerId", "vendorIds"}
for _, k := range fieldsInOrder {
v, ok := asMap[k]
if !ok {
@@ -38486,13 +38498,13 @@ func (ec *executionContext) unmarshalInputUpdateDatumInput(ctx context.Context,
return it, err
}
it.Name = data
- case "dataSensitivity":
- ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("dataSensitivity"))
- data, err := ec.unmarshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx, v)
+ case "dataClassification":
+ ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("dataClassification"))
+ data, err := ec.unmarshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx, v)
if err != nil {
return it, err
}
- it.DataSensitivity = data
+ it.DataClassification = data
case "ownerId":
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("ownerId"))
data, err := ec.unmarshalOID2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋgidᚐGID(ctx, v)
@@ -41109,8 +41121,8 @@ func (ec *executionContext) _Datum(ctx context.Context, sel ast.SelectionSet, ob
if out.Values[i] == graphql.Null {
atomic.AddUint32(&out.Invalids, 1)
}
- case "dataSensitivity":
- out.Values[i] = ec._Datum_dataSensitivity(ctx, field, obj)
+ case "dataClassification":
+ out.Values[i] = ec._Datum_dataClassification(ctx, field, obj)
if out.Values[i] == graphql.Null {
atomic.AddUint32(&out.Invalids, 1)
}
@@ -49024,6 +49036,38 @@ func (ec *executionContext) marshalNCursorKey2githubᚗcomᚋgetproboᚋproboᚋ
return res
}
+func (ec *executionContext) unmarshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx context.Context, v any) (coredata.DataClassification, error) {
+ tmp, err := graphql.UnmarshalString(v)
+ res := unmarshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification[tmp]
+ return res, graphql.ErrorOnPath(ctx, err)
+}
+
+func (ec *executionContext) marshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx context.Context, sel ast.SelectionSet, v coredata.DataClassification) graphql.Marshaler {
+ _ = sel
+ res := graphql.MarshalString(marshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification[v])
+ if res == graphql.Null {
+ if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) {
+ ec.Errorf(ctx, "the requested element is null which the schema does not allow")
+ }
+ }
+ return res
+}
+
+var (
+ unmarshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification = map[string]coredata.DataClassification{
+ "PUBLIC": coredata.DataClassificationPublic,
+ "INTERNAL": coredata.DataClassificationInternal,
+ "CONFIDENTIAL": coredata.DataClassificationConfidential,
+ "SECRET": coredata.DataClassificationSecret,
+ }
+ marshalNDataClassification2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification = map[coredata.DataClassification]string{
+ coredata.DataClassificationPublic: "PUBLIC",
+ coredata.DataClassificationInternal: "INTERNAL",
+ coredata.DataClassificationConfidential: "CONFIDENTIAL",
+ coredata.DataClassificationSecret: "SECRET",
+ }
+)
+
func (ec *executionContext) unmarshalNDataSensitivity2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx context.Context, v any) (coredata.DataSensitivity, error) {
tmp, err := graphql.UnmarshalString(v)
res := unmarshalNDataSensitivity2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity[tmp]
@@ -49171,14 +49215,14 @@ func (ec *executionContext) marshalNDatumOrderField2githubᚗcomᚋgetproboᚋpr
var (
unmarshalNDatumOrderField2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDatumOrderField = map[string]coredata.DatumOrderField{
- "CREATED_AT": coredata.DatumOrderFieldCreatedAt,
- "NAME": coredata.DatumOrderFieldName,
- "DATA_SENSITIVITY": coredata.DatumOrderFieldDataSensitivity,
+ "CREATED_AT": coredata.DatumOrderFieldCreatedAt,
+ "NAME": coredata.DatumOrderFieldName,
+ "DATA_CLASSIFICATION": coredata.DatumOrderFieldDataClassification,
}
marshalNDatumOrderField2githubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDatumOrderField = map[coredata.DatumOrderField]string{
- coredata.DatumOrderFieldCreatedAt: "CREATED_AT",
- coredata.DatumOrderFieldName: "NAME",
- coredata.DatumOrderFieldDataSensitivity: "DATA_SENSITIVITY",
+ coredata.DatumOrderFieldCreatedAt: "CREATED_AT",
+ coredata.DatumOrderFieldName: "NAME",
+ coredata.DatumOrderFieldDataClassification: "DATA_CLASSIFICATION",
}
)
@@ -52369,39 +52413,37 @@ func (ec *executionContext) marshalOCursorKey2ᚖgithubᚗcomᚋgetproboᚋprobo
return res
}
-func (ec *executionContext) unmarshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx context.Context, v any) (*coredata.DataSensitivity, error) {
+func (ec *executionContext) unmarshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx context.Context, v any) (*coredata.DataClassification, error) {
if v == nil {
return nil, nil
}
tmp, err := graphql.UnmarshalString(v)
- res := unmarshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity[tmp]
+ res := unmarshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification[tmp]
return &res, graphql.ErrorOnPath(ctx, err)
}
-func (ec *executionContext) marshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity(ctx context.Context, sel ast.SelectionSet, v *coredata.DataSensitivity) graphql.Marshaler {
+func (ec *executionContext) marshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification(ctx context.Context, sel ast.SelectionSet, v *coredata.DataClassification) graphql.Marshaler {
if v == nil {
return graphql.Null
}
_ = sel
_ = ctx
- res := graphql.MarshalString(marshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity[*v])
+ res := graphql.MarshalString(marshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification[*v])
return res
}
var (
- unmarshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity = map[string]coredata.DataSensitivity{
- "NONE": coredata.DataSensitivityNone,
- "LOW": coredata.DataSensitivityLow,
- "MEDIUM": coredata.DataSensitivityMedium,
- "HIGH": coredata.DataSensitivityHigh,
- "CRITICAL": coredata.DataSensitivityCritical,
+ unmarshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification = map[string]coredata.DataClassification{
+ "PUBLIC": coredata.DataClassificationPublic,
+ "INTERNAL": coredata.DataClassificationInternal,
+ "CONFIDENTIAL": coredata.DataClassificationConfidential,
+ "SECRET": coredata.DataClassificationSecret,
}
- marshalODataSensitivity2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataSensitivity = map[coredata.DataSensitivity]string{
- coredata.DataSensitivityNone: "NONE",
- coredata.DataSensitivityLow: "LOW",
- coredata.DataSensitivityMedium: "MEDIUM",
- coredata.DataSensitivityHigh: "HIGH",
- coredata.DataSensitivityCritical: "CRITICAL",
+ marshalODataClassification2ᚖgithubᚗcomᚋgetproboᚋproboᚋpkgᚋcoredataᚐDataClassification = map[coredata.DataClassification]string{
+ coredata.DataClassificationPublic: "PUBLIC",
+ coredata.DataClassificationInternal: "INTERNAL",
+ coredata.DataClassificationConfidential: "CONFIDENTIAL",
+ coredata.DataClassificationSecret: "SECRET",
}
)
diff --git a/pkg/server/api/console/v1/types/data.go b/pkg/server/api/console/v1/types/data.go
index c2586c08d..ec788fd2b 100644
--- a/pkg/server/api/console/v1/types/data.go
+++ b/pkg/server/api/console/v1/types/data.go
@@ -1,3 +1,17 @@
+// Copyright (c) 2025 Probo Inc .
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
package types
import (
@@ -7,12 +21,12 @@ import (
func NewDatum(d *coredata.Data) *Datum {
return &Datum{
- ID: d.ID,
- Name: d.Name,
- DataSensitivity: d.DataSensitivity,
- CreatedAt: d.CreatedAt,
- UpdatedAt: d.UpdatedAt,
- Organization: &Organization{ID: d.OrganizationID},
+ ID: d.ID,
+ Name: d.Name,
+ DataClassification: d.DataClassification,
+ CreatedAt: d.CreatedAt,
+ UpdatedAt: d.UpdatedAt,
+ Organization: &Organization{ID: d.OrganizationID},
}
}
diff --git a/pkg/server/api/console/v1/types/types.go b/pkg/server/api/console/v1/types/types.go
index d46896728..baae97e8b 100644
--- a/pkg/server/api/console/v1/types/types.go
+++ b/pkg/server/api/console/v1/types/types.go
@@ -176,11 +176,11 @@ type CreateControlPayload struct {
}
type CreateDatumInput struct {
- OrganizationID gid.GID `json:"organizationId"`
- Name string `json:"name"`
- DataSensitivity coredata.DataSensitivity `json:"dataSensitivity"`
- OwnerID gid.GID `json:"ownerId"`
- VendorIds []gid.GID `json:"vendorIds,omitempty"`
+ OrganizationID gid.GID `json:"organizationId"`
+ Name string `json:"name"`
+ DataClassification coredata.DataClassification `json:"dataClassification"`
+ OwnerID gid.GID `json:"ownerId"`
+ VendorIds []gid.GID `json:"vendorIds,omitempty"`
}
type CreateDatumPayload struct {
@@ -357,14 +357,14 @@ type CreateVendorRiskAssessmentPayload struct {
}
type Datum struct {
- ID gid.GID `json:"id"`
- Name string `json:"name"`
- DataSensitivity coredata.DataSensitivity `json:"dataSensitivity"`
- Owner *People `json:"owner"`
- Vendors *VendorConnection `json:"vendors"`
- Organization *Organization `json:"organization"`
- CreatedAt time.Time `json:"createdAt"`
- UpdatedAt time.Time `json:"updatedAt"`
+ ID gid.GID `json:"id"`
+ Name string `json:"name"`
+ DataClassification coredata.DataClassification `json:"dataClassification"`
+ Owner *People `json:"owner"`
+ Vendors *VendorConnection `json:"vendors"`
+ Organization *Organization `json:"organization"`
+ CreatedAt time.Time `json:"createdAt"`
+ UpdatedAt time.Time `json:"updatedAt"`
}
func (Datum) IsNode() {}
@@ -972,11 +972,11 @@ type UpdateControlPayload struct {
}
type UpdateDatumInput struct {
- ID gid.GID `json:"id"`
- Name *string `json:"name,omitempty"`
- DataSensitivity *coredata.DataSensitivity `json:"dataSensitivity,omitempty"`
- OwnerID *gid.GID `json:"ownerId,omitempty"`
- VendorIds []gid.GID `json:"vendorIds,omitempty"`
+ ID gid.GID `json:"id"`
+ Name *string `json:"name,omitempty"`
+ DataClassification *coredata.DataClassification `json:"dataClassification,omitempty"`
+ OwnerID *gid.GID `json:"ownerId,omitempty"`
+ VendorIds []gid.GID `json:"vendorIds,omitempty"`
}
type UpdateDatumPayload struct {
diff --git a/pkg/server/api/console/v1/v1_resolver.go b/pkg/server/api/console/v1/v1_resolver.go
index 9f9b953c8..c638978dd 100644
--- a/pkg/server/api/console/v1/v1_resolver.go
+++ b/pkg/server/api/console/v1/v1_resolver.go
@@ -1844,11 +1844,11 @@ func (r *mutationResolver) CreateDatum(ctx context.Context, input types.CreateDa
svc := GetTenantService(ctx, r.proboSvc, input.OrganizationID.TenantID())
data, err := svc.Data.Create(ctx, probo.CreateDatumRequest{
- OrganizationID: input.OrganizationID,
- Name: input.Name,
- DataSensitivity: input.DataSensitivity,
- OwnerID: input.OwnerID,
- VendorIDs: input.VendorIds,
+ OrganizationID: input.OrganizationID,
+ Name: input.Name,
+ DataClassification: input.DataClassification,
+ OwnerID: input.OwnerID,
+ VendorIDs: input.VendorIds,
})
if err != nil {
@@ -1865,11 +1865,11 @@ func (r *mutationResolver) UpdateDatum(ctx context.Context, input types.UpdateDa
svc := GetTenantService(ctx, r.proboSvc, input.ID.TenantID())
datum, err := svc.Data.Update(ctx, probo.UpdateDatumRequest{
- ID: input.ID,
- Name: input.Name,
- DataSensitivity: input.DataSensitivity,
- OwnerID: input.OwnerID,
- VendorIDs: input.VendorIds,
+ ID: input.ID,
+ Name: input.Name,
+ DataClassification: input.DataClassification,
+ OwnerID: input.OwnerID,
+ VendorIDs: input.VendorIds,
})
if err != nil {