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>
This commit is contained in:
Bryan Frimin
2026-07-15 10:59:08 +02:00
parent 5b3c33831f
commit 31157ff2e3
48 changed files with 862 additions and 224 deletions

View File

@@ -0,0 +1,71 @@
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!
}