filegrc 0.1.0 → 0.2.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 +19 -1
- package/model/v1.json +159 -165
- package/package.json +1 -1
- package/src/agent.js +4 -0
- package/src/audit-preparation.js +217 -116
- package/src/cli.js +264 -7
- package/src/evidence-packet.js +72 -19
- package/src/evidence-tests.js +69 -0
- package/src/git.js +1 -0
- package/src/index.js +11 -0
- package/src/model-docs.js +51 -6
- package/src/obligations.js +87 -11
- package/src/program-lifecycle.js +22 -0
- package/src/program-path.js +275 -0
- package/src/program-readiness.js +635 -0
- package/src/resource-markdown.js +11 -4
- package/src/server.js +8 -0
- package/src/setup.js +187 -0
- package/src/state.js +8 -1
- package/src/validate.js +67 -5
- package/src/web.js +757 -428
package/model/v1.json
CHANGED
|
@@ -25,20 +25,24 @@
|
|
|
25
25
|
{"kind":"training-acknowledgements","title":"Training and Policy Acknowledgements","sourcePrompt":"Training, signature, and workforce sources","sourceKind":"training-acknowledgement","timing":"Export after the period closes and reconcile assignments, completions, acknowledgements, exceptions, and overdue work to the workforce population.","controlCodes":["GOV-03","HR-01","HR-02"]},
|
|
26
26
|
{"kind":"backup-recovery","title":"Backup Failures and Restoration Tests","sourcePrompt":"Backup, recovery, and monitoring sources","sourceKind":"backup-recovery","timing":"Export after the period closes and include scheduled jobs, failures, restorations, exercises, and follow-up work.","controlCodes":["BCP-01","BCP-02"]},
|
|
27
27
|
{"kind":"exceptions-findings","title":"Security Exceptions and Control Findings","sourcePrompt":"Exception, finding, ticketing, and risk sources","sourceKind":"exception-finding","timing":"Export after the period closes and reconcile open, closed, accepted, overdue, and remediated items.","controlCodes":["MON-01","EXC-01"]}
|
|
28
|
-
],
|
|
29
|
-
"externalEvidence": [
|
|
30
|
-
{"id":"workforce","title":"Workforce","sourceKinds":["workforce"],"controlCodes":["HR-01","HR-03","IAM-03"],"description":"Catalog the HR or workforce system that is authoritative for starts, role changes, and departures. Bring the complete workforce-change population and source reports used to reconcile access and responsibilities.","timing":"Identify the source during scoping. Preserve event records as changes occur and export the complete Type 2 population after the period closes."},
|
|
31
|
-
{"id":"training-acknowledgement","title":"Training and Acknowledgements","sourceKinds":["training-acknowledgement"],"controlCodes":["GOV-03","HR-01","HR-02"],"description":"Catalog training, signature, and acknowledgement systems. Bring assignments, content revisions, completion records, signatures, exceptions, and overdue follow-up.","timing":"Identify sources before assignments begin. Preserve signatures and completion proof as work occurs, then reconcile the complete Type 2 population to the workforce population after close."},
|
|
32
|
-
{"id":"identity-access","title":"Identity and Access","sourceKinds":["identity-access"],"controlCodes":["IAM-01","IAM-02","IAM-03"],"description":"Catalog the identity provider and each important application that enforces access. Bring identity, role, privileged-access, authentication-setting, review, and removal exports.","timing":"Identify sources during scoping. Capture configuration near the Type 1 date or at the start and end of a Type 2 period; export complete change and review populations after the Type 2 period closes."},
|
|
33
|
-
{"id":"production-change","title":"Production and Change","sourceKinds":["production-change"],"controlCodes":["CHG-01"],"description":"Catalog source control, deployment, and infrastructure-change systems. Bring protection settings, reviews, test and approval records, deployments, emergency changes, and rollback evidence.","timing":"Identify sources before the audit period. Preserve per-change evidence as changes occur and export the complete period population after a Type 2 period closes."},
|
|
34
|
-
{"id":"security-monitoring","title":"Monitoring and Incidents","sourceKinds":["security-monitoring"],"controlCodes":["LOG-01","IR-01","IR-02"],"description":"Catalog logging, alerting, incident, and case-management systems. Bring configuration, coverage, alert delivery tests, alerts, investigations, incidents, recovery work, and zero-event proof.","timing":"Capture configuration and coverage at the Type 1 date or across the Type 2 period. Preserve cases as they occur and export complete alert and incident populations after close."},
|
|
35
|
-
{"id":"vulnerability-management","title":"Vulnerability Management","sourceKinds":["vulnerability-management"],"controlCodes":["VUL-01","PEN-01"],"description":"Catalog vulnerability, dependency, scanning, penetration-test, and remediation systems. Bring scope and configuration, scan results, findings, tickets, exceptions, retests, and independent reports.","timing":"Confirm coverage before the audit period. Preserve scan and remediation evidence when generated and export the complete Type 2 population after close."},
|
|
36
|
-
{"id":"endpoint-asset","title":"Endpoints and Assets","sourceKinds":["endpoint-asset"],"controlCodes":["PHY-01","OPS-01","OPS-02","DATA-01"],"description":"Catalog device-management, endpoint-compliance, and asset-inventory systems. Bring the complete device population, assignments, security configuration, compliance status, exceptions, loss, return, and disposal records.","timing":"Identify sources before devices receive access. Capture configuration near the Type 1 date or across the Type 2 period and export the complete Type 2 population after close."},
|
|
37
|
-
{"id":"backup-recovery","title":"Backup and Recovery","sourceKinds":["backup-recovery"],"controlCodes":["BCP-01","BCP-02"],"description":"Catalog backup, recovery, and continuity systems. Bring configuration, scheduled-job history, failures, restoration results, exercises, and follow-up work.","timing":"Capture configuration at the Type 1 date or across the Type 2 period. Preserve restoration and exercise results when performed and export complete job and failure history after period close."},
|
|
38
|
-
{"id":"vendor-management","title":"Vendors","sourceKinds":["vendor-management"],"controlCodes":["VEN-01","VEN-02"],"description":"Catalog procurement, contract, and vendor-risk systems. Bring the vendor population, contracts, reviews, assurance reports, bridge coverage, incidents, and follow-up.","timing":"Identify relevant subservice organizations during scoping. Obtain current assurance reports before fieldwork and bridge coverage through the report period when a report ends earlier."},
|
|
39
|
-
{"id":"exception-finding","title":"Exceptions and Findings","sourceKinds":["exception-finding"],"controlCodes":["MON-01","EXC-01"],"description":"Catalog the repository or ticket system authoritative for control exceptions, findings, risk acceptance, remediation, verification, and overdue work.","timing":"Record items as they arise. Reconcile open and closed records to their source throughout fieldwork and export the complete Type 2 population after the period closes."}
|
|
40
28
|
]
|
|
41
29
|
},
|
|
30
|
+
"evidenceSourceFamilies": [
|
|
31
|
+
{"id":"workforce","title":"Workforce System","sourceKinds":["workforce"],"controlCodes":["HR-01","HR-03","IAM-03"],"testEvidenceKind":"test-export","testPrompt":"Export a workforce-change report from the HR or workforce system containing starters, role changes, and departures.","description":"Catalog the HR or workforce system that is authoritative for starts, role changes, and departures. Bring the complete workforce-change population and source reports used to reconcile access and responsibilities.","timing":"Identify the source during scoping. Preserve event records as changes occur and export the complete Type 2 population after the period closes."},
|
|
32
|
+
{"id":"training-acknowledgement","title":"Training and Acknowledgements","sourceKinds":["training-acknowledgement"],"controlCodes":["GOV-03","HR-01","HR-02"],"testEvidenceKind":"test-export","testPrompt":"Export assignments and completions tied to a specific training or policy revision.","collectionTestRequired":false,"operationRecordTypes":["training","attestation"],"description":"FileGRC records training assignments, content revisions, completions, acknowledgements, exceptions, and overdue follow-up during Step 5.","timing":"Set up training and acknowledgement records before assignments begin. Preserve completion proof as work occurs, then reconcile the complete Type 2 population to the workforce population after close."},
|
|
33
|
+
{"id":"identity-access","title":"Identity and Access Systems","sourceKinds":["identity-access"],"controlCodes":["IAM-01","IAM-02","IAM-03"],"testEvidenceKind":"test-export","testPrompt":"Export users, roles, privileged access, or authentication settings from the identity provider or an in-scope application.","description":"Catalog the identity provider and each important application that enforces access. Bring identity, role, privileged-access, authentication-setting, review, and removal exports.","timing":"Identify sources during scoping. Capture configuration near the Type 1 date or at the start and end of a Type 2 period; export complete change and review populations after the Type 2 period closes."},
|
|
34
|
+
{"id":"production-change","title":"Production Change Systems","sourceKinds":["production-change"],"controlCodes":["CHG-01"],"testEvidenceKind":"test-capture","testPrompt":"Capture a change from the source control or deployment system showing review, testing, approval, deployment, and rollback information.","description":"Catalog source control, deployment, and infrastructure-change systems. Bring protection settings, reviews, test and approval records, deployments, emergency changes, and rollback evidence.","timing":"Identify sources before the audit period. Preserve per-change evidence as changes occur and export the complete period population after a Type 2 period closes."},
|
|
35
|
+
{"id":"security-monitoring","title":"Security Monitoring Systems","sourceKinds":["security-monitoring"],"controlCodes":["LOG-01","IR-01","IR-02"],"testEvidenceKind":"test-capture","testPrompt":"Capture logging or alert configuration and a delivered test alert from the monitoring system.","description":"Catalog logging and alerting systems. Bring configuration, coverage, alert delivery tests, alerts, investigations, and zero-event proof. FileGRC records qualifying incidents and their response during Step 5.","timing":"Capture configuration and coverage at the Type 1 date or across the Type 2 period. Preserve cases as they occur and export complete alert and incident populations after close."},
|
|
36
|
+
{"id":"vulnerability-management","title":"Vulnerability Management","sourceKinds":["vulnerability-management"],"controlCodes":["VUL-01","PEN-01"],"testEvidenceKind":"test-export","testPrompt":"Export a result from the vulnerability or dependency scanner showing scope, coverage, findings, and severity.","collectionTestRequired":false,"operationRecordTypes":["vulnerability-scan","penetration-test"],"description":"FileGRC records vulnerability scans and penetration tests during Step 5. Put the scanner output or independent report in an External Evidence record and link it from the operating record rather than creating a separate collection test.","timing":"Confirm coverage before the audit period. Preserve scan and remediation evidence when generated and export the complete Type 2 population after close."},
|
|
37
|
+
{"id":"endpoint-asset","title":"Endpoint Management Systems","sourceKinds":["endpoint-asset"],"controlCodes":["PHY-01","OPS-01","OPS-02","DATA-01"],"testEvidenceKind":"test-export","testPrompt":"Export devices, security configuration, and compliance status from the endpoint-management system.","description":"Catalog device-management and endpoint-compliance systems. Bring the complete device population, security configuration, compliance status, and exceptions. FileGRC records asset ownership, custody, loss, return, and disposal during Step 5.","timing":"Identify sources before devices receive access. Capture configuration near the Type 1 date or across the Type 2 period and export the complete Type 2 population after close."},
|
|
38
|
+
{"id":"backup-recovery","title":"Backup and Recovery","sourceKinds":["backup-recovery"],"controlCodes":["BCP-01","BCP-02"],"testEvidenceKind":"test-export","testPrompt":"Export job history from the backup system showing scheduled runs, successes, failures, and follow-up.","collectionTestRequired":false,"operationRecordTypes":["backup-test","exercise"],"description":"FileGRC records restoration tests and continuity exercises during Step 5. Put backup-system output in an External Evidence record and link it from the operating record rather than creating a separate collection test.","timing":"Capture configuration at the Type 1 date or across the Type 2 period. Preserve restoration and exercise results when performed and export complete job and failure history after period close."},
|
|
39
|
+
{"id":"vendor-management","title":"Vendors","sourceKinds":["vendor-management"],"controlCodes":["VEN-01","VEN-02"],"testEvidenceKind":"test-capture","testPrompt":"Capture a completed vendor review with its contract, assurance report, risk decision, and follow-up.","collectionTestRequired":false,"operationRecordTypes":["vendor-review"],"description":"FileGRC records vendor reviews, risk decisions, supporting reports, exceptions, and follow-up during Step 5.","timing":"Identify relevant subservice organizations during scoping. Complete reviews during operation, obtain current assurance reports before fieldwork, and document bridge coverage when a report ends before the report period."},
|
|
40
|
+
{"id":"exception-finding","title":"Exceptions and Findings","sourceKinds":["exception-finding"],"controlCodes":["MON-01","EXC-01"],"testEvidenceKind":"test-export","testPrompt":"Export open and closed exceptions or findings with owners, status, dates, and remediation verification.","collectionTestRequired":false,"operationRecordTypes":["exception","finding","action-item"],"description":"FileGRC records control exceptions, findings, risk acceptance, remediation, verification, and overdue work during Step 5.","timing":"Record items as they arise. Keep their status and follow-up current, then include the complete period population in fieldwork."},
|
|
41
|
+
{"id":"data-handling","title":"Data Protection Configuration","sourceKinds":["data-handling"],"controlCodes":["DATA-02","DATA-03"],"testEvidenceKind":"test-capture","testPrompt":"Capture encryption and retention settings from an in-scope System.","description":"Catalog the systems authoritative for encryption settings and retention rules. Bring current configuration and approved schedules. Preserve completed disposal actions, exceptions, and verification during Step 5.","timing":"Confirm configuration and retention rules before the audit period. Preserve disposal evidence when work occurs and capture configuration near the Type 1 date or across the Type 2 period."},
|
|
42
|
+
{"id":"network-security","title":"Network Security Systems","sourceKinds":["network-security"],"controlCodes":["NET-01"],"testEvidenceKind":"test-capture","testPrompt":"Capture current firewall or network-access rules from the network system and confirm that remote and production access paths appear.","description":"Catalog the systems authoritative for network boundaries, firewall rules, and remote access. Bring current configuration, rule reviews, approvals, changes, and exceptions.","timing":"Confirm boundary and remote-access configuration before the audit period. Preserve rule changes as they occur and capture current configuration near the Type 1 date or across the Type 2 period."},
|
|
43
|
+
{"id":"governance","title":"Governance","sourceKinds":["governance"],"controlCodes":["GOV-01","GOV-02"],"testEvidenceKind":"test-capture","testPrompt":"Capture one completed oversight review or policy approval with the participants, decisions, dates, and follow-up work.","collectionTestRequired":false,"operationRecordTypes":["policy-review","meeting"],"description":"FileGRC records policy approvals, oversight reviews, meetings, decisions, assigned actions, and completion proof in Steps 2 and 5.","timing":"Approve policies before they take effect. Preserve oversight records and decisions when the work occurs."},
|
|
44
|
+
{"id":"risk-management","title":"Risk Management","sourceKinds":["risk-management"],"controlCodes":["RSK-01"],"testEvidenceKind":"test-export","testPrompt":"Export the risk register with owners, ratings, treatment decisions, review dates, and open actions.","collectionTestRequired":false,"operationRecordTypes":["risk-assessment","risk"],"description":"FileGRC records risk assessments, risks, treatment decisions, reviews, and follow-up during Step 5.","timing":"Complete the initial assessment while operating the program. Preserve risk changes and reviews as they occur, then include the current register in fieldwork."}
|
|
45
|
+
],
|
|
42
46
|
"commonFields": {
|
|
43
47
|
"schemaVersion": {"type":"integer","required":true,"const":1,"label":"Schema version"},
|
|
44
48
|
"id": {"type":"string","format":"id","required":true,"label":"ID"},
|
|
@@ -58,7 +62,7 @@
|
|
|
58
62
|
{"id":"security-operations","title":"Security Operations"},
|
|
59
63
|
{"id":"resilience","title":"Resilience"},
|
|
60
64
|
{"id":"evidence","title":"Evidence"},
|
|
61
|
-
{"id":"work","title":"
|
|
65
|
+
{"id":"work","title":"Issues and Remediation"},
|
|
62
66
|
{"id":"audits","title":"Audits"},
|
|
63
67
|
{"id":"repository","title":"Repository"}
|
|
64
68
|
],
|
|
@@ -68,10 +72,10 @@
|
|
|
68
72
|
"pluralTitle": "Workspace",
|
|
69
73
|
"group": "repository",
|
|
70
74
|
"singleton": "workspace.json",
|
|
71
|
-
"description": "
|
|
75
|
+
"description": "Settings shared across the program: organization, SOC 2 goal, candidate period, scope, time zone, risk method, and data classifications.",
|
|
72
76
|
"guidance": {
|
|
73
|
-
"policyBasis": "
|
|
74
|
-
"cadence": "Review during the annual policy and risk reviews and after a material scope or methodology change.",
|
|
77
|
+
"policyBasis": "Policies, risk assessments, evidence checks, and readiness calculations use this scope and these methods. Candidate dates let management preserve evidence before the CPA firm agrees to the audit period.",
|
|
78
|
+
"cadence": "Review during the annual policy and risk reviews, before starting a candidate evidence period, and after a material scope or methodology change.",
|
|
75
79
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
76
80
|
"obligationActivityTypes": ["policy-review","risk-assessment"]
|
|
77
81
|
},
|
|
@@ -82,6 +86,14 @@
|
|
|
82
86
|
"timezone": {"type":"string","format":"timezone","label":"Timezone"},
|
|
83
87
|
"description": {"type":"string","label":"Description","search":true},
|
|
84
88
|
"repositoryUrl": {"type":"string","label":"Repository URL"},
|
|
89
|
+
"assuranceGoal": {"type":"enum","values":["none","readiness","soc-2-type-1","soc-2-type-2"],"label":"Program goal","filter":true},
|
|
90
|
+
"candidateTypeOneAsOf": {"type":"date","label":"Management candidate Type 1 date"},
|
|
91
|
+
"candidatePeriodStart": {"type":"date","label":"Management candidate Type 2 period start"},
|
|
92
|
+
"candidatePeriodEnd": {"type":"date","label":"Management candidate Type 2 period end"},
|
|
93
|
+
"frameworkIds": {"type":"array","items":"id","relation":["framework"],"label":"Program frameworks"},
|
|
94
|
+
"requirementIds": {"type":"array","items":"id","relation":["requirement"],"label":"Program requirements"},
|
|
95
|
+
"controlIds": {"type":"array","items":"id","relation":["control"],"label":"Program controls"},
|
|
96
|
+
"systemIds": {"type":"array","items":"id","relation":["system"],"label":"Program systems"},
|
|
85
97
|
"riskMethodology": {"type":"object","label":"Risk methodology"},
|
|
86
98
|
"classificationDefinitions": {"type":"object","label":"Classifications"}
|
|
87
99
|
},
|
|
@@ -92,16 +104,17 @@
|
|
|
92
104
|
"pluralTitle": "Renderer settings",
|
|
93
105
|
"group": "repository",
|
|
94
106
|
"singleton": "renderer.json",
|
|
95
|
-
"description": "
|
|
107
|
+
"description": "Optional local interface settings, including onboarding visibility and manually completed Step pages. Renderer settings are not required for SOC 2 and do not change compliance records.",
|
|
96
108
|
"guidance": {
|
|
97
|
-
"policyBasis": "
|
|
109
|
+
"policyBasis": "Renderer settings are a FileGRC convenience, not a SOC 2 requirement, control, audit record, or substitute for evidence.",
|
|
98
110
|
"cadence": "Change it when the team wants to rerun or suppress an optional renderer workflow, then review and commit the resulting diff."
|
|
99
111
|
},
|
|
100
112
|
"required": ["showOnboarding"],
|
|
101
113
|
"fields": {
|
|
102
|
-
"showOnboarding": {"type":"boolean","label":"Show onboarding"}
|
|
114
|
+
"showOnboarding": {"type":"boolean","label":"Show onboarding"},
|
|
115
|
+
"completedStagePageIds": {"type":"array","items":"string","label":"Manually completed program pages"}
|
|
103
116
|
},
|
|
104
|
-
"listFields": ["title","showOnboarding"]
|
|
117
|
+
"listFields": ["title","showOnboarding","completedStagePageIds"]
|
|
105
118
|
},
|
|
106
119
|
"person": {
|
|
107
120
|
"title": "Person",
|
|
@@ -109,9 +122,9 @@
|
|
|
109
122
|
"pluralTitle": "People",
|
|
110
123
|
"group": "people-access",
|
|
111
124
|
"collection": "people",
|
|
112
|
-
"description": "
|
|
125
|
+
"description": "People who own, approve, review, or perform program work, or receive access and training. Keep detailed personnel records in the HR system.",
|
|
113
126
|
"guidance": {
|
|
114
|
-
"policyBasis": "The information security policy and employee handbook
|
|
127
|
+
"policyBasis": "The information security policy and employee handbook assign work to named people and require onboarding, training, role-change, and offboarding records.",
|
|
115
128
|
"cadence": "Create before assigning work or access, update after role changes, and mark inactive at departure. Training is due within 30 days of starting and annually.",
|
|
116
129
|
"sourceResourceIds": ["policy-information-security","policy-employee-handbook"],
|
|
117
130
|
"obligationActivityTypes": ["training","performance-review"]
|
|
@@ -136,9 +149,9 @@
|
|
|
136
149
|
"pluralTitle": "Service accounts",
|
|
137
150
|
"group": "people-access",
|
|
138
151
|
"collection": "service-accounts",
|
|
139
|
-
"description": "Non-human identities
|
|
152
|
+
"description": "Non-human identities that need separate tracking. Record the account’s purpose, owner, Systems, authentication, privilege, review, and expiry here. A separate register is not required for SOC 2.",
|
|
140
153
|
"guidance": {
|
|
141
|
-
"policyBasis": "The information security policy requires important identities to
|
|
154
|
+
"policyBasis": "The information security policy requires important human and non-human identities to have an owner, protection, periodic review, and prompt removal when no longer needed.",
|
|
142
155
|
"cadence": "Create before use. Review privileged and production access quarterly and other important access annually; retire or expire unused accounts.",
|
|
143
156
|
"sourceResourceIds": ["policy-information-security"],
|
|
144
157
|
"obligationActivityTypes": ["access-review","inventory-review"]
|
|
@@ -162,10 +175,10 @@
|
|
|
162
175
|
"pluralTitle": "Teams",
|
|
163
176
|
"group": "governance",
|
|
164
177
|
"collection": "teams",
|
|
165
|
-
"description": "
|
|
178
|
+
"description": "Groups that share program responsibility, such as security oversight or incident response. Team records are not required for SOC 2 when named People hold the responsibilities directly.",
|
|
166
179
|
"guidance": {
|
|
167
|
-
"policyBasis": "The information security policy establishes
|
|
168
|
-
"cadence": "The security and risk oversight group meets at least quarterly. Update membership after responsibility or personnel changes, and preserve the
|
|
180
|
+
"policyBasis": "The information security policy establishes security and risk oversight with independent review, while the continuity plan assigns response and recovery roles. Reviewers may be internal or external.",
|
|
181
|
+
"cadence": "The security and risk oversight group meets at least quarterly. Update membership after responsibility or personnel changes, and preserve a chair who is separate from the policy owner.",
|
|
169
182
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
170
183
|
"obligationActivityTypes": ["meeting"]
|
|
171
184
|
},
|
|
@@ -186,10 +199,10 @@
|
|
|
186
199
|
"pluralTitle": "Systems",
|
|
187
200
|
"group": "systems-vendors",
|
|
188
201
|
"collection": "systems",
|
|
189
|
-
"description": "Applications, services,
|
|
202
|
+
"description": "Applications, services, and platforms that support the scoped service, operate controls, or produce evidence. Record vendor-provided software as a System and link it to its Vendor.",
|
|
190
203
|
"guidance": {
|
|
191
|
-
"policyBasis": "The information security, data handling, and continuity policies require
|
|
192
|
-
"cadence": "Review at least annually and after material architecture, data, vendor, service, recovery, or evidence-source changes.
|
|
204
|
+
"policyBasis": "The information security, data handling, and continuity policies require management to know which Systems are in scope, who owns them, what data they handle, how critical they are, and where evidence comes from.",
|
|
205
|
+
"cadence": "Complete the in-scope inventory before policy approval and control implementation. Review it at least annually and after material architecture, data, vendor, service, recovery, or evidence-source changes. Test report access and extraction before the candidate period begins.",
|
|
193
206
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling","document-business-continuity-disaster-recovery"],
|
|
194
207
|
"obligationActivityTypes": ["inventory-review"]
|
|
195
208
|
},
|
|
@@ -220,9 +233,9 @@
|
|
|
220
233
|
"pluralTitle": "Assets",
|
|
221
234
|
"group": "systems-vendors",
|
|
222
235
|
"collection": "assets",
|
|
223
|
-
"description": "
|
|
236
|
+
"description": "Important devices, media, software, records, and other items tracked through acquisition, custody, use, return, and disposal. Assets support controls but do not define the service boundary.",
|
|
224
237
|
"guidance": {
|
|
225
|
-
"policyBasis": "The information security, mobile computing, and data handling policies require important assets to
|
|
238
|
+
"policyBasis": "The information security, mobile computing, and data handling policies require important assets to have owners and custodians, protection based on classification, and secure return or disposal.",
|
|
226
239
|
"cadence": "Record acquisition and assignment, review the inventory annually, update custody on change, and retire assets when use ends.",
|
|
227
240
|
"sourceResourceIds": ["policy-information-security","policy-mobile-computing-communications","policy-data-protection-handling"],
|
|
228
241
|
"obligationActivityTypes": ["inventory-review"]
|
|
@@ -249,9 +262,9 @@
|
|
|
249
262
|
"pluralTitle": "Documents",
|
|
250
263
|
"group": "governance",
|
|
251
264
|
"collection": "documents",
|
|
252
|
-
"description": "Governed
|
|
265
|
+
"description": "Governed plans, charters, procedures, standards, reports, and templates that are not Policies or another FileGRC record type. A general document catalog is not required for SOC 2.",
|
|
253
266
|
"guidance": {
|
|
254
|
-
"policyBasis": "Policies
|
|
267
|
+
"policyBasis": "Policies rely on governed documents for detailed plans, procedures, charters, and reports. Git preserves the approved text and its revision history.",
|
|
255
268
|
"cadence": "Follow each record's review cadence. Starter governed documents are reviewed at least annually and after material changes or use, with an approver who is separate from the owner.",
|
|
256
269
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
257
270
|
"obligationActivityTypes": ["policy-review","continuity-review"]
|
|
@@ -281,27 +294,29 @@
|
|
|
281
294
|
}
|
|
282
295
|
},
|
|
283
296
|
"evidence": {
|
|
284
|
-
"title": "Evidence",
|
|
285
|
-
"pluralTitle": "Evidence",
|
|
297
|
+
"title": "External Evidence",
|
|
298
|
+
"pluralTitle": "External Evidence",
|
|
286
299
|
"group": "evidence",
|
|
287
300
|
"collection": "evidence",
|
|
288
301
|
"recordPath": "{id}/evidence.json",
|
|
289
|
-
"description": "
|
|
302
|
+
"description": "External Evidence holds exports, reports, screenshots, signed files, and approved external references collected from other Systems. Step 5 records created in FileGRC do not need a separate record here. Step 6 reviews and packages both evidence paths for the CPA firm.",
|
|
290
303
|
"guidance": {
|
|
291
|
-
"policyBasis": "The information security
|
|
292
|
-
"cadence": "
|
|
304
|
+
"policyBasis": "The information security and data handling policies require retained proof from authoritative Systems when FileGRC's own operating records do not contain the full result.",
|
|
305
|
+
"cadence": "Before the candidate period begins, test each selected control family that relies on evidence from outside FileGRC. Once operation starts, collect external evidence whenever the control runs, keep FileGRC operating records current, verify evidence before audit use, cover the stated period, and retain it according to classification and record rules.",
|
|
293
306
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
294
307
|
},
|
|
295
|
-
"required": ["status","evidenceKind"
|
|
308
|
+
"required": ["status","evidenceKind"],
|
|
296
309
|
"oneOf": [
|
|
297
|
-
["filePaths","externalReference","$markdown:content"]
|
|
310
|
+
{"when":{"status":["collected","verified","expired","withdrawn"]},"fields":["filePaths","externalReference","$markdown:content"]}
|
|
298
311
|
],
|
|
299
312
|
"fields": {
|
|
300
|
-
"status": {"type":"enum","values":["collected","verified","expired","withdrawn"],"filter":true},
|
|
313
|
+
"status": {"type":"enum","values":["draft","collected","verified","expired","withdrawn"],"filter":true},
|
|
301
314
|
"evidenceKind": {"type":"string","filter":true},
|
|
302
|
-
"
|
|
303
|
-
"
|
|
304
|
-
"
|
|
315
|
+
"collectionTestFamilyId": {"type":"string","label":"Collection test family","filter":true},
|
|
316
|
+
"collectionTestPrompt": {"type":"string","label":"What to collect","search":true},
|
|
317
|
+
"source": {"type":"string","search":true,"requiredWhen":{"status":["collected","verified","expired","withdrawn"]}},
|
|
318
|
+
"collectedOn": {"type":"date","requiredWhen":{"status":["collected","verified","expired","withdrawn"]}},
|
|
319
|
+
"classification": {"type":"string","filter":true,"requiredWhen":{"status":["collected","verified","expired","withdrawn"]}},
|
|
305
320
|
"filePaths": {"type":"array","items":"data-path"},
|
|
306
321
|
"externalReference": {"type":"object"},
|
|
307
322
|
"periodStart": {"type":"date","requiredWhen":{"evidenceKind":"population-export"}},
|
|
@@ -312,13 +327,13 @@
|
|
|
312
327
|
"populationCount": {"type":"integer","minimum":0,"label":"Population count","requiredWhen":{"evidenceKind":"population-export"}},
|
|
313
328
|
"completenessValidation": {"type":"string","label":"Completeness validation","search":true,"requiredWhen":{"evidenceKind":"population-export"}},
|
|
314
329
|
"accuracyValidation": {"type":"string","label":"Accuracy validation","search":true,"requiredWhen":{"evidenceKind":"population-export"}},
|
|
315
|
-
"sourceSystemId": {"type":"id","relation":["system"],"label":"Source system","requiredWhen":{"evidenceKind":"population-export"}},
|
|
330
|
+
"sourceSystemId": {"type":"id","relation":["system"],"label":"Source system","requiredWhen":{"evidenceKind":["population-export","test-export","test-capture"],"status":["collected","verified","expired","withdrawn"]}},
|
|
316
331
|
"systemIds": {"type":"array","items":"id","relation":["system"]},
|
|
317
332
|
"controlIds": {"type":"array","items":"id","relation":["control"]},
|
|
318
333
|
"auditIds": {"type":"array","items":"id","relation":["audit"]},
|
|
319
|
-
"collectorIds": {"type":"array","items":"id","relation":["person"]},
|
|
320
|
-
"verifierIds": {"type":"array","items":"id","relation":["person"],"requiredWhen":{"status":"verified"}},
|
|
321
|
-
"verifiedOn": {"type":"date","requiredWhen":{"status":"verified"}},
|
|
334
|
+
"collectorIds": {"type":"array","items":"id","relation":["person"],"requiredWhen":{"status":["collected","verified","expired","withdrawn"]}},
|
|
335
|
+
"verifierIds": {"type":"array","items":"id","relation":["person"],"requiredWhen":{"status":"verified"},"visibleWhen":{"status":"verified"}},
|
|
336
|
+
"verifiedOn": {"type":"date","requiredWhen":{"status":"verified"},"visibleWhen":{"status":"verified"}},
|
|
322
337
|
"expiresOn": {"type":"date"},
|
|
323
338
|
"sourceResourceIds": {"type":"array","items":"id","relation":["*"]},
|
|
324
339
|
"sourceCommit": {"type":"string"},
|
|
@@ -334,10 +349,10 @@
|
|
|
334
349
|
"pluralTitle": "Obligations",
|
|
335
350
|
"group": "work",
|
|
336
351
|
"collection": "obligations",
|
|
337
|
-
"description": "
|
|
352
|
+
"description": "Reusable schedules for recurring or event-driven work. Obligations feed the Work Queue; completion records and linked Evidence prove that the work occurred. Obligations are not required for SOC 2.",
|
|
338
353
|
"guidance": {
|
|
339
|
-
"policyBasis": "Obligations turn policy
|
|
340
|
-
"cadence": "
|
|
354
|
+
"policyBasis": "FileGRC uses Obligations to turn policy and control cadence into owned, dated work linked to its scope and required proof.",
|
|
355
|
+
"cadence": "Treat starter work as proposed until every governing policy is active and effective and, when the obligation names controls, at least one linked control is implemented. Then use the recurrence and activation date, and create a separate completion record for every period.",
|
|
341
356
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling","document-business-continuity-disaster-recovery"]
|
|
342
357
|
},
|
|
343
358
|
"required": ["status","activityType","recurrence","ownerIds"],
|
|
@@ -362,13 +377,13 @@
|
|
|
362
377
|
}
|
|
363
378
|
},
|
|
364
379
|
"obligation-event": {
|
|
365
|
-
"title": "
|
|
366
|
-
"pluralTitle": "
|
|
380
|
+
"title": "Policy Event",
|
|
381
|
+
"pluralTitle": "Policy Events",
|
|
367
382
|
"group": "work",
|
|
368
383
|
"collection": "obligation-events",
|
|
369
|
-
"description": "One occurrence of
|
|
384
|
+
"description": "One occurrence of an event such as hiring, departure, material change, or incident. It connects the event to the checklist generated from applicable Obligations. Policy Events are not required for SOC 2.",
|
|
370
385
|
"guidance": {
|
|
371
|
-
"policyBasis": "
|
|
386
|
+
"policyBasis": "Policies require specific, time-bound actions after certain events. A Policy Event preserves the trigger, applicable checklist, owners, and completion state.",
|
|
372
387
|
"cadence": "Create when the event occurs or is scheduled. Complete every generated action within its policy window, then close the event."
|
|
373
388
|
},
|
|
374
389
|
"required": ["status","eventType","occurredOn","obligationIds","ownerIds"],
|
|
@@ -379,7 +394,6 @@
|
|
|
379
394
|
"occurredAt": {"type":"timestamp"},
|
|
380
395
|
"subjectResourceIds": {"type":"array","items":"id","relation":["*"]},
|
|
381
396
|
"obligationIds": {"type":"array","items":"id","relation":["obligation"]},
|
|
382
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
383
397
|
"completedOn": {"type":"date","requiredWhen":{"status":"complete"}}
|
|
384
398
|
},
|
|
385
399
|
"listFields": ["title","status","eventType","occurredOn","ownerIds"]
|
|
@@ -390,9 +404,9 @@
|
|
|
390
404
|
"pluralTitle": "Frameworks",
|
|
391
405
|
"group": "program",
|
|
392
406
|
"collection": "frameworks",
|
|
393
|
-
"description": "
|
|
407
|
+
"description": "Published criteria sets and versions used to define the program and audit scope.",
|
|
394
408
|
"guidance": {
|
|
395
|
-
"policyBasis": "
|
|
409
|
+
"policyBasis": "The CPA examination uses the selected Framework. FileGRC’s starter references provide orientation but do not replace the publisher’s official criteria.",
|
|
396
410
|
"cadence": "Add or retire a version only through a deliberate scope decision. Reconfirm the selected version when planning each audit."
|
|
397
411
|
},
|
|
398
412
|
"required": ["status","version"],
|
|
@@ -412,9 +426,9 @@
|
|
|
412
426
|
"pluralTitle": "Requirements",
|
|
413
427
|
"group": "program",
|
|
414
428
|
"collection": "requirements",
|
|
415
|
-
"description": "Individual
|
|
429
|
+
"description": "Individual criteria used to record applicability and connect the Framework to Controls, Commitments, Audits, and Findings.",
|
|
416
430
|
"guidance": {
|
|
417
|
-
"policyBasis": "
|
|
431
|
+
"policyBasis": "The selected Framework defines the Requirements. Controls show how management addresses each applicable criterion; the publisher’s official text remains authoritative.",
|
|
418
432
|
"cadence": "Review applicability during audit planning and after material scope, service, system, or framework changes."
|
|
419
433
|
},
|
|
420
434
|
"required": ["frameworkId","reference","applicability"],
|
|
@@ -434,9 +448,9 @@
|
|
|
434
448
|
"pluralTitle": "Commitments",
|
|
435
449
|
"group": "program",
|
|
436
450
|
"collection": "commitments",
|
|
437
|
-
"description": "Customer
|
|
451
|
+
"description": "Customer promises, service requirements, and approved business objectives beyond the baseline Framework and Policies. Link them to the Systems and Controls that fulfill them.",
|
|
438
452
|
"guidance": {
|
|
439
|
-
"policyBasis": "
|
|
453
|
+
"policyBasis": "Contracts, service descriptions, and approved management decisions can create commitments that the system description and control design must address.",
|
|
440
454
|
"cadence": "Create before relying on a promise, review during audit scoping, and supersede it when the service or agreement changes.",
|
|
441
455
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
442
456
|
},
|
|
@@ -460,9 +474,9 @@
|
|
|
460
474
|
"pluralTitle": "Complementary controls",
|
|
461
475
|
"group": "program",
|
|
462
476
|
"collection": "complementary-controls",
|
|
463
|
-
"description": "
|
|
477
|
+
"description": "Actions a customer or carved-out provider must perform for a linked Control to work as described. A Complementary Control record is not required for SOC 2 when no external dependency applies.",
|
|
464
478
|
"guidance": {
|
|
465
|
-
"policyBasis": "The system description
|
|
479
|
+
"policyBasis": "The system description must explain relevant customer and subservice-organization responsibilities so readers understand where management’s Controls depend on others.",
|
|
466
480
|
"cadence": "Review for every audit and after material customer-responsibility, vendor, contract, integration, or service changes.",
|
|
467
481
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
468
482
|
},
|
|
@@ -486,14 +500,17 @@
|
|
|
486
500
|
"pluralTitle": "Controls",
|
|
487
501
|
"group": "program",
|
|
488
502
|
"collection": "controls",
|
|
489
|
-
"description": "
|
|
503
|
+
"description": "Management’s actual safeguards and procedures, mapped to Policies, Requirements, Systems, and evidence sources. The Work Queue schedules recurring operation where configured; Evidence shows that operation occurred.",
|
|
490
504
|
"guidance": {
|
|
491
|
-
"policyBasis": "Controls
|
|
492
|
-
"cadence": "
|
|
505
|
+
"policyBasis": "Controls translate approved Policies and applicable Requirements into owned procedures that management can operate and prove. Policy text alone does not show implementation.",
|
|
506
|
+
"cadence": "Before marking a control implemented, record its owner, actual procedure in Record Markdown, system scope, cadence, authoritative evidence sources, and implementation date. FileGRC-managed controls also require enabled schedules with effective governing policies. Marking the control implemented starts eligible schedules.",
|
|
493
507
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
494
508
|
"obligationActivityTypes": ["risk-assessment","policy-review"]
|
|
495
509
|
},
|
|
496
510
|
"required": ["status","statement","ownerIds","requirementIds","activity","operationMode","frequency"],
|
|
511
|
+
"markdown": {
|
|
512
|
+
"record": {"label":"Procedure","primary":true,"requiredWhen":{"status":"implemented"}}
|
|
513
|
+
},
|
|
497
514
|
"fields": {
|
|
498
515
|
"status": {"type":"enum","values":["planned","implemented","partially-implemented","not-applicable","retired"],"filter":true},
|
|
499
516
|
"statement": {"type":"string","search":true},
|
|
@@ -503,9 +520,9 @@
|
|
|
503
520
|
"controlType": {"type":"enum","values":["preventive","detective","corrective"],"filter":true},
|
|
504
521
|
"operationMode": {"type":"enum","values":["manual","automated","hybrid"],"filter":true},
|
|
505
522
|
"frequency": {"type":"string","filter":true},
|
|
506
|
-
"systemIds": {"type":"array","items":"id","relation":["system"]},
|
|
523
|
+
"systemIds": {"type":"array","items":"id","relation":["system"],"requiredWhen":{"status":"implemented"}},
|
|
524
|
+
"evidenceSourceIds": {"type":"array","items":"id","relation":["system"],"label":"Authoritative evidence sources","requiredWhen":{"status":"implemented"}},
|
|
507
525
|
"commitmentIds": {"type":"array","items":"id","relation":["commitment"]},
|
|
508
|
-
"complementaryControlIds": {"type":"array","items":"id","relation":["complementary-control"]},
|
|
509
526
|
"policyIds": {"type":"array","items":"id","relation":["policy"]},
|
|
510
527
|
"riskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
511
528
|
"effectiveOn": {"type":"date","requiredWhen":{"status":"implemented"}},
|
|
@@ -518,9 +535,9 @@
|
|
|
518
535
|
"pluralTitle": "Control tests",
|
|
519
536
|
"group": "program",
|
|
520
537
|
"collection": "control-tests",
|
|
521
|
-
"description": "
|
|
538
|
+
"description": "A test of one Control’s design or operation for a date or period, including method, population, samples, Evidence, result, and exceptions. Management-run Control Tests are not required for SOC 2 because the CPA firm tests independently.",
|
|
522
539
|
"guidance": {
|
|
523
|
-
"policyBasis": "The information security policy requires
|
|
540
|
+
"policyBasis": "The information security policy requires management to monitor Controls. The CPA firm performs its own independent testing for the SOC 2 examination.",
|
|
524
541
|
"cadence": "Plan from control frequency, risk, and audit scope. Record the exact period or as-of date, link the complete population and sampled items when sampling applies, and complete review before relying on the result.",
|
|
525
542
|
"sourceResourceIds": ["policy-information-security"]
|
|
526
543
|
},
|
|
@@ -546,7 +563,6 @@
|
|
|
546
563
|
"sampleEvidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
547
564
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
548
565
|
"exceptionCount": {"type":"integer","minimum":0},
|
|
549
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
550
566
|
"reviewerIds": {"type":"array","items":"id","relation":["person"]},
|
|
551
567
|
"reviewedOn": {"type":"date"},
|
|
552
568
|
"completedOn": {"type":"date"},
|
|
@@ -563,10 +579,10 @@
|
|
|
563
579
|
"pluralTitle": "Findings",
|
|
564
580
|
"group": "work",
|
|
565
581
|
"collection": "findings",
|
|
566
|
-
"description": "
|
|
582
|
+
"description": "A confirmed gap that needs tracking after a control test, review, risk assessment, security test, incident review, management meeting, or audit. Keep observations and report details in the source record’s Markdown. Create a Finding only when the gap needs its own owner, due date, remediation state, or verified closure. A Finding record is not required for SOC 2 when no confirmed gap needs tracking.",
|
|
567
583
|
"guidance": {
|
|
568
|
-
"policyBasis": "The information security policy requires issues from monitoring, audits, incidents, scans, and reviews to
|
|
569
|
-
"cadence": "Create
|
|
584
|
+
"policyBasis": "The information security policy requires confirmed issues from monitoring, audits, incidents, scans, and reviews to remain tracked until corrective action is verified.",
|
|
585
|
+
"cadence": "Create only after management confirms the gap. Use the Finding itself for straightforward remediation, add Action Items only for separate assigned tasks, and close only after remediation is verified.",
|
|
570
586
|
"sourceResourceIds": ["policy-information-security"]
|
|
571
587
|
},
|
|
572
588
|
"required": ["status","severity","sourceResourceId","description","ownerIds"],
|
|
@@ -579,12 +595,11 @@
|
|
|
579
595
|
"riskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
580
596
|
"systemIds": {"type":"array","items":"id","relation":["system"]},
|
|
581
597
|
"identifiedOn": {"type":"date"},
|
|
582
|
-
"dueOn": {"type":"date"},
|
|
583
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
598
|
+
"dueOn": {"type":"date","requiredWhen":{"status":["open","remediating","resolved"]}},
|
|
584
599
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
585
|
-
"resolvedOn": {"type":"date"},
|
|
586
|
-
"verifiedByIds": {"type":"array","items":"id","relation":["person"]},
|
|
587
|
-
"verifiedOn": {"type":"date"}
|
|
600
|
+
"resolvedOn": {"type":"date","requiredWhen":{"status":["resolved","closed"]}},
|
|
601
|
+
"verifiedByIds": {"type":"array","items":"id","relation":["person"],"requiredWhen":{"status":"closed"}},
|
|
602
|
+
"verifiedOn": {"type":"date","requiredWhen":{"status":"closed"}}
|
|
588
603
|
},
|
|
589
604
|
"listFields": ["title","status","severity","identifiedOn","dueOn"]
|
|
590
605
|
},
|
|
@@ -593,9 +608,9 @@
|
|
|
593
608
|
"pluralTitle": "Exceptions",
|
|
594
609
|
"group": "risk",
|
|
595
610
|
"collection": "exceptions",
|
|
596
|
-
"description": "
|
|
611
|
+
"description": "An approved, time-bound departure from a Policy or Control. Record its scope, reason, risk, compensating Controls, owner, approval, and expiry. An Exception record is not required for SOC 2 unless a departure is approved.",
|
|
597
612
|
"guidance": {
|
|
598
|
-
"policyBasis": "The information security and data handling policies
|
|
613
|
+
"policyBasis": "The information security and data handling policies allow departures only with a business reason, assessed risk, compensating safeguards, approval, and an expiry or review date.",
|
|
599
614
|
"cadence": "Approve before the departure begins, review through its stated cadence or expiry, and close or renew it through a new risk decision.",
|
|
600
615
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
601
616
|
},
|
|
@@ -612,7 +627,6 @@
|
|
|
612
627
|
"expiresOn": {"type":"date"},
|
|
613
628
|
"reviewCadence": {"type":"object"},
|
|
614
629
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
615
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
616
630
|
"closedOn": {"type":"date"}
|
|
617
631
|
},
|
|
618
632
|
"listFields": ["title","status","expiresOn"]
|
|
@@ -622,10 +636,10 @@
|
|
|
622
636
|
"pluralTitle": "Action items",
|
|
623
637
|
"group": "work",
|
|
624
638
|
"collection": "action-items",
|
|
625
|
-
"description": "
|
|
639
|
+
"description": "One owned, dated follow-up task linked to the Finding, Policy Event, Risk, Incident, review, test, meeting, Exception, or request that created it. Action Items appear in Work Queue. Use one only when work needs separate assignment, timing, and completion proof. A separate Action Item tracker is not required for SOC 2.",
|
|
626
640
|
"guidance": {
|
|
627
|
-
"policyBasis": "
|
|
628
|
-
"cadence": "Create when
|
|
641
|
+
"policyBasis": "Policies require material issues and review decisions to produce owned, dated corrective work with proof of completion.",
|
|
642
|
+
"cadence": "Create when separate follow-up is assigned. Set a deadline, work it from Work Queue, record blockers, and link completion evidence before closing."
|
|
629
643
|
},
|
|
630
644
|
"required": ["status","assigneeIds","sourceResourceId"],
|
|
631
645
|
"fields": {
|
|
@@ -642,11 +656,14 @@
|
|
|
642
656
|
"dueWindowEndAt": {"type":"timestamp"},
|
|
643
657
|
"overdueAt": {"type":"timestamp"},
|
|
644
658
|
"dueOn": {"type":"date"},
|
|
645
|
-
"completedOn": {"type":"date"},
|
|
659
|
+
"completedOn": {"type":"date","requiredWhen":{"status":"done"}},
|
|
646
660
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
647
661
|
"completionResourceIds": {"type":"array","items":"id","relation":["*"]},
|
|
648
662
|
"blockingResourceIds": {"type":"array","items":"id","relation":["*"]}
|
|
649
663
|
},
|
|
664
|
+
"oneOf": [
|
|
665
|
+
{"fields":["dueOn","dueWindowEndAt"],"when":{"status":["open","in-progress","blocked"]}}
|
|
666
|
+
],
|
|
650
667
|
"listFields": ["title","status","priority","dueOn","assigneeIds"]
|
|
651
668
|
},
|
|
652
669
|
"policy": {
|
|
@@ -654,10 +671,10 @@
|
|
|
654
671
|
"pluralTitle": "Policies",
|
|
655
672
|
"group": "governance",
|
|
656
673
|
"collection": "policies",
|
|
657
|
-
"description": "
|
|
674
|
+
"description": "Management-approved rules for the program. Store the policy text in Markdown and its owner, separate approver, scope, status, dates, and linked Controls in the record.",
|
|
658
675
|
"guidance": {
|
|
659
|
-
"policyBasis": "Policies
|
|
660
|
-
"cadence": "
|
|
676
|
+
"policyBasis": "Policies state management’s required behavior. Controls, Obligations, Documents, Training, and Attestations put that behavior into operation and preserve proof.",
|
|
677
|
+
"cadence": "Move a draft through review and approval, set the effective date, link its controls, and clear organization-specific placeholders before activation. The approver is usually internal and may be external, but must be separate from the owner and from the CPA auditor role. Review at least annually and after material changes.",
|
|
661
678
|
"sourceResourceIds": ["policy-information-security"],
|
|
662
679
|
"obligationActivityTypes": ["policy-review"]
|
|
663
680
|
},
|
|
@@ -691,9 +708,9 @@
|
|
|
691
708
|
"pluralTitle": "Policy reviews",
|
|
692
709
|
"group": "governance",
|
|
693
710
|
"collection": "policy-reviews",
|
|
694
|
-
"description": "
|
|
711
|
+
"description": "The result of a scheduled or change-driven review of Policies or governed Documents, including reviewers, decision, evidence, and follow-up. Edit the source record separately when changes are approved.",
|
|
695
712
|
"guidance": {
|
|
696
|
-
"policyBasis": "Each starter
|
|
713
|
+
"policyBasis": "Each starter Policy and the continuity plan requires periodic review and another review after specified material changes.",
|
|
697
714
|
"cadence": "Complete annually and after a triggering change, incident, disruption, or policy condition. Link the exact scope, reviewers, result, and evidence.",
|
|
698
715
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
699
716
|
"obligationActivityTypes": ["policy-review"]
|
|
@@ -714,9 +731,7 @@
|
|
|
714
731
|
"changesRequired": {"type":"boolean"},
|
|
715
732
|
"changeSummary": {"type":"string"},
|
|
716
733
|
"approverIds": {"type":"array","items":"id","relation":["person","team"]},
|
|
717
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
718
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
719
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
734
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
720
735
|
},
|
|
721
736
|
"listFields": ["title","status","reviewedOn","outcome","changesRequired"]
|
|
722
737
|
},
|
|
@@ -725,9 +740,9 @@
|
|
|
725
740
|
"pluralTitle": "Attestations",
|
|
726
741
|
"group": "governance",
|
|
727
742
|
"collection": "attestations",
|
|
728
|
-
"description": "
|
|
743
|
+
"description": "One person’s acknowledgement, training completion, certification, or assigned-work confirmation. Bind it to the exact content revision and signed Evidence when required.",
|
|
729
744
|
"guidance": {
|
|
730
|
-
"policyBasis": "The information security, data handling
|
|
745
|
+
"policyBasis": "The information security policy, data handling policy, and workforce materials require people to complete assigned training and acknowledge applicable responsibilities.",
|
|
731
746
|
"cadence": "Assign during onboarding, within 30 days for security training, annually for recurring training, and after material content changes that require acknowledgement.",
|
|
732
747
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling","policy-employee-handbook"],
|
|
733
748
|
"obligationActivityTypes": ["training"]
|
|
@@ -759,9 +774,9 @@
|
|
|
759
774
|
"pluralTitle": "Meetings",
|
|
760
775
|
"group": "governance",
|
|
761
776
|
"collection": "meetings",
|
|
762
|
-
"description": "
|
|
777
|
+
"description": "One governance meeting, including its chair, attendees, agenda, minutes, decisions, raised issues, Evidence, and assigned follow-up.",
|
|
763
778
|
"guidance": {
|
|
764
|
-
"policyBasis": "The information security policy requires
|
|
779
|
+
"policyBasis": "The information security policy requires recorded security and risk oversight. The continuity plan requires management review of exercises and unresolved risks.",
|
|
765
780
|
"cadence": "Hold security and risk oversight meetings at least quarterly. Create one immutable meeting record and Markdown minutes for each occurrence.",
|
|
766
781
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
767
782
|
"obligationActivityTypes": ["meeting"]
|
|
@@ -778,8 +793,6 @@
|
|
|
778
793
|
"externalAttendees": {"type":"array","items":"object"},
|
|
779
794
|
"decisionSummary": {"type":"string","search":true},
|
|
780
795
|
"riskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
781
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
782
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
783
796
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
784
797
|
},
|
|
785
798
|
"listFields": ["title","status","teamId","scheduledOn"],
|
|
@@ -794,9 +807,9 @@
|
|
|
794
807
|
"pluralTitle": "Training",
|
|
795
808
|
"group": "governance",
|
|
796
809
|
"collection": "training",
|
|
797
|
-
"description": "Reusable
|
|
810
|
+
"description": "Reusable training content and assignment rules, including audience, trigger, recurrence, completion window, passing criteria, and linked Policies and Controls. Individual completions belong in Attestations.",
|
|
798
811
|
"guidance": {
|
|
799
|
-
"policyBasis": "The information security and data handling policies require security training
|
|
812
|
+
"policyBasis": "The information security and data handling policies require security training and added role-based training when a person’s responsibilities or data access warrant it.",
|
|
800
813
|
"cadence": "Assign security training at onboarding, complete it within 30 days, repeat at least annually, and reassign after relevant material changes or incidents.",
|
|
801
814
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
802
815
|
"obligationActivityTypes": ["training"]
|
|
@@ -823,9 +836,9 @@
|
|
|
823
836
|
"pluralTitle": "Risks",
|
|
824
837
|
"group": "risk",
|
|
825
838
|
"collection": "risks",
|
|
826
|
-
"description": "
|
|
839
|
+
"description": "One identified threat or business impact that needs treatment or ongoing tracking. Record its owner, ratings, response, affected scope, Controls, acceptance, and follow-up.",
|
|
827
840
|
"guidance": {
|
|
828
|
-
"policyBasis": "The information security and data handling policies require
|
|
841
|
+
"policyBasis": "The information security and data handling policies require identified Risks to have an owner, rating, treatment decision, target date, and time-bound approval when accepted.",
|
|
829
842
|
"cadence": "Assess the register at least annually and after material changes. Review High and Critical risks at least quarterly and accepted risks by their review date.",
|
|
830
843
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
831
844
|
"obligationActivityTypes": ["risk-assessment"]
|
|
@@ -847,8 +860,6 @@
|
|
|
847
860
|
"controlIds": {"type":"array","items":"id","relation":["control"]},
|
|
848
861
|
"commitmentIds": {"type":"array","items":"id","relation":["commitment"]},
|
|
849
862
|
"requirementIds": {"type":"array","items":"id","relation":["requirement"]},
|
|
850
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
851
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
852
863
|
"reviewCadence": {"type":"object"}
|
|
853
864
|
},
|
|
854
865
|
"listFields": ["title","status","response","inherentRating","residualRating"]
|
|
@@ -858,9 +869,9 @@
|
|
|
858
869
|
"pluralTitle": "Risk assessments",
|
|
859
870
|
"group": "risk",
|
|
860
871
|
"collection": "risk-assessments",
|
|
861
|
-
"description": "
|
|
872
|
+
"description": "One approved evaluation of a defined scope using the program’s risk method. It records participants, Systems, Vendors, conclusions, Evidence, and the Risks created or reassessed.",
|
|
862
873
|
"guidance": {
|
|
863
|
-
"policyBasis": "The information security and data handling policies require assessment of threats, assets, obligations,
|
|
874
|
+
"policyBasis": "The information security and data handling policies require periodic and change-driven assessment of threats, assets, obligations, Controls, likelihood, impact, and treatment.",
|
|
864
875
|
"cadence": "Complete at least annually and after a material change that could alter risk. Record new and changed risks instead of hiding them in the summary.",
|
|
865
876
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
866
877
|
"obligationActivityTypes": ["risk-assessment"]
|
|
@@ -884,8 +895,6 @@
|
|
|
884
895
|
"changedRiskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
885
896
|
"summary": {"type":"string","search":true},
|
|
886
897
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
887
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
888
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
889
898
|
"approvedOn": {"type":"date","requiredWhen":{"status":"complete"}},
|
|
890
899
|
"sourceCommit": {"type":"string"}
|
|
891
900
|
},
|
|
@@ -897,9 +906,9 @@
|
|
|
897
906
|
"pluralTitle": "Vendors",
|
|
898
907
|
"group": "systems-vendors",
|
|
899
908
|
"collection": "vendors",
|
|
900
|
-
"description": "
|
|
909
|
+
"description": "Provider companies and supplier relationships. Keep contracts, due diligence, subprocessors, continuity, and supplier risk here; record vendor software separately as Systems so Controls and Evidence can link to it.",
|
|
901
910
|
"guidance": {
|
|
902
|
-
"policyBasis": "The information security and data handling policies require
|
|
911
|
+
"policyBasis": "The information security and data handling policies require an inventory of important providers, risk-based review before access or reliance, suitable contract terms, and ongoing monitoring.",
|
|
903
912
|
"cadence": "Create before access or reliance. Review Critical and High-risk vendors at least annually and after material service changes or incidents.",
|
|
904
913
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
905
914
|
"obligationActivityTypes": ["inventory-review","vendor-review"]
|
|
@@ -929,9 +938,9 @@
|
|
|
929
938
|
"pluralTitle": "Vendor reviews",
|
|
930
939
|
"group": "systems-vendors",
|
|
931
940
|
"collection": "vendor-reviews",
|
|
932
|
-
"description": "
|
|
941
|
+
"description": "One due-diligence or periodic review of a Vendor, covering the service, data, access, assurance, recovery, incidents, contracts, Risks, Evidence, and follow-up.",
|
|
933
942
|
"guidance": {
|
|
934
|
-
"policyBasis": "The information security and data handling policies require review before a
|
|
943
|
+
"policyBasis": "The information security and data handling policies require review before a Vendor handles sensitive data or supports important services, plus periodic review of higher-risk providers.",
|
|
935
944
|
"cadence": "Complete before access, at least annually for Critical and High-risk vendors, and after material service changes or incidents.",
|
|
936
945
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
937
946
|
"obligationActivityTypes": ["vendor-review"]
|
|
@@ -948,8 +957,6 @@
|
|
|
948
957
|
"scope": {"type":"string"},
|
|
949
958
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
950
959
|
"riskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
951
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
952
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
953
960
|
"nextReviewConstraint": {"type":"object"}
|
|
954
961
|
},
|
|
955
962
|
"listFields": ["title","status","vendorIds","reviewedOn","outcome"]
|
|
@@ -959,9 +966,9 @@
|
|
|
959
966
|
"pluralTitle": "Access grants",
|
|
960
967
|
"group": "people-access",
|
|
961
968
|
"collection": "access-grants",
|
|
962
|
-
"description": "One
|
|
969
|
+
"description": "One Person’s or Service Account’s access to one System, including business need, privilege, request, approval, provisioning, expiry, removal, ticket, and Evidence.",
|
|
963
970
|
"guidance": {
|
|
964
|
-
"policyBasis": "The information security and data handling policies require unique identity, business need, least privilege, approval, authorized provisioning, and prompt removal.",
|
|
971
|
+
"policyBasis": "The information security and data handling policies require unique identity, documented business need, least privilege, approval, authorized provisioning, and prompt removal.",
|
|
965
972
|
"cadence": "Record every grant and material change. Remove access at or before notice for involuntary or high-risk departures and within 24 hours for other departures.",
|
|
966
973
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
967
974
|
},
|
|
@@ -993,9 +1000,9 @@
|
|
|
993
1000
|
"pluralTitle": "Access reviews",
|
|
994
1001
|
"group": "people-access",
|
|
995
1002
|
"collection": "access-reviews",
|
|
996
|
-
"description": "
|
|
1003
|
+
"description": "One review of a defined access population for a date or period, including Systems, reviewers, Access Grant decisions, exceptions, approval, Evidence, and source revision.",
|
|
997
1004
|
"guidance": {
|
|
998
|
-
"policyBasis": "The information security and data handling policies require owners to confirm least privilege and remove dormant, expired, excessive, or unneeded access.",
|
|
1005
|
+
"policyBasis": "The information security and data handling policies require System owners to periodically confirm least privilege and remove dormant, expired, excessive, or unneeded access.",
|
|
999
1006
|
"cadence": "Review privileged and production access at least quarterly and other important-system access at least annually.",
|
|
1000
1007
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"],
|
|
1001
1008
|
"obligationActivityTypes": ["access-review"]
|
|
@@ -1018,8 +1025,6 @@
|
|
|
1018
1025
|
"populationCount": {"type":"integer","minimum":0},
|
|
1019
1026
|
"exceptionCount": {"type":"integer","minimum":0},
|
|
1020
1027
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
1021
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1022
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]},
|
|
1023
1028
|
"approvedByIds": {"type":"array","items":"id","relation":["person"]},
|
|
1024
1029
|
"approvedOn": {"type":"date"},
|
|
1025
1030
|
"sourceCommit": {"type":"string"}
|
|
@@ -1031,9 +1036,9 @@
|
|
|
1031
1036
|
"pluralTitle": "Vulnerabilities",
|
|
1032
1037
|
"group": "security-operations",
|
|
1033
1038
|
"collection": "vulnerabilities",
|
|
1034
|
-
"description": "
|
|
1039
|
+
"description": "One confirmed weakness that needs remediation, an approved Exception, or verified closure. A separate Vulnerability register is not required for SOC 2 when the scanner or ticket system retains complete, usable records.",
|
|
1035
1040
|
"guidance": {
|
|
1036
|
-
"policyBasis": "The information security policy requires owned, risk-based remediation or
|
|
1041
|
+
"policyBasis": "The information security policy requires confirmed Vulnerabilities to receive owned, risk-based remediation or an approved Exception with compensating Controls.",
|
|
1037
1042
|
"cadence": "Remediate Critical, High, Medium, and Low vulnerabilities within 7, 14, 30, and 30 days unless an approved exception applies.",
|
|
1038
1043
|
"sourceResourceIds": ["policy-information-security"]
|
|
1039
1044
|
},
|
|
@@ -1056,8 +1061,7 @@
|
|
|
1056
1061
|
"remediatedOn": {"type":"date"},
|
|
1057
1062
|
"verifiedByIds": {"type":"array","items":"id","relation":["person"]},
|
|
1058
1063
|
"verifiedOn": {"type":"date"},
|
|
1059
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1060
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1064
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1061
1065
|
},
|
|
1062
1066
|
"listFields": ["title","status","severity","systemIds","discoveredOn","dueOn"]
|
|
1063
1067
|
},
|
|
@@ -1066,9 +1070,9 @@
|
|
|
1066
1070
|
"pluralTitle": "Vulnerability scans",
|
|
1067
1071
|
"group": "security-operations",
|
|
1068
1072
|
"collection": "vulnerability-scans",
|
|
1069
|
-
"description": "
|
|
1073
|
+
"description": "One vulnerability scan activity, including tool, scope, Systems, operator, time, result, resulting Vulnerabilities, Evidence, failure reason, and review.",
|
|
1070
1074
|
"guidance": {
|
|
1071
|
-
"policyBasis": "The information security policy requires
|
|
1075
|
+
"policyBasis": "The information security policy requires management to monitor for weaknesses and scan internet-facing and production Systems.",
|
|
1072
1076
|
"cadence": "Scan at least quarterly and after material changes when practical. Review failures and create vulnerability or finding records for confirmed results.",
|
|
1073
1077
|
"sourceResourceIds": ["policy-information-security"],
|
|
1074
1078
|
"obligationActivityTypes": ["vulnerability-scan"]
|
|
@@ -1099,9 +1103,9 @@
|
|
|
1099
1103
|
"pluralTitle": "Incidents",
|
|
1100
1104
|
"group": "security-operations",
|
|
1101
1105
|
"collection": "incidents",
|
|
1102
|
-
"description": "
|
|
1106
|
+
"description": "One suspected or confirmed security or privacy event, with severity, timeline, scope, owner, affected Systems and Vendors, Evidence, Findings, and corrective work. An Incident record is not required for SOC 2 when no incident occurred.",
|
|
1103
1107
|
"guidance": {
|
|
1104
|
-
"policyBasis": "The information security and data handling policies require
|
|
1108
|
+
"policyBasis": "The information security and data handling policies require prompt reporting, investigation, containment, recovery, evidence preservation, and review of notification duties.",
|
|
1105
1109
|
"cadence": "Create on report or detection, update material events as they progress, and complete a retrospective within one week after a material incident.",
|
|
1106
1110
|
"sourceResourceIds": ["policy-information-security","policy-data-protection-handling"]
|
|
1107
1111
|
},
|
|
@@ -1123,9 +1127,7 @@
|
|
|
1123
1127
|
"dataClassification": {"type":"string"},
|
|
1124
1128
|
"riskIds": {"type":"array","items":"id","relation":["risk"]},
|
|
1125
1129
|
"vulnerabilityIds": {"type":"array","items":"id","relation":["vulnerability"]},
|
|
1126
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1127
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1128
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1130
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1129
1131
|
},
|
|
1130
1132
|
"listFields": ["title","status","severity","detectedAt","closedAt"]
|
|
1131
1133
|
},
|
|
@@ -1134,9 +1136,9 @@
|
|
|
1134
1136
|
"pluralTitle": "Exercises",
|
|
1135
1137
|
"group": "resilience",
|
|
1136
1138
|
"collection": "exercises",
|
|
1137
|
-
"description": "
|
|
1139
|
+
"description": "One continuity, recovery, incident, or privacy simulation, including scenario, objective, participants, scope, result, Evidence, Findings, and follow-up.",
|
|
1138
1140
|
"guidance": {
|
|
1139
|
-
"policyBasis": "The information security policy requires
|
|
1141
|
+
"policyBasis": "The information security policy requires incident-response testing. The continuity plan requires exercises and another review after material change or disruption.",
|
|
1140
1142
|
"cadence": "Test incident response and continuity at least annually. Repeat after a material change when the prior exercise no longer represents the environment.",
|
|
1141
1143
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
1142
1144
|
"obligationActivityTypes": ["exercise"]
|
|
@@ -1159,9 +1161,7 @@
|
|
|
1159
1161
|
"systemIds": {"type":"array","items":"id","relation":["system"]},
|
|
1160
1162
|
"startedAt": {"type":"timestamp"},
|
|
1161
1163
|
"completedAt": {"type":"timestamp"},
|
|
1162
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1163
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1164
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1164
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1165
1165
|
},
|
|
1166
1166
|
"listFields": ["title","status","exerciseKind","scheduledOn","outcome"]
|
|
1167
1167
|
},
|
|
@@ -1170,9 +1170,9 @@
|
|
|
1170
1170
|
"pluralTitle": "Backup tests",
|
|
1171
1171
|
"group": "resilience",
|
|
1172
1172
|
"collection": "backup-tests",
|
|
1173
|
-
"description": "
|
|
1173
|
+
"description": "One restore or recovery test, including the Systems and operators involved, timing, recovery result, reviewer, Evidence, Findings, and follow-up.",
|
|
1174
1174
|
"guidance": {
|
|
1175
|
-
"policyBasis": "The information security policy and continuity plan require protected backups,
|
|
1175
|
+
"policyBasis": "The information security policy and continuity plan require protected backups, monitored failures, and tested proof that important data can be restored and used.",
|
|
1176
1176
|
"cadence": "Test restoration at least annually for important systems and after recovery changes that could invalidate prior evidence.",
|
|
1177
1177
|
"sourceResourceIds": ["policy-information-security","document-business-continuity-disaster-recovery"],
|
|
1178
1178
|
"obligationActivityTypes": ["backup-test"]
|
|
@@ -1189,9 +1189,7 @@
|
|
|
1189
1189
|
"completedAt": {"type":"timestamp"},
|
|
1190
1190
|
"recoveryTimeMinutes": {"type":"integer"},
|
|
1191
1191
|
"recoveryPointMinutes": {"type":"integer"},
|
|
1192
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1193
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1194
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1192
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1195
1193
|
},
|
|
1196
1194
|
"listFields": ["title","status","testDate","outcome","recoveryTimeMinutes"]
|
|
1197
1195
|
},
|
|
@@ -1200,9 +1198,9 @@
|
|
|
1200
1198
|
"pluralTitle": "Penetration tests",
|
|
1201
1199
|
"group": "security-operations",
|
|
1202
1200
|
"collection": "penetration-tests",
|
|
1203
|
-
"description": "
|
|
1201
|
+
"description": "One internal or external penetration test, including provider, scope, period, method, result, affected Systems, Evidence, Vulnerabilities, Findings, and review.",
|
|
1204
1202
|
"guidance": {
|
|
1205
|
-
"policyBasis": "The information security policy requires
|
|
1203
|
+
"policyBasis": "The information security policy requires independent testing of the in-scope service’s external attack surface and tracked resolution of confirmed results.",
|
|
1206
1204
|
"cadence": "Perform at least annually and reconsider scope after material attack-surface or architecture changes.",
|
|
1207
1205
|
"sourceResourceIds": ["policy-information-security"],
|
|
1208
1206
|
"obligationActivityTypes": ["penetration-test"]
|
|
@@ -1224,7 +1222,6 @@
|
|
|
1224
1222
|
"rulesOfEngagementDocumentId": {"type":"id","relation":["document"]},
|
|
1225
1223
|
"methodology": {"type":"string"},
|
|
1226
1224
|
"resultSummary": {"type":"string","search":true},
|
|
1227
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1228
1225
|
"vulnerabilityIds": {"type":"array","items":"id","relation":["vulnerability"]},
|
|
1229
1226
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
1230
1227
|
"reviewerIds": {"type":"array","items":"id","relation":["person"]},
|
|
@@ -1237,9 +1234,9 @@
|
|
|
1237
1234
|
"pluralTitle": "Data requests",
|
|
1238
1235
|
"group": "governance",
|
|
1239
1236
|
"collection": "data-requests",
|
|
1240
|
-
"description": "
|
|
1237
|
+
"description": "One privacy, contractual, or other data request tracked by opaque reference, with scope, due date, decision, Evidence, and completion. Data Request tracking is not required for a SOC 2 Security-only report.",
|
|
1241
1238
|
"guidance": {
|
|
1242
|
-
"policyBasis": "The data handling policy requires requests to reach
|
|
1239
|
+
"policyBasis": "The data handling policy requires applicable requests to reach a responsible owner, meet the governing deadline, and keep erasable personal data out of immutable Git history.",
|
|
1243
1240
|
"cadence": "Create on receipt, set the deadline from applicable law or contract, verify identity outside this repository when needed, and record completion.",
|
|
1244
1241
|
"sourceResourceIds": ["policy-data-protection-handling"]
|
|
1245
1242
|
},
|
|
@@ -1258,8 +1255,7 @@
|
|
|
1258
1255
|
"decision": {"type":"string"},
|
|
1259
1256
|
"decisionRationale": {"type":"string"},
|
|
1260
1257
|
"completedOn": {"type":"date"},
|
|
1261
|
-
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1262
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1258
|
+
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]}
|
|
1263
1259
|
},
|
|
1264
1260
|
"listFields": ["title","status","requestKind","receivedOn","dueOn"]
|
|
1265
1261
|
},
|
|
@@ -1268,10 +1264,10 @@
|
|
|
1268
1264
|
"pluralTitle": "Audits",
|
|
1269
1265
|
"group": "audits",
|
|
1270
1266
|
"collection": "audits",
|
|
1271
|
-
"description": "One SOC 2 engagement
|
|
1267
|
+
"description": "One real SOC 2 engagement with a CPA firm, including the auditor-agreed scope and period, requests, fieldwork, Findings, opinion, and final report. Management’s candidate dates remain on the Workspace.",
|
|
1272
1268
|
"guidance": {
|
|
1273
|
-
"policyBasis": "
|
|
1274
|
-
"cadence": "
|
|
1269
|
+
"policyBasis": "A CPA firm independently examines the scoped service against the selected Framework. Management supplies the system description, Controls, operating records, and Evidence.",
|
|
1270
|
+
"cadence": "Create one record after a CPA firm is engaged, or earlier only when a customer deadline makes early coordination useful. Keep management candidate dates on the workspace and record the auditor-agreed Type 1 date or Type 2 period here.",
|
|
1275
1271
|
"sourceResourceIds": ["policy-information-security"]
|
|
1276
1272
|
},
|
|
1277
1273
|
"required": ["status","auditKind","frameworkIds","scope","ownerIds"],
|
|
@@ -1282,9 +1278,9 @@
|
|
|
1282
1278
|
"scope": {"type":"string","search":true},
|
|
1283
1279
|
"auditor": {"type":"object"},
|
|
1284
1280
|
"auditorVendorId": {"type":"id","relation":["vendor"]},
|
|
1285
|
-
"typeOneAsOf": {"type":"date"},
|
|
1286
|
-
"periodStart": {"type":"date"},
|
|
1287
|
-
"periodEnd": {"type":"date"},
|
|
1281
|
+
"typeOneAsOf": {"type":"date","label":"Auditor-agreed Type 1 date"},
|
|
1282
|
+
"periodStart": {"type":"date","label":"Auditor-agreed Type 2 period start"},
|
|
1283
|
+
"periodEnd": {"type":"date","label":"Auditor-agreed Type 2 period end"},
|
|
1288
1284
|
"fieldworkStart": {"type":"date"},
|
|
1289
1285
|
"fieldworkEnd": {"type":"date"},
|
|
1290
1286
|
"reportDate": {"type":"date"},
|
|
@@ -1305,7 +1301,6 @@
|
|
|
1305
1301
|
"opinion": {"type":"enum","values":["unmodified","qualified","adverse","disclaimer","not-issued"],"filter":true},
|
|
1306
1302
|
"opinionDate": {"type":"date"},
|
|
1307
1303
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
1308
|
-
"findingIds": {"type":"array","items":"id","relation":["finding"]},
|
|
1309
1304
|
"reportEvidenceId": {"type":"id","relation":["evidence"]},
|
|
1310
1305
|
"managementResponseDocumentId": {"type":"id","relation":["document"]},
|
|
1311
1306
|
"supplementalDocumentIds": {"type":"array","items":"id","relation":["document"]}
|
|
@@ -1317,9 +1312,9 @@
|
|
|
1317
1312
|
"pluralTitle": "Audit populations",
|
|
1318
1313
|
"group": "audits",
|
|
1319
1314
|
"collection": "audit-populations",
|
|
1320
|
-
"description": "One complete
|
|
1315
|
+
"description": "One complete set of control-relevant events or items for a Type 2 period, with its source System, exact query, count, reconciliation, and fixed export, including zero-event populations.",
|
|
1321
1316
|
"guidance": {
|
|
1322
|
-
"policyBasis": "
|
|
1317
|
+
"policyBasis": "The CPA firm needs complete and accurate populations to select samples and test Controls. The linked population-export Evidence preserves the exact source set management supplied.",
|
|
1323
1318
|
"cadence": "Plan at the start of the engagement, export for the exact audit period, reconcile before fieldwork, and retain proof for zero-event populations."
|
|
1324
1319
|
},
|
|
1325
1320
|
"required": ["status","auditId","populationKind","periodStart","periodEnd","ownerIds"],
|
|
@@ -1345,9 +1340,9 @@
|
|
|
1345
1340
|
"pluralTitle": "Audit requests",
|
|
1346
1341
|
"group": "audits",
|
|
1347
1342
|
"collection": "audit-requests",
|
|
1348
|
-
"description": "One auditor request or prepared-by-client item with
|
|
1343
|
+
"description": "One auditor request or prepared-by-client item, with its Audit, owner, due date, approved response, Requirements, Controls, Evidence, and follow-up. A separate Audit Request tracker is not required for SOC 2 when the CPA firm’s portal is authoritative.",
|
|
1349
1344
|
"guidance": {
|
|
1350
|
-
"policyBasis": "Audit
|
|
1345
|
+
"policyBasis": "Audit Requests turn fieldwork into owned, dated deliverables and preserve the exact response and Evidence supplied to the CPA firm.",
|
|
1351
1346
|
"cadence": "Create on receipt, assign immediately, meet the auditor due date, bind evidence to the requested period and Git revision, and close only after acceptance."
|
|
1352
1347
|
},
|
|
1353
1348
|
"required": ["status","auditId","requestReference","description","ownerIds"],
|
|
@@ -1365,8 +1360,7 @@
|
|
|
1365
1360
|
"periodStart": {"type":"date"},
|
|
1366
1361
|
"periodEnd": {"type":"date"},
|
|
1367
1362
|
"evidenceIds": {"type":"array","items":"id","relation":["evidence"]},
|
|
1368
|
-
"auditorNotes": {"type":"string"}
|
|
1369
|
-
"actionItemIds": {"type":"array","items":"id","relation":["action-item"]}
|
|
1363
|
+
"auditorNotes": {"type":"string"}
|
|
1370
1364
|
},
|
|
1371
1365
|
"listFields": ["requestReference","title","status","dueOn","submittedOn"],
|
|
1372
1366
|
"markdown": {
|