Make descriptions nullable
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<ac10f3fa76fc76951f4c08e38ef0a185>>
|
* @generated SignedSource<<b39754dc6d5d5f02e4310f0db334add3>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -19,7 +19,7 @@ export type LinkedRisksDialogQuery$data = {
|
|||||||
readonly edges: ReadonlyArray<{
|
readonly edges: ReadonlyArray<{
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly category: string;
|
readonly category: string;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly inherentRiskScore: number;
|
readonly inherentRiskScore: number;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export const taskUpdateMutation = graphql`
|
|||||||
|
|
||||||
const createTaskSchema = z.object({
|
const createTaskSchema = z.object({
|
||||||
name: z.string().min(1),
|
name: z.string().min(1),
|
||||||
description: z.string(),
|
description: z.string().optional().nullable(),
|
||||||
timeEstimate: z.string().optional().nullable(),
|
timeEstimate: z.string().optional().nullable(),
|
||||||
assignedToId: z.preprocess(
|
assignedToId: z.preprocess(
|
||||||
(val) => (val === "" || val == null ? undefined : val),
|
(val) => (val === "" || val == null ? undefined : val),
|
||||||
@@ -86,7 +86,7 @@ const createTaskSchema = z.object({
|
|||||||
|
|
||||||
const updateTaskSchema = z.object({
|
const updateTaskSchema = z.object({
|
||||||
name: z.string().min(1),
|
name: z.string().min(1),
|
||||||
description: z.string(),
|
description: z.string().optional().nullable(),
|
||||||
timeEstimate: z.string().optional().nullable(),
|
timeEstimate: z.string().optional().nullable(),
|
||||||
assignedToId: z.string().optional(),
|
assignedToId: z.string().optional(),
|
||||||
measureId: z.string().optional(),
|
measureId: z.string().optional(),
|
||||||
@@ -138,7 +138,7 @@ export default function TaskFormDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
taskId: task.id,
|
taskId: task.id,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
timeEstimate: data.timeEstimate || null,
|
timeEstimate: data.timeEstimate || null,
|
||||||
deadline: formatDatetime(data.deadline) ?? null,
|
deadline: formatDatetime(data.deadline) ?? null,
|
||||||
},
|
},
|
||||||
@@ -150,7 +150,7 @@ export default function TaskFormDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
organizationId,
|
organizationId,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
timeEstimate: data.timeEstimate || null,
|
timeEstimate: data.timeEstimate || null,
|
||||||
deadline: formatDatetime(data.deadline) ?? null,
|
deadline: formatDatetime(data.deadline) ?? null,
|
||||||
assignedToId: data.assignedToId,
|
assignedToId: data.assignedToId,
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type Props = {
|
|||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
state: "TODO" | "DONE";
|
state: "TODO" | "DONE";
|
||||||
description: string;
|
description?: string | null;
|
||||||
measure?: {
|
measure?: {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<beed7398f44a7093301b72d7bceeeba1>>
|
* @generated SignedSource<<c196829e8365168f07614d741242296c>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@ import { FragmentRefs } from "relay-runtime";
|
|||||||
export type CreateTaskInput = {
|
export type CreateTaskInput = {
|
||||||
assignedToId?: string | null | undefined;
|
assignedToId?: string | null | undefined;
|
||||||
deadline?: any | null | undefined;
|
deadline?: any | null | undefined;
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
measureId?: string | null | undefined;
|
measureId?: string | null | undefined;
|
||||||
name: string;
|
name: string;
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<d6d04868c777f81982de3bffb9a7e73f>>
|
* @generated SignedSource<<1778d9b73cc75e2097e9c24fdfe83631>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +16,7 @@ export type TaskFormDialogFragment$data = {
|
|||||||
readonly id: string;
|
readonly id: string;
|
||||||
} | null | undefined;
|
} | null | undefined;
|
||||||
readonly deadline: any | null | undefined;
|
readonly deadline: any | null | undefined;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly measure: {
|
readonly measure: {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export type TrustCenterReferenceDialogRef = {
|
|||||||
openEdit: (reference: {
|
openEdit: (reference: {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description?: string | null;
|
||||||
websiteUrl: string;
|
websiteUrl: string;
|
||||||
rank: number;
|
rank: number;
|
||||||
}) => void;
|
}) => void;
|
||||||
@@ -41,7 +41,7 @@ export type TrustCenterReferenceDialogRef = {
|
|||||||
type Reference = {
|
type Reference = {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description?: string | null;
|
||||||
websiteUrl: string;
|
websiteUrl: string;
|
||||||
rank: number;
|
rank: number;
|
||||||
};
|
};
|
||||||
@@ -90,7 +90,7 @@ export const TrustCenterReferenceDialog = forwardRef<TrustCenterReferenceDialogR
|
|||||||
setUploadedFile(null);
|
setUploadedFile(null);
|
||||||
reset({
|
reset({
|
||||||
name: reference.name,
|
name: reference.name,
|
||||||
description: reference.description,
|
description: reference.description ?? undefined,
|
||||||
websiteUrl: reference.websiteUrl,
|
websiteUrl: reference.websiteUrl,
|
||||||
rank: reference.rank,
|
rank: reference.rank,
|
||||||
});
|
});
|
||||||
@@ -116,7 +116,7 @@ export const TrustCenterReferenceDialog = forwardRef<TrustCenterReferenceDialogR
|
|||||||
input: {
|
input: {
|
||||||
trustCenterId,
|
trustCenterId,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
websiteUrl: data.websiteUrl,
|
websiteUrl: data.websiteUrl,
|
||||||
logoFile: null,
|
logoFile: null,
|
||||||
},
|
},
|
||||||
@@ -135,14 +135,14 @@ export const TrustCenterReferenceDialog = forwardRef<TrustCenterReferenceDialogR
|
|||||||
const input: {
|
const input: {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description: string | null;
|
||||||
websiteUrl: string;
|
websiteUrl: string;
|
||||||
rank?: number;
|
rank?: number;
|
||||||
logoFile?: null;
|
logoFile?: null;
|
||||||
} = {
|
} = {
|
||||||
id: editReference.id,
|
id: editReference.id,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
websiteUrl: data.websiteUrl,
|
websiteUrl: data.websiteUrl,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ type Props = {
|
|||||||
type Reference = {
|
type Reference = {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description?: string | null;
|
||||||
websiteUrl: string;
|
websiteUrl: string;
|
||||||
logoUrl: string;
|
logoUrl: string;
|
||||||
rank: number;
|
rank: number;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<828d1e2364b7b8c540508d9fb7104b06>>
|
* @generated SignedSource<<759f9a511cc5c589b3ac366de83adbfe>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@ export type RiskTreatment = "ACCEPTED" | "AVOIDED" | "MITIGATED" | "TRANSFERRED"
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type useRiskFormFragment$data = {
|
export type useRiskFormFragment$data = {
|
||||||
readonly category: string;
|
readonly category: string;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly inherentImpact: number;
|
readonly inherentImpact: number;
|
||||||
readonly inherentLikelihood: number;
|
readonly inherentLikelihood: number;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export type RiskKey = useRiskFormFragment$key & { id: string };
|
|||||||
export const riskSchema = z.object({
|
export const riskSchema = z.object({
|
||||||
category: z.string().min(1, "Category is required"),
|
category: z.string().min(1, "Category is required"),
|
||||||
name: z.string().min(1, "Name is required"),
|
name: z.string().min(1, "Name is required"),
|
||||||
description: z.string().min(1, "Description is required"),
|
description: z.string().optional().nullable(),
|
||||||
ownerId: z.string().min(1, "Owner is required"),
|
ownerId: z.string().min(1, "Owner is required"),
|
||||||
treatment: z.enum(["AVOIDED", "MITIGATED", "TRANSFERRED", "ACCEPTED"]),
|
treatment: z.enum(["AVOIDED", "MITIGATED", "TRANSFERRED", "ACCEPTED"]),
|
||||||
inherentLikelihood: z.number({ coerce: true }).min(1).max(5),
|
inherentLikelihood: z.number({ coerce: true }).min(1).max(5),
|
||||||
@@ -50,6 +50,7 @@ export const useRiskForm = (riskKey?: RiskKey) => {
|
|||||||
defaultValues: risk
|
defaultValues: risk
|
||||||
? {
|
? {
|
||||||
...risk,
|
...risk,
|
||||||
|
description: risk.description ?? undefined,
|
||||||
ownerId: risk.owner?.id,
|
ownerId: risk.owner?.id,
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { useEffect, useMemo } from "react";
|
|||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
name: z.string().min(1, "Name is required"),
|
name: z.string().min(1, "Name is required"),
|
||||||
description: z.string().min(1, "Description is required"),
|
description: z.string().optional().nullable(),
|
||||||
category: z.string().nullish(),
|
category: z.string().nullish(),
|
||||||
statusPageUrl: z.string().optional(),
|
statusPageUrl: z.string().optional(),
|
||||||
termsOfServiceUrl: z.string().optional(),
|
termsOfServiceUrl: z.string().optional(),
|
||||||
@@ -106,6 +106,7 @@ export function useVendorForm(vendorKey: useVendorFormFragment$key) {
|
|||||||
input: {
|
input: {
|
||||||
id: vendor.id,
|
id: vendor.id,
|
||||||
...data,
|
...data,
|
||||||
|
description: data.description || null,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<0e6281a892cbd711d75d22153d4710ea>>
|
* @generated SignedSource<<54b072cf5a78b17f86e5fc810cac517a>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -25,7 +25,7 @@ export type FrameworkGraphControlNodeQuery$data = {
|
|||||||
};
|
};
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
readonly description?: string;
|
readonly description?: string | null | undefined;
|
||||||
readonly documents?: {
|
readonly documents?: {
|
||||||
readonly __id: string;
|
readonly __id: string;
|
||||||
readonly edges: ReadonlyArray<{
|
readonly edges: ReadonlyArray<{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<1f413a42110dae78274cf3250fa4db4e>>
|
* @generated SignedSource<<02c0b1d637edafea060ddb9ee3b3f130>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -20,7 +20,7 @@ export type MeasureGraphNodeQuery$data = {
|
|||||||
readonly controlsInfos?: {
|
readonly controlsInfos?: {
|
||||||
readonly totalCount: number;
|
readonly totalCount: number;
|
||||||
};
|
};
|
||||||
readonly description?: string;
|
readonly description?: string | null | undefined;
|
||||||
readonly evidencesInfos?: {
|
readonly evidencesInfos?: {
|
||||||
readonly totalCount: number;
|
readonly totalCount: number;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<f3eadb5ecfeb7b2304712f74b6ac8863>>
|
* @generated SignedSource<<36175d4a9f9c3b377ec502f518a47015>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -19,7 +19,7 @@ export type RiskGraphNodeQuery$data = {
|
|||||||
readonly controlsInfo?: {
|
readonly controlsInfo?: {
|
||||||
readonly totalCount: number;
|
readonly totalCount: number;
|
||||||
};
|
};
|
||||||
readonly description?: string;
|
readonly description?: string | null | undefined;
|
||||||
readonly documentsInfo?: {
|
readonly documentsInfo?: {
|
||||||
readonly totalCount: number;
|
readonly totalCount: number;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<285497dfb150c3f02c055a091769f301>>
|
* @generated SignedSource<<bfffdd69a2b1f565b60beee5e96d430a>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -58,7 +58,7 @@ export type TrustCenterGraphQuery$data = {
|
|||||||
readonly edges: ReadonlyArray<{
|
readonly edges: ReadonlyArray<{
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly createdAt: any;
|
readonly createdAt: any;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly logoUrl: string;
|
readonly logoUrl: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<9d17f089c36e0567d217fe339b6382fd>>
|
* @generated SignedSource<<566b652d24d80b551827cb5d3bf5518c>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
import { ConcreteRequest } from 'relay-runtime';
|
import { ConcreteRequest } from 'relay-runtime';
|
||||||
export type CreateTrustCenterReferenceInput = {
|
export type CreateTrustCenterReferenceInput = {
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
logoFile: any;
|
logoFile: any;
|
||||||
name: string;
|
name: string;
|
||||||
trustCenterId: string;
|
trustCenterId: string;
|
||||||
@@ -26,7 +26,7 @@ export type TrustCenterReferenceGraphCreateMutation$data = {
|
|||||||
readonly cursor: any;
|
readonly cursor: any;
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly createdAt: any;
|
readonly createdAt: any;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly logoUrl: string;
|
readonly logoUrl: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<85556d15b776b3e61e312057a994d482>>
|
* @generated SignedSource<<e7776b4ead5bff52ce340c208ec5bbc6>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -21,7 +21,7 @@ export type TrustCenterReferenceGraphQuery$data = {
|
|||||||
readonly cursor: any;
|
readonly cursor: any;
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly createdAt: any;
|
readonly createdAt: any;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly logoUrl: string;
|
readonly logoUrl: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<9f21158abea504110ef50d4e0114a56a>>
|
* @generated SignedSource<<2b51f7fdbc055d912be03031b258c042>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -24,7 +24,7 @@ export type TrustCenterReferenceGraphUpdateMutation$data = {
|
|||||||
readonly updateTrustCenterReference: {
|
readonly updateTrustCenterReference: {
|
||||||
readonly trustCenterReference: {
|
readonly trustCenterReference: {
|
||||||
readonly createdAt: any;
|
readonly createdAt: any;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly logoUrl: string;
|
readonly logoUrl: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<4b559d5e004d1657ab8d52cf5770ac79>>
|
* @generated SignedSource<<53e0a105a9b28a70a1083500cd6b4577>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -17,7 +17,7 @@ export type usePaginatedMeasuresFragment$data = {
|
|||||||
readonly edges: ReadonlyArray<{
|
readonly edges: ReadonlyArray<{
|
||||||
readonly node: {
|
readonly node: {
|
||||||
readonly category: string;
|
readonly category: string;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly state: MeasureState;
|
readonly state: MeasureState;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<f6a6c2f623522098263a3b556d3c3658>>
|
* @generated SignedSource<<4a6e4730ab80df159c005156b71a7f3d>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +16,7 @@ export type DocumentVersionSignatureState = "REQUESTED" | "SIGNED";
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type DocumentDetailPageRowFragment$data = {
|
export type DocumentDetailPageRowFragment$data = {
|
||||||
readonly classification: DocumentClassification;
|
readonly classification: DocumentClassification;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly documentType: DocumentType;
|
readonly documentType: DocumentType;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly owner: {
|
readonly owner: {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<e853bbeba41d33327ee6612c84e21297>>
|
* @generated SignedSource<<f772c53b0007859aecc59a9484b5b791>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +16,7 @@ export type DocumentVersionSignatureState = "REQUESTED" | "SIGNED";
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type DocumentsPageRowFragment$data = {
|
export type DocumentsPageRowFragment$data = {
|
||||||
readonly classification: DocumentClassification;
|
readonly classification: DocumentClassification;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly documentType: DocumentType;
|
readonly documentType: DocumentType;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly owner: {
|
readonly owner: {
|
||||||
|
|||||||
@@ -98,8 +98,8 @@ export function CreateDocumentDialog({ trigger, connection }: Props) {
|
|||||||
id="content"
|
id="content"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
autogrow
|
autogrow
|
||||||
placeholder={__("Add description")}
|
placeholder={__("Add content")}
|
||||||
aria-label={__("Description")}
|
aria-label={__("Content")}
|
||||||
{...register("content")}
|
{...register("content")}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -175,8 +175,8 @@ export default function UpdateVersionDialog({
|
|||||||
variant="ghost"
|
variant="ghost"
|
||||||
autogrow
|
autogrow
|
||||||
required
|
required
|
||||||
placeholder={__("Add description")}
|
placeholder={__("Add content")}
|
||||||
aria-label={__("Description")}
|
aria-label={__("Content")}
|
||||||
className="p-6"
|
className="p-6"
|
||||||
{...register("content")}
|
{...register("content")}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<c6e55821a322dceae5408ac3898cfa48>>
|
* @generated SignedSource<<daf4012a65afffdedc10e4f5c7e2bc3c>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -24,7 +24,7 @@ export type FrameworkDetailPageFragment$data = {
|
|||||||
};
|
};
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly organization: {
|
readonly organization: {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<ec6bd0c6fff930b82216d940e83d8ef0>>
|
* @generated SignedSource<<9fdc712e118402371c9951169aac320a>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
import { ReaderFragment } from 'relay-runtime';
|
import { ReaderFragment } from 'relay-runtime';
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type FrameworksPageCardFragment$data = {
|
export type FrameworksPageCardFragment$data = {
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly " $fragmentType": "FrameworksPageCardFragment";
|
readonly " $fragmentType": "FrameworksPageCardFragment";
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ const updateMutation = graphql`
|
|||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
name: z.string(),
|
name: z.string(),
|
||||||
description: z.string(),
|
description: z.string().optional().nullable(),
|
||||||
sectionTitle: z.string(),
|
sectionTitle: z.string(),
|
||||||
status: z.enum(["INCLUDED", "EXCLUDED"]),
|
status: z.enum(["INCLUDED", "EXCLUDED"]),
|
||||||
exclusionJustification: z.string().optional(),
|
exclusionJustification: z.string().optional(),
|
||||||
@@ -120,7 +120,7 @@ export function FrameworkControlDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
id: frameworkControl.id,
|
id: frameworkControl.id,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
sectionTitle: data.sectionTitle,
|
sectionTitle: data.sectionTitle,
|
||||||
status: data.status,
|
status: data.status,
|
||||||
exclusionJustification: data.status === "EXCLUDED" ? data.exclusionJustification : null,
|
exclusionJustification: data.status === "EXCLUDED" ? data.exclusionJustification : null,
|
||||||
@@ -134,7 +134,7 @@ export function FrameworkControlDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
frameworkId: props.frameworkId,
|
frameworkId: props.frameworkId,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
sectionTitle: data.sectionTitle,
|
sectionTitle: data.sectionTitle,
|
||||||
status: data.status,
|
status: data.status,
|
||||||
exclusionJustification: data.status === "EXCLUDED" ? data.exclusionJustification : null,
|
exclusionJustification: data.status === "EXCLUDED" ? data.exclusionJustification : null,
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ type Props = {
|
|||||||
framework?: {
|
framework?: {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
description: string;
|
description?: string | null;
|
||||||
};
|
};
|
||||||
ref?: DialogRef;
|
ref?: DialogRef;
|
||||||
children?: React.ReactNode;
|
children?: React.ReactNode;
|
||||||
@@ -57,7 +57,7 @@ type Props = {
|
|||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
name: z.string().min(1).max(255),
|
name: z.string().min(1).max(255),
|
||||||
description: z.string().max(255).optional(),
|
description: z.string().max(255).optional().nullable(),
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -87,6 +87,7 @@ export function FrameworkFormDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
id: props.framework.id,
|
id: props.framework.id,
|
||||||
...data,
|
...data,
|
||||||
|
description: data.description || null,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -98,6 +99,7 @@ export function FrameworkFormDialog(props: Props) {
|
|||||||
variables: {
|
variables: {
|
||||||
input: {
|
input: {
|
||||||
...data,
|
...data,
|
||||||
|
description: data.description || null,
|
||||||
organizationId: props.organizationId,
|
organizationId: props.organizationId,
|
||||||
},
|
},
|
||||||
connections: [props.connectionId],
|
connections: [props.connectionId],
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<be64518840fd2564cffe1646a58c3762>>
|
* @generated SignedSource<<7985268ac23df51ae6187b72c4f33d83>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -12,7 +12,7 @@ import { ConcreteRequest } from 'relay-runtime';
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type ControlStatus = "EXCLUDED" | "INCLUDED";
|
export type ControlStatus = "EXCLUDED" | "INCLUDED";
|
||||||
export type CreateControlInput = {
|
export type CreateControlInput = {
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
exclusionJustification?: string | null | undefined;
|
exclusionJustification?: string | null | undefined;
|
||||||
frameworkId: string;
|
frameworkId: string;
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<8b52b1e3fd91d74821361d9ae652d9bd>>
|
* @generated SignedSource<<67703eb04d68c2798f5549ed6d948339>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -12,7 +12,7 @@ import { ReaderFragment } from 'relay-runtime';
|
|||||||
export type ControlStatus = "EXCLUDED" | "INCLUDED";
|
export type ControlStatus = "EXCLUDED" | "INCLUDED";
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type FrameworkControlDialogFragment$data = {
|
export type FrameworkControlDialogFragment$data = {
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly exclusionJustification: string | null | undefined;
|
readonly exclusionJustification: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<fef15c2f99a731cf6c49a99487e37c59>>
|
* @generated SignedSource<<b8d5c939f1b3a4337be9a4ecc2e8fd98>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
import { ConcreteRequest } from 'relay-runtime';
|
import { ConcreteRequest } from 'relay-runtime';
|
||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type CreateFrameworkInput = {
|
export type CreateFrameworkInput = {
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
name: string;
|
name: string;
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<530c955a326f52f3c668e9f43788a54f>>
|
* @generated SignedSource<<d60cc1832963c81fe19cfe8a71992273>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -20,7 +20,7 @@ export type FrameworkFormDialogUpdateMutation$variables = {
|
|||||||
export type FrameworkFormDialogUpdateMutation$data = {
|
export type FrameworkFormDialogUpdateMutation$data = {
|
||||||
readonly updateFramework: {
|
readonly updateFramework: {
|
||||||
readonly framework: {
|
readonly framework: {
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ const measureCreateMutation = graphql`
|
|||||||
|
|
||||||
const measureSchema = z.object({
|
const measureSchema = z.object({
|
||||||
name: z.string().min(1, "Name is required"),
|
name: z.string().min(1, "Name is required"),
|
||||||
description: z.string().min(1, "Description is required"),
|
description: z.string().optional().nullable(),
|
||||||
category: z.string().min(1, "Category is required"),
|
category: z.string().min(1, "Category is required"),
|
||||||
state: z.enum(measureStates),
|
state: z.enum(measureStates),
|
||||||
});
|
});
|
||||||
@@ -93,7 +93,7 @@ export default function MeasureFormDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
id: measure.id,
|
id: measure.id,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
category: data.category,
|
category: data.category,
|
||||||
state: data.state,
|
state: data.state,
|
||||||
},
|
},
|
||||||
@@ -105,7 +105,7 @@ export default function MeasureFormDialog(props: Props) {
|
|||||||
input: {
|
input: {
|
||||||
organizationId,
|
organizationId,
|
||||||
name: data.name,
|
name: data.name,
|
||||||
description: data.description,
|
description: data.description || null,
|
||||||
category: data.category,
|
category: data.category,
|
||||||
},
|
},
|
||||||
connections: [props.connection!],
|
connections: [props.connection!],
|
||||||
@@ -145,7 +145,6 @@ export default function MeasureFormDialog(props: Props) {
|
|||||||
label={__("Description")}
|
label={__("Description")}
|
||||||
placeholder={__("Add description")}
|
placeholder={__("Add description")}
|
||||||
type="textarea"
|
type="textarea"
|
||||||
required
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{/* Properties form */}
|
{/* Properties form */}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<09acdf5a03dd4ad1fab64c2c08564a2a>>
|
* @generated SignedSource<<a1cf7f654fe2f662c446e60ce82e3ae9>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -12,7 +12,7 @@ import { ConcreteRequest } from 'relay-runtime';
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type CreateMeasureInput = {
|
export type CreateMeasureInput = {
|
||||||
category: string;
|
category: string;
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
name: string;
|
name: string;
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<ad3cb8a5e721cd1d83d80540320b8313>>
|
* @generated SignedSource<<d4866432b6b5c9e71e6e4893062c1809>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@ export type MeasureState = "IMPLEMENTED" | "IN_PROGRESS" | "NOT_APPLICABLE" | "N
|
|||||||
import { FragmentRefs } from "relay-runtime";
|
import { FragmentRefs } from "relay-runtime";
|
||||||
export type MeasureFormDialogMeasureFragment$data = {
|
export type MeasureFormDialogMeasureFragment$data = {
|
||||||
readonly category: string;
|
readonly category: string;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly state: MeasureState;
|
readonly state: MeasureState;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<67fd0b26613189fa036f7873138787d7>>
|
* @generated SignedSource<<cfddd118e2b6db135ad87fe157c89151>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -20,7 +20,7 @@ export type MeasureTasksTabFragment$data = {
|
|||||||
readonly fullName: string;
|
readonly fullName: string;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
} | null | undefined;
|
} | null | undefined;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly name: string;
|
readonly name: string;
|
||||||
readonly state: TaskState;
|
readonly state: TaskState;
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ export default function FormRiskDialog({
|
|||||||
input: {
|
input: {
|
||||||
id: risk.id,
|
id: risk.id,
|
||||||
...data,
|
...data,
|
||||||
|
description: data.description || null,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
successMessage: __("Risk updated successfully."),
|
successMessage: __("Risk updated successfully."),
|
||||||
@@ -124,6 +125,7 @@ export default function FormRiskDialog({
|
|||||||
variables: {
|
variables: {
|
||||||
input: {
|
input: {
|
||||||
...data,
|
...data,
|
||||||
|
description: data.description || null,
|
||||||
organizationId,
|
organizationId,
|
||||||
},
|
},
|
||||||
connections: [connection!],
|
connections: [connection!],
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<66f4e8603a811d1fb363ae88ea697b22>>
|
* @generated SignedSource<<dfc4b37cf499f7cb24c0b1bd1eec3b11>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@ import { FragmentRefs } from "relay-runtime";
|
|||||||
export type RiskTreatment = "ACCEPTED" | "AVOIDED" | "MITIGATED" | "TRANSFERRED";
|
export type RiskTreatment = "ACCEPTED" | "AVOIDED" | "MITIGATED" | "TRANSFERRED";
|
||||||
export type CreateRiskInput = {
|
export type CreateRiskInput = {
|
||||||
category: string;
|
category: string;
|
||||||
description: string;
|
description?: string | null | undefined;
|
||||||
inherentImpact: number;
|
inherentImpact: number;
|
||||||
inherentLikelihood: number;
|
inherentLikelihood: number;
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @generated SignedSource<<0fbb86bdf90b3ec4e0ec6ea8253eef4c>>
|
* @generated SignedSource<<8bba8d318de0f4b0d28a8fba8b8e0bdf>>
|
||||||
* @lightSyntaxTransform
|
* @lightSyntaxTransform
|
||||||
* @nogrep
|
* @nogrep
|
||||||
*/
|
*/
|
||||||
@@ -21,7 +21,7 @@ export type TasksPageFragment$data = {
|
|||||||
readonly fullName: string;
|
readonly fullName: string;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
} | null | undefined;
|
} | null | undefined;
|
||||||
readonly description: string;
|
readonly description: string | null | undefined;
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly measure: {
|
readonly measure: {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type { PropsWithChildren, ReactNode } from "react";
|
|||||||
|
|
||||||
type Props = PropsWithChildren<{
|
type Props = PropsWithChildren<{
|
||||||
title: ReactNode;
|
title: ReactNode;
|
||||||
description?: string;
|
description?: string | null;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
export function PageHeader({ title, description, children }: Props) {
|
export function PageHeader({ title, description, children }: Props) {
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -34,7 +34,7 @@ type (
|
|||||||
SectionTitle string `db:"section_title"`
|
SectionTitle string `db:"section_title"`
|
||||||
FrameworkID gid.GID `db:"framework_id"`
|
FrameworkID gid.GID `db:"framework_id"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
Status ControlStatus `db:"status"`
|
Status ControlStatus `db:"status"`
|
||||||
ExclusionJustification *string `db:"exclusion_justification"`
|
ExclusionJustification *string `db:"exclusion_justification"`
|
||||||
CreatedAt time.Time `db:"created_at"`
|
CreatedAt time.Time `db:"created_at"`
|
||||||
@@ -43,14 +43,6 @@ type (
|
|||||||
|
|
||||||
Controls []*Control
|
Controls []*Control
|
||||||
|
|
||||||
UpdateControlParams struct {
|
|
||||||
Name *string
|
|
||||||
Description *string
|
|
||||||
SectionTitle *string
|
|
||||||
Status *ControlStatus
|
|
||||||
ExclusionJustification *string
|
|
||||||
}
|
|
||||||
|
|
||||||
ErrControlNotFound struct {
|
ErrControlNotFound struct {
|
||||||
Identifier string
|
Identifier string
|
||||||
}
|
}
|
||||||
@@ -793,79 +785,45 @@ func (c *Control) Update(
|
|||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
conn pg.Conn,
|
conn pg.Conn,
|
||||||
scope Scoper,
|
scope Scoper,
|
||||||
params UpdateControlParams,
|
|
||||||
) error {
|
) error {
|
||||||
q := `
|
q := `
|
||||||
UPDATE controls SET
|
UPDATE controls SET
|
||||||
name = COALESCE(@name, name),
|
name = @name,
|
||||||
description = COALESCE(@description, description),
|
description = @description,
|
||||||
section_title = COALESCE(@section_title, section_title),
|
section_title = @section_title,
|
||||||
status = COALESCE(@status, status),
|
status = @status,
|
||||||
exclusion_justification = COALESCE(@exclusion_justification, exclusion_justification),
|
exclusion_justification = @exclusion_justification,
|
||||||
updated_at = @updated_at
|
updated_at = @updated_at
|
||||||
WHERE %s
|
WHERE %s
|
||||||
AND id = @control_id
|
AND id = @control_id
|
||||||
RETURNING
|
|
||||||
id,
|
|
||||||
framework_id,
|
|
||||||
name,
|
|
||||||
description,
|
|
||||||
section_title,
|
|
||||||
status,
|
|
||||||
exclusion_justification,
|
|
||||||
created_at,
|
|
||||||
updated_at
|
|
||||||
`
|
`
|
||||||
q = fmt.Sprintf(q, scope.SQLFragment())
|
q = fmt.Sprintf(q, scope.SQLFragment())
|
||||||
|
|
||||||
args := pgx.StrictNamedArgs{
|
args := pgx.StrictNamedArgs{
|
||||||
"control_id": c.ID,
|
"control_id": c.ID,
|
||||||
"section_title": params.SectionTitle,
|
"name": c.Name,
|
||||||
"status": params.Status,
|
"description": c.Description,
|
||||||
"exclusion_justification": params.ExclusionJustification,
|
"section_title": c.SectionTitle,
|
||||||
"updated_at": time.Now(),
|
"status": c.Status,
|
||||||
}
|
"exclusion_justification": c.ExclusionJustification,
|
||||||
|
"updated_at": c.UpdatedAt,
|
||||||
if params.Name != nil {
|
|
||||||
args["name"] = *params.Name
|
|
||||||
}
|
|
||||||
if params.Description != nil {
|
|
||||||
args["description"] = *params.Description
|
|
||||||
}
|
|
||||||
|
|
||||||
if params.Status != nil {
|
|
||||||
args["status"] = *params.Status
|
|
||||||
}
|
|
||||||
if params.ExclusionJustification != nil {
|
|
||||||
args["exclusion_justification"] = *params.ExclusionJustification
|
|
||||||
}
|
}
|
||||||
|
|
||||||
maps.Copy(args, scope.SQLArguments())
|
maps.Copy(args, scope.SQLArguments())
|
||||||
|
|
||||||
rows, err := conn.Query(ctx, q, args)
|
_, err := conn.Exec(ctx, q, args)
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("cannot query controls: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
control, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[Control])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
var pgErr *pgconn.PgError
|
var pgErr *pgconn.PgError
|
||||||
if errors.As(err, &pgErr) {
|
if errors.As(err, &pgErr) {
|
||||||
if pgErr.Code == "23505" && pgErr.ConstraintName == "controls_framework_ref_unique" {
|
if pgErr.Code == "23505" && pgErr.ConstraintName == "controls_framework_ref_unique" {
|
||||||
sectionTitle := ""
|
|
||||||
if params.SectionTitle != nil {
|
|
||||||
sectionTitle = *params.SectionTitle
|
|
||||||
}
|
|
||||||
return &ErrControlAlreadyExists{
|
return &ErrControlAlreadyExists{
|
||||||
message: fmt.Sprintf("control with section_title %q already exists", sectionTitle),
|
message: fmt.Sprintf("control with section_title %q already exists", c.SectionTitle),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fmt.Errorf("cannot collect control: %w", err)
|
return fmt.Errorf("cannot update control: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
*c = control
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -38,7 +38,7 @@ type (
|
|||||||
Type EvidenceType `db:"type"`
|
Type EvidenceType `db:"type"`
|
||||||
URL string `db:"url"`
|
URL string `db:"url"`
|
||||||
EvidenceFileId *gid.GID `db:"evidence_file_id"`
|
EvidenceFileId *gid.GID `db:"evidence_file_id"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
CreatedAt time.Time `db:"created_at"`
|
CreatedAt time.Time `db:"created_at"`
|
||||||
UpdatedAt time.Time `db:"updated_at"`
|
UpdatedAt time.Time `db:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -34,7 +34,7 @@ type (
|
|||||||
OrganizationID gid.GID `db:"organization_id"`
|
OrganizationID gid.GID `db:"organization_id"`
|
||||||
ReferenceID string `db:"reference_id"`
|
ReferenceID string `db:"reference_id"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
CreatedAt time.Time `db:"created_at"`
|
CreatedAt time.Time `db:"created_at"`
|
||||||
UpdatedAt time.Time `db:"updated_at"`
|
UpdatedAt time.Time `db:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
|
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
)
|
)
|
||||||
@@ -35,7 +35,7 @@ type (
|
|||||||
OrganizationID gid.GID `db:"organization_id"`
|
OrganizationID gid.GID `db:"organization_id"`
|
||||||
Category string `db:"category"`
|
Category string `db:"category"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
State MeasureState `db:"state"`
|
State MeasureState `db:"state"`
|
||||||
ReferenceID string `db:"reference_id"`
|
ReferenceID string `db:"reference_id"`
|
||||||
CreatedAt time.Time `db:"created_at"`
|
CreatedAt time.Time `db:"created_at"`
|
||||||
|
|||||||
8
pkg/coredata/migrations/20251105T145415Z.sql
Normal file
8
pkg/coredata/migrations/20251105T145415Z.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
ALTER TABLE controls ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE documents ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE documents ALTER COLUMN description DROP DEFAULT;
|
||||||
|
ALTER TABLE evidences ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE frameworks ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE measures ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE tasks ALTER COLUMN description DROP NOT NULL;
|
||||||
|
ALTER TABLE trust_center_references ALTER COLUMN description DROP NOT NULL;
|
||||||
@@ -21,10 +21,10 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -32,7 +32,7 @@ type (
|
|||||||
ID gid.GID `db:"id"`
|
ID gid.GID `db:"id"`
|
||||||
OrganizationID gid.GID `db:"organization_id"`
|
OrganizationID gid.GID `db:"organization_id"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
Category string `db:"category"`
|
Category string `db:"category"`
|
||||||
Treatment RiskTreatment `db:"treatment"`
|
Treatment RiskTreatment `db:"treatment"`
|
||||||
Note string `db:"note"`
|
Note string `db:"note"`
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
|
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
)
|
)
|
||||||
@@ -35,7 +35,7 @@ type (
|
|||||||
OrganizationID gid.GID `db:"organization_id"`
|
OrganizationID gid.GID `db:"organization_id"`
|
||||||
MeasureID *gid.GID `db:"measure_id"`
|
MeasureID *gid.GID `db:"measure_id"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
State TaskState `db:"state"`
|
State TaskState `db:"state"`
|
||||||
ReferenceID string `db:"reference_id"`
|
ReferenceID string `db:"reference_id"`
|
||||||
TimeEstimate *time.Duration `db:"time_estimate"`
|
TimeEstimate *time.Duration `db:"time_estimate"`
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ import (
|
|||||||
"maps"
|
"maps"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.probo.inc/probo/pkg/gid"
|
|
||||||
"go.probo.inc/probo/pkg/page"
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
"github.com/jackc/pgx/v5/pgconn"
|
||||||
"go.gearno.de/kit/pg"
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.probo.inc/probo/pkg/gid"
|
||||||
|
"go.probo.inc/probo/pkg/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -33,7 +33,7 @@ type (
|
|||||||
ID gid.GID `db:"id"`
|
ID gid.GID `db:"id"`
|
||||||
TrustCenterID gid.GID `db:"trust_center_id"`
|
TrustCenterID gid.GID `db:"trust_center_id"`
|
||||||
Name string `db:"name"`
|
Name string `db:"name"`
|
||||||
Description string `db:"description"`
|
Description *string `db:"description"`
|
||||||
WebsiteURL string `db:"website_url"`
|
WebsiteURL string `db:"website_url"`
|
||||||
LogoFileID gid.GID `db:"logo_file_id"`
|
LogoFileID gid.GID `db:"logo_file_id"`
|
||||||
Rank int `db:"rank"`
|
Rank int `db:"rank"`
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -34,7 +34,7 @@ type (
|
|||||||
ID gid.GID
|
ID gid.GID
|
||||||
FrameworkID gid.GID
|
FrameworkID gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
SectionTitle string
|
SectionTitle string
|
||||||
Status *coredata.ControlStatus
|
Status *coredata.ControlStatus
|
||||||
ExclusionJustification *string
|
ExclusionJustification *string
|
||||||
@@ -43,7 +43,7 @@ type (
|
|||||||
UpdateControlRequest struct {
|
UpdateControlRequest struct {
|
||||||
ID gid.GID
|
ID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
SectionTitle *string
|
SectionTitle *string
|
||||||
Status *coredata.ControlStatus
|
Status *coredata.ControlStatus
|
||||||
ExclusionJustification *string
|
ExclusionJustification *string
|
||||||
@@ -765,20 +765,36 @@ func (s ControlService) Update(
|
|||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
req UpdateControlRequest,
|
req UpdateControlRequest,
|
||||||
) (*coredata.Control, error) {
|
) (*coredata.Control, error) {
|
||||||
params := coredata.UpdateControlParams{
|
|
||||||
Name: req.Name,
|
|
||||||
Description: req.Description,
|
|
||||||
SectionTitle: req.SectionTitle,
|
|
||||||
Status: req.Status,
|
|
||||||
ExclusionJustification: req.ExclusionJustification,
|
|
||||||
}
|
|
||||||
|
|
||||||
control := &coredata.Control{ID: req.ID}
|
control := &coredata.Control{ID: req.ID}
|
||||||
|
|
||||||
err := s.svc.pg.WithTx(
|
err := s.svc.pg.WithTx(ctx, func(conn pg.Conn) error {
|
||||||
ctx,
|
if err := control.LoadByID(ctx, conn, s.svc.scope, req.ID); err != nil {
|
||||||
func(conn pg.Conn) error {
|
return fmt.Errorf("cannot load control: %w", err)
|
||||||
return control.Update(ctx, conn, s.svc.scope, params)
|
}
|
||||||
|
|
||||||
|
if req.Name != nil {
|
||||||
|
control.Name = *req.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Description != nil {
|
||||||
|
control.Description = *req.Description
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.SectionTitle != nil {
|
||||||
|
control.SectionTitle = *req.SectionTitle
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Status != nil {
|
||||||
|
control.Status = *req.Status
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.ExclusionJustification != nil {
|
||||||
|
control.ExclusionJustification = req.ExclusionJustification
|
||||||
|
}
|
||||||
|
|
||||||
|
control.UpdatedAt = time.Now()
|
||||||
|
|
||||||
|
return control.Update(ctx, conn, s.svc.scope)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("cannot update control: %w", err)
|
return nil, fmt.Errorf("cannot update control: %w", err)
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ import (
|
|||||||
|
|
||||||
"github.com/aws/aws-sdk-go-v2/aws"
|
"github.com/aws/aws-sdk-go-v2/aws"
|
||||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||||
|
"go.gearno.de/crypto/uuid"
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
|
"go.gearno.de/x/ref"
|
||||||
"go.probo.inc/probo/packages/emails"
|
"go.probo.inc/probo/packages/emails"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
@@ -32,9 +35,6 @@ import (
|
|||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.probo.inc/probo/pkg/slug"
|
"go.probo.inc/probo/pkg/slug"
|
||||||
"go.probo.inc/probo/pkg/soagen"
|
"go.probo.inc/probo/pkg/soagen"
|
||||||
"go.gearno.de/crypto/uuid"
|
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
"go.gearno.de/x/ref"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -51,13 +51,13 @@ type (
|
|||||||
CreateFrameworkRequest struct {
|
CreateFrameworkRequest struct {
|
||||||
OrganizationID gid.GID
|
OrganizationID gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateFrameworkRequest struct {
|
UpdateFrameworkRequest struct {
|
||||||
ID gid.GID
|
ID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
}
|
}
|
||||||
|
|
||||||
ImportFrameworkRequest struct {
|
ImportFrameworkRequest struct {
|
||||||
@@ -487,12 +487,13 @@ func (s FrameworkService) Import(
|
|||||||
controlID := gid.New(organization.ID.TenantID(), coredata.ControlEntityType)
|
controlID := gid.New(organization.ID.TenantID(), coredata.ControlEntityType)
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
description := control.Description
|
||||||
control := &coredata.Control{
|
control := &coredata.Control{
|
||||||
ID: controlID,
|
ID: controlID,
|
||||||
FrameworkID: frameworkID,
|
FrameworkID: frameworkID,
|
||||||
SectionTitle: control.ID,
|
SectionTitle: control.ID,
|
||||||
Name: control.Name,
|
Name: control.Name,
|
||||||
Description: control.Description,
|
Description: &description,
|
||||||
Status: coredata.ControlStatusIncluded,
|
Status: coredata.ControlStatusIncluded,
|
||||||
CreatedAt: now,
|
CreatedAt: now,
|
||||||
UpdatedAt: now,
|
UpdatedAt: now,
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.gearno.de/crypto/uuid"
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.gearno.de/crypto/uuid"
|
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -34,14 +34,14 @@ type (
|
|||||||
CreateMeasureRequest struct {
|
CreateMeasureRequest struct {
|
||||||
OrganizationID gid.GID
|
OrganizationID gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
Category string
|
Category string
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateMeasureRequest struct {
|
UpdateMeasureRequest struct {
|
||||||
ID gid.GID
|
ID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
Category *string
|
Category *string
|
||||||
State *coredata.MeasureState
|
State *coredata.MeasureState
|
||||||
}
|
}
|
||||||
@@ -296,7 +296,7 @@ func (s MeasureService) Import(
|
|||||||
ID: measureID,
|
ID: measureID,
|
||||||
OrganizationID: organization.ID,
|
OrganizationID: organization.ID,
|
||||||
Name: req.Measures[i].Name,
|
Name: req.Measures[i].Name,
|
||||||
Description: "",
|
Description: nil,
|
||||||
Category: req.Measures[i].Category,
|
Category: req.Measures[i].Category,
|
||||||
State: coredata.MeasureStateNotStarted,
|
State: coredata.MeasureStateNotStarted,
|
||||||
ReferenceID: req.Measures[i].ReferenceID,
|
ReferenceID: req.Measures[i].ReferenceID,
|
||||||
@@ -313,12 +313,13 @@ func (s MeasureService) Import(
|
|||||||
for j := range req.Measures[i].Tasks {
|
for j := range req.Measures[i].Tasks {
|
||||||
taskID := gid.New(organization.ID.TenantID(), coredata.TaskEntityType)
|
taskID := gid.New(organization.ID.TenantID(), coredata.TaskEntityType)
|
||||||
|
|
||||||
|
taskDescription := req.Measures[i].Tasks[j].Description
|
||||||
task := &coredata.Task{
|
task := &coredata.Task{
|
||||||
ID: taskID,
|
ID: taskID,
|
||||||
OrganizationID: organizationID,
|
OrganizationID: organizationID,
|
||||||
MeasureID: &measure.ID,
|
MeasureID: &measure.ID,
|
||||||
Name: req.Measures[i].Tasks[j].Name,
|
Name: req.Measures[i].Tasks[j].Name,
|
||||||
Description: req.Measures[i].Tasks[j].Description,
|
Description: &taskDescription,
|
||||||
ReferenceID: req.Measures[i].Tasks[j].ReferenceID,
|
ReferenceID: req.Measures[i].Tasks[j].ReferenceID,
|
||||||
State: coredata.TaskStateTodo,
|
State: coredata.TaskStateTodo,
|
||||||
CreatedAt: now,
|
CreatedAt: now,
|
||||||
@@ -332,13 +333,14 @@ func (s MeasureService) Import(
|
|||||||
for k := range req.Measures[i].Tasks[j].RequestedEvidences {
|
for k := range req.Measures[i].Tasks[j].RequestedEvidences {
|
||||||
evidenceID := gid.New(organizationID.TenantID(), coredata.EvidenceEntityType)
|
evidenceID := gid.New(organizationID.TenantID(), coredata.EvidenceEntityType)
|
||||||
|
|
||||||
|
evidenceDescription := req.Measures[i].Tasks[j].RequestedEvidences[k].Name
|
||||||
evidence := &coredata.Evidence{
|
evidence := &coredata.Evidence{
|
||||||
State: coredata.EvidenceStateRequested,
|
State: coredata.EvidenceStateRequested,
|
||||||
ID: evidenceID,
|
ID: evidenceID,
|
||||||
TaskID: &task.ID,
|
TaskID: &task.ID,
|
||||||
ReferenceID: req.Measures[i].Tasks[j].RequestedEvidences[k].ReferenceID,
|
ReferenceID: req.Measures[i].Tasks[j].RequestedEvidences[k].ReferenceID,
|
||||||
Type: req.Measures[i].Tasks[j].RequestedEvidences[k].Type,
|
Type: req.Measures[i].Tasks[j].RequestedEvidences[k].Type,
|
||||||
Description: req.Measures[i].Tasks[j].RequestedEvidences[k].Name,
|
Description: &evidenceDescription,
|
||||||
CreatedAt: now,
|
CreatedAt: now,
|
||||||
UpdatedAt: now,
|
UpdatedAt: now,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -33,7 +33,7 @@ type (
|
|||||||
CreateRiskRequest struct {
|
CreateRiskRequest struct {
|
||||||
OrganizationID gid.GID
|
OrganizationID gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
Category string
|
Category string
|
||||||
Treatment coredata.RiskTreatment
|
Treatment coredata.RiskTreatment
|
||||||
OwnerID *gid.GID
|
OwnerID *gid.GID
|
||||||
@@ -47,7 +47,7 @@ type (
|
|||||||
UpdateRiskRequest struct {
|
UpdateRiskRequest struct {
|
||||||
ID gid.GID
|
ID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
Category *string
|
Category *string
|
||||||
Treatment *coredata.RiskTreatment
|
Treatment *coredata.RiskTreatment
|
||||||
OwnerID **gid.GID
|
OwnerID **gid.GID
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.gearno.de/crypto/uuid"
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.gearno.de/crypto/uuid"
|
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -35,7 +35,7 @@ type (
|
|||||||
OrganizationID gid.GID
|
OrganizationID gid.GID
|
||||||
MeasureID *gid.GID
|
MeasureID *gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
TimeEstimate *time.Duration
|
TimeEstimate *time.Duration
|
||||||
AssignedToID *gid.GID
|
AssignedToID *gid.GID
|
||||||
Deadline *time.Time
|
Deadline *time.Time
|
||||||
@@ -44,7 +44,7 @@ type (
|
|||||||
UpdateTaskRequest struct {
|
UpdateTaskRequest struct {
|
||||||
TaskID gid.GID
|
TaskID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
State *coredata.TaskState
|
State *coredata.TaskState
|
||||||
TimeEstimate **time.Duration
|
TimeEstimate **time.Duration
|
||||||
Deadline **time.Time
|
Deadline **time.Time
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ import (
|
|||||||
|
|
||||||
"github.com/aws/aws-sdk-go-v2/aws"
|
"github.com/aws/aws-sdk-go-v2/aws"
|
||||||
"github.com/aws/aws-sdk-go-v2/service/s3"
|
"github.com/aws/aws-sdk-go-v2/service/s3"
|
||||||
|
"go.gearno.de/crypto/uuid"
|
||||||
|
"go.gearno.de/kit/pg"
|
||||||
"go.probo.inc/probo/pkg/coredata"
|
"go.probo.inc/probo/pkg/coredata"
|
||||||
"go.probo.inc/probo/pkg/gid"
|
"go.probo.inc/probo/pkg/gid"
|
||||||
"go.probo.inc/probo/pkg/page"
|
"go.probo.inc/probo/pkg/page"
|
||||||
"go.gearno.de/crypto/uuid"
|
|
||||||
"go.gearno.de/kit/pg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -41,7 +41,7 @@ type (
|
|||||||
CreateTrustCenterReferenceRequest struct {
|
CreateTrustCenterReferenceRequest struct {
|
||||||
TrustCenterID gid.GID
|
TrustCenterID gid.GID
|
||||||
Name string
|
Name string
|
||||||
Description string
|
Description *string
|
||||||
WebsiteURL string
|
WebsiteURL string
|
||||||
LogoFile File
|
LogoFile File
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ type (
|
|||||||
UpdateTrustCenterReferenceRequest struct {
|
UpdateTrustCenterReferenceRequest struct {
|
||||||
ID gid.GID
|
ID gid.GID
|
||||||
Name *string
|
Name *string
|
||||||
Description *string
|
Description **string
|
||||||
WebsiteURL *string
|
WebsiteURL *string
|
||||||
LogoFile *File
|
LogoFile *File
|
||||||
Rank *int
|
Rank *int
|
||||||
|
|||||||
@@ -2020,7 +2020,7 @@ type VendorDataPrivacyAgreement implements Node {
|
|||||||
type Framework implements Node {
|
type Framework implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
|
|
||||||
organization: Organization! @goField(forceResolver: true)
|
organization: Organization! @goField(forceResolver: true)
|
||||||
|
|
||||||
@@ -2041,7 +2041,7 @@ type Control implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
sectionTitle: String!
|
sectionTitle: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
status: ControlStatus!
|
status: ControlStatus!
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
|
|
||||||
@@ -2089,7 +2089,7 @@ type Measure implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
category: String!
|
category: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
state: MeasureState!
|
state: MeasureState!
|
||||||
|
|
||||||
evidences(
|
evidences(
|
||||||
@@ -2133,7 +2133,7 @@ type Measure implements Node {
|
|||||||
type Task implements Node {
|
type Task implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
state: TaskState!
|
state: TaskState!
|
||||||
timeEstimate: Duration
|
timeEstimate: Duration
|
||||||
deadline: Datetime
|
deadline: Datetime
|
||||||
@@ -2161,7 +2161,7 @@ type Evidence implements Node {
|
|||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
file: File @goField(forceResolver: true)
|
file: File @goField(forceResolver: true)
|
||||||
url: String
|
url: String
|
||||||
description: String!
|
description: String
|
||||||
|
|
||||||
task: Task @goField(forceResolver: true)
|
task: Task @goField(forceResolver: true)
|
||||||
measure: Measure! @goField(forceResolver: true)
|
measure: Measure! @goField(forceResolver: true)
|
||||||
@@ -2173,7 +2173,7 @@ type Evidence implements Node {
|
|||||||
type Document implements Node {
|
type Document implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
title: String!
|
title: String!
|
||||||
description: String!
|
description: String
|
||||||
documentType: DocumentType!
|
documentType: DocumentType!
|
||||||
classification: DocumentClassification!
|
classification: DocumentClassification!
|
||||||
currentPublishedVersion: Int
|
currentPublishedVersion: Int
|
||||||
@@ -2207,7 +2207,7 @@ type Risk implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
snapshotId: ID
|
snapshotId: ID
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
treatment: RiskTreatment!
|
treatment: RiskTreatment!
|
||||||
inherentLikelihood: Int!
|
inherentLikelihood: Int!
|
||||||
@@ -2498,7 +2498,7 @@ type TrustCenterAccessEdge {
|
|||||||
type TrustCenterReference implements Node {
|
type TrustCenterReference implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoUrl: String! @goField(forceResolver: true)
|
logoUrl: String! @goField(forceResolver: true)
|
||||||
rank: Int!
|
rank: Int!
|
||||||
@@ -3303,7 +3303,7 @@ input DeleteTrustCenterAccessInput {
|
|||||||
input CreateTrustCenterReferenceInput {
|
input CreateTrustCenterReferenceInput {
|
||||||
trustCenterId: ID!
|
trustCenterId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoFile: Upload!
|
logoFile: Upload!
|
||||||
}
|
}
|
||||||
@@ -3311,7 +3311,7 @@ input CreateTrustCenterReferenceInput {
|
|||||||
input UpdateTrustCenterReferenceInput {
|
input UpdateTrustCenterReferenceInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
websiteUrl: String
|
websiteUrl: String
|
||||||
logoFile: Upload
|
logoFile: Upload
|
||||||
rank: Int
|
rank: Int
|
||||||
@@ -3464,13 +3464,13 @@ input DeletePeopleInput {
|
|||||||
input CreateFrameworkInput {
|
input CreateFrameworkInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateFrameworkInput {
|
input UpdateFrameworkInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
input ImportFrameworkInput {
|
input ImportFrameworkInput {
|
||||||
@@ -3489,14 +3489,14 @@ input ExportFrameworkInput {
|
|||||||
input CreateMeasureInput {
|
input CreateMeasureInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateMeasureInput {
|
input UpdateMeasureInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
category: String
|
category: String
|
||||||
state: MeasureState
|
state: MeasureState
|
||||||
}
|
}
|
||||||
@@ -3510,7 +3510,7 @@ input CreateTaskInput {
|
|||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
measureId: ID
|
measureId: ID
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
timeEstimate: Duration
|
timeEstimate: Duration
|
||||||
assignedToId: ID
|
assignedToId: ID
|
||||||
deadline: Datetime
|
deadline: Datetime
|
||||||
@@ -3519,7 +3519,7 @@ input CreateTaskInput {
|
|||||||
input UpdateTaskInput {
|
input UpdateTaskInput {
|
||||||
taskId: ID!
|
taskId: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
state: TaskState
|
state: TaskState
|
||||||
timeEstimate: Duration @goField(omittable: true)
|
timeEstimate: Duration @goField(omittable: true)
|
||||||
deadline: Datetime @goField(omittable: true)
|
deadline: Datetime @goField(omittable: true)
|
||||||
@@ -3581,7 +3581,7 @@ input DeleteControlSnapshotMappingInput {
|
|||||||
input CreateRiskInput {
|
input CreateRiskInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
ownerId: ID
|
ownerId: ID
|
||||||
treatment: RiskTreatment!
|
treatment: RiskTreatment!
|
||||||
@@ -3595,7 +3595,7 @@ input CreateRiskInput {
|
|||||||
input UpdateRiskInput {
|
input UpdateRiskInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
category: String
|
category: String
|
||||||
ownerId: ID @goField(omittable: true)
|
ownerId: ID @goField(omittable: true)
|
||||||
treatment: RiskTreatment
|
treatment: RiskTreatment
|
||||||
@@ -3644,7 +3644,7 @@ input RequestEvidenceInput {
|
|||||||
taskId: ID!
|
taskId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input FulfillEvidenceInput {
|
input FulfillEvidenceInput {
|
||||||
@@ -3660,7 +3660,7 @@ input CreateEvidenceInput {
|
|||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
url: String
|
url: String
|
||||||
file: Upload
|
file: Upload
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input DeleteEvidenceInput {
|
input DeleteEvidenceInput {
|
||||||
@@ -3774,7 +3774,7 @@ input CreateControlInput {
|
|||||||
frameworkId: ID!
|
frameworkId: ID!
|
||||||
sectionTitle: String!
|
sectionTitle: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
status: ControlStatus!
|
status: ControlStatus!
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
}
|
}
|
||||||
@@ -3783,7 +3783,7 @@ input UpdateControlInput {
|
|||||||
id: ID!
|
id: ID!
|
||||||
sectionTitle: String
|
sectionTitle: String
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
status: ControlStatus
|
status: ControlStatus
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11761,7 +11761,7 @@ type VendorDataPrivacyAgreement implements Node {
|
|||||||
type Framework implements Node {
|
type Framework implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
|
|
||||||
organization: Organization! @goField(forceResolver: true)
|
organization: Organization! @goField(forceResolver: true)
|
||||||
|
|
||||||
@@ -11782,7 +11782,7 @@ type Control implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
sectionTitle: String!
|
sectionTitle: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
status: ControlStatus!
|
status: ControlStatus!
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
|
|
||||||
@@ -11830,7 +11830,7 @@ type Measure implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
category: String!
|
category: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
state: MeasureState!
|
state: MeasureState!
|
||||||
|
|
||||||
evidences(
|
evidences(
|
||||||
@@ -11874,7 +11874,7 @@ type Measure implements Node {
|
|||||||
type Task implements Node {
|
type Task implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
state: TaskState!
|
state: TaskState!
|
||||||
timeEstimate: Duration
|
timeEstimate: Duration
|
||||||
deadline: Datetime
|
deadline: Datetime
|
||||||
@@ -11902,7 +11902,7 @@ type Evidence implements Node {
|
|||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
file: File @goField(forceResolver: true)
|
file: File @goField(forceResolver: true)
|
||||||
url: String
|
url: String
|
||||||
description: String!
|
description: String
|
||||||
|
|
||||||
task: Task @goField(forceResolver: true)
|
task: Task @goField(forceResolver: true)
|
||||||
measure: Measure! @goField(forceResolver: true)
|
measure: Measure! @goField(forceResolver: true)
|
||||||
@@ -11914,7 +11914,7 @@ type Evidence implements Node {
|
|||||||
type Document implements Node {
|
type Document implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
title: String!
|
title: String!
|
||||||
description: String!
|
description: String
|
||||||
documentType: DocumentType!
|
documentType: DocumentType!
|
||||||
classification: DocumentClassification!
|
classification: DocumentClassification!
|
||||||
currentPublishedVersion: Int
|
currentPublishedVersion: Int
|
||||||
@@ -11948,7 +11948,7 @@ type Risk implements Node {
|
|||||||
id: ID!
|
id: ID!
|
||||||
snapshotId: ID
|
snapshotId: ID
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
treatment: RiskTreatment!
|
treatment: RiskTreatment!
|
||||||
inherentLikelihood: Int!
|
inherentLikelihood: Int!
|
||||||
@@ -12239,7 +12239,7 @@ type TrustCenterAccessEdge {
|
|||||||
type TrustCenterReference implements Node {
|
type TrustCenterReference implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoUrl: String! @goField(forceResolver: true)
|
logoUrl: String! @goField(forceResolver: true)
|
||||||
rank: Int!
|
rank: Int!
|
||||||
@@ -13044,7 +13044,7 @@ input DeleteTrustCenterAccessInput {
|
|||||||
input CreateTrustCenterReferenceInput {
|
input CreateTrustCenterReferenceInput {
|
||||||
trustCenterId: ID!
|
trustCenterId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoFile: Upload!
|
logoFile: Upload!
|
||||||
}
|
}
|
||||||
@@ -13052,7 +13052,7 @@ input CreateTrustCenterReferenceInput {
|
|||||||
input UpdateTrustCenterReferenceInput {
|
input UpdateTrustCenterReferenceInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
websiteUrl: String
|
websiteUrl: String
|
||||||
logoFile: Upload
|
logoFile: Upload
|
||||||
rank: Int
|
rank: Int
|
||||||
@@ -13205,13 +13205,13 @@ input DeletePeopleInput {
|
|||||||
input CreateFrameworkInput {
|
input CreateFrameworkInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateFrameworkInput {
|
input UpdateFrameworkInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
input ImportFrameworkInput {
|
input ImportFrameworkInput {
|
||||||
@@ -13230,14 +13230,14 @@ input ExportFrameworkInput {
|
|||||||
input CreateMeasureInput {
|
input CreateMeasureInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateMeasureInput {
|
input UpdateMeasureInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
category: String
|
category: String
|
||||||
state: MeasureState
|
state: MeasureState
|
||||||
}
|
}
|
||||||
@@ -13251,7 +13251,7 @@ input CreateTaskInput {
|
|||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
measureId: ID
|
measureId: ID
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
timeEstimate: Duration
|
timeEstimate: Duration
|
||||||
assignedToId: ID
|
assignedToId: ID
|
||||||
deadline: Datetime
|
deadline: Datetime
|
||||||
@@ -13260,7 +13260,7 @@ input CreateTaskInput {
|
|||||||
input UpdateTaskInput {
|
input UpdateTaskInput {
|
||||||
taskId: ID!
|
taskId: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
state: TaskState
|
state: TaskState
|
||||||
timeEstimate: Duration @goField(omittable: true)
|
timeEstimate: Duration @goField(omittable: true)
|
||||||
deadline: Datetime @goField(omittable: true)
|
deadline: Datetime @goField(omittable: true)
|
||||||
@@ -13322,7 +13322,7 @@ input DeleteControlSnapshotMappingInput {
|
|||||||
input CreateRiskInput {
|
input CreateRiskInput {
|
||||||
organizationId: ID!
|
organizationId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
category: String!
|
category: String!
|
||||||
ownerId: ID
|
ownerId: ID
|
||||||
treatment: RiskTreatment!
|
treatment: RiskTreatment!
|
||||||
@@ -13336,7 +13336,7 @@ input CreateRiskInput {
|
|||||||
input UpdateRiskInput {
|
input UpdateRiskInput {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
category: String
|
category: String
|
||||||
ownerId: ID @goField(omittable: true)
|
ownerId: ID @goField(omittable: true)
|
||||||
treatment: RiskTreatment
|
treatment: RiskTreatment
|
||||||
@@ -13385,7 +13385,7 @@ input RequestEvidenceInput {
|
|||||||
taskId: ID!
|
taskId: ID!
|
||||||
name: String!
|
name: String!
|
||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input FulfillEvidenceInput {
|
input FulfillEvidenceInput {
|
||||||
@@ -13401,7 +13401,7 @@ input CreateEvidenceInput {
|
|||||||
type: EvidenceType!
|
type: EvidenceType!
|
||||||
url: String
|
url: String
|
||||||
file: Upload
|
file: Upload
|
||||||
description: String!
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input DeleteEvidenceInput {
|
input DeleteEvidenceInput {
|
||||||
@@ -13515,7 +13515,7 @@ input CreateControlInput {
|
|||||||
frameworkId: ID!
|
frameworkId: ID!
|
||||||
sectionTitle: String!
|
sectionTitle: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
status: ControlStatus!
|
status: ControlStatus!
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
}
|
}
|
||||||
@@ -13524,7 +13524,7 @@ input UpdateControlInput {
|
|||||||
id: ID!
|
id: ID!
|
||||||
sectionTitle: String
|
sectionTitle: String
|
||||||
name: String
|
name: String
|
||||||
description: String
|
description: String @goField(omittable: true)
|
||||||
status: ControlStatus
|
status: ControlStatus
|
||||||
exclusionJustification: String
|
exclusionJustification: String
|
||||||
}
|
}
|
||||||
@@ -26564,14 +26564,11 @@ func (ec *executionContext) _Control_description(ctx context.Context, field grap
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Control_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Control_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -33282,14 +33279,11 @@ func (ec *executionContext) _Document_description(ctx context.Context, field gra
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Document_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Document_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -35984,14 +35978,11 @@ func (ec *executionContext) _Evidence_description(ctx context.Context, field gra
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Evidence_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Evidence_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -36995,14 +36986,11 @@ func (ec *executionContext) _Framework_description(ctx context.Context, field gr
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Framework_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Framework_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -38889,14 +38877,11 @@ func (ec *executionContext) _Measure_description(ctx context.Context, field grap
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Measure_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Measure_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -55403,14 +55388,11 @@ func (ec *executionContext) _Risk_description(ctx context.Context, field graphql
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Risk_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Risk_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -58991,14 +58973,11 @@ func (ec *executionContext) _Task_description(ctx context.Context, field graphql
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_Task_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_Task_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -62523,14 +62502,11 @@ func (ec *executionContext) _TrustCenterReference_description(ctx context.Contex
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_TrustCenterReference_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_TrustCenterReference_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -74042,7 +74018,7 @@ func (ec *executionContext) unmarshalInputCreateControlInput(ctx context.Context
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -74371,7 +74347,7 @@ func (ec *executionContext) unmarshalInputCreateEvidenceInput(ctx context.Contex
|
|||||||
it.File = data
|
it.File = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -74412,7 +74388,7 @@ func (ec *executionContext) unmarshalInputCreateFrameworkInput(ctx context.Conte
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -74453,7 +74429,7 @@ func (ec *executionContext) unmarshalInputCreateMeasureInput(ctx context.Context
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -74964,7 +74940,7 @@ func (ec *executionContext) unmarshalInputCreateRiskInput(ctx context.Context, o
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -75309,7 +75285,7 @@ func (ec *executionContext) unmarshalInputCreateTaskInput(ctx context.Context, o
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -75474,7 +75450,7 @@ func (ec *executionContext) unmarshalInputCreateTrustCenterReferenceInput(ctx co
|
|||||||
it.Name = data
|
it.Name = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -78219,7 +78195,7 @@ func (ec *executionContext) unmarshalInputRequestEvidenceInput(ctx context.Conte
|
|||||||
it.Type = data
|
it.Type = data
|
||||||
case "description":
|
case "description":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("description"))
|
||||||
data, err := ec.unmarshalNString2string(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
@@ -78838,7 +78814,7 @@ func (ec *executionContext) unmarshalInputUpdateControlInput(ctx context.Context
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
case "status":
|
case "status":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("status"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("status"))
|
||||||
data, err := ec.unmarshalOControlStatus2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐControlStatus(ctx, v)
|
data, err := ec.unmarshalOControlStatus2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐControlStatus(ctx, v)
|
||||||
@@ -79051,7 +79027,7 @@ func (ec *executionContext) unmarshalInputUpdateFrameworkInput(ctx context.Conte
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79092,7 +79068,7 @@ func (ec *executionContext) unmarshalInputUpdateMeasureInput(ctx context.Context
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
case "category":
|
case "category":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("category"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("category"))
|
||||||
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
@@ -79625,7 +79601,7 @@ func (ec *executionContext) unmarshalInputUpdateRiskInput(ctx context.Context, o
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
case "category":
|
case "category":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("category"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("category"))
|
||||||
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
@@ -79840,7 +79816,7 @@ func (ec *executionContext) unmarshalInputUpdateTaskInput(ctx context.Context, o
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
case "state":
|
case "state":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("state"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("state"))
|
||||||
data, err := ec.unmarshalOTaskState2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐTaskState(ctx, v)
|
data, err := ec.unmarshalOTaskState2ᚖgoᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐTaskState(ctx, v)
|
||||||
@@ -80046,7 +80022,7 @@ func (ec *executionContext) unmarshalInputUpdateTrustCenterReferenceInput(ctx co
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return it, err
|
return it, err
|
||||||
}
|
}
|
||||||
it.Description = data
|
it.Description = graphql.OmittableOf(data)
|
||||||
case "websiteUrl":
|
case "websiteUrl":
|
||||||
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("websiteUrl"))
|
ctx := graphql.WithPathContext(ctx, graphql.NewPathWithField("websiteUrl"))
|
||||||
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
data, err := ec.unmarshalOString2ᚖstring(ctx, v)
|
||||||
@@ -82585,9 +82561,6 @@ func (ec *executionContext) _Control(ctx context.Context, sel ast.SelectionSet,
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Control_description(ctx, field, obj)
|
out.Values[i] = ec._Control_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "status":
|
case "status":
|
||||||
out.Values[i] = ec._Control_status(ctx, field, obj)
|
out.Values[i] = ec._Control_status(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
@@ -86378,9 +86351,6 @@ func (ec *executionContext) _Document(ctx context.Context, sel ast.SelectionSet,
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Document_description(ctx, field, obj)
|
out.Values[i] = ec._Document_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "documentType":
|
case "documentType":
|
||||||
out.Values[i] = ec._Document_documentType(ctx, field, obj)
|
out.Values[i] = ec._Document_documentType(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
@@ -87304,9 +87274,6 @@ func (ec *executionContext) _Evidence(ctx context.Context, sel ast.SelectionSet,
|
|||||||
out.Values[i] = ec._Evidence_url(ctx, field, obj)
|
out.Values[i] = ec._Evidence_url(ctx, field, obj)
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Evidence_description(ctx, field, obj)
|
out.Values[i] = ec._Evidence_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "task":
|
case "task":
|
||||||
field := field
|
field := field
|
||||||
|
|
||||||
@@ -87734,9 +87701,6 @@ func (ec *executionContext) _Framework(ctx context.Context, sel ast.SelectionSet
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Framework_description(ctx, field, obj)
|
out.Values[i] = ec._Framework_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "organization":
|
case "organization":
|
||||||
field := field
|
field := field
|
||||||
|
|
||||||
@@ -88542,9 +88506,6 @@ func (ec *executionContext) _Measure(ctx context.Context, sel ast.SelectionSet,
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Measure_description(ctx, field, obj)
|
out.Values[i] = ec._Measure_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "state":
|
case "state":
|
||||||
out.Values[i] = ec._Measure_state(ctx, field, obj)
|
out.Values[i] = ec._Measure_state(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
@@ -92617,9 +92578,6 @@ func (ec *executionContext) _Risk(ctx context.Context, sel ast.SelectionSet, obj
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Risk_description(ctx, field, obj)
|
out.Values[i] = ec._Risk_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "category":
|
case "category":
|
||||||
out.Values[i] = ec._Risk_category(ctx, field, obj)
|
out.Values[i] = ec._Risk_category(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
@@ -93767,9 +93725,6 @@ func (ec *executionContext) _Task(ctx context.Context, sel ast.SelectionSet, obj
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._Task_description(ctx, field, obj)
|
out.Values[i] = ec._Task_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "state":
|
case "state":
|
||||||
out.Values[i] = ec._Task_state(ctx, field, obj)
|
out.Values[i] = ec._Task_state(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
@@ -95176,9 +95131,6 @@ func (ec *executionContext) _TrustCenterReference(ctx context.Context, sel ast.S
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._TrustCenterReference_description(ctx, field, obj)
|
out.Values[i] = ec._TrustCenterReference_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "websiteUrl":
|
case "websiteUrl":
|
||||||
out.Values[i] = ec._TrustCenterReference_websiteUrl(ctx, field, obj)
|
out.Values[i] = ec._TrustCenterReference_websiteUrl(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ type Control struct {
|
|||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
SectionTitle string `json:"sectionTitle"`
|
SectionTitle string `json:"sectionTitle"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Status coredata.ControlStatus `json:"status"`
|
Status coredata.ControlStatus `json:"status"`
|
||||||
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
||||||
Framework *Framework `json:"framework"`
|
Framework *Framework `json:"framework"`
|
||||||
@@ -269,7 +269,7 @@ type CreateControlInput struct {
|
|||||||
FrameworkID gid.GID `json:"frameworkId"`
|
FrameworkID gid.GID `json:"frameworkId"`
|
||||||
SectionTitle string `json:"sectionTitle"`
|
SectionTitle string `json:"sectionTitle"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Status coredata.ControlStatus `json:"status"`
|
Status coredata.ControlStatus `json:"status"`
|
||||||
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ type CreateEvidenceInput struct {
|
|||||||
Type coredata.EvidenceType `json:"type"`
|
Type coredata.EvidenceType `json:"type"`
|
||||||
URL *string `json:"url,omitempty"`
|
URL *string `json:"url,omitempty"`
|
||||||
File *graphql.Upload `json:"file,omitempty"`
|
File *graphql.Upload `json:"file,omitempty"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateEvidencePayload struct {
|
type CreateEvidencePayload struct {
|
||||||
@@ -358,7 +358,7 @@ type CreateEvidencePayload struct {
|
|||||||
type CreateFrameworkInput struct {
|
type CreateFrameworkInput struct {
|
||||||
OrganizationID gid.GID `json:"organizationId"`
|
OrganizationID gid.GID `json:"organizationId"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateFrameworkPayload struct {
|
type CreateFrameworkPayload struct {
|
||||||
@@ -368,7 +368,7 @@ type CreateFrameworkPayload struct {
|
|||||||
type CreateMeasureInput struct {
|
type CreateMeasureInput struct {
|
||||||
OrganizationID gid.GID `json:"organizationId"`
|
OrganizationID gid.GID `json:"organizationId"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Category string `json:"category"`
|
Category string `json:"category"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,7 +471,7 @@ type CreateRiskDocumentMappingPayload struct {
|
|||||||
type CreateRiskInput struct {
|
type CreateRiskInput struct {
|
||||||
OrganizationID gid.GID `json:"organizationId"`
|
OrganizationID gid.GID `json:"organizationId"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Category string `json:"category"`
|
Category string `json:"category"`
|
||||||
OwnerID *gid.GID `json:"ownerId,omitempty"`
|
OwnerID *gid.GID `json:"ownerId,omitempty"`
|
||||||
Treatment coredata.RiskTreatment `json:"treatment"`
|
Treatment coredata.RiskTreatment `json:"treatment"`
|
||||||
@@ -543,7 +543,7 @@ type CreateTaskInput struct {
|
|||||||
OrganizationID gid.GID `json:"organizationId"`
|
OrganizationID gid.GID `json:"organizationId"`
|
||||||
MeasureID *gid.GID `json:"measureId,omitempty"`
|
MeasureID *gid.GID `json:"measureId,omitempty"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
TimeEstimate *time.Duration `json:"timeEstimate,omitempty"`
|
TimeEstimate *time.Duration `json:"timeEstimate,omitempty"`
|
||||||
AssignedToID *gid.GID `json:"assignedToId,omitempty"`
|
AssignedToID *gid.GID `json:"assignedToId,omitempty"`
|
||||||
Deadline *time.Time `json:"deadline,omitempty"`
|
Deadline *time.Time `json:"deadline,omitempty"`
|
||||||
@@ -579,7 +579,7 @@ type CreateTrustCenterFilePayload struct {
|
|||||||
type CreateTrustCenterReferenceInput struct {
|
type CreateTrustCenterReferenceInput struct {
|
||||||
TrustCenterID gid.GID `json:"trustCenterId"`
|
TrustCenterID gid.GID `json:"trustCenterId"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
WebsiteURL string `json:"websiteUrl"`
|
WebsiteURL string `json:"websiteUrl"`
|
||||||
LogoFile graphql.Upload `json:"logoFile"`
|
LogoFile graphql.Upload `json:"logoFile"`
|
||||||
}
|
}
|
||||||
@@ -1042,7 +1042,7 @@ type DisableSAMLPayload struct {
|
|||||||
type Document struct {
|
type Document struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
DocumentType coredata.DocumentType `json:"documentType"`
|
DocumentType coredata.DocumentType `json:"documentType"`
|
||||||
Classification coredata.DocumentClassification `json:"classification"`
|
Classification coredata.DocumentClassification `json:"classification"`
|
||||||
CurrentPublishedVersion *int `json:"currentPublishedVersion,omitempty"`
|
CurrentPublishedVersion *int `json:"currentPublishedVersion,omitempty"`
|
||||||
@@ -1148,7 +1148,7 @@ type Evidence struct {
|
|||||||
Type coredata.EvidenceType `json:"type"`
|
Type coredata.EvidenceType `json:"type"`
|
||||||
File *File `json:"file,omitempty"`
|
File *File `json:"file,omitempty"`
|
||||||
URL *string `json:"url,omitempty"`
|
URL *string `json:"url,omitempty"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Task *Task `json:"task,omitempty"`
|
Task *Task `json:"task,omitempty"`
|
||||||
Measure *Measure `json:"measure"`
|
Measure *Measure `json:"measure"`
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
@@ -1195,7 +1195,7 @@ type File struct {
|
|||||||
type Framework struct {
|
type Framework struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Organization *Organization `json:"organization"`
|
Organization *Organization `json:"organization"`
|
||||||
Controls *ControlConnection `json:"controls"`
|
Controls *ControlConnection `json:"controls"`
|
||||||
CreatedAt time.Time `json:"createdAt"`
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
@@ -1317,7 +1317,7 @@ type Measure struct {
|
|||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Category string `json:"category"`
|
Category string `json:"category"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
State coredata.MeasureState `json:"state"`
|
State coredata.MeasureState `json:"state"`
|
||||||
Evidences *EvidenceConnection `json:"evidences"`
|
Evidences *EvidenceConnection `json:"evidences"`
|
||||||
Tasks *TaskConnection `json:"tasks"`
|
Tasks *TaskConnection `json:"tasks"`
|
||||||
@@ -1587,7 +1587,7 @@ type RequestEvidenceInput struct {
|
|||||||
TaskID gid.GID `json:"taskId"`
|
TaskID gid.GID `json:"taskId"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Type coredata.EvidenceType `json:"type"`
|
Type coredata.EvidenceType `json:"type"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestEvidencePayload struct {
|
type RequestEvidencePayload struct {
|
||||||
@@ -1607,7 +1607,7 @@ type Risk struct {
|
|||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
SnapshotID *gid.GID `json:"snapshotId,omitempty"`
|
SnapshotID *gid.GID `json:"snapshotId,omitempty"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
Category string `json:"category"`
|
Category string `json:"category"`
|
||||||
Treatment coredata.RiskTreatment `json:"treatment"`
|
Treatment coredata.RiskTreatment `json:"treatment"`
|
||||||
InherentLikelihood int `json:"inherentLikelihood"`
|
InherentLikelihood int `json:"inherentLikelihood"`
|
||||||
@@ -1721,7 +1721,7 @@ type SnapshotEdge struct {
|
|||||||
type Task struct {
|
type Task struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
State coredata.TaskState `json:"state"`
|
State coredata.TaskState `json:"state"`
|
||||||
TimeEstimate *time.Duration `json:"timeEstimate,omitempty"`
|
TimeEstimate *time.Duration `json:"timeEstimate,omitempty"`
|
||||||
Deadline *time.Time `json:"deadline,omitempty"`
|
Deadline *time.Time `json:"deadline,omitempty"`
|
||||||
@@ -1820,7 +1820,7 @@ type TrustCenterFileEdge struct {
|
|||||||
type TrustCenterReference struct {
|
type TrustCenterReference struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
WebsiteURL string `json:"websiteUrl"`
|
WebsiteURL string `json:"websiteUrl"`
|
||||||
LogoURL string `json:"logoUrl"`
|
LogoURL string `json:"logoUrl"`
|
||||||
Rank int `json:"rank"`
|
Rank int `json:"rank"`
|
||||||
@@ -1890,7 +1890,7 @@ type UpdateControlInput struct {
|
|||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
SectionTitle *string `json:"sectionTitle,omitempty"`
|
SectionTitle *string `json:"sectionTitle,omitempty"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
Status *coredata.ControlStatus `json:"status,omitempty"`
|
Status *coredata.ControlStatus `json:"status,omitempty"`
|
||||||
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
ExclusionJustification *string `json:"exclusionJustification,omitempty"`
|
||||||
}
|
}
|
||||||
@@ -1937,7 +1937,7 @@ type UpdateDocumentVersionPayload struct {
|
|||||||
type UpdateFrameworkInput struct {
|
type UpdateFrameworkInput struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UpdateFrameworkPayload struct {
|
type UpdateFrameworkPayload struct {
|
||||||
@@ -1947,7 +1947,7 @@ type UpdateFrameworkPayload struct {
|
|||||||
type UpdateMeasureInput struct {
|
type UpdateMeasureInput struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
Category *string `json:"category,omitempty"`
|
Category *string `json:"category,omitempty"`
|
||||||
State *coredata.MeasureState `json:"state,omitempty"`
|
State *coredata.MeasureState `json:"state,omitempty"`
|
||||||
}
|
}
|
||||||
@@ -2048,7 +2048,7 @@ type UpdateProcessingActivityPayload struct {
|
|||||||
type UpdateRiskInput struct {
|
type UpdateRiskInput struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
Category *string `json:"category,omitempty"`
|
Category *string `json:"category,omitempty"`
|
||||||
OwnerID graphql.Omittable[*gid.GID] `json:"ownerId,omitempty"`
|
OwnerID graphql.Omittable[*gid.GID] `json:"ownerId,omitempty"`
|
||||||
Treatment *coredata.RiskTreatment `json:"treatment,omitempty"`
|
Treatment *coredata.RiskTreatment `json:"treatment,omitempty"`
|
||||||
@@ -2087,7 +2087,7 @@ type UpdateSAMLConfigurationPayload struct {
|
|||||||
type UpdateTaskInput struct {
|
type UpdateTaskInput struct {
|
||||||
TaskID gid.GID `json:"taskId"`
|
TaskID gid.GID `json:"taskId"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
State *coredata.TaskState `json:"state,omitempty"`
|
State *coredata.TaskState `json:"state,omitempty"`
|
||||||
TimeEstimate graphql.Omittable[*time.Duration] `json:"timeEstimate,omitempty"`
|
TimeEstimate graphql.Omittable[*time.Duration] `json:"timeEstimate,omitempty"`
|
||||||
Deadline graphql.Omittable[*time.Time] `json:"deadline,omitempty"`
|
Deadline graphql.Omittable[*time.Time] `json:"deadline,omitempty"`
|
||||||
@@ -2133,7 +2133,7 @@ type UpdateTrustCenterPayload struct {
|
|||||||
type UpdateTrustCenterReferenceInput struct {
|
type UpdateTrustCenterReferenceInput struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name *string `json:"name,omitempty"`
|
Name *string `json:"name,omitempty"`
|
||||||
Description *string `json:"description,omitempty"`
|
Description graphql.Omittable[*string] `json:"description,omitempty"`
|
||||||
WebsiteURL *string `json:"websiteUrl,omitempty"`
|
WebsiteURL *string `json:"websiteUrl,omitempty"`
|
||||||
LogoFile *graphql.Upload `json:"logoFile,omitempty"`
|
LogoFile *graphql.Upload `json:"logoFile,omitempty"`
|
||||||
Rank *int `json:"rank,omitempty"`
|
Rank *int `json:"rank,omitempty"`
|
||||||
|
|||||||
@@ -1487,7 +1487,7 @@ func (r *mutationResolver) UpdateTrustCenterReference(ctx context.Context, input
|
|||||||
req := &probo.UpdateTrustCenterReferenceRequest{
|
req := &probo.UpdateTrustCenterReferenceRequest{
|
||||||
ID: input.ID,
|
ID: input.ID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
WebsiteURL: input.WebsiteURL,
|
WebsiteURL: input.WebsiteURL,
|
||||||
Rank: input.Rank,
|
Rank: input.Rank,
|
||||||
}
|
}
|
||||||
@@ -1971,7 +1971,7 @@ func (r *mutationResolver) UpdateFramework(ctx context.Context, input types.Upda
|
|||||||
framework, err := prb.Frameworks.Update(ctx, probo.UpdateFrameworkRequest{
|
framework, err := prb.Frameworks.Update(ctx, probo.UpdateFrameworkRequest{
|
||||||
ID: input.ID,
|
ID: input.ID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("cannot update framework: %w", err)
|
return nil, fmt.Errorf("cannot update framework: %w", err)
|
||||||
@@ -2096,7 +2096,7 @@ func (r *mutationResolver) UpdateControl(ctx context.Context, input types.Update
|
|||||||
control, err := prb.Controls.Update(ctx, probo.UpdateControlRequest{
|
control, err := prb.Controls.Update(ctx, probo.UpdateControlRequest{
|
||||||
ID: input.ID,
|
ID: input.ID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
SectionTitle: input.SectionTitle,
|
SectionTitle: input.SectionTitle,
|
||||||
Status: input.Status,
|
Status: input.Status,
|
||||||
ExclusionJustification: input.ExclusionJustification,
|
ExclusionJustification: input.ExclusionJustification,
|
||||||
@@ -2159,7 +2159,7 @@ func (r *mutationResolver) UpdateMeasure(ctx context.Context, input types.Update
|
|||||||
measure, err := prb.Measures.Update(ctx, probo.UpdateMeasureRequest{
|
measure, err := prb.Measures.Update(ctx, probo.UpdateMeasureRequest{
|
||||||
ID: input.ID,
|
ID: input.ID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
Category: input.Category,
|
Category: input.Category,
|
||||||
State: input.State,
|
State: input.State,
|
||||||
})
|
})
|
||||||
@@ -2366,7 +2366,7 @@ func (r *mutationResolver) UpdateTask(ctx context.Context, input types.UpdateTas
|
|||||||
task, err := prb.Tasks.Update(ctx, probo.UpdateTaskRequest{
|
task, err := prb.Tasks.Update(ctx, probo.UpdateTaskRequest{
|
||||||
TaskID: input.TaskID,
|
TaskID: input.TaskID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
State: input.State,
|
State: input.State,
|
||||||
TimeEstimate: UnwrapOmittable(input.TimeEstimate),
|
TimeEstimate: UnwrapOmittable(input.TimeEstimate),
|
||||||
Deadline: UnwrapOmittable(input.Deadline),
|
Deadline: UnwrapOmittable(input.Deadline),
|
||||||
@@ -2464,7 +2464,7 @@ func (r *mutationResolver) UpdateRisk(ctx context.Context, input types.UpdateRis
|
|||||||
probo.UpdateRiskRequest{
|
probo.UpdateRiskRequest{
|
||||||
ID: input.ID,
|
ID: input.ID,
|
||||||
Name: input.Name,
|
Name: input.Name,
|
||||||
Description: input.Description,
|
Description: UnwrapOmittable(input.Description),
|
||||||
Category: input.Category,
|
Category: input.Category,
|
||||||
Treatment: input.Treatment,
|
Treatment: input.Treatment,
|
||||||
OwnerID: UnwrapOmittable(input.OwnerID),
|
OwnerID: UnwrapOmittable(input.OwnerID),
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ type VendorEdge {
|
|||||||
type TrustCenterReference implements Node {
|
type TrustCenterReference implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoUrl: String! @goField(forceResolver: true)
|
logoUrl: String! @goField(forceResolver: true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1624,7 +1624,7 @@ type VendorEdge {
|
|||||||
type TrustCenterReference implements Node {
|
type TrustCenterReference implements Node {
|
||||||
id: ID!
|
id: ID!
|
||||||
name: String!
|
name: String!
|
||||||
description: String!
|
description: String
|
||||||
websiteUrl: String!
|
websiteUrl: String!
|
||||||
logoUrl: String! @goField(forceResolver: true)
|
logoUrl: String! @goField(forceResolver: true)
|
||||||
}
|
}
|
||||||
@@ -6809,14 +6809,11 @@ func (ec *executionContext) _TrustCenterReference_description(ctx context.Contex
|
|||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
if resTmp == nil {
|
if resTmp == nil {
|
||||||
if !graphql.HasFieldError(ctx, fc) {
|
|
||||||
ec.Errorf(ctx, "must not be null")
|
|
||||||
}
|
|
||||||
return graphql.Null
|
return graphql.Null
|
||||||
}
|
}
|
||||||
res := resTmp.(string)
|
res := resTmp.(*string)
|
||||||
fc.Result = res
|
fc.Result = res
|
||||||
return ec.marshalNString2string(ctx, field.Selections, res)
|
return ec.marshalOString2ᚖstring(ctx, field.Selections, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *executionContext) fieldContext_TrustCenterReference_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
func (ec *executionContext) fieldContext_TrustCenterReference_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) {
|
||||||
@@ -11683,9 +11680,6 @@ func (ec *executionContext) _TrustCenterReference(ctx context.Context, sel ast.S
|
|||||||
}
|
}
|
||||||
case "description":
|
case "description":
|
||||||
out.Values[i] = ec._TrustCenterReference_description(ctx, field, obj)
|
out.Values[i] = ec._TrustCenterReference_description(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
|
||||||
atomic.AddUint32(&out.Invalids, 1)
|
|
||||||
}
|
|
||||||
case "websiteUrl":
|
case "websiteUrl":
|
||||||
out.Values[i] = ec._TrustCenterReference_websiteUrl(ctx, field, obj)
|
out.Values[i] = ec._TrustCenterReference_websiteUrl(ctx, field, obj)
|
||||||
if out.Values[i] == graphql.Null {
|
if out.Values[i] == graphql.Null {
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ type TrustCenterFileEdge struct {
|
|||||||
type TrustCenterReference struct {
|
type TrustCenterReference struct {
|
||||||
ID gid.GID `json:"id"`
|
ID gid.GID `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description *string `json:"description,omitempty"`
|
||||||
WebsiteURL string `json:"websiteUrl"`
|
WebsiteURL string `json:"websiteUrl"`
|
||||||
LogoURL string `json:"logoUrl"`
|
LogoURL string `json:"logoUrl"`
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user