392 lines
9.8 KiB
GraphQL
392 lines
9.8 KiB
GraphQL
enum AuditState @goModel(model: "go.probo.inc/probo/pkg/coredata.AuditState") {
|
|
NOT_STARTED
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateNotStarted")
|
|
IN_PROGRESS
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateInProgress")
|
|
COMPLETED
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateCompleted")
|
|
REJECTED
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateRejected")
|
|
OUTDATED
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditStateOutdated")
|
|
}
|
|
|
|
enum FindingKind
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingKind") {
|
|
MINOR_NONCONFORMITY
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingKindMinorNonconformity"
|
|
)
|
|
MAJOR_NONCONFORMITY
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingKindMajorNonconformity"
|
|
)
|
|
OBSERVATION
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingKindObservation"
|
|
)
|
|
EXCEPTION
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingKindException"
|
|
)
|
|
}
|
|
|
|
enum FindingStatus
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingStatus") {
|
|
OPEN
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusOpen"
|
|
)
|
|
IN_PROGRESS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusInProgress"
|
|
)
|
|
CLOSED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusClosed"
|
|
)
|
|
RISK_ACCEPTED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusRiskAccepted"
|
|
)
|
|
MITIGATED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusMitigated"
|
|
)
|
|
FALSE_POSITIVE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingStatusFalsePositive"
|
|
)
|
|
}
|
|
|
|
enum FindingPriority
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingPriority") {
|
|
LOW
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityLow"
|
|
)
|
|
MEDIUM
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityMedium"
|
|
)
|
|
HIGH
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingPriorityHigh"
|
|
)
|
|
}
|
|
|
|
enum AuditOrderField
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.AuditOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldCreatedAt"
|
|
)
|
|
VALID_FROM
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldValidFrom"
|
|
)
|
|
VALID_UNTIL
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldValidUntil"
|
|
)
|
|
STATE @goEnum(value: "go.probo.inc/probo/pkg/coredata.AuditOrderFieldState")
|
|
}
|
|
|
|
enum FindingOrderField
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.FindingOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldCreatedAt"
|
|
)
|
|
REFERENCE_ID
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldReferenceId"
|
|
)
|
|
IDENTIFIED_ON
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldIdentifiedOn"
|
|
)
|
|
DUE_DATE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldDueDate"
|
|
)
|
|
STATUS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldStatus"
|
|
)
|
|
PRIORITY
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldPriority"
|
|
)
|
|
KIND
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.FindingOrderFieldKind"
|
|
)
|
|
}
|
|
|
|
input AuditOrder
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: AuditOrderField!
|
|
}
|
|
|
|
input FindingOrder {
|
|
field: FindingOrderField!
|
|
direction: OrderDirection!
|
|
}
|
|
|
|
input FindingFilter {
|
|
kind: FindingKind
|
|
status: FindingStatus
|
|
priority: FindingPriority
|
|
ownerId: ID
|
|
}
|
|
|
|
type Audit implements Node {
|
|
id: ID!
|
|
name: String
|
|
organization: Organization @goField(forceResolver: true)
|
|
framework: Framework @goField(forceResolver: true)
|
|
validFrom: Datetime
|
|
validUntil: Datetime
|
|
reportFile: File @goField(forceResolver: true)
|
|
state: AuditState!
|
|
|
|
controls(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: ControlOrder
|
|
filter: ControlFilter
|
|
): ControlConnection @goField(forceResolver: true)
|
|
|
|
findings(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: FindingOrder
|
|
filter: FindingFilter
|
|
): FindingConnection @goField(forceResolver: true)
|
|
|
|
trustCenterVisibility: TrustCenterVisibility!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type Finding implements Node {
|
|
id: ID!
|
|
organization: Organization @goField(forceResolver: true)
|
|
kind: FindingKind!
|
|
referenceId: String!
|
|
description: String
|
|
source: String
|
|
audits(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: AuditOrder
|
|
): AuditConnection @goField(forceResolver: true)
|
|
identifiedOn: Datetime
|
|
rootCause: String
|
|
correctiveAction: String
|
|
owner: Profile @goField(forceResolver: true)
|
|
dueDate: Datetime
|
|
status: FindingStatus!
|
|
priority: FindingPriority!
|
|
risk: Risk @goField(forceResolver: true)
|
|
effectivenessCheck: String
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type AuditConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AuditConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [AuditEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type AuditEdge {
|
|
cursor: CursorKey!
|
|
node: Audit!
|
|
}
|
|
|
|
type FindingConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FindingConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [FindingEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type FindingEdge
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.FindingEdge"
|
|
) {
|
|
cursor: CursorKey!
|
|
node: Finding!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createAudit(input: CreateAuditInput!): CreateAuditPayload
|
|
updateAudit(input: UpdateAuditInput!): UpdateAuditPayload
|
|
deleteAudit(input: DeleteAuditInput!): DeleteAuditPayload
|
|
uploadAuditReport(input: UploadAuditReportInput!): UploadAuditReportPayload
|
|
deleteAuditReport(input: DeleteAuditReportInput!): DeleteAuditReportPayload
|
|
createFinding(input: CreateFindingInput!): CreateFindingPayload
|
|
updateFinding(input: UpdateFindingInput!): UpdateFindingPayload
|
|
deleteFinding(input: DeleteFindingInput!): DeleteFindingPayload
|
|
createFindingAuditMapping(
|
|
input: CreateFindingAuditMappingInput!
|
|
): CreateFindingAuditMappingPayload
|
|
deleteFindingAuditMapping(
|
|
input: DeleteFindingAuditMappingInput!
|
|
): DeleteFindingAuditMappingPayload
|
|
publishFindingList(
|
|
input: PublishFindingListInput!
|
|
): PublishFindingListPayload!
|
|
}
|
|
|
|
input PublishFindingListInput {
|
|
organizationId: ID!
|
|
approverIds: [ID!]
|
|
minor: Boolean!
|
|
}
|
|
|
|
type PublishFindingListPayload {
|
|
documentEdge: DocumentEdge!
|
|
documentVersionEdge: DocumentVersionEdge!
|
|
}
|
|
|
|
input CreateAuditInput {
|
|
organizationId: ID!
|
|
frameworkId: ID!
|
|
name: String
|
|
validFrom: Datetime
|
|
validUntil: Datetime
|
|
state: AuditState
|
|
trustCenterVisibility: TrustCenterVisibility
|
|
file: Upload
|
|
}
|
|
|
|
input UpdateAuditInput {
|
|
id: ID!
|
|
name: String @goField(omittable: true)
|
|
validFrom: Datetime
|
|
validUntil: Datetime
|
|
state: AuditState
|
|
trustCenterVisibility: TrustCenterVisibility
|
|
}
|
|
|
|
input DeleteAuditInput {
|
|
auditId: ID!
|
|
}
|
|
|
|
input UploadAuditReportInput {
|
|
auditId: ID!
|
|
file: Upload!
|
|
}
|
|
|
|
input DeleteAuditReportInput {
|
|
auditId: ID!
|
|
}
|
|
|
|
input CreateFindingInput {
|
|
organizationId: ID!
|
|
kind: FindingKind!
|
|
description: String
|
|
source: String
|
|
identifiedOn: Datetime
|
|
rootCause: String
|
|
correctiveAction: String
|
|
ownerId: ID
|
|
dueDate: Datetime
|
|
status: FindingStatus!
|
|
priority: FindingPriority!
|
|
riskId: ID
|
|
effectivenessCheck: String
|
|
}
|
|
|
|
input UpdateFindingInput {
|
|
id: ID!
|
|
description: String @goField(omittable: true)
|
|
source: String @goField(omittable: true)
|
|
identifiedOn: Datetime @goField(omittable: true)
|
|
rootCause: String @goField(omittable: true)
|
|
correctiveAction: String @goField(omittable: true)
|
|
ownerId: ID
|
|
dueDate: Datetime @goField(omittable: true)
|
|
status: FindingStatus
|
|
priority: FindingPriority
|
|
riskId: ID @goField(omittable: true)
|
|
effectivenessCheck: String @goField(omittable: true)
|
|
}
|
|
|
|
input DeleteFindingInput {
|
|
findingId: ID!
|
|
}
|
|
|
|
input CreateFindingAuditMappingInput {
|
|
findingId: ID!
|
|
auditId: ID!
|
|
referenceId: String!
|
|
}
|
|
|
|
input DeleteFindingAuditMappingInput {
|
|
findingId: ID!
|
|
auditId: ID!
|
|
}
|
|
|
|
type CreateAuditPayload {
|
|
auditEdge: AuditEdge
|
|
}
|
|
|
|
type UpdateAuditPayload {
|
|
audit: Audit
|
|
}
|
|
|
|
type DeleteAuditPayload {
|
|
deletedAuditId: ID
|
|
}
|
|
|
|
type UploadAuditReportPayload {
|
|
audit: Audit
|
|
}
|
|
|
|
type DeleteAuditReportPayload {
|
|
audit: Audit
|
|
}
|
|
|
|
type CreateFindingPayload {
|
|
findingEdge: FindingEdge
|
|
}
|
|
|
|
type UpdateFindingPayload {
|
|
finding: Finding
|
|
}
|
|
|
|
type DeleteFindingPayload {
|
|
deletedFindingId: ID
|
|
}
|
|
|
|
type CreateFindingAuditMappingPayload {
|
|
findingEdge: FindingEdge
|
|
auditEdge: AuditEdge
|
|
}
|
|
|
|
type DeleteFindingAuditMappingPayload {
|
|
deletedFindingId: ID
|
|
deletedAuditId: ID
|
|
}
|