Add vendor compliance reports

Signed-off-by: gearnode <bryan@frimin.fr>
This commit is contained in:
gearnode
2025-04-09 09:32:48 -07:00
parent 4ce72c03f7
commit 7e6fa44923
12 changed files with 2744 additions and 33 deletions

View File

@@ -226,6 +226,20 @@ enum EvidenceOrderField
CREATED_AT
}
enum VendorComplianceReportOrderField
@goModel(
model: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderField"
) {
REPORT_DATE
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderFieldReportDate"
)
CREATED_AT
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.VendorComplianceReportOrderFieldCreatedAt"
)
}
enum OrganizationOrderField {
NAME
CREATED_AT
@@ -313,6 +327,14 @@ input EvidenceOrder
field: EvidenceOrderField!
}
input VendorComplianceReportOrder
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.VendorComplianceReportOrderBy"
) {
direction: OrderDirection!
field: VendorComplianceReportOrderField!
}
input OrganizationOrder {
direction: OrderDirection!
field: OrganizationOrderField!
@@ -406,6 +428,15 @@ type Vendor implements Node {
id: ID!
name: String!
description: String!
complianceReports(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: VendorComplianceReportOrder
): VendorComplianceReportConnection! @goField(forceResolver: true)
serviceStartAt: Datetime!
serviceTerminationAt: Datetime
serviceCriticality: ServiceCriticality!
@@ -417,6 +448,20 @@ type Vendor implements Node {
updatedAt: Datetime!
}
type VendorComplianceReport implements Node {
id: ID!
vendor: Vendor! @goField(forceResolver: true)
reportDate: Datetime!
validUntil: Datetime
reportName: String!
fileUrl: String! @goField(forceResolver: true)
fileSize: Int!
createdAt: Datetime!
updatedAt: Datetime!
}
type Framework implements Node {
id: ID!
name: String!
@@ -699,6 +744,16 @@ type RiskEdge {
node: Risk!
}
type VendorComplianceReportConnection {
edges: [VendorComplianceReportEdge!]!
pageInfo: PageInfo!
}
type VendorComplianceReportEdge {
cursor: CursorKey!
node: VendorComplianceReport!
}
# Root Types
type Query {
node(id: ID!): Node!
@@ -777,6 +832,14 @@ type Mutation {
createEvidence(input: CreateEvidenceInput!): CreateEvidencePayload!
deleteEvidence(input: DeleteEvidenceInput!): DeleteEvidencePayload!
# Vendor Compliance Report mutations
uploadVendorComplianceReport(
input: UploadVendorComplianceReportInput!
): UploadVendorComplianceReportPayload!
deleteVendorComplianceReport(
input: DeleteVendorComplianceReportInput!
): DeleteVendorComplianceReportPayload!
# Policy mutations
createPolicy(input: CreatePolicyInput!): CreatePolicyPayload!
updatePolicy(input: UpdatePolicyInput!): UpdatePolicyPayload!
@@ -999,6 +1062,18 @@ input DeleteEvidenceInput {
evidenceId: ID!
}
input UploadVendorComplianceReportInput {
vendorId: ID!
reportDate: Datetime!
validUntil: Datetime
reportName: String!
file: Upload!
}
input DeleteVendorComplianceReportInput {
reportId: ID!
}
input CreatePolicyInput {
organizationId: ID!
name: String!
@@ -1173,6 +1248,14 @@ type DeleteEvidencePayload {
deletedEvidenceId: ID!
}
type UploadVendorComplianceReportPayload {
vendorComplianceReportEdge: VendorComplianceReportEdge!
}
type DeleteVendorComplianceReportPayload {
deletedVendorComplianceReportId: ID!
}
type CreatePolicyPayload {
policyEdge: PolicyEdge!
}