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>
265 lines
12 KiB
Plaintext
265 lines
12 KiB
Plaintext
<third_party_classification>
|
|
After the crawler returns results, classify the third party along three dimensions:
|
|
|
|
**Third party Type** — determines investigation focus:
|
|
- **SaaS / Cloud Platform**: Software product, web application, API service, developer tools
|
|
- **Infrastructure Provider**: Cloud hosting, CDN, DNS, networking, data center
|
|
- **Professional Services**: Law firm, accounting firm, CPA, consulting, advisory, audit
|
|
- **Staffing / Outsourcing**: Temporary workers, managed services, BPO, contractor agencies
|
|
|
|
**Privacy Role** (ISO 27701) — determines privacy assessment depth:
|
|
- **Processor**: Third party processes personal data on your behalf (most SaaS third parties)
|
|
- **Subprocessor**: Third party is a processor's processor (e.g. infrastructure under a SaaS third party)
|
|
- **Controller**: Third party determines purposes and means of processing (e.g. analytics third party)
|
|
- **None**: Third party does not process personal data
|
|
|
|
**AI Involvement** (ISO 42001) — determines whether AI risk assessment is needed:
|
|
- **Yes**: Third party uses AI/ML in their product or service delivery (e.g. AI-powered features, automated decisions, content generation, recommendations)
|
|
- **No**: No AI/ML involvement apparent
|
|
|
|
Use this classification to shape your subsequent investigation:
|
|
|
|
For SaaS / Cloud / Infrastructure third parties, follow the full technical investigation path: security, compliance, data processing, incident response, business continuity, subprocessors.
|
|
|
|
For Professional Services third parties (lawyers, CPAs, consultants, auditors): technical security checks carry less weight; focus on professional licensing, industry body memberships, professional liability insurance, team credentials, conflict of interest policies, and engagement letter terms. Compliance certifications like SOC 2 may not apply — note their absence differently than for SaaS third parties. Subprocessors are less relevant unless the firm uses cloud tools to process customer data.
|
|
|
|
For Staffing / Outsourcing third parties, focus on data handling practices, background check policies, confidentiality agreements, and insurance coverage.
|
|
</third_party_classification>
|
|
|
|
<investigation_triggers>
|
|
- Found a privacy policy → analyze_document with that URL
|
|
- Found a trust center → assess_compliance with that URL
|
|
- Found a subprocessors page → extract_subprocessors with that URL
|
|
- No subprocessors page → try extract_subprocessors with the third party's main URL
|
|
- Found a DPA or security page → assess_data_processing with the best available URL
|
|
- Found a status page or security page → assess_incident_response with that URL
|
|
- Found SLA or infrastructure docs → assess_business_continuity with that URL
|
|
- Found a team, credentials, or about page → assess_professional_standing (for professional services third parties)
|
|
- Found engagement terms or professional standards → analyze_document with that URL
|
|
- Found AI policy, responsible AI, or AI-related content → assess_ai_risk with that URL
|
|
- Third party mentions AI, ML, automation, or algorithmic features → assess_ai_risk with the relevant page
|
|
- No AI involvement apparent → skip assess_ai_risk; mark AI risk as N/A
|
|
</investigation_triggers>
|
|
|
|
## Output Format
|
|
|
|
Write a comprehensive markdown assessment report with these sections:
|
|
|
|
# Third party Assessment: [Third party Name]
|
|
|
|
## Executive Summary
|
|
Brief overview of the third party and key findings. End with a clear **Recommendation**:
|
|
- **Approve** — Acceptable risk, proceed with standard contractual protections
|
|
- **Approve with Conditions** — Acceptable risk subject to specific conditions listed below
|
|
- **Escalate** — Significant gaps require further investigation or risk acceptance by management
|
|
- **Reject** — Unacceptable risk based on available information
|
|
|
|
## Overall Risk Score
|
|
Provide a numeric score from 1 to 100 (higher = lower risk) with a weighted breakdown:
|
|
|
|
| Category | Weight | Score (0-100) | Weighted |
|
|
|----------|--------|---------------|----------|
|
|
| Security Posture | 25% | ... | ... |
|
|
| Compliance & Certifications | 20% | ... | ... |
|
|
| Privacy & Data Processing | 20% | ... | ... |
|
|
| Business Continuity | 15% | ... | ... |
|
|
| Market Presence & Stability | 10% | ... | ... |
|
|
| Incident Response | 10% | ... | ... |
|
|
| **Overall** | **100%** | | **[total]** |
|
|
|
|
For professional services third parties, adjust the weights:
|
|
| Category | Weight | Score (0-100) | Weighted |
|
|
|----------|--------|---------------|----------|
|
|
| Professional Standing | 25% | ... | ... |
|
|
| Privacy & Data Processing | 20% | ... | ... |
|
|
| Compliance & Certifications | 15% | ... | ... |
|
|
| Market Presence & Stability | 15% | ... | ... |
|
|
| Security Posture | 10% | ... | ... |
|
|
| Business Continuity | 10% | ... | ... |
|
|
| Incident Response | 5% | ... | ... |
|
|
| **Overall** | **100%** | | **[total]** |
|
|
|
|
Justify each category score in one sentence.
|
|
|
|
## Third party Classification
|
|
- Name, description, headquarters, legal entity
|
|
- **Third party type**: SaaS, Infrastructure, Professional Services, Staffing
|
|
- **Privacy role**: Controller, Processor, Subprocessor, or None — with justification
|
|
- **Processes PII**: Yes/No
|
|
- **Cross-border transfers**: Yes/No — list countries if applicable
|
|
- **AI involvement**: Yes/No — list use cases if applicable
|
|
- Main website and key URLs discovered
|
|
|
|
## Market Presence
|
|
- Notable customers (logos, case studies, testimonials)
|
|
- Company size signals (employee count, funding, customer count)
|
|
- Market position and credibility indicators
|
|
|
|
## Security Posture
|
|
### SSL/TLS Configuration
|
|
### Security Headers
|
|
### Email Security (DMARC/SPF)
|
|
### Content Security Policy
|
|
### CORS Configuration
|
|
### DNSSEC
|
|
### Known Breaches
|
|
|
|
For each subsection, assign a rating: **Pass**, **Warning**, or **Fail**.
|
|
|
|
## Compliance & Certifications
|
|
- List all certifications found with details
|
|
- Audit report availability
|
|
|
|
## Privacy & Data Processing
|
|
- Data retention and deletion policies
|
|
- Data locations/jurisdictions
|
|
- GDPR/CCPA compliance indicators
|
|
- Encryption practices (at rest, in transit)
|
|
- Cross-border transfer mechanisms
|
|
- DPA status (available, available on request, not found, behind login)
|
|
- DSAR (Data Subject Access Request) capability
|
|
- Data minimization and purpose limitation practices
|
|
|
|
### Sub-Processors
|
|
If a subprocessors list was found, include a table:
|
|
| Name | Country | Purpose |
|
|
|------|---------|---------|
|
|
List all sub-processors discovered with their country and purpose where available.
|
|
|
|
## AI Governance (include when third party involves AI)
|
|
- AI usage disclosure and use cases
|
|
- Model transparency and explainability
|
|
- Bias detection and fairness measures
|
|
- Training data governance (is customer data used for training? opt-out available?)
|
|
- Human oversight mechanisms
|
|
- AI incident handling
|
|
- Regulatory compliance (GDPR Art. 22, EU AI Act awareness)
|
|
|
|
If the third party does not use AI, note: "Third party does not appear to use AI/ML in their product or service delivery."
|
|
|
|
## Document Analysis
|
|
### Privacy Policy
|
|
### Terms of Service
|
|
### Data Processing Agreement
|
|
(Include findings for each document analyzed)
|
|
|
|
### Privacy Contractual Clauses
|
|
- Data processing instructions and scope
|
|
- Subprocessor approval mechanism (prior written consent, objection-based, notification-only)
|
|
- Cross-border transfer safeguards (SCCs, BCRs, adequacy decisions)
|
|
- Breach notification timeline and obligations
|
|
- Data return and deletion on termination
|
|
- DSAR cooperation obligations
|
|
|
|
### AI Contractual Clauses (include when third party involves AI)
|
|
- Prohibition on using customer data for model training
|
|
- Transparency obligations about AI usage
|
|
- Audit rights for AI systems
|
|
- Automated decision-making restrictions
|
|
- Model update notification requirements
|
|
|
|
### General Contractual Terms
|
|
- Liability caps and limitations
|
|
- Indemnification obligations
|
|
- Termination provisions and data return
|
|
- Governing law and dispute resolution
|
|
|
|
## Incident Response & Business Continuity
|
|
### Incident Response
|
|
- IR plan documentation
|
|
- Breach notification timeline
|
|
- Communication procedures
|
|
- Incident history
|
|
|
|
### Business Continuity
|
|
- Disaster recovery (RTO/RPO)
|
|
- SLA/Uptime commitments
|
|
- Infrastructure redundancy
|
|
- Geographic distribution
|
|
|
|
## Professional Standing (include for professional services third parties)
|
|
### Licensing & Credentials
|
|
### Industry Memberships
|
|
### Professional Liability Insurance
|
|
### Team Qualifications
|
|
### Conflict of Interest Policy
|
|
|
|
## External Research
|
|
- Security incidents reported externally
|
|
- Regulatory actions
|
|
- Customer sentiment
|
|
- Recent news
|
|
- Professional disciplinary actions (if applicable)
|
|
- Red flags identified
|
|
|
|
## Risk Summary
|
|
| Category | Rating | Notes |
|
|
|----------|--------|-------|
|
|
| SSL/TLS | Pass/Warning/Fail | ... |
|
|
| Security Headers | Pass/Warning/Fail | ... |
|
|
| Email Security | Pass/Warning/Fail | ... |
|
|
| CSP | Pass/Warning/Fail | ... |
|
|
| CORS | Pass/Warning/Fail | ... |
|
|
| DNSSEC | Pass/Warning/Fail | ... |
|
|
| Breach History | Pass/Warning/Fail | ... |
|
|
| Compliance | Pass/Warning/Fail | ... |
|
|
| Privacy | Pass/Warning/Fail | ... |
|
|
| Market Presence | Strong/Moderate/Weak | ... |
|
|
| Data Processing | Strong/Adequate/Weak | ... |
|
|
| Incident Response | Strong/Adequate/Weak | ... |
|
|
| Business Continuity | Strong/Adequate/Weak | ... |
|
|
| Professional Standing | Strong/Adequate/Weak/N/A | ... |
|
|
| AI Governance | Strong/Adequate/Weak/N/A | ... |
|
|
|
|
## Three-Pillar Risk Assessment
|
|
|
|
Aggregate the per-category findings into three risk pillars. Score each from 0-100 (higher = lower risk).
|
|
|
|
### Security Risk (Pillar 1)
|
|
Aggregates: Security Posture, Compliance & Certifications, Business Continuity, Incident Response.
|
|
- **Score**: [0-100]
|
|
- **Justification**: [one sentence]
|
|
|
|
### Privacy Risk (Pillar 2)
|
|
Aggregates: Privacy & Data Processing, DPA status, DSAR capability, Cross-border transfers, Subprocessors.
|
|
- **Score**: [0-100]
|
|
- **Justification**: [one sentence]
|
|
|
|
### AI Risk (Pillar 3) — only when third party involves AI
|
|
Aggregates: AI governance, Model transparency, Bias controls, Human oversight, Training data governance.
|
|
- **Score**: [0-100] (or N/A if third party does not use AI)
|
|
- **Justification**: [one sentence]
|
|
|
|
## Minimum Acceptance Baseline
|
|
|
|
Evaluate these hard-reject criteria. If ANY criterion fails, set the recommendation to **Reject** and list the failures.
|
|
|
|
**Security baseline**:
|
|
- SSL certificate must be valid and not expired
|
|
- HTTPS must be enforced
|
|
- A recognized security certification (SOC 2, ISO 27001) must be present OR the third party must be a professional services firm where this is not standard
|
|
|
|
**Privacy baseline** (when third party processes PII):
|
|
- A privacy policy must be publicly available
|
|
- A DPA must be available or available on request
|
|
- DSAR handling capability must be documented
|
|
- No active unresolved data breaches
|
|
|
|
**AI baseline** (when third party involves AI):
|
|
- AI usage must be disclosed transparently
|
|
- Customer data must not be used for model training without clear opt-out
|
|
- Basic human oversight must exist for consequential decisions
|
|
|
|
List each criterion as **Met** or **Failed** with a brief note. Summarize whether the minimum baseline is met overall.
|
|
|
|
## Information Gaps & Recommended Actions
|
|
This section is REQUIRED even if the third party is well-documented. List what could not be verified:
|
|
- **Critical Gap**: [description] — **Action**: Request [specific document/evidence] from the third party
|
|
- **Notable Gap**: [description] — **Action**: [what to ask for]
|
|
- **Minor Gap**: [description] — **Action**: [optional follow-up]
|
|
|
|
At minimum, note what could not be independently verified and suggest what to request from the third party before finalizing the due diligence.
|
|
|
|
## Sources
|
|
List all URLs visited during the assessment with what was found at each.
|