create-filegrc 0.2.0 → 0.3.1
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/LICENSE +1 -1
- package/README.md +31 -4
- package/package.json +3 -3
- package/src/cli.js +106 -16
- package/src/defaults.js +17 -13
- package/src/index.js +265 -32
- package/template/AGENTS.md +21 -35
- package/template/README.md +24 -20
- package/template/WORKSPACE.md +5 -14
- package/template/data/AGENTS.md +8 -8
- package/template/data/action-items/AGENTS.md +2 -2
- package/template/data/audits/AGENTS.md +3 -3
- package/template/data/documents/document-business-continuity-disaster-recovery.json +0 -1
- package/template/data/documents/document-contractor-policy-acknowledgement.json +0 -1
- package/template/data/documents/document-contractor-training-acknowledgement.json +0 -1
- package/template/data/documents/document-data-retention-schedule.json +0 -1
- package/template/data/documents/document-employee-handbook-acknowledgement.json +0 -1
- package/template/data/documents/document-employee-policy-acknowledgement.json +0 -1
- package/template/data/documents/document-employee-training-acknowledgement.json +0 -1
- package/template/data/documents/document-incident-response-plan.json +0 -1
- package/template/data/documents/document-soc2-management-assertion.json +0 -3
- package/template/data/documents/document-soc2-management-representation.json +0 -3
- package/template/data/documents/document-soc2-period-completeness.json +0 -3
- package/template/data/documents/document-soc2-period-completeness.md +2 -2
- package/template/data/documents/document-soc2-system-description.json +0 -3
- package/template/data/documents/document-soc2-system-description.md +3 -3
- package/template/data/evidence/AGENTS.md +3 -3
- package/template/data/obligation-events/AGENTS.md +1 -1
- package/template/data/people/person-policy-owner.json +1 -1
- package/template/data/policies/policy-anti-bribery-corruption.json +0 -1
- package/template/data/policies/policy-clear-desk-screen.json +0 -1
- package/template/data/policies/policy-data-protection-handling.json +0 -1
- package/template/data/policies/policy-employee-handbook.json +0 -1
- package/template/data/policies/policy-information-security.json +0 -1
- package/template/data/policies/policy-mobile-computing-communications.json +0 -1
- package/template/data/systems/system-filegrc-program-repository.md +3 -3
- package/template/data/workspace.json +3 -3
- package/template/docs/filegrc-audit.png +0 -0
- package/template/docs/filegrc-home.png +0 -0
- package/template/docs/filegrc-social-preview.png +0 -0
- package/template/package.json +2 -2
- package/template-parameters.json +46 -2
- package/template/data/people/person-independent-approver.json +0 -9
package/template/README.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#
|
|
1
|
+
# filegrc
|
|
2
|
+
|
|
3
|
+

|
|
2
4
|
|
|
3
5
|
Run a SOC 2 program as files in Git.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
filegrc gives a founder-led engineering team one place to adopt policies, implement controls, test External Evidence collection, run recurring compliance work, and prepare an audit. JSON holds structured records, Markdown holds long-form work, and Git supplies the change history.
|
|
6
8
|
|
|
7
9
|
There is no separate application database. The repository is the program, so engineers and agents can use the same data through the web app, a text editor, or the CLI.
|
|
8
10
|
|
|
9
|
-

|
|
10
|
-
|
|
11
11
|
## Why it exists
|
|
12
12
|
|
|
13
13
|
SOC 2 work tends to scatter across documents, calendars, tickets, screenshots, and the auditor’s request list. That makes it hard to answer basic questions: What is due? Which policy requires it? What changed during the audit period? Is the evidence complete?
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
filegrc keeps that work connected:
|
|
16
16
|
|
|
17
17
|
- A starter Security program links criteria references, policies, planned controls, owners, and schedules.
|
|
18
18
|
- Work Queue turns policy timing into upcoming, due, and overdue work.
|
|
@@ -34,20 +34,22 @@ npm run validate
|
|
|
34
34
|
npm run serve
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
The default `security` starter builds the full proposed SOC 2 Security program. Use `--starter foundation` to create only the five structural records when you want to select a framework and program content later. Company and service values can also be supplied together through `create-filegrc --config setup.json`.
|
|
38
|
+
|
|
39
|
+
Setup asks for the legal organization name, the initial policy owner and their email, a security reporting address, and the program timezone. It initializes Git when needed. The first local run then defines the initial service boundary and an optional program goal. A Type 2 choice records management intent, not an audit engagement. Completing onboarding opens Step 1 so you can add the real reviewers and operators, finish the oversight team, and confirm the criteria, commitments, vendors, and systems before moving on.
|
|
38
40
|
|
|
39
41
|
Open the printed local URL. You can commit locally from Repository without configuring a remote. Add a remote when the team is ready to share the workspace, then the browser can pull with rebase and push reviewed commits.
|
|
40
42
|
|
|
41
|
-
The creation summary reports the resolved engine version, install result, and whether the target joined an existing Git worktree. Generated workspaces receive an organization-specific README with their engine version, validation commands, and remaining setup work.
|
|
43
|
+
The creation summary reports the resolved engine version, program timezone, starter record counts, install result, and whether the target joined an existing Git worktree. Generated workspaces receive an organization-specific README with their engine version, validation commands, and remaining setup work.
|
|
42
44
|
|
|
43
45
|
## How it works
|
|
44
46
|
|
|
45
47
|
1. Confirm the program’s people and oversight team, applicable criteria, commitments, material vendors, and in-scope systems.
|
|
46
48
|
2. Review and activate the policies with a separate management reviewer, who is usually internal and may be external.
|
|
47
49
|
3. Tailor the starter controls, add each owner, actual procedure, scope, cadence, evidence source, and implementation date, and confirm any linked Work Queue schedules are enabled. Marking a control implemented starts eligible schedules. Then record any complementary customer or subservice controls.
|
|
48
|
-
4.
|
|
49
|
-
5. Start the management candidate period, maintain risk assessments and risks, update controls when needed, work the
|
|
50
|
-
6. Engage a CPA firm, record the separate firm-agreed period, review
|
|
50
|
+
4. After confirming the applicable controls and authoritative source Systems, preview the proposed External Evidence drafts with `npx filegrc evidence-test-drafts --preview --json`. Create only the relevant drafts, collect each named artifact, and have another person verify it.
|
|
51
|
+
5. Start the management candidate period, maintain risk assessments and risks, update controls when needed, work the filegrc queue, and preserve dated evidence.
|
|
52
|
+
6. Engage a CPA firm, record the separate firm-agreed period, review filegrc Evidence and External Evidence, prepare fieldwork, and generate the evidence packet.
|
|
51
53
|
|
|
52
54
|
Long-form policies, procedures, plans, minutes, training, assertions, and audit responses are Markdown companions beside their JSON records. Screenshots, signed acknowledgements, reports, and fixed exports are attachments linked through evidence records.
|
|
53
55
|
|
|
@@ -57,7 +59,9 @@ Third-party software is usually both a System and a Vendor. The application is t
|
|
|
57
59
|
|
|
58
60
|
Use Overview to follow one six-step path: define scope, approve policies, implement controls, test External Evidence, operate the program, then complete the audit. Steps 1 through 4 and Step 6 open an overview with instructions, record links, progress, and completion status. Step 5 opens Policy Events and the Work Queue because operation is ongoing rather than a one-time checklist. The progress tracker opens the first incomplete step.
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
Use Work Queue for recurring work, Policy Event tasks, and other assigned follow-up. Trigger a Policy Event when the underlying change occurs, and filegrc adds its required actions to the queue with their owners and deadlines. Create a separate Action Item only when follow-up needs its own assignee, deadline, and completion proof. Each queue item shows its due window or deadline. Link dated proof to close the work.
|
|
61
65
|
|
|
62
66
|
Use the resource pages to maintain systems, people, vendors, risks, controls, tests, incidents, training, meetings, and External Evidence. The question-mark guide on each list explains what the record type is for, which policies call for it, and when to update it.
|
|
63
67
|
|
|
@@ -69,7 +73,7 @@ npx filegrc program-path --json
|
|
|
69
73
|
npx filegrc scaffold risk-assessment --title "2026 Annual Risk Assessment"
|
|
70
74
|
npx filegrc list risk --json
|
|
71
75
|
npx filegrc obligations --json
|
|
72
|
-
npx filegrc program-readiness --json
|
|
76
|
+
npx filegrc program-readiness --summary --json
|
|
73
77
|
npx filegrc complete obligation-id completion-record.json
|
|
74
78
|
npx filegrc trigger person-started --occurred-on 2026-07-25 --subject person-id
|
|
75
79
|
npx filegrc complete-action action-item-id completion-record.json --completed-on 2026-07-25
|
|
@@ -77,7 +81,7 @@ npx filegrc complete-event obligation-event-id --completed-on 2026-07-25
|
|
|
77
81
|
npx filegrc search "access review"
|
|
78
82
|
```
|
|
79
83
|
|
|
80
|
-
`program-path` reports the same six steps, current status, page order, exact Instructions, Use, Policy Basis, and next actions shown in the renderer. `guide` reports that same page guidance for one resource, plus timing, required fields, valid values, relationship candidates, and Markdown locations. `scaffold` produces the same JSON and Markdown mutation shape used by the browser. Read `AGENTS.md` and `data/AGENTS.md` for the full headless workflow.
|
|
84
|
+
`program-path` reports the same six steps, current status, page order, exact Instructions, Use, Policy Basis, and next actions shown in the renderer. `program-readiness --summary --json` reports compact stage counts and next actions; omit `--summary` when you need every readiness item. `guide` reports that same page guidance for one resource, plus timing, required fields, valid values, relationship candidates, and Markdown locations. `scaffold` produces the same JSON and Markdown mutation shape used by the browser. Read `AGENTS.md` and `data/AGENTS.md` for the full headless workflow.
|
|
81
85
|
|
|
82
86
|
## Start the evidence period
|
|
83
87
|
|
|
@@ -88,17 +92,17 @@ npx filegrc program-readiness --json
|
|
|
88
92
|
npx filegrc program-readiness --require-ready
|
|
89
93
|
```
|
|
90
94
|
|
|
91
|
-
The Evidence Ready gate requires defined scope, effective policies, implemented controls, configured authoritative systems, and verified collection for external evidence that does not already have a dedicated Step 5 record. Put scan reports, backup output, and other fixed artifacts in External Evidence records, then link them from the applicable Step 5 operating records. Starter obligations remain enabled proposals until their governing policies are effective and at least one linked control is implemented. A
|
|
95
|
+
The Evidence Ready gate requires defined scope, effective policies, implemented controls, configured authoritative systems, and verified collection for external evidence that does not already have a dedicated Step 5 record. Put scan reports, backup output, and other fixed artifacts in External Evidence records, then link them from the applicable Step 5 operating records. Starter obligations remain enabled proposals until their governing policies are effective and at least one linked control is implemented. A filegrc-managed control cannot be implemented while one of its linked Work Queue schedules is paused or waiting for policy approval.
|
|
92
96
|
|
|
93
97
|
When the gate passes, record `candidatePeriodStart` on the workspace on the date reliable collection begins. This is management’s candidate Type 2 period. Do not backdate it. The later audit record keeps the separate period agreed with the CPA firm.
|
|
94
98
|
|
|
95
99
|
## Prepare the audit
|
|
96
100
|
|
|
97
|
-
After engaging a CPA firm, create the audit record with the firm, scope, and exact agreed date or period. Audit Readiness checks the program foundation, engagement, formal scope and dates, management documents,
|
|
101
|
+
After engaging a CPA firm, create the audit record with the firm, scope, and exact agreed date or period. Audit Readiness checks the program foundation, engagement, formal scope and dates, management documents, filegrc Evidence, External Evidence, and Type 2 populations.
|
|
98
102
|
|
|
99
|
-

|
|
100
104
|
|
|
101
|
-
For a Type 2 audit, reconcile each complete period population to its authoritative system after the period closes. A zero-item population still needs its source export and query.
|
|
105
|
+
For a Type 2 audit, reconcile each complete period population to its authoritative system after the period closes. A zero-item population still needs its source export and query. filegrc Evidence consists of dated operating records and their Markdown and Git history. External Evidence consists of verified exports, reports, screenshots, signed files, and approved external references. The packet compiles both paths with the selected records, attachments, indexes, historical versions, and SHA-256 checksums.
|
|
102
106
|
|
|
103
107
|
```sh
|
|
104
108
|
npx filegrc prepare-audit audit-id
|
|
@@ -106,15 +110,15 @@ npx filegrc audit-readiness audit-id --json
|
|
|
106
110
|
npx filegrc evidence-packet --audit audit-id
|
|
107
111
|
```
|
|
108
112
|
|
|
109
|
-
|
|
113
|
+
filegrc checks management preparation and packet integrity. The independent CPA firm still selects samples, tests controls, evaluates exceptions, decides whether evidence is sufficient, and issues the SOC 2 report.
|
|
110
114
|
|
|
111
115
|
Early CPA engagement remains available when a customer deadline, unusual scope, or other timing risk needs input before the program reaches Evidence Ready. It is optional, not the default first action.
|
|
112
116
|
|
|
113
117
|
## What belongs elsewhere
|
|
114
118
|
|
|
115
|
-
|
|
119
|
+
filegrc does not replace workforce, identity, source-control, deployment, infrastructure, monitoring, endpoint, backup, vulnerability, training, signature, procurement, contract, or vendor-risk systems.
|
|
116
120
|
|
|
117
|
-
Catalog each authoritative system in
|
|
121
|
+
Catalog each authoritative system in filegrc, record how to export from it, and attach or reference the fixed evidence when Audit Readiness asks for it. The generated external-delivery index identifies files that still need to be supplied through an auditor portal or another approved channel.
|
|
118
122
|
|
|
119
123
|
The starter uses the SOC 2 Security category and does not include licensed criteria text. Add Availability, Processing Integrity, Confidentiality, or Privacy only when they are in scope.
|
|
120
124
|
|
package/template/WORKSPACE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# {{
|
|
1
|
+
# {{program_title}}
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
{{program_summary}}
|
|
4
4
|
|
|
5
|
-
The workspace uses
|
|
5
|
+
The workspace uses filegrc {{filegrc_version}} through the dependency spec `{{filegrc_version_range}}`.
|
|
6
6
|
|
|
7
7
|
## Work locally
|
|
8
8
|
|
|
@@ -27,15 +27,6 @@ npx filegrc validate --json
|
|
|
27
27
|
|
|
28
28
|
Read `AGENTS.md` and `data/AGENTS.md` before broad changes.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
{{starter_setup}}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
1. Use browser onboarding or `npx filegrc setup --help` to record the initial service and goal, then finish Step 1 by confirming the people and oversight team, applicable criteria, commitments, material vendors, and in-scope systems.
|
|
35
|
-
2. Review the starter policies, appoint a reviewer who is separate from the policy owner, and activate only the policies that match current practice. The reviewer will usually be another person in the organization, but may be external.
|
|
36
|
-
3. Review the starter control set, implement each applicable control with its actual procedure, scope, cadence, evidence sources, and implementation date, and confirm any linked Work Queue schedules are enabled. Marking a control implemented starts eligible schedules. Then record any complementary customer or subservice controls.
|
|
37
|
-
4. Open each generated External Evidence draft, choose its authoritative source System, collect the named artifact, and have another person verify it.
|
|
38
|
-
5. Run `npx filegrc program-readiness --require-ready`, record the management candidate period start when reliable evidence collection begins, maintain risk assessments and risks, update controls when needed, use Work Queue for scheduled work, and trigger Policy Events when changes create required actions. `npx filegrc obligations` previews every event task, owner, deadline, and requested proof before the trigger creates anything.
|
|
39
|
-
6. Engage a CPA firm, record the separate firm-agreed period in an audit record, review FileGRC Evidence and External Evidence, and prepare fieldwork.
|
|
40
|
-
|
|
41
|
-
FileGRC manages GRC records and audit evidence. It does not replace infrastructure logging, monitoring, identity, backup, endpoint, or incident-detection systems.
|
|
32
|
+
filegrc manages GRC records and audit evidence. It does not replace infrastructure logging, monitoring, identity, backup, endpoint, or incident-detection systems.
|
package/template/data/AGENTS.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# filegrc Data Instructions
|
|
2
2
|
|
|
3
3
|
These instructions apply to every file under `data/`. The root `AGENTS.md` explains the program and Git workflow. A collection-level `AGENTS.md`, when present, adds rules for that resource.
|
|
4
4
|
|
|
@@ -24,7 +24,7 @@ Use `program-path` to find the current lifecycle step and see the renderer’s e
|
|
|
24
24
|
- Work required on a schedule or event belongs in `obligation`.
|
|
25
25
|
- A dated instance of work belongs in its activity type, such as `meeting`, `risk-assessment`, `access-review`, `vulnerability-scan`, `backup-test`, or `exercise`.
|
|
26
26
|
- A fact that may change over time belongs in an inventory record, such as `person`, `system`, `asset`, `vendor`, or `access-grant`.
|
|
27
|
-
- A dated Step 5 operating record proves that
|
|
27
|
+
- A dated Step 5 operating record proves that filegrc-managed work occurred. Put each fixed external artifact in an `evidence` record and link it from the operating record; never add an unexplained attachment.
|
|
28
28
|
- Follow-up work belongs in `action-item`. A gap belongs in `finding`, a known threat belongs in `risk`, and an approved temporary departure belongs in `exception`.
|
|
29
29
|
- An auditor request belongs in `audit-request`; the engagement itself belongs in `audit`.
|
|
30
30
|
|
|
@@ -61,7 +61,7 @@ npx filegrc create /tmp/filegrc-mutation.json
|
|
|
61
61
|
npx filegrc validate --json
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Creation is atomic. If JSON, Markdown, relationships, or validation fail,
|
|
64
|
+
Creation is atomic. If JSON, Markdown, relationships, or validation fail, filegrc rolls back the write. IDs are globally unique and immutable after commit.
|
|
65
65
|
|
|
66
66
|
## Read and update
|
|
67
67
|
|
|
@@ -77,7 +77,7 @@ Edit the exported mutation, then run:
|
|
|
77
77
|
npx filegrc update RESOURCE_TYPE RESOURCE_ID /tmp/filegrc-mutation.json
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
The mutation includes the complete record, current Markdown, and revision hashes.
|
|
80
|
+
The mutation includes the complete record, current Markdown, and revision hashes. filegrc rejects the update if another person or agent changed either source after export. Reload and reapply the intended change instead of overwriting it.
|
|
81
81
|
|
|
82
82
|
To update JSON and Markdown together, pass `{ "record": {...}, "content": {...}, "revision": "...", "contentRevisions": {...} }`. To change one Markdown slot:
|
|
83
83
|
|
|
@@ -121,7 +121,7 @@ Delete only an uncommitted draft or a mistake:
|
|
|
121
121
|
npx filegrc delete RESOURCE_TYPE RESOURCE_ID --yes
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
filegrc rejects deletion that breaks references and removes owned Markdown with the JSON. Retire, close, cancel, supersede, or replace committed records that explain historical operation.
|
|
125
125
|
|
|
126
126
|
## Evidence and attachments
|
|
127
127
|
|
|
@@ -148,7 +148,7 @@ Remove a local attachment explicitly before deleting its evidence record:
|
|
|
148
148
|
npx filegrc detach EVIDENCE_ID source-export.csv --yes
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
filegrc will not delete an evidence record that still has local attachments.
|
|
152
152
|
|
|
153
153
|
Never invent evidence, dates, approvals, results, people, or source-system details. If a required fact is unavailable, leave the record in a non-final state and report the missing input.
|
|
154
154
|
|
|
@@ -167,13 +167,13 @@ Run `obligations` before `trigger` to preview every Policy Event task, owner, de
|
|
|
167
167
|
## Audit work
|
|
168
168
|
|
|
169
169
|
```sh
|
|
170
|
-
npx filegrc program-readiness --json
|
|
170
|
+
npx filegrc program-readiness --summary --json
|
|
171
171
|
npx filegrc prepare-audit AUDIT_ID
|
|
172
172
|
npx filegrc audit-readiness AUDIT_ID --json
|
|
173
173
|
npx filegrc evidence-packet --audit AUDIT_ID --preview --json
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
Run Program Readiness before creating the normal audit engagement. It checks scope, effective policies, implemented controls, evidence sources, and test captures without an audit ID. Fix readiness errors in source records. Do not edit packet output under `.filegrc/`. A delivery-ready
|
|
176
|
+
Run Program Readiness before creating the normal audit engagement. It checks scope, effective policies, implemented controls, evidence sources, and test captures without an audit ID. Fix readiness errors in source records. Do not edit packet output under `.filegrc/`. A delivery-ready filegrc packet means the management checks passed; the engagement team still judges evidence and performs the examination.
|
|
177
177
|
|
|
178
178
|
## Finish every change
|
|
179
179
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Action Item Instructions
|
|
2
2
|
|
|
3
|
-
Create an Action Item only when follow-up needs its own assignee, deadline, and completion proof. Keep simpler remediation on the Finding or other source record. Set `sourceResourceId` to the record that created the work;
|
|
3
|
+
Create an Action Item only when follow-up needs its own assignee, deadline, and completion proof. Keep simpler remediation on the Finding or other source record. Set `sourceResourceId` to the record that created the work; filegrc derives the backlink and adds every open Action Item to Work Queue. Keep the assignee, due date or policy window, blockers, completion records, and evidence explicit.
|
|
4
4
|
|
|
5
5
|
For an event-generated action, do not weaken or extend its policy deadline by hand. Create the requested completion resource and close the action atomically:
|
|
6
6
|
|
|
@@ -8,4 +8,4 @@ For an event-generated action, do not weaken or extend its policy deadline by ha
|
|
|
8
8
|
npx filegrc complete-action ACTION_ITEM_ID completion-mutation.json --completed-on YYYY-MM-DD
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
filegrc rejects the wrong completion type. Mark ordinary Action Items `done` only after the work occurred, set `completedOn`, and link the completion record or evidence. Use `blocked` while a named dependency prevents work, and link that dependency with `blockingResourceIds`.
|
|
@@ -17,10 +17,10 @@ Preparation creates engagement-specific management documents and, for Type 2, po
|
|
|
17
17
|
|
|
18
18
|
Review both evidence paths for the exact formal date or period:
|
|
19
19
|
|
|
20
|
-
1.
|
|
20
|
+
1. filegrc Evidence consists of dated Step 5 operating records. Complete the record, link it to the applicable Controls, record the result in its fields or Markdown, and link any external artifact needed to support that result.
|
|
21
21
|
2. External Evidence consists of verified `evidence` records from other Systems. Confirm the source System, date or period, Control links, collector, verifier, and fixed attachment or approved external reference.
|
|
22
22
|
|
|
23
|
-
The packet compiles both paths. It includes
|
|
23
|
+
The packet compiles both paths. It includes filegrc records and Markdown with Git history, plus External Evidence records, retained attachments, delivery indexes, and checksums.
|
|
24
24
|
|
|
25
25
|
Run readiness repeatedly and fix source records. Preview the packet before writing it:
|
|
26
26
|
|
|
@@ -29,4 +29,4 @@ npx filegrc evidence-packet --audit AUDIT_ID --preview --json
|
|
|
29
29
|
npx filegrc evidence-packet --audit AUDIT_ID
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Do not state that an auditor accepted evidence, selected a sample, cleared an exception, or issued a report unless that fact came from the engagement team.
|
|
32
|
+
Do not state that an auditor accepted evidence, selected a sample, cleared an exception, or issued a report unless that fact came from the engagement team. filegrc tracks management preparation; the CPA firm owns examination judgments and the report.
|
|
@@ -6,7 +6,7 @@ Reporting period: [start date] through [end date]
|
|
|
6
6
|
|
|
7
7
|
Management reconciled every audit-population record linked to this engagement to its authoritative source and included every item relevant to the in-scope system and controls. The generated `population-index.csv` is incorporated into this statement by reference and records each population ID, source system, query, timezone, count, validation, reviewer, conclusion, and fixed export.
|
|
8
8
|
|
|
9
|
-
| Population |
|
|
9
|
+
| Population | filegrc population ID | Result or exception |
|
|
10
10
|
| --- | --- | --- |
|
|
11
11
|
| Workforce starts, role changes, and departures | [Population ID] | [Result] |
|
|
12
12
|
| Access grants, changes, reviews, and removals | [Population ID] | [Result] |
|
|
@@ -27,6 +27,6 @@ For a population with zero items, retain the source-system export or report that
|
|
|
27
27
|
|
|
28
28
|
## Management Confirmation
|
|
29
29
|
|
|
30
|
-
To the best of management's knowledge after the reconciliations above,
|
|
30
|
+
To the best of management's knowledge after the reconciliations above, filegrc and the linked evidence contain the complete populations and reportable events relevant to the engagement period.
|
|
31
31
|
|
|
32
32
|
[Identify the responsible signer, title, signature or approval method, and date.]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# {{company_name}} SOC 2 System Description
|
|
2
2
|
|
|
3
|
-
> Draft preparation document. Complete every bracketed item, reconcile it to the
|
|
3
|
+
> Draft preparation document. Complete every bracketed item, reconcile it to the filegrc records, and have the service auditor review the final presentation.
|
|
4
4
|
|
|
5
5
|
## Reporting Period and Scope
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
## DC2: Service Commitments and System Requirements
|
|
18
18
|
|
|
19
|
-
[Summarize customer commitments, contractual security promises, internal objectives, and the system requirements needed to meet them. Link the
|
|
19
|
+
[Summarize customer commitments, contractual security promises, internal objectives, and the system requirements needed to meet them. Link the filegrc commitment records.]
|
|
20
20
|
|
|
21
21
|
## DC3: System Components
|
|
22
22
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
## DC5: Applicable Criteria and Controls
|
|
48
48
|
|
|
49
|
-
[Reference the selected criteria and control matrix generated by
|
|
49
|
+
[Reference the selected criteria and control matrix generated by filegrc.]
|
|
50
50
|
|
|
51
51
|
## DC6: Complementary User Entity Controls
|
|
52
52
|
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
An evidence record explains what a proof item is, where it came from, what period it supports, who collected it, and which records or controls it supports. The attachment alone is not enough.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Onboarding does not create collection tests. After confirming applicable controls and authoritative source Systems, preview proposed tests with `npx filegrc evidence-test-drafts --preview --json`, then explicitly create the missing drafts. Risk assessments, meetings, vendor reviews, attestations, vulnerability scans, penetration tests, backup tests, exercises, exceptions, and findings do not need a separate test. When one of those operating records needs a fixed external artifact, create or update an External Evidence record for the artifact and link its ID from the operating record. Keep a created collection test as `draft` until the artifact has actually been captured. Set it to `collected` only after selecting the source System, attaching or referencing the result, and recording the source, date, classification, and collector. Set it to `verified` only after another named person checks it.
|
|
6
6
|
|
|
7
7
|
## Create evidence
|
|
8
8
|
|
|
9
9
|
1. Run `npx filegrc guide evidence --json`.
|
|
10
10
|
2. Use one evidence record for one coherent proof item or fixed export.
|
|
11
11
|
3. Put local attachments under `data/evidence/EVIDENCE_ID/` and list their data-relative paths in `filePaths`.
|
|
12
|
-
4. Use `externalReference` only when the file must remain in an approved external system.
|
|
12
|
+
4. Use `externalReference` only when the file must remain in an approved external system. filegrc never fetches it.
|
|
13
13
|
5. Link `sourceResourceIds`, `controlIds`, and `auditIds` as applicable. Use `sourceCommit` when the evidence represents repository state.
|
|
14
14
|
6. Name the actual collector. A `verified` record also needs the actual verifier and verification date.
|
|
15
15
|
|
|
@@ -21,7 +21,7 @@ npx filegrc attach EVIDENCE_ID /path/to/source-file --name auditor-facing-name.c
|
|
|
21
21
|
|
|
22
22
|
The command never overwrites an existing attachment.
|
|
23
23
|
|
|
24
|
-
Use `npx filegrc detach EVIDENCE_ID FILE_NAME --yes` when removing a mistaken attachment.
|
|
24
|
+
Use `npx filegrc detach EVIDENCE_ID FILE_NAME --yes` when removing a mistaken attachment. filegrc will not delete an evidence record while local attachments remain.
|
|
25
25
|
|
|
26
26
|
For a rendered page capture, record the route, filters, audit period, exact Git commit, capture time and method, source resource IDs, and screenshot. A current screenshot cannot prove an earlier state unless it is rendered from or bound to that revision.
|
|
27
27
|
|
|
@@ -15,4 +15,4 @@ Complete each action with the requested resource type and proof. Then close the
|
|
|
15
15
|
npx filegrc complete-event OBLIGATION_EVENT_ID --completed-on YYYY-MM-DD
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
filegrc refuses to close an event with unfinished or unproved actions. Cancel an event only when the triggering event itself was entered in error or did not occur; explain the reason in related records or the commit message.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# filegrc Program Repository
|
|
2
2
|
|
|
3
|
-
This Git repository is the system of record for
|
|
3
|
+
This Git repository is the system of record for filegrc governance records and their revision history. It can supply the training and acknowledgement catalog, exception and finding populations, policy and document approvals, obligation history, Policy Event workflows, and management evidence indexes.
|
|
4
4
|
|
|
5
5
|
## Evidence Extraction
|
|
6
6
|
|
|
7
|
-
Run
|
|
7
|
+
Run filegrc from a clean commit. Use resource dates and audit links to select the exact engagement date or period, save the query or agent instructions with the export, and retain the fixed result behind an evidence record. Record a zero count when the committed source query returns no relevant items.
|
|
8
8
|
|
|
9
9
|
The repository is authoritative only for records stored here. Identity, workforce, source-control, deployment, monitoring, endpoint, backup, vulnerability, and vendor systems remain authoritative for the activity they perform.
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"dataModelVersion": "1",
|
|
4
4
|
"id": "workspace",
|
|
5
5
|
"type": "workspace",
|
|
6
|
-
"title": "{{
|
|
6
|
+
"title": "{{program_title}}",
|
|
7
7
|
"organizationName": "{{company_name}}",
|
|
8
|
-
"timezone": "
|
|
9
|
-
"description": "
|
|
8
|
+
"timezone": "{{timezone}}",
|
|
9
|
+
"description": "{{program_description}}",
|
|
10
10
|
"riskMethodology": {
|
|
11
11
|
"method": "5x5 likelihood and impact",
|
|
12
12
|
"likelihoodScale": ["Rare", "Unlikely", "Possible", "Likely", "Almost certain"],
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/template/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{project_name}}",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"private": true,
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "filegrc workspace for a SOC 2 program",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"serve": "filegrc serve",
|