Rename vendors to third parties
Renames the user-facing 'vendor' concept to 'third party' across the entire codebase. The shared common_third_parties reference table is unchanged. Migration. Renames the vendor_category enum, the vendors and vendor_<entity> tables (contacts, services, compliance_reports, business_associate_agreements, data_privacy_agreements, risk_assessments) and their vendor_id columns, the asset_vendors / data_vendors / processing_activity_vendors junction tables, generated_documents.vendors_document_id, the webhook_event_type 'vendor:<verb>' values, and the snapshots_type 'VENDORS' value. Backend. Renames coredata models and SQL queries, probo services, GraphQL / MCP API surface, console / trust / webhook resolvers and types, the CLI (prb vendor* -> prb third-party*; pkg/cmd/vendormgmt -> pkg/cmd/thirdpartymgmt), the document generator, vetting agent prompts, and the common-third-parties-import command. Frontend, packages, n8n, e2e. Renames apps/console pages, components, hooks, routes, dialogs, and tabs; the shared @probo/vendors package (now @probo/third-parties); the @probo/ui Vendors atoms (now ThirdParties, VendorLogo -> ThirdPartyLogo); the n8n community node actions/vendor folder (now actions/thirdParty); and the e2e Go test suite (console and MCP). Filesystem and URL paths use kebab-case (third-parties), GraphQL fields and TypeScript identifiers use camelCase (thirdParty / thirdParties), Go types use PascalCase (ThirdParty), and human-facing text uses 'third party' with a space. Co-authored-by: Bryan Frimin <bryan@getprobo.com> Signed-off-by: Bryan Frimin <bryan@getprobo.com> Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
711
pkg/server/api/console/v1/graphql/third_party.graphql
Normal file
711
pkg/server/api/console/v1/graphql/third_party.graphql
Normal file
@@ -0,0 +1,711 @@
|
||||
enum ThirdPartyCategory
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategory") {
|
||||
ANALYTICS
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryAnalytics"
|
||||
)
|
||||
CLOUD_MONITORING
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryCloudMonitoring"
|
||||
)
|
||||
CLOUD_PROVIDER
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryCloudProvider"
|
||||
)
|
||||
COLLABORATION
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryCollaboration"
|
||||
)
|
||||
CUSTOMER_SUPPORT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryCustomerSupport"
|
||||
)
|
||||
DATA_STORAGE_AND_PROCESSING
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryDataStorageAndProcessing"
|
||||
)
|
||||
DOCUMENT_MANAGEMENT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryDocumentManagement"
|
||||
)
|
||||
EMPLOYEE_MANAGEMENT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryEmployeeManagement"
|
||||
)
|
||||
ENGINEERING
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryEngineering"
|
||||
)
|
||||
FINANCE
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryFinance")
|
||||
IDENTITY_PROVIDER
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryIdentityProvider"
|
||||
)
|
||||
IT @goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryIT")
|
||||
MARKETING
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryMarketing"
|
||||
)
|
||||
OFFICE_OPERATIONS
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryOfficeOperations"
|
||||
)
|
||||
OTHER @goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryOther")
|
||||
PASSWORD_MANAGEMENT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryPasswordManagement"
|
||||
)
|
||||
PRODUCT_AND_DESIGN
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryProductAndDesign"
|
||||
)
|
||||
PROFESSIONAL_SERVICES
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryProfessionalServices"
|
||||
)
|
||||
RECRUITING
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryRecruiting"
|
||||
)
|
||||
SALES @goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategorySales")
|
||||
SECURITY
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategorySecurity")
|
||||
VERSION_CONTROL
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyCategoryVersionControl"
|
||||
)
|
||||
}
|
||||
|
||||
enum DataSensitivity
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.DataSensitivity") {
|
||||
NONE @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityNone")
|
||||
LOW @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityLow")
|
||||
MEDIUM
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityMedium")
|
||||
HIGH @goEnum(value: "go.probo.inc/probo/pkg/coredata.DataSensitivityHigh")
|
||||
CRITICAL
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.DataSensitivityCritical"
|
||||
)
|
||||
}
|
||||
|
||||
enum BusinessImpact
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.BusinessImpact") {
|
||||
LOW @goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactLow")
|
||||
MEDIUM
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactMedium")
|
||||
HIGH @goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactHigh")
|
||||
CRITICAL
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.BusinessImpactCritical")
|
||||
}
|
||||
|
||||
enum ThirdPartyOrderField
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.ThirdPartyOrderField") {
|
||||
NAME @goEnum(value: "go.probo.inc/probo/pkg/coredata.ThirdPartyOrderFieldName")
|
||||
CREATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyOrderFieldCreatedAt"
|
||||
)
|
||||
UPDATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyOrderFieldUpdatedAt"
|
||||
)
|
||||
}
|
||||
|
||||
enum ThirdPartyComplianceReportOrderField
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/coredata.ThirdPartyComplianceReportOrderField"
|
||||
) {
|
||||
REPORT_DATE
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyComplianceReportOrderFieldReportDate"
|
||||
)
|
||||
CREATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyComplianceReportOrderFieldCreatedAt"
|
||||
)
|
||||
}
|
||||
|
||||
enum ThirdPartyContactOrderField
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.ThirdPartyContactOrderField") {
|
||||
CREATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyContactOrderFieldCreatedAt"
|
||||
)
|
||||
FULL_NAME
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyContactOrderFieldFullName"
|
||||
)
|
||||
EMAIL
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyContactOrderFieldEmail"
|
||||
)
|
||||
}
|
||||
|
||||
enum ThirdPartyServiceOrderField
|
||||
@goModel(model: "go.probo.inc/probo/pkg/coredata.ThirdPartyServiceOrderField") {
|
||||
CREATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyServiceOrderFieldCreatedAt"
|
||||
)
|
||||
NAME
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyServiceOrderFieldName"
|
||||
)
|
||||
}
|
||||
|
||||
enum ThirdPartyRiskAssessmentOrderField
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/coredata.ThirdPartyRiskAssessmentOrderField"
|
||||
) {
|
||||
CREATED_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyRiskAssessmentOrderFieldCreatedAt"
|
||||
)
|
||||
EXPIRES_AT
|
||||
@goEnum(
|
||||
value: "go.probo.inc/probo/pkg/coredata.ThirdPartyRiskAssessmentOrderFieldExpiresAt"
|
||||
)
|
||||
}
|
||||
|
||||
input ThirdPartyOrder
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ThirdPartyOrderBy"
|
||||
) {
|
||||
direction: OrderDirection!
|
||||
field: ThirdPartyOrderField!
|
||||
}
|
||||
|
||||
input ThirdPartyComplianceReportOrder
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ThirdPartyComplianceReportOrderBy"
|
||||
) {
|
||||
direction: OrderDirection!
|
||||
field: ThirdPartyComplianceReportOrderField!
|
||||
}
|
||||
|
||||
input ThirdPartyContactOrder
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ThirdPartyContactOrderBy"
|
||||
) {
|
||||
direction: OrderDirection!
|
||||
field: ThirdPartyContactOrderField!
|
||||
}
|
||||
|
||||
input ThirdPartyServiceOrder
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ThirdPartyServiceOrderBy"
|
||||
) {
|
||||
direction: OrderDirection!
|
||||
field: ThirdPartyServiceOrderField!
|
||||
}
|
||||
|
||||
input ThirdPartyRiskAssessmentOrder {
|
||||
field: ThirdPartyRiskAssessmentOrderField!
|
||||
direction: OrderDirection!
|
||||
}
|
||||
|
||||
type ThirdParty implements Node {
|
||||
id: ID!
|
||||
name: String!
|
||||
category: ThirdPartyCategory!
|
||||
description: String
|
||||
|
||||
organization: Organization! @goField(forceResolver: true)
|
||||
|
||||
complianceReports(
|
||||
first: Int
|
||||
after: CursorKey
|
||||
last: Int
|
||||
before: CursorKey
|
||||
orderBy: ThirdPartyComplianceReportOrder
|
||||
): ThirdPartyComplianceReportConnection! @goField(forceResolver: true)
|
||||
|
||||
businessAssociateAgreement: ThirdPartyBusinessAssociateAgreement
|
||||
@goField(forceResolver: true)
|
||||
dataPrivacyAgreement: ThirdPartyDataPrivacyAgreement
|
||||
@goField(forceResolver: true)
|
||||
|
||||
contacts(
|
||||
first: Int
|
||||
after: CursorKey
|
||||
last: Int
|
||||
before: CursorKey
|
||||
orderBy: ThirdPartyContactOrder
|
||||
): ThirdPartyContactConnection! @goField(forceResolver: true)
|
||||
|
||||
services(
|
||||
first: Int
|
||||
after: CursorKey
|
||||
last: Int
|
||||
before: CursorKey
|
||||
orderBy: ThirdPartyServiceOrder
|
||||
): ThirdPartyServiceConnection! @goField(forceResolver: true)
|
||||
|
||||
riskAssessments(
|
||||
first: Int
|
||||
after: CursorKey
|
||||
last: Int
|
||||
before: CursorKey
|
||||
orderBy: ThirdPartyRiskAssessmentOrder
|
||||
): ThirdPartyRiskAssessmentConnection! @goField(forceResolver: true)
|
||||
|
||||
businessOwner: Profile @goField(forceResolver: true)
|
||||
securityOwner: Profile @goField(forceResolver: true)
|
||||
|
||||
statusPageUrl: String
|
||||
termsOfServiceUrl: String
|
||||
privacyPolicyUrl: String
|
||||
serviceLevelAgreementUrl: String
|
||||
dataProcessingAgreementUrl: String
|
||||
businessAssociateAgreementUrl: String
|
||||
subprocessorsListUrl: String
|
||||
certifications: [String!]!
|
||||
countries: [CountryCode!]!
|
||||
securityPageUrl: String
|
||||
trustPageUrl: String
|
||||
headquarterAddress: String
|
||||
legalName: String
|
||||
websiteUrl: String
|
||||
showOnTrustCenter: Boolean!
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyComplianceReport implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
reportDate: Datetime!
|
||||
validUntil: Datetime
|
||||
reportName: String!
|
||||
file: File @goField(forceResolver: true)
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyBusinessAssociateAgreement implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
fileName: String!
|
||||
fileUrl: String! @goField(forceResolver: true)
|
||||
fileSize: BigInt!
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyContact implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
fullName: String
|
||||
email: EmailAddr
|
||||
phone: String
|
||||
role: String
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyService implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
name: String!
|
||||
description: String
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyDataPrivacyAgreement implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
fileName: String!
|
||||
fileUrl: String! @goField(forceResolver: true)
|
||||
fileSize: BigInt!
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyRiskAssessment implements Node {
|
||||
id: ID!
|
||||
thirdParty: ThirdParty! @goField(forceResolver: true)
|
||||
expiresAt: Datetime!
|
||||
dataSensitivity: DataSensitivity!
|
||||
businessImpact: BusinessImpact!
|
||||
notes: String
|
||||
createdAt: Datetime!
|
||||
updatedAt: Datetime!
|
||||
|
||||
permission(action: String!): Boolean! @goField(forceResolver: true)
|
||||
}
|
||||
|
||||
type ThirdPartyConnection
|
||||
@goModel(
|
||||
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.ThirdPartyConnection"
|
||||
) {
|
||||
totalCount: Int! @goField(forceResolver: true)
|
||||
edges: [ThirdPartyEdge!]!
|
||||
pageInfo: PageInfo!
|
||||
}
|
||||
|
||||
type ThirdPartyEdge {
|
||||
cursor: CursorKey!
|
||||
node: ThirdParty!
|
||||
}
|
||||
|
||||
type ThirdPartyComplianceReportConnection {
|
||||
edges: [ThirdPartyComplianceReportEdge!]!
|
||||
pageInfo: PageInfo!
|
||||
}
|
||||
|
||||
type ThirdPartyComplianceReportEdge {
|
||||
cursor: CursorKey!
|
||||
node: ThirdPartyComplianceReport!
|
||||
}
|
||||
|
||||
type ThirdPartyContactConnection {
|
||||
edges: [ThirdPartyContactEdge!]!
|
||||
pageInfo: PageInfo!
|
||||
}
|
||||
|
||||
type ThirdPartyContactEdge {
|
||||
cursor: CursorKey!
|
||||
node: ThirdPartyContact!
|
||||
}
|
||||
|
||||
type ThirdPartyServiceConnection {
|
||||
edges: [ThirdPartyServiceEdge!]!
|
||||
pageInfo: PageInfo!
|
||||
}
|
||||
|
||||
type ThirdPartyServiceEdge {
|
||||
cursor: CursorKey!
|
||||
node: ThirdPartyService!
|
||||
}
|
||||
|
||||
type ThirdPartyRiskAssessmentConnection {
|
||||
edges: [ThirdPartyRiskAssessmentEdge!]!
|
||||
pageInfo: PageInfo!
|
||||
}
|
||||
|
||||
type ThirdPartyRiskAssessmentEdge {
|
||||
cursor: CursorKey!
|
||||
node: ThirdPartyRiskAssessment!
|
||||
}
|
||||
|
||||
extend type Mutation {
|
||||
createThirdParty(input: CreateThirdPartyInput!): CreateThirdPartyPayload!
|
||||
updateThirdParty(input: UpdateThirdPartyInput!): UpdateThirdPartyPayload!
|
||||
deleteThirdParty(input: DeleteThirdPartyInput!): DeleteThirdPartyPayload!
|
||||
createThirdPartyContact(
|
||||
input: CreateThirdPartyContactInput!
|
||||
): CreateThirdPartyContactPayload!
|
||||
updateThirdPartyContact(
|
||||
input: UpdateThirdPartyContactInput!
|
||||
): UpdateThirdPartyContactPayload!
|
||||
deleteThirdPartyContact(
|
||||
input: DeleteThirdPartyContactInput!
|
||||
): DeleteThirdPartyContactPayload!
|
||||
createThirdPartyService(
|
||||
input: CreateThirdPartyServiceInput!
|
||||
): CreateThirdPartyServicePayload!
|
||||
updateThirdPartyService(
|
||||
input: UpdateThirdPartyServiceInput!
|
||||
): UpdateThirdPartyServicePayload!
|
||||
deleteThirdPartyService(
|
||||
input: DeleteThirdPartyServiceInput!
|
||||
): DeleteThirdPartyServicePayload!
|
||||
uploadThirdPartyComplianceReport(
|
||||
input: UploadThirdPartyComplianceReportInput!
|
||||
): UploadThirdPartyComplianceReportPayload!
|
||||
deleteThirdPartyComplianceReport(
|
||||
input: DeleteThirdPartyComplianceReportInput!
|
||||
): DeleteThirdPartyComplianceReportPayload!
|
||||
uploadThirdPartyBusinessAssociateAgreement(
|
||||
input: UploadThirdPartyBusinessAssociateAgreementInput!
|
||||
): UploadThirdPartyBusinessAssociateAgreementPayload!
|
||||
updateThirdPartyBusinessAssociateAgreement(
|
||||
input: UpdateThirdPartyBusinessAssociateAgreementInput!
|
||||
): UpdateThirdPartyBusinessAssociateAgreementPayload!
|
||||
deleteThirdPartyBusinessAssociateAgreement(
|
||||
input: DeleteThirdPartyBusinessAssociateAgreementInput!
|
||||
): DeleteThirdPartyBusinessAssociateAgreementPayload!
|
||||
uploadThirdPartyDataPrivacyAgreement(
|
||||
input: UploadThirdPartyDataPrivacyAgreementInput!
|
||||
): UploadThirdPartyDataPrivacyAgreementPayload!
|
||||
updateThirdPartyDataPrivacyAgreement(
|
||||
input: UpdateThirdPartyDataPrivacyAgreementInput!
|
||||
): UpdateThirdPartyDataPrivacyAgreementPayload!
|
||||
deleteThirdPartyDataPrivacyAgreement(
|
||||
input: DeleteThirdPartyDataPrivacyAgreementInput!
|
||||
): DeleteThirdPartyDataPrivacyAgreementPayload!
|
||||
createThirdPartyRiskAssessment(
|
||||
input: CreateThirdPartyRiskAssessmentInput!
|
||||
): CreateThirdPartyRiskAssessmentPayload!
|
||||
assessThirdParty(input: AssessThirdPartyInput!): AssessThirdPartyPayload!
|
||||
publishThirdPartyList(
|
||||
input: PublishThirdPartyListInput!
|
||||
): PublishThirdPartyListPayload!
|
||||
}
|
||||
|
||||
input PublishThirdPartyListInput {
|
||||
organizationId: ID!
|
||||
approverIds: [ID!]
|
||||
minor: Boolean!
|
||||
}
|
||||
|
||||
type PublishThirdPartyListPayload {
|
||||
documentEdge: DocumentEdge!
|
||||
documentVersionEdge: DocumentVersionEdge!
|
||||
}
|
||||
|
||||
input CreateThirdPartyInput {
|
||||
organizationId: ID!
|
||||
name: String!
|
||||
description: String
|
||||
headquarterAddress: String
|
||||
legalName: String
|
||||
websiteUrl: String
|
||||
privacyPolicyUrl: String
|
||||
category: ThirdPartyCategory
|
||||
serviceLevelAgreementUrl: String
|
||||
dataProcessingAgreementUrl: String
|
||||
businessAssociateAgreementUrl: String
|
||||
subprocessorsListUrl: String
|
||||
certifications: [String!]
|
||||
countries: [CountryCode!]
|
||||
securityPageUrl: String
|
||||
trustPageUrl: String
|
||||
statusPageUrl: String
|
||||
termsOfServiceUrl: String
|
||||
businessOwnerId: ID
|
||||
securityOwnerId: ID
|
||||
}
|
||||
|
||||
input UpdateThirdPartyInput {
|
||||
id: ID!
|
||||
name: String
|
||||
description: String @goField(omittable: true)
|
||||
statusPageUrl: String @goField(omittable: true)
|
||||
termsOfServiceUrl: String @goField(omittable: true)
|
||||
privacyPolicyUrl: String @goField(omittable: true)
|
||||
serviceLevelAgreementUrl: String @goField(omittable: true)
|
||||
dataProcessingAgreementUrl: String @goField(omittable: true)
|
||||
businessAssociateAgreementUrl: String @goField(omittable: true)
|
||||
subprocessorsListUrl: String @goField(omittable: true)
|
||||
websiteUrl: String @goField(omittable: true)
|
||||
legalName: String @goField(omittable: true)
|
||||
headquarterAddress: String @goField(omittable: true)
|
||||
category: ThirdPartyCategory
|
||||
certifications: [String!]
|
||||
countries: [CountryCode!]
|
||||
securityPageUrl: String @goField(omittable: true)
|
||||
trustPageUrl: String @goField(omittable: true)
|
||||
businessOwnerId: ID @goField(omittable: true)
|
||||
securityOwnerId: ID @goField(omittable: true)
|
||||
showOnTrustCenter: Boolean
|
||||
}
|
||||
|
||||
input DeleteThirdPartyInput {
|
||||
thirdPartyId: ID!
|
||||
}
|
||||
|
||||
input CreateThirdPartyContactInput {
|
||||
thirdPartyId: ID!
|
||||
fullName: String
|
||||
email: EmailAddr
|
||||
phone: String
|
||||
role: String
|
||||
}
|
||||
|
||||
input UpdateThirdPartyContactInput {
|
||||
id: ID!
|
||||
fullName: String @goField(omittable: true)
|
||||
email: EmailAddr @goField(omittable: true)
|
||||
phone: String @goField(omittable: true)
|
||||
role: String @goField(omittable: true)
|
||||
}
|
||||
|
||||
input DeleteThirdPartyContactInput {
|
||||
thirdPartyContactId: ID!
|
||||
}
|
||||
|
||||
input CreateThirdPartyServiceInput {
|
||||
thirdPartyId: ID!
|
||||
name: String!
|
||||
description: String
|
||||
url: String
|
||||
type: String
|
||||
}
|
||||
|
||||
input UpdateThirdPartyServiceInput {
|
||||
id: ID!
|
||||
name: String
|
||||
description: String @goField(omittable: true)
|
||||
url: String
|
||||
type: String
|
||||
}
|
||||
|
||||
input DeleteThirdPartyServiceInput {
|
||||
thirdPartyServiceId: ID!
|
||||
}
|
||||
|
||||
input UploadThirdPartyComplianceReportInput {
|
||||
thirdPartyId: ID!
|
||||
reportDate: Datetime!
|
||||
validUntil: Datetime
|
||||
reportName: String!
|
||||
file: Upload!
|
||||
}
|
||||
|
||||
input DeleteThirdPartyComplianceReportInput {
|
||||
reportId: ID!
|
||||
}
|
||||
|
||||
input UploadThirdPartyBusinessAssociateAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
fileName: String!
|
||||
file: Upload!
|
||||
}
|
||||
|
||||
input UpdateThirdPartyBusinessAssociateAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
validFrom: Datetime @goField(omittable: true)
|
||||
validUntil: Datetime @goField(omittable: true)
|
||||
}
|
||||
|
||||
input DeleteThirdPartyBusinessAssociateAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
}
|
||||
|
||||
input UploadThirdPartyDataPrivacyAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
validFrom: Datetime
|
||||
validUntil: Datetime
|
||||
fileName: String!
|
||||
file: Upload!
|
||||
}
|
||||
|
||||
input UpdateThirdPartyDataPrivacyAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
validFrom: Datetime @goField(omittable: true)
|
||||
validUntil: Datetime @goField(omittable: true)
|
||||
}
|
||||
|
||||
input DeleteThirdPartyDataPrivacyAgreementInput {
|
||||
thirdPartyId: ID!
|
||||
}
|
||||
|
||||
input CreateThirdPartyRiskAssessmentInput {
|
||||
thirdPartyId: ID!
|
||||
expiresAt: Datetime!
|
||||
dataSensitivity: DataSensitivity!
|
||||
businessImpact: BusinessImpact!
|
||||
notes: String
|
||||
}
|
||||
|
||||
input AssessThirdPartyInput {
|
||||
id: ID!
|
||||
websiteUrl: String!
|
||||
procedure: String
|
||||
}
|
||||
|
||||
type ThirdPartySubprocessor {
|
||||
name: String!
|
||||
country: String!
|
||||
purpose: String!
|
||||
}
|
||||
|
||||
type CreateThirdPartyPayload {
|
||||
thirdPartyEdge: ThirdPartyEdge!
|
||||
}
|
||||
|
||||
type UpdateThirdPartyPayload {
|
||||
thirdParty: ThirdParty!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyPayload {
|
||||
deletedThirdPartyId: ID!
|
||||
}
|
||||
|
||||
type CreateThirdPartyContactPayload {
|
||||
thirdPartyContactEdge: ThirdPartyContactEdge!
|
||||
}
|
||||
|
||||
type UpdateThirdPartyContactPayload {
|
||||
thirdPartyContact: ThirdPartyContact!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyContactPayload {
|
||||
deletedThirdPartyContactId: ID!
|
||||
}
|
||||
|
||||
type CreateThirdPartyServicePayload {
|
||||
thirdPartyServiceEdge: ThirdPartyServiceEdge!
|
||||
}
|
||||
|
||||
type UpdateThirdPartyServicePayload {
|
||||
thirdPartyService: ThirdPartyService!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyServicePayload {
|
||||
deletedThirdPartyServiceId: ID!
|
||||
}
|
||||
|
||||
type UploadThirdPartyComplianceReportPayload {
|
||||
thirdPartyComplianceReportEdge: ThirdPartyComplianceReportEdge!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyComplianceReportPayload {
|
||||
deletedThirdPartyComplianceReportId: ID!
|
||||
}
|
||||
|
||||
type UploadThirdPartyBusinessAssociateAgreementPayload {
|
||||
thirdPartyBusinessAssociateAgreement: ThirdPartyBusinessAssociateAgreement!
|
||||
}
|
||||
|
||||
type UpdateThirdPartyBusinessAssociateAgreementPayload {
|
||||
thirdPartyBusinessAssociateAgreement: ThirdPartyBusinessAssociateAgreement!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyBusinessAssociateAgreementPayload {
|
||||
deletedThirdPartyId: ID!
|
||||
}
|
||||
|
||||
type UploadThirdPartyDataPrivacyAgreementPayload {
|
||||
thirdPartyDataPrivacyAgreement: ThirdPartyDataPrivacyAgreement!
|
||||
}
|
||||
|
||||
type UpdateThirdPartyDataPrivacyAgreementPayload {
|
||||
thirdPartyDataPrivacyAgreement: ThirdPartyDataPrivacyAgreement!
|
||||
}
|
||||
|
||||
type DeleteThirdPartyDataPrivacyAgreementPayload {
|
||||
deletedThirdPartyId: ID!
|
||||
}
|
||||
|
||||
type CreateThirdPartyRiskAssessmentPayload {
|
||||
thirdPartyRiskAssessmentEdge: ThirdPartyRiskAssessmentEdge!
|
||||
}
|
||||
|
||||
type AssessThirdPartyPayload {
|
||||
thirdParty: ThirdParty!
|
||||
report: String!
|
||||
subprocessors: [ThirdPartySubprocessor!]!
|
||||
}
|
||||
Reference in New Issue
Block a user