Files
probo/pkg/server/api/console/v1/graphql/evidence.graphql
Émile Ré 5f93071b20 Consolidate hub type definitions into their own files
Move Organization, Identity, TrustCenter, and Viewer definitions to
include all their connection fields directly, removing all extend type
blocks for these hub types from entity files.

This eliminates the Relay schemaExtensions constraint where extend type
could only target types defined in the main schema file. Entity files
now only define their own standalone types and extend type Mutation.

Signed-off-by: Émile Ré <emile@getprobo.com>
2026-04-15 09:19:39 +04:00

83 lines
2.0 KiB
GraphQL

enum EvidenceState
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceState") {
FULFILLED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceStateFulfilled")
REQUESTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceStateRequested")
}
enum EvidenceType
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceType") {
FILE @goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceTypeFile")
LINK @goEnum(value: "go.probo.inc/probo/pkg/coredata.EvidenceTypeLink")
}
enum EvidenceOrderField
@goModel(model: "go.probo.inc/probo/pkg/coredata.EvidenceOrderField") {
CREATED_AT
}
input EvidenceOrder
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.EvidenceOrderBy"
) {
direction: OrderDirection!
field: EvidenceOrderField!
}
type Evidence implements Node {
id: ID!
size: Int!
state: EvidenceState!
type: EvidenceType!
file: File @goField(forceResolver: true)
url: String
description: String
task: Task @goField(forceResolver: true)
measure: Measure! @goField(forceResolver: true)
createdAt: Datetime!
updatedAt: Datetime!
permission(action: String!): Boolean! @goField(forceResolver: true)
}
type EvidenceConnection
@goModel(
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.EvidenceConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [EvidenceEdge!]!
pageInfo: PageInfo!
}
type EvidenceEdge {
cursor: CursorKey!
node: Evidence!
}
extend type Mutation {
deleteEvidence(input: DeleteEvidenceInput!): DeleteEvidencePayload!
uploadMeasureEvidence(
input: UploadMeasureEvidenceInput!
): UploadMeasureEvidencePayload!
}
input DeleteEvidenceInput {
evidenceId: ID!
}
input UploadMeasureEvidenceInput {
measureId: ID!
file: Upload!
}
type DeleteEvidencePayload {
deletedEvidenceId: ID!
}
type UploadMeasureEvidencePayload {
evidenceEdge: EvidenceEdge!
}