@cloudstreamsoftware/claude-tools 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -37
- package/agents/INDEX.md +183 -0
- package/agents/architect.md +247 -0
- package/agents/build-error-resolver.md +555 -0
- package/agents/catalyst-deployer.md +132 -0
- package/agents/code-reviewer.md +121 -0
- package/agents/compliance-auditor.md +148 -0
- package/agents/creator-architect.md +395 -0
- package/agents/deluge-reviewer.md +98 -0
- package/agents/doc-updater.md +471 -0
- package/agents/e2e-runner.md +711 -0
- package/agents/planner.md +122 -0
- package/agents/refactor-cleaner.md +309 -0
- package/agents/security-reviewer.md +582 -0
- package/agents/tdd-guide.md +302 -0
- package/config/versions.json +63 -0
- package/dist/hooks/hooks.json +209 -0
- package/dist/index.js +47 -0
- package/dist/lib/asset-value.js +609 -0
- package/dist/lib/client-manager.js +300 -0
- package/dist/lib/command-matcher.js +242 -0
- package/dist/lib/cross-session-patterns.js +754 -0
- package/dist/lib/intent-classifier.js +1075 -0
- package/dist/lib/package-manager.js +374 -0
- package/dist/lib/recommendation-engine.js +597 -0
- package/dist/lib/session-memory.js +489 -0
- package/dist/lib/skill-effectiveness.js +486 -0
- package/dist/lib/skill-matcher.js +595 -0
- package/dist/lib/tutorial-metrics.js +242 -0
- package/dist/lib/tutorial-progress.js +209 -0
- package/dist/lib/tutorial-renderer.js +431 -0
- package/dist/lib/utils.js +380 -0
- package/dist/lib/verify-formatter.js +143 -0
- package/dist/lib/workflow-state.js +249 -0
- package/hooks/hooks.json +209 -0
- package/package.json +5 -1
- package/scripts/aggregate-sessions.js +290 -0
- package/scripts/branch-name-validator.js +291 -0
- package/scripts/build.js +101 -0
- package/scripts/commands/client-switch.js +231 -0
- package/scripts/deprecate-skill.js +610 -0
- package/scripts/diagnose.js +324 -0
- package/scripts/doc-freshness.js +168 -0
- package/scripts/generate-weekly-digest.js +393 -0
- package/scripts/health-check.js +270 -0
- package/scripts/hooks/credential-check.js +101 -0
- package/scripts/hooks/evaluate-session.js +81 -0
- package/scripts/hooks/pre-compact.js +66 -0
- package/scripts/hooks/prompt-analyzer.js +276 -0
- package/scripts/hooks/prompt-router.js +422 -0
- package/scripts/hooks/quality-gate-enforcer.js +371 -0
- package/scripts/hooks/session-end.js +156 -0
- package/scripts/hooks/session-start.js +195 -0
- package/scripts/hooks/skill-injector.js +333 -0
- package/scripts/hooks/suggest-compact.js +58 -0
- package/scripts/lib/asset-value.js +609 -0
- package/scripts/lib/client-manager.js +300 -0
- package/scripts/lib/command-matcher.js +242 -0
- package/scripts/lib/cross-session-patterns.js +754 -0
- package/scripts/lib/intent-classifier.js +1075 -0
- package/scripts/lib/package-manager.js +374 -0
- package/scripts/lib/recommendation-engine.js +597 -0
- package/scripts/lib/session-memory.js +489 -0
- package/scripts/lib/skill-effectiveness.js +486 -0
- package/scripts/lib/skill-matcher.js +595 -0
- package/scripts/lib/tutorial-metrics.js +242 -0
- package/scripts/lib/tutorial-progress.js +209 -0
- package/scripts/lib/tutorial-renderer.js +431 -0
- package/scripts/lib/utils.js +380 -0
- package/scripts/lib/verify-formatter.js +143 -0
- package/scripts/lib/workflow-state.js +249 -0
- package/scripts/onboard.js +363 -0
- package/scripts/quarterly-report.js +692 -0
- package/scripts/setup-package-manager.js +204 -0
- package/scripts/sync-upstream.js +391 -0
- package/scripts/test.js +108 -0
- package/scripts/tutorial-runner.js +351 -0
- package/scripts/validate-all.js +201 -0
- package/scripts/verifiers/agents.js +245 -0
- package/scripts/verifiers/config.js +186 -0
- package/scripts/verifiers/environment.js +123 -0
- package/scripts/verifiers/hooks.js +188 -0
- package/scripts/verifiers/index.js +38 -0
- package/scripts/verifiers/persistence.js +140 -0
- package/scripts/verifiers/plugin.js +215 -0
- package/scripts/verifiers/skills.js +209 -0
- package/scripts/verify-setup.js +164 -0
- package/skills/INDEX.md +157 -0
- package/skills/backend-patterns/SKILL.md +586 -0
- package/skills/backend-patterns/catalyst-patterns.md +128 -0
- package/skills/bigquery-patterns/SKILL.md +27 -0
- package/skills/bigquery-patterns/performance-optimization.md +518 -0
- package/skills/bigquery-patterns/query-patterns.md +372 -0
- package/skills/bigquery-patterns/schema-design.md +78 -0
- package/skills/cloudstream-project-template/SKILL.md +20 -0
- package/skills/cloudstream-project-template/structure.md +65 -0
- package/skills/coding-standards/SKILL.md +524 -0
- package/skills/coding-standards/deluge-standards.md +83 -0
- package/skills/compliance-patterns/SKILL.md +28 -0
- package/skills/compliance-patterns/hipaa/audit-requirements.md +251 -0
- package/skills/compliance-patterns/hipaa/baa-process.md +298 -0
- package/skills/compliance-patterns/hipaa/data-archival-strategy.md +387 -0
- package/skills/compliance-patterns/hipaa/phi-handling.md +52 -0
- package/skills/compliance-patterns/pci-dss/saq-a-requirements.md +307 -0
- package/skills/compliance-patterns/pci-dss/tokenization-patterns.md +382 -0
- package/skills/compliance-patterns/pci-dss/zoho-checkout-patterns.md +56 -0
- package/skills/compliance-patterns/soc2/access-controls.md +344 -0
- package/skills/compliance-patterns/soc2/audit-logging.md +458 -0
- package/skills/compliance-patterns/soc2/change-management.md +403 -0
- package/skills/compliance-patterns/soc2/deluge-execution-logging.md +407 -0
- package/skills/consultancy-workflows/SKILL.md +19 -0
- package/skills/consultancy-workflows/client-isolation.md +21 -0
- package/skills/consultancy-workflows/documentation-automation.md +454 -0
- package/skills/consultancy-workflows/handoff-procedures.md +257 -0
- package/skills/consultancy-workflows/knowledge-capture.md +513 -0
- package/skills/consultancy-workflows/time-tracking.md +26 -0
- package/skills/continuous-learning/SKILL.md +84 -0
- package/skills/continuous-learning/config.json +18 -0
- package/skills/continuous-learning/evaluate-session.sh +60 -0
- package/skills/continuous-learning-v2/SKILL.md +126 -0
- package/skills/continuous-learning-v2/config.json +61 -0
- package/skills/frontend-patterns/SKILL.md +635 -0
- package/skills/frontend-patterns/zoho-widget-patterns.md +103 -0
- package/skills/gcp-data-engineering/SKILL.md +36 -0
- package/skills/gcp-data-engineering/bigquery/performance-optimization.md +337 -0
- package/skills/gcp-data-engineering/dataflow/error-handling.md +496 -0
- package/skills/gcp-data-engineering/dataflow/pipeline-patterns.md +444 -0
- package/skills/gcp-data-engineering/dbt/model-organization.md +63 -0
- package/skills/gcp-data-engineering/dbt/testing-patterns.md +503 -0
- package/skills/gcp-data-engineering/medallion-architecture/bronze-layer.md +60 -0
- package/skills/gcp-data-engineering/medallion-architecture/gold-layer.md +311 -0
- package/skills/gcp-data-engineering/medallion-architecture/layer-transitions.md +517 -0
- package/skills/gcp-data-engineering/medallion-architecture/silver-layer.md +305 -0
- package/skills/gcp-data-engineering/zoho-to-gcp/data-extraction.md +543 -0
- package/skills/gcp-data-engineering/zoho-to-gcp/real-time-vs-batch.md +337 -0
- package/skills/security-review/SKILL.md +498 -0
- package/skills/security-review/compliance-checklist.md +53 -0
- package/skills/strategic-compact/SKILL.md +67 -0
- package/skills/tdd-workflow/SKILL.md +413 -0
- package/skills/tdd-workflow/zoho-testing.md +124 -0
- package/skills/tutorial/SKILL.md +249 -0
- package/skills/tutorial/docs/ACCESSIBILITY.md +169 -0
- package/skills/tutorial/lessons/00-philosophy-and-workflow.md +198 -0
- package/skills/tutorial/lessons/01-basics.md +81 -0
- package/skills/tutorial/lessons/02-training.md +86 -0
- package/skills/tutorial/lessons/03-commands.md +109 -0
- package/skills/tutorial/lessons/04-workflows.md +115 -0
- package/skills/tutorial/lessons/05-compliance.md +116 -0
- package/skills/tutorial/lessons/06-zoho.md +121 -0
- package/skills/tutorial/lessons/07-hooks-system.md +277 -0
- package/skills/tutorial/lessons/08-mcp-servers.md +316 -0
- package/skills/tutorial/lessons/09-client-management.md +215 -0
- package/skills/tutorial/lessons/10-testing-e2e.md +260 -0
- package/skills/tutorial/lessons/11-skills-deep-dive.md +272 -0
- package/skills/tutorial/lessons/12-rules-system.md +326 -0
- package/skills/tutorial/lessons/13-golden-standard-graduation.md +213 -0
- package/skills/tutorial/lessons/14-fork-setup-and-sync.md +312 -0
- package/skills/tutorial/lessons/15-living-examples-system.md +221 -0
- package/skills/tutorial/tracks/accelerated/README.md +134 -0
- package/skills/tutorial/tracks/accelerated/assessment/checkpoint-1.md +161 -0
- package/skills/tutorial/tracks/accelerated/assessment/checkpoint-2.md +175 -0
- package/skills/tutorial/tracks/accelerated/day-1-core-concepts.md +234 -0
- package/skills/tutorial/tracks/accelerated/day-2-essential-commands.md +270 -0
- package/skills/tutorial/tracks/accelerated/day-3-workflow-mastery.md +305 -0
- package/skills/tutorial/tracks/accelerated/day-4-compliance-zoho.md +304 -0
- package/skills/tutorial/tracks/accelerated/day-5-hooks-skills.md +344 -0
- package/skills/tutorial/tracks/accelerated/day-6-client-testing.md +386 -0
- package/skills/tutorial/tracks/accelerated/day-7-graduation.md +369 -0
- package/skills/zoho-patterns/CHANGELOG.md +108 -0
- package/skills/zoho-patterns/SKILL.md +446 -0
- package/skills/zoho-patterns/analytics/dashboard-patterns.md +352 -0
- package/skills/zoho-patterns/analytics/zoho-to-bigquery-pipeline.md +427 -0
- package/skills/zoho-patterns/catalyst/appsail-deployment.md +349 -0
- package/skills/zoho-patterns/catalyst/context-close-patterns.md +354 -0
- package/skills/zoho-patterns/catalyst/cron-batch-processing.md +374 -0
- package/skills/zoho-patterns/catalyst/function-patterns.md +439 -0
- package/skills/zoho-patterns/creator/form-design.md +304 -0
- package/skills/zoho-patterns/creator/publish-api-patterns.md +313 -0
- package/skills/zoho-patterns/creator/widget-integration.md +306 -0
- package/skills/zoho-patterns/creator/workflow-automation.md +253 -0
- package/skills/zoho-patterns/deluge/api-patterns.md +468 -0
- package/skills/zoho-patterns/deluge/batch-processing.md +403 -0
- package/skills/zoho-patterns/deluge/cross-app-integration.md +356 -0
- package/skills/zoho-patterns/deluge/error-handling.md +423 -0
- package/skills/zoho-patterns/deluge/syntax-reference.md +65 -0
- package/skills/zoho-patterns/integration/cors-proxy-architecture.md +426 -0
- package/skills/zoho-patterns/integration/crm-books-native-sync.md +277 -0
- package/skills/zoho-patterns/integration/oauth-token-management.md +461 -0
- package/skills/zoho-patterns/integration/zoho-flow-patterns.md +334 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# HIPAA Audit Requirements
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
HIPAA requires covered entities and business associates to maintain audit trails for a minimum of **6 years**. Zoho Creator only retains audit data for **1 year**. This gap is the single most critical compliance risk in our Zoho-based healthcare implementations.
|
|
6
|
+
|
|
7
|
+
> **WARNING**: Failure to maintain 6-year audit trails can result in OCR penalties up to $1.5M per violation category per year. This is non-negotiable for any client handling ePHI.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## The 6-Year Retention Requirement vs. Creator's 1-Year Limitation
|
|
12
|
+
|
|
13
|
+
| Requirement | HIPAA Mandate | Zoho Creator Native | Gap |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| Audit log retention | 6 years from creation or last effective date | 1 year (auto-deleted) | 5 years |
|
|
16
|
+
| Access logs | All ePHI access events | Basic form-level audit | Field-level detail missing |
|
|
17
|
+
| Export tracking | Who exported what, when | Not natively logged | Must custom-build |
|
|
18
|
+
| Share tracking | Record sharing events | Partial (share actions) | Must supplement |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## What Constitutes an Adequate Audit Trail
|
|
23
|
+
|
|
24
|
+
Every audit entry MUST capture the **5 Ws**:
|
|
25
|
+
|
|
26
|
+
1. **WHO** - User ID, role, IP address, session identifier
|
|
27
|
+
2. **WHAT** - Action performed, fields affected, before/after values
|
|
28
|
+
3. **WHEN** - Timestamp in UTC (ISO 8601 format)
|
|
29
|
+
4. **WHERE** - Application, form, record ID, network location
|
|
30
|
+
5. **WHY** - Business justification (for break-glass access scenarios)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Minimum Logged Events
|
|
35
|
+
|
|
36
|
+
The following events MUST be captured for any form containing ePHI:
|
|
37
|
+
|
|
38
|
+
| Event Category | Specific Actions | Priority |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| **Access** | View record, view report, API read | Critical |
|
|
41
|
+
| **Create** | New record, record duplication | Critical |
|
|
42
|
+
| **Update** | Field modification (before/after values) | Critical |
|
|
43
|
+
| **Delete** | Record deletion, bulk deletion | Critical |
|
|
44
|
+
| **Export** | CSV export, PDF generation, API bulk read | Critical |
|
|
45
|
+
| **Share** | Record sharing, permission changes | Critical |
|
|
46
|
+
| **Auth** | Login, logout, failed login, MFA events | High |
|
|
47
|
+
| **Admin** | Form schema changes, workflow modifications | High |
|
|
48
|
+
| **Print** | Any print action on ePHI-containing views | Medium |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Audit Log Schema Design
|
|
53
|
+
|
|
54
|
+
### Creator Audit Form Structure
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Form: HIPAA_Audit_Log
|
|
58
|
+
Fields:
|
|
59
|
+
- Audit_ID (Auto-number, primary key)
|
|
60
|
+
- Timestamp (DateTime, UTC)
|
|
61
|
+
- User_Email (Email)
|
|
62
|
+
- User_Role (Single Line)
|
|
63
|
+
- IP_Address (Single Line)
|
|
64
|
+
- Session_ID (Single Line)
|
|
65
|
+
- Action_Type (Picklist: Access/Create/Update/Delete/Export/Share/Auth/Admin)
|
|
66
|
+
- Form_Name (Single Line)
|
|
67
|
+
- Record_ID (Number)
|
|
68
|
+
- Field_Name (Single Line, nullable)
|
|
69
|
+
- Old_Value (Multi Line, encrypted)
|
|
70
|
+
- New_Value (Multi Line, encrypted)
|
|
71
|
+
- Justification (Multi Line, nullable)
|
|
72
|
+
- Client_ID (Lookup to Clients form)
|
|
73
|
+
- Archived (Checkbox, default: false)
|
|
74
|
+
- Archive_Batch_ID (Single Line, nullable)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### BigQuery Long-Term Storage Schema
|
|
78
|
+
|
|
79
|
+
```sql
|
|
80
|
+
CREATE TABLE `project.dataset.hipaa_audit_logs` (
|
|
81
|
+
audit_id STRING NOT NULL,
|
|
82
|
+
timestamp TIMESTAMP NOT NULL,
|
|
83
|
+
user_email STRING NOT NULL,
|
|
84
|
+
user_role STRING,
|
|
85
|
+
ip_address STRING,
|
|
86
|
+
session_id STRING,
|
|
87
|
+
action_type STRING NOT NULL,
|
|
88
|
+
form_name STRING NOT NULL,
|
|
89
|
+
record_id INT64,
|
|
90
|
+
field_name STRING,
|
|
91
|
+
old_value STRING, -- Encrypted at application layer
|
|
92
|
+
new_value STRING, -- Encrypted at application layer
|
|
93
|
+
justification STRING,
|
|
94
|
+
client_id STRING NOT NULL,
|
|
95
|
+
source_org STRING NOT NULL,
|
|
96
|
+
archive_date TIMESTAMP NOT NULL,
|
|
97
|
+
archive_batch_id STRING NOT NULL
|
|
98
|
+
)
|
|
99
|
+
PARTITION BY DATE(timestamp)
|
|
100
|
+
CLUSTER BY client_id, action_type;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## BigQuery as Long-Term Audit Storage
|
|
106
|
+
|
|
107
|
+
### Why BigQuery
|
|
108
|
+
|
|
109
|
+
- **Cost**: $0.02/GB/month for long-term storage (after 90 days untouched)
|
|
110
|
+
- **Durability**: 99.999999999% (11 nines)
|
|
111
|
+
- **Query**: Full SQL for audit investigations
|
|
112
|
+
- **Encryption**: AES-256 at rest by default, CMEK available
|
|
113
|
+
- **Access Controls**: IAM-based, fully auditable
|
|
114
|
+
- **Retention Policies**: Configurable, prevents accidental deletion
|
|
115
|
+
|
|
116
|
+
### Cost Estimation Per Client
|
|
117
|
+
|
|
118
|
+
| Records/Month | Estimated Size | Monthly Cost (Long-term) | 6-Year Cost |
|
|
119
|
+
|---|---|---|---|
|
|
120
|
+
| 10,000 | ~5 MB | $0.0001 | $0.007 |
|
|
121
|
+
| 100,000 | ~50 MB | $0.001 | $0.07 |
|
|
122
|
+
| 1,000,000 | ~500 MB | $0.01 | $0.72 |
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Automated Archival Before 1-Year Auto-Delete
|
|
127
|
+
|
|
128
|
+
> **WARNING**: Creator auto-deletes audit data at 12 months. Archival MUST run monthly with buffer. Set the archival window to 10 months maximum to allow for failure recovery.
|
|
129
|
+
|
|
130
|
+
See `hipaa/data-archival-strategy.md` for the complete automated archival implementation.
|
|
131
|
+
|
|
132
|
+
### Archival Schedule
|
|
133
|
+
|
|
134
|
+
- **Monthly**: Export previous month's audit logs to BigQuery
|
|
135
|
+
- **Weekly**: Verify last archival completed successfully
|
|
136
|
+
- **Daily**: Alert if archival job has not run in 35 days
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Quarterly Audit Review Process
|
|
141
|
+
|
|
142
|
+
### Q1/Q2/Q3/Q4 Review Checklist
|
|
143
|
+
|
|
144
|
+
- [ ] Verify all archival jobs completed for the quarter
|
|
145
|
+
- [ ] Run completeness check (Creator count vs BigQuery count)
|
|
146
|
+
- [ ] Review access patterns for anomalies
|
|
147
|
+
- [ ] Confirm no gaps in audit trail coverage
|
|
148
|
+
- [ ] Validate encryption of sensitive field values
|
|
149
|
+
- [ ] Test restore procedure from BigQuery backup
|
|
150
|
+
- [ ] Update audit scope if new forms added
|
|
151
|
+
- [ ] Document review findings in compliance folder
|
|
152
|
+
|
|
153
|
+
### Anomaly Detection Queries
|
|
154
|
+
|
|
155
|
+
```sql
|
|
156
|
+
-- Detect unusual access patterns
|
|
157
|
+
SELECT user_email, COUNT(*) as access_count,
|
|
158
|
+
DATE(timestamp) as access_date
|
|
159
|
+
FROM `project.dataset.hipaa_audit_logs`
|
|
160
|
+
WHERE action_type = 'Access'
|
|
161
|
+
AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)
|
|
162
|
+
GROUP BY user_email, DATE(timestamp)
|
|
163
|
+
HAVING access_count > 100
|
|
164
|
+
ORDER BY access_count DESC;
|
|
165
|
+
|
|
166
|
+
-- Detect after-hours access
|
|
167
|
+
SELECT user_email, timestamp, action_type, form_name
|
|
168
|
+
FROM `project.dataset.hipaa_audit_logs`
|
|
169
|
+
WHERE EXTRACT(HOUR FROM timestamp) NOT BETWEEN 7 AND 19
|
|
170
|
+
AND action_type IN ('Access', 'Export', 'Delete')
|
|
171
|
+
ORDER BY timestamp DESC
|
|
172
|
+
LIMIT 100;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Responding to Audit Requests
|
|
178
|
+
|
|
179
|
+
### OCR (Office for Civil Rights) Audit Response
|
|
180
|
+
|
|
181
|
+
1. **Acknowledge** receipt within 24 hours
|
|
182
|
+
2. **Scope** the request - identify date ranges and data types requested
|
|
183
|
+
3. **Query** BigQuery for the relevant audit records
|
|
184
|
+
4. **Format** results per OCR specifications (typically CSV or structured report)
|
|
185
|
+
5. **Review** with client legal counsel before submission
|
|
186
|
+
6. **Submit** within the timeframe specified (typically 30 days)
|
|
187
|
+
7. **Document** the entire response process
|
|
188
|
+
|
|
189
|
+
### Internal Audit Response Template
|
|
190
|
+
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"audit_request_id": "AR-2025-001",
|
|
194
|
+
"requested_by": "auditor@client.com",
|
|
195
|
+
"date_range": {"start": "2024-01-01", "end": "2024-12-31"},
|
|
196
|
+
"scope": "All ePHI access events for Patient Records form",
|
|
197
|
+
"records_returned": 45230,
|
|
198
|
+
"export_format": "CSV",
|
|
199
|
+
"delivered_date": "2025-02-15",
|
|
200
|
+
"delivered_to": "auditor@client.com",
|
|
201
|
+
"delivery_method": "Encrypted file transfer",
|
|
202
|
+
"reviewed_by": "compliance@cloudstreamsoftware.com"
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## OCR Breach Notification Requirements
|
|
209
|
+
|
|
210
|
+
> **WARNING**: Breach notification must be provided to affected individuals within **60 days** of discovery. HHS notification is required for breaches affecting 500+ individuals.
|
|
211
|
+
|
|
212
|
+
### Breach Response Timeline
|
|
213
|
+
|
|
214
|
+
| Day | Action |
|
|
215
|
+
|---|---|
|
|
216
|
+
| Day 0 | Breach discovered - begin investigation |
|
|
217
|
+
| Day 1-3 | Assess scope using audit logs |
|
|
218
|
+
| Day 3-7 | Determine if notification is required |
|
|
219
|
+
| Day 7-14 | Prepare notification content |
|
|
220
|
+
| Day 14-30 | Begin individual notifications |
|
|
221
|
+
| Day 60 | **DEADLINE**: All individual notifications complete |
|
|
222
|
+
| Day 60 | Submit to HHS if 500+ individuals affected |
|
|
223
|
+
| Annual | Breaches affecting <500 reported to HHS annually |
|
|
224
|
+
|
|
225
|
+
### Audit Log Queries for Breach Investigation
|
|
226
|
+
|
|
227
|
+
```sql
|
|
228
|
+
-- Identify all records accessed during breach window
|
|
229
|
+
SELECT DISTINCT record_id, form_name, user_email,
|
|
230
|
+
MIN(timestamp) as first_access, MAX(timestamp) as last_access
|
|
231
|
+
FROM `project.dataset.hipaa_audit_logs`
|
|
232
|
+
WHERE timestamp BETWEEN @breach_start AND @breach_end
|
|
233
|
+
AND (user_email = @compromised_user OR ip_address = @suspicious_ip)
|
|
234
|
+
GROUP BY record_id, form_name, user_email
|
|
235
|
+
ORDER BY first_access;
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Implementation Checklist for New Healthcare Clients
|
|
241
|
+
|
|
242
|
+
- [ ] Identify all forms containing ePHI
|
|
243
|
+
- [ ] Deploy audit logging Deluge functions on all identified forms
|
|
244
|
+
- [ ] Configure BigQuery dataset with retention policy
|
|
245
|
+
- [ ] Set up monthly archival via Catalyst Cron
|
|
246
|
+
- [ ] Configure alerting for archival failures
|
|
247
|
+
- [ ] Document audit scope in client compliance folder
|
|
248
|
+
- [ ] Schedule quarterly review calendar events
|
|
249
|
+
- [ ] Verify BAA coverage for all tools in data flow
|
|
250
|
+
- [ ] Test audit trail completeness with sample transactions
|
|
251
|
+
- [ ] Obtain client sign-off on audit configuration
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# HIPAA Business Associate Agreement (BAA) Process
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
A Business Associate Agreement (BAA) is a legally binding contract required by HIPAA between a covered entity (the healthcare client) and any business associate (CloudStream, Zoho, GCP, etc.) that creates, receives, maintains, or transmits electronic Protected Health Information (ePHI) on behalf of the covered entity.
|
|
6
|
+
|
|
7
|
+
> **WARNING**: Handling ePHI without a valid BAA in place is a HIPAA violation regardless of whether a breach occurs. Penalties range from $100 to $50,000 per violation, up to $1.5M per year per violation category.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When You Need a BAA
|
|
12
|
+
|
|
13
|
+
A BAA is required whenever ANY of the following are true:
|
|
14
|
+
|
|
15
|
+
| Scenario | BAA Required? | Example |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| Storing ePHI in a platform | YES | Patient records in Zoho Creator |
|
|
18
|
+
| Processing ePHI through a service | YES | Sending appointment reminders via Zoho Mail |
|
|
19
|
+
| Transmitting ePHI between systems | YES | API integration between Creator and GCP |
|
|
20
|
+
| Hosting ePHI in infrastructure | YES | GCP Cloud Functions processing patient data |
|
|
21
|
+
| Accessing ePHI for support/maintenance | YES | CloudStream staff accessing client Creator org |
|
|
22
|
+
| Storing de-identified data only | NO | Aggregate analytics with no individual identifiers |
|
|
23
|
+
| Marketing site with no data collection | NO | Static website with no forms collecting health info |
|
|
24
|
+
|
|
25
|
+
### The BAA Chain
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Healthcare Client (Covered Entity)
|
|
29
|
+
|
|
|
30
|
+
+-- BAA --> CloudStream Software LLC (Business Associate)
|
|
31
|
+
| |
|
|
32
|
+
| +-- BAA --> Zoho Corporation (Subcontractor BA)
|
|
33
|
+
| |
|
|
34
|
+
| +-- BAA --> Google Cloud Platform (Subcontractor BA)
|
|
35
|
+
| |
|
|
36
|
+
| +-- BAA --> Any MCP/Third-party tool (Subcontractor BA)
|
|
37
|
+
|
|
|
38
|
+
+-- BAA --> Other vendors with ePHI access
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
> **WARNING**: Every link in the chain MUST have a BAA. If ANY vendor in the data flow lacks a BAA, the entire implementation is non-compliant.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Zoho BAA Request Process
|
|
46
|
+
|
|
47
|
+
### Prerequisites
|
|
48
|
+
|
|
49
|
+
1. Active Zoho One subscription (paid plan required)
|
|
50
|
+
2. Organization Admin access
|
|
51
|
+
3. Zoho Org ID (found in Admin Panel → Organization)
|
|
52
|
+
|
|
53
|
+
### Step-by-Step Process
|
|
54
|
+
|
|
55
|
+
1. **Compose email** to `legal@zohocorp.com`
|
|
56
|
+
2. **Subject line**: `BAA Request - [Organization Name] - Org ID: [YOUR_ORG_ID]`
|
|
57
|
+
3. **Include in body**:
|
|
58
|
+
- Organization name and Org ID
|
|
59
|
+
- Primary contact name, title, email, phone
|
|
60
|
+
- List of Zoho services that will handle ePHI
|
|
61
|
+
- Brief description of use case
|
|
62
|
+
- Requested effective date
|
|
63
|
+
|
|
64
|
+
### Email Template
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
To: legal@zohocorp.com
|
|
68
|
+
Subject: BAA Request - [Client Name] - Org ID: [ORG_ID]
|
|
69
|
+
|
|
70
|
+
Dear Zoho Legal Team,
|
|
71
|
+
|
|
72
|
+
We are requesting a Business Associate Agreement for the following organization:
|
|
73
|
+
|
|
74
|
+
Organization: [Client Legal Name]
|
|
75
|
+
Org ID: [ORG_ID]
|
|
76
|
+
Subscription: Zoho One [Enterprise/Professional]
|
|
77
|
+
Primary Contact: [Name, Title]
|
|
78
|
+
Email: [email]
|
|
79
|
+
Phone: [phone]
|
|
80
|
+
|
|
81
|
+
Zoho services that will process ePHI:
|
|
82
|
+
- Zoho Creator (patient records, appointment scheduling)
|
|
83
|
+
- Zoho CRM (patient contact information)
|
|
84
|
+
- Zoho Mail (patient communications)
|
|
85
|
+
- [Other applicable services]
|
|
86
|
+
|
|
87
|
+
Use Case: [Brief 2-3 sentence description]
|
|
88
|
+
|
|
89
|
+
Requested Effective Date: [Date]
|
|
90
|
+
|
|
91
|
+
Please send the BAA for review and signature.
|
|
92
|
+
|
|
93
|
+
Thank you,
|
|
94
|
+
[Your Name]
|
|
95
|
+
CloudStream Software LLC
|
|
96
|
+
[Contact info]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Expected Timeline
|
|
100
|
+
|
|
101
|
+
| Step | Duration |
|
|
102
|
+
|---|---|
|
|
103
|
+
| Initial response from Zoho Legal | 3-5 business days |
|
|
104
|
+
| BAA document provided for review | 5-10 business days |
|
|
105
|
+
| Review and negotiation (if needed) | 5-15 business days |
|
|
106
|
+
| Final signature and execution | 3-5 business days |
|
|
107
|
+
| **Total typical timeline** | **2-5 weeks** |
|
|
108
|
+
|
|
109
|
+
> **WARNING**: Start the BAA process BEFORE beginning any ePHI-related development work. Never assume the BAA will be approved. Factor this timeline into project planning.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## GCP BAA Process
|
|
114
|
+
|
|
115
|
+
### Prerequisites
|
|
116
|
+
|
|
117
|
+
1. Active GCP billing account
|
|
118
|
+
2. Organization-level access
|
|
119
|
+
3. GCP Organization ID
|
|
120
|
+
|
|
121
|
+
### Step-by-Step Process
|
|
122
|
+
|
|
123
|
+
1. Navigate to **Google Cloud Console**
|
|
124
|
+
2. Go to **Settings** (Organization level)
|
|
125
|
+
3. Select **HIPAA compliance** section
|
|
126
|
+
4. Review the Google Cloud BAA
|
|
127
|
+
5. Accept the BAA terms
|
|
128
|
+
6. BAA takes effect **immediately** upon acceptance
|
|
129
|
+
|
|
130
|
+
### GCP BAA-Covered Services
|
|
131
|
+
|
|
132
|
+
Not all GCP services are covered under the BAA. Verify each service at:
|
|
133
|
+
https://cloud.google.com/security/compliance/hipaa-covered
|
|
134
|
+
|
|
135
|
+
Key covered services for CloudStream implementations:
|
|
136
|
+
|
|
137
|
+
| Service | Covered | Common Use |
|
|
138
|
+
|---|---|---|
|
|
139
|
+
| BigQuery | YES | Long-term audit log storage |
|
|
140
|
+
| Cloud Functions | YES | Catalyst-equivalent serverless |
|
|
141
|
+
| Cloud Storage | YES | File/document storage |
|
|
142
|
+
| Cloud SQL | YES | Relational database |
|
|
143
|
+
| Pub/Sub | YES | Event messaging |
|
|
144
|
+
| Cloud Run | YES | Container workloads |
|
|
145
|
+
| Firebase Authentication | YES | User auth |
|
|
146
|
+
| Cloud KMS | YES | Key management |
|
|
147
|
+
| Compute Engine | YES | VM workloads |
|
|
148
|
+
|
|
149
|
+
> **WARNING**: Verify current coverage list before using ANY GCP service for ePHI. Google updates the covered services list periodically.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Subcontractor BAA Chain Management
|
|
154
|
+
|
|
155
|
+
### For Every Third-Party Tool/MCP in the Stack
|
|
156
|
+
|
|
157
|
+
Before integrating ANY third-party service that will touch ePHI:
|
|
158
|
+
|
|
159
|
+
1. **Determine** if the service will access, process, store, or transmit ePHI
|
|
160
|
+
2. **Request** BAA from the vendor
|
|
161
|
+
3. **Review** BAA terms with client legal counsel
|
|
162
|
+
4. **Execute** BAA before any ePHI flows through the service
|
|
163
|
+
5. **Document** in the BAA inventory
|
|
164
|
+
|
|
165
|
+
### Common Third-Party BAA Status
|
|
166
|
+
|
|
167
|
+
| Vendor | BAA Available | Process |
|
|
168
|
+
|---|---|---|
|
|
169
|
+
| Zoho Corporation | YES | Email legal@zohocorp.com |
|
|
170
|
+
| Google Cloud Platform | YES | Console self-service |
|
|
171
|
+
| Twilio (SMS) | YES | Enterprise plan required |
|
|
172
|
+
| SendGrid (Email) | YES | Contact sales |
|
|
173
|
+
| Stripe (Payments) | NO - not needed | Does not handle ePHI |
|
|
174
|
+
| GitHub | YES | Enterprise plan, contact sales |
|
|
175
|
+
| Custom MCP servers | DEPENDS | Must evaluate per server |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## BAA Inventory Tracking
|
|
180
|
+
|
|
181
|
+
Maintain a BAA inventory for each healthcare client:
|
|
182
|
+
|
|
183
|
+
### BAA Inventory Template
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"client": "Example Healthcare Corp",
|
|
188
|
+
"client_id": "CLT-001",
|
|
189
|
+
"covered_entity_type": "Healthcare Provider",
|
|
190
|
+
"inventory_last_reviewed": "2025-01-15",
|
|
191
|
+
"agreements": [
|
|
192
|
+
{
|
|
193
|
+
"vendor": "CloudStream Software LLC",
|
|
194
|
+
"baa_type": "Business Associate Agreement",
|
|
195
|
+
"effective_date": "2024-03-01",
|
|
196
|
+
"expiration": "None - terminates with service agreement",
|
|
197
|
+
"signed_by_client": "Jane Smith, CEO",
|
|
198
|
+
"signed_by_vendor": "CloudStream authorized signatory",
|
|
199
|
+
"document_location": "client-folder/legal/baa-cloudstream-signed.pdf",
|
|
200
|
+
"services_covered": ["Zoho Creator development", "GCP integration", "ongoing support"],
|
|
201
|
+
"annual_review_due": "2025-03-01",
|
|
202
|
+
"status": "Active"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"vendor": "Zoho Corporation",
|
|
206
|
+
"baa_type": "Subcontractor BAA",
|
|
207
|
+
"effective_date": "2024-03-15",
|
|
208
|
+
"expiration": "Co-terminus with Zoho subscription",
|
|
209
|
+
"document_location": "client-folder/legal/baa-zoho-signed.pdf",
|
|
210
|
+
"services_covered": ["Zoho Creator", "Zoho CRM", "Zoho Mail"],
|
|
211
|
+
"annual_review_due": "2025-03-15",
|
|
212
|
+
"status": "Active"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"vendor": "Google Cloud Platform",
|
|
216
|
+
"baa_type": "Subcontractor BAA",
|
|
217
|
+
"effective_date": "2024-04-01",
|
|
218
|
+
"accepted_date": "2024-04-01",
|
|
219
|
+
"document_location": "GCP Console - Organization Settings",
|
|
220
|
+
"services_covered": ["BigQuery", "Cloud Functions", "Cloud Storage"],
|
|
221
|
+
"annual_review_due": "2025-04-01",
|
|
222
|
+
"status": "Active"
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Annual BAA Review Process
|
|
231
|
+
|
|
232
|
+
### Review Checklist (Perform Annually for Each BAA)
|
|
233
|
+
|
|
234
|
+
- [ ] Verify BAA is still in effect (not expired or terminated)
|
|
235
|
+
- [ ] Confirm vendor still offers BAA-covered services
|
|
236
|
+
- [ ] Review if scope of ePHI handling has changed
|
|
237
|
+
- [ ] Check for new services added that need BAA coverage
|
|
238
|
+
- [ ] Verify vendor has not had material breaches
|
|
239
|
+
- [ ] Update inventory with current status
|
|
240
|
+
- [ ] Confirm client awareness of all active BAAs
|
|
241
|
+
- [ ] Document review completion and findings
|
|
242
|
+
|
|
243
|
+
### Annual Review Calendar
|
|
244
|
+
|
|
245
|
+
Schedule annual reviews 30 days before BAA anniversary date. Create recurring calendar events for each client BAA set.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## What To Do If a BAA Is Denied
|
|
250
|
+
|
|
251
|
+
If a vendor refuses to sign a BAA:
|
|
252
|
+
|
|
253
|
+
1. **STOP** - Do not proceed with ePHI integration for that vendor
|
|
254
|
+
2. **Document** the denial (save email/communication)
|
|
255
|
+
3. **Evaluate alternatives**:
|
|
256
|
+
- Find a BAA-willing alternative vendor
|
|
257
|
+
- Restructure architecture to avoid ePHI in that service
|
|
258
|
+
- De-identify data before it reaches that service (per HIPAA Safe Harbor method)
|
|
259
|
+
4. **Inform the client** of the limitation and alternatives
|
|
260
|
+
5. **Update** the architecture documentation to reflect the constraint
|
|
261
|
+
|
|
262
|
+
> **WARNING**: "The vendor said it was fine" is NOT a substitute for a signed BAA. Verbal assurances have zero legal standing under HIPAA.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## BAA Requirements by Tool in the CloudStream Stack
|
|
267
|
+
|
|
268
|
+
| Tool | ePHI Contact | BAA Required | How to Obtain |
|
|
269
|
+
|---|---|---|---|
|
|
270
|
+
| Zoho Creator | Direct (forms/data) | YES | legal@zohocorp.com |
|
|
271
|
+
| Zoho CRM | Direct (contacts) | YES | Same as above |
|
|
272
|
+
| Zoho Flow | Transit (workflows) | YES | Same as above |
|
|
273
|
+
| Zoho Analytics | Direct (reports) | YES | Same as above |
|
|
274
|
+
| Zoho Catalyst | Direct (processing) | YES | Same as above |
|
|
275
|
+
| Zoho Mail | Direct (communications) | YES | Same as above |
|
|
276
|
+
| GCP BigQuery | Direct (audit storage) | YES | Console self-service |
|
|
277
|
+
| GCP Cloud Functions | Transit (processing) | YES | Same GCP BAA |
|
|
278
|
+
| GCP Cloud Storage | Direct (file storage) | YES | Same GCP BAA |
|
|
279
|
+
| Claude/AI tools | NEVER | N/A | Never send ePHI to AI |
|
|
280
|
+
| GitHub | Code only (no ePHI) | NO | No ePHI in code repos |
|
|
281
|
+
| Custom MCPs | Evaluate per use | MAYBE | Contact vendor |
|
|
282
|
+
|
|
283
|
+
> **WARNING**: NEVER send ePHI to AI/LLM services (Claude, GPT, etc.). These services are NOT BAA-eligible for ePHI processing. Use only de-identified or synthetic data for AI-assisted development.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## CloudStream Internal BAA Obligations
|
|
288
|
+
|
|
289
|
+
As a Business Associate, CloudStream MUST:
|
|
290
|
+
|
|
291
|
+
1. Use ePHI only as permitted by the BAA
|
|
292
|
+
2. Implement appropriate safeguards (administrative, physical, technical)
|
|
293
|
+
3. Report breaches to the covered entity within contractual timeframe
|
|
294
|
+
4. Ensure subcontractors agree to the same restrictions
|
|
295
|
+
5. Make ePHI available to individuals upon request (if applicable)
|
|
296
|
+
6. Make internal practices available to HHS for compliance audits
|
|
297
|
+
7. Return or destroy ePHI upon contract termination
|
|
298
|
+
8. Maintain documentation of compliance activities for 6 years
|