Files
probo/pkg/server/api/complianceportal/v1/graphql/rights_request.graphql
Bryan Frimin 31157ff2e3 Move trust GraphQL API under complianceportal v1
Relocate the public trust center GraphQL surface, OAuth handlers,
and SPA serving into the compliance portal API package and remove
the legacy trust v1 server tree.

Signed-off-by: Bryan Frimin <bryan@probo.com>
2026-07-21 15:44:12 +02:00

72 lines
2.0 KiB
GraphQL

enum RightsRequestType
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestType") {
ACCESS @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeAccess")
DELETION
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeDeletion")
RECTIFICATION
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeRectification"
)
PORTABILITY
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypePortability"
)
OBJECTION
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeObjection")
COMPLAINT
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeComplaint")
}
enum RightsRequestState
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestState") {
TODO @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateTodo")
IN_PROGRESS
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateInProgress"
)
DONE @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateDone")
REJECTED
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateRejected")
}
type RightsRequest implements Node {
id: ID!
requestType: RightsRequestType!
requestState: RightsRequestState!
dataSubject: String
contact: String
details: String
deadline: Datetime
actionTaken: String
createdAt: Datetime!
updatedAt: Datetime!
}
type RightsRequestConnection {
edges: [RightsRequestEdge!]!
pageInfo: PageInfo!
}
type RightsRequestEdge {
cursor: CursorKey!
node: RightsRequest!
}
extend type Mutation {
# Submit a data subject request. Requires a verified viewer; the request is
# attributed to the viewer's email, so no NDA gate applies.
createRightsRequest(
input: CreateRightsRequestInput!
): CreateRightsRequestPayload! @authentication(required: PRESENT)
}
input CreateRightsRequestInput {
requestType: RightsRequestType!
dataSubject: String
details: String
}
type CreateRightsRequestPayload {
rightsRequestEdge: RightsRequestEdge!
}