Add vendor publish to document system
Replace the old snapshot-based system for vendors with the publish document system, mirroring the prior processing activity / DPIA / TIA migration. Includes the GraphQL mutation, MCP tool, CLI command, n8n operation, frontend publish dialog, e2e tests, and a prosemirror register template covering vendor profile fields plus per-vendor sections for services, contacts, risk assessments, compliance reports, BAA and DPA agreements. The vendor register lives as a generated DocumentTypeRegister document on the organization, reused across publishes (the major version bumps on every republish). Approvers can be passed in to create a draft pending approval; otherwise the version is published immediately. The frontend Vendors page exposes a Publish button and a Document link button when the document exists, and pre-fills the previous default approvers. Remove snapshot mode entirely from vendors and their sub-entities: drop snapshotId/sourceId from GraphQL Vendor type and VendorFilter; remove SnapshotsTypeVendors from the snapshot registry and delete Vendors.Snapshot, VendorSnapshotter interface and all *.InsertVendorSnapshots methods on contacts, services, risk assessments, compliance reports, BAA and DPA. Drop the snapshot routes and banner from the frontend. The snapshot_id columns remain in the database but are now filtered out with snapshot_id IS NULL. Add Get/Upsert/Clear GeneratedDocumentID methods on Vendor backed by a new vendors_document_id column on generated_documents, matching the ProcessingActivity/Finding/Obligation pattern. Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -366,6 +366,73 @@ type (
|
||||
LocalLawRisk string
|
||||
SupplementaryMeasures string
|
||||
}
|
||||
|
||||
VendorListData struct {
|
||||
Title string
|
||||
OrganizationName string
|
||||
CreatedAt time.Time
|
||||
TotalVendors int
|
||||
Rows []VendorListRow
|
||||
}
|
||||
|
||||
VendorListRow struct {
|
||||
Name string
|
||||
LegalName string
|
||||
Description string
|
||||
Category string
|
||||
HeadquarterAddress string
|
||||
WebsiteURL string
|
||||
PrivacyPolicyURL string
|
||||
ServiceLevelAgreementURL string
|
||||
DataProcessingAgreementURL string
|
||||
BusinessAssociateAgreementURL string
|
||||
SubprocessorsListURL string
|
||||
StatusPageURL string
|
||||
TermsOfServiceURL string
|
||||
SecurityPageURL string
|
||||
TrustPageURL string
|
||||
Certifications string
|
||||
Countries string
|
||||
BusinessOwner string
|
||||
SecurityOwner string
|
||||
Services []VendorListService
|
||||
Contacts []VendorListContact
|
||||
RiskAssessments []VendorListRiskAssessment
|
||||
ComplianceReports []VendorListComplianceReport
|
||||
BusinessAssociateAgreement *VendorListAgreement
|
||||
DataPrivacyAgreement *VendorListAgreement
|
||||
}
|
||||
|
||||
VendorListService struct {
|
||||
Name string
|
||||
Description string
|
||||
}
|
||||
|
||||
VendorListContact struct {
|
||||
FullName string
|
||||
Email string
|
||||
Phone string
|
||||
Role string
|
||||
}
|
||||
|
||||
VendorListRiskAssessment struct {
|
||||
AssessedAt string
|
||||
ExpiresAt string
|
||||
DataSensitivity string
|
||||
BusinessImpact string
|
||||
Notes string
|
||||
}
|
||||
|
||||
VendorListComplianceReport struct {
|
||||
ReportName string
|
||||
ReportDate string
|
||||
ValidUntil string
|
||||
}
|
||||
|
||||
VendorListAgreement struct {
|
||||
ValidFrom string
|
||||
ValidUntil string
|
||||
}
|
||||
)
|
||||
|
||||
func BoolLabel(v bool) string {
|
||||
|
||||
Reference in New Issue
Block a user