Add processing activity registries

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-08-27 16:18:18 +02:00
parent bb68af1d3c
commit 199de3bdb0
32 changed files with 9702 additions and 306 deletions

View File

@@ -215,6 +215,102 @@ enum ContinualImprovementRegistriesPriority
)
}
enum ProcessingActivityRegistrySpecialOrCriminalData
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistrySpecialOrCriminalData") {
YES
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistrySpecialOrCriminalDataYes"
)
NO
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistrySpecialOrCriminalDataNo"
)
POSSIBLE
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistrySpecialOrCriminalDataPossible"
)
}
enum ProcessingActivityRegistryLawfulBasis
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasis") {
LEGITIMATE_INTEREST
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisLegitimateInterest"
)
CONSENT
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisConsent"
)
CONTRACTUAL_NECESSITY
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisContractualNecessity"
)
LEGAL_OBLIGATION
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisLegalObligation"
)
VITAL_INTERESTS
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisVitalInterests"
)
PUBLIC_TASK
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryLawfulBasisPublicTask"
)
}
enum ProcessingActivityRegistryTransferSafeguards
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguards") {
STANDARD_CONTRACTUAL_CLAUSES
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsStandardContractualClauses"
)
BINDING_CORPORATE_RULES
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsBindingCorporateRules"
)
ADEQUACY_DECISION
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsAdequacyDecision"
)
DEROGATIONS
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsDerogations"
)
CODES_OF_CONDUCT
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsCodesOfConduct"
)
CERTIFICATION_MECHANISMS
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferSafeguardsCertificationMechanisms"
)
}
enum ProcessingActivityRegistryDataProtectionImpactAssessment
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryDataProtectionImpactAssessment") {
NEEDED
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryDataProtectionImpactAssessmentNeeded"
)
NOT_NEEDED
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryDataProtectionImpactAssessmentNotNeeded"
)
}
enum ProcessingActivityRegistryTransferImpactAssessment
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferImpactAssessment") {
NEEDED
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferImpactAssessmentNeeded"
)
NOT_NEEDED
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryTransferImpactAssessmentNotNeeded"
)
}
# Order Field Enums
enum UserOrderField
@goModel(model: "github.com/getprobo/probo/pkg/coredata.UserOrderField") {
@@ -734,6 +830,18 @@ enum ContinualImprovementRegistriesOrderField
)
}
enum ProcessingActivityRegistryOrderField
@goModel(model: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryOrderField") {
CREATED_AT
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryOrderFieldCreatedAt"
)
NAME
@goEnum(
value: "github.com/getprobo/probo/pkg/coredata.ProcessingActivityRegistryOrderFieldName"
)
}
enum TrustCenterAccessOrderField
@goModel(model: "github.com/getprobo/probo/pkg/coredata.TrustCenterAccessOrderField") {
CREATED_AT
@@ -891,6 +999,14 @@ input ContinualImprovementRegistriesOrder
field: ContinualImprovementRegistriesOrderField!
}
input ProcessingActivityRegistryOrder
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.ProcessingActivityRegistryOrderBy"
) {
direction: OrderDirection!
field: ProcessingActivityRegistryOrderField!
}
input TrustCenterAccessOrder
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.TrustCenterAccessOrderBy"
@@ -986,10 +1102,6 @@ input OrganizationFilter {
trustCenterSlug: String
}
input TrustCenterFilter {
slug: String
}
input DatumFilter {
snapshotId: ID
}
@@ -1151,6 +1263,14 @@ type Organization implements Node {
orderBy: ContinualImprovementRegistriesOrder
): ContinualImprovementRegistryConnection! @goField(forceResolver: true)
processingActivityRegistries(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProcessingActivityRegistryOrder
): ProcessingActivityRegistryConnection! @goField(forceResolver: true)
snapshots(
first: Int
after: CursorKey
@@ -1571,6 +1691,14 @@ type Audit implements Node {
filter: ControlFilter
): ControlConnection! @goField(forceResolver: true)
processingActivityRegistries(
first: Int
after: CursorKey
last: Int
before: CursorKey
orderBy: ProcessingActivityRegistryOrder
): ProcessingActivityRegistryConnection! @goField(forceResolver: true)
showOnTrustCenter: Boolean!
createdAt: Datetime!
updatedAt: Datetime!
@@ -1626,6 +1754,29 @@ type ContinualImprovementRegistry implements Node {
updatedAt: Datetime!
}
type ProcessingActivityRegistry implements Node {
id: ID!
organization: Organization! @goField(forceResolver: true)
audit: Audit! @goField(forceResolver: true)
name: String!
purpose: String
dataSubjectCategory: String
personalDataCategory: String
specialOrCriminalData: ProcessingActivityRegistrySpecialOrCriminalData!
consentEvidenceLink: String
lawfulBasis: ProcessingActivityRegistryLawfulBasis!
recipients: String
location: String
internationalTransfers: Boolean!
transferSafeguards: ProcessingActivityRegistryTransferSafeguards
retentionPeriod: String
securityMeasures: String
dataProtectionImpactAssessment: ProcessingActivityRegistryDataProtectionImpactAssessment!
transferImpactAssessment: ProcessingActivityRegistryTransferImpactAssessment!
createdAt: Datetime!
updatedAt: Datetime!
}
type Snapshot implements Node {
id: ID!
organization: Organization! @goField(forceResolver: true)
@@ -1981,6 +2132,20 @@ type ContinualImprovementRegistryEdge {
node: ContinualImprovementRegistry!
}
type ProcessingActivityRegistryConnection
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.ProcessingActivityRegistryConnection"
) {
totalCount: Int! @goField(forceResolver: true)
edges: [ProcessingActivityRegistryEdge!]!
pageInfo: PageInfo!
}
type ProcessingActivityRegistryEdge {
cursor: CursorKey!
node: ProcessingActivityRegistry!
}
type SnapshotConnection
@goModel(
model: "github.com/getprobo/probo/pkg/server/api/console/v1/types.SnapshotConnection"
@@ -1999,13 +2164,6 @@ type SnapshotEdge {
type Query {
node(id: ID!): Node!
viewer: Viewer!
trustCenters(
first: Int
after: CursorKey
last: Int
before: CursorKey
filter: TrustCenterFilter
): TrustCenterConnection! @goField(forceResolver: true)
}
type Mutation {
@@ -2263,6 +2421,17 @@ type Mutation {
input: DeleteContinualImprovementRegistryInput!
): DeleteContinualImprovementRegistryPayload!
# Processing Activity Registry mutations
createProcessingActivityRegistry(
input: CreateProcessingActivityRegistryInput!
): CreateProcessingActivityRegistryPayload!
updateProcessingActivityRegistry(
input: UpdateProcessingActivityRegistryInput!
): UpdateProcessingActivityRegistryPayload!
deleteProcessingActivityRegistry(
input: DeleteProcessingActivityRegistryInput!
): DeleteProcessingActivityRegistryPayload!
# Snapshot mutations
createSnapshot(input: CreateSnapshotInput!): CreateSnapshotPayload!
deleteSnapshot(input: DeleteSnapshotInput!): DeleteSnapshotPayload!
@@ -2859,6 +3028,50 @@ input DeleteContinualImprovementRegistryInput {
continualImprovementRegistryId: ID!
}
input CreateProcessingActivityRegistryInput {
organizationId: ID!
auditId: ID!
name: String!
purpose: String
dataSubjectCategory: String
personalDataCategory: String
specialOrCriminalData: ProcessingActivityRegistrySpecialOrCriminalData!
consentEvidenceLink: String
lawfulBasis: ProcessingActivityRegistryLawfulBasis!
recipients: String
location: String
internationalTransfers: Boolean!
transferSafeguards: ProcessingActivityRegistryTransferSafeguards
retentionPeriod: String
securityMeasures: String
dataProtectionImpactAssessment: ProcessingActivityRegistryDataProtectionImpactAssessment!
transferImpactAssessment: ProcessingActivityRegistryTransferImpactAssessment!
}
input UpdateProcessingActivityRegistryInput {
id: ID!
auditId: ID
name: String
purpose: String
dataSubjectCategory: String
personalDataCategory: String
specialOrCriminalData: ProcessingActivityRegistrySpecialOrCriminalData
consentEvidenceLink: String
lawfulBasis: ProcessingActivityRegistryLawfulBasis
recipients: String
location: String
internationalTransfers: Boolean
transferSafeguards: ProcessingActivityRegistryTransferSafeguards
retentionPeriod: String
securityMeasures: String
dataProtectionImpactAssessment: ProcessingActivityRegistryDataProtectionImpactAssessment
transferImpactAssessment: ProcessingActivityRegistryTransferImpactAssessment
}
input DeleteProcessingActivityRegistryInput {
processingActivityRegistryId: ID!
}
input CreateSnapshotInput {
organizationId: ID!
name: String!
@@ -2887,8 +3100,6 @@ type UpdateTrustCenterPayload {
trustCenter: TrustCenter!
}
type CreateTrustCenterAccessPayload {
trustCenterAccessEdge: TrustCenterAccessEdge!
}
@@ -3602,6 +3813,18 @@ type DeleteContinualImprovementRegistryPayload {
deletedContinualImprovementRegistryId: ID!
}
type CreateProcessingActivityRegistryPayload {
processingActivityRegistryEdge: ProcessingActivityRegistryEdge!
}
type UpdateProcessingActivityRegistryPayload {
processingActivityRegistry: ProcessingActivityRegistry!
}
type DeleteProcessingActivityRegistryPayload {
deletedProcessingActivityRegistryId: ID!
}
type CreateSnapshotPayload {
snapshotEdge: SnapshotEdge!
}