create-filegrc 0.7.0 → 0.8.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.
Files changed (30) hide show
  1. package/README.md +1 -1
  2. package/package.json +3 -2
  3. package/src/defaults.js +82 -38
  4. package/src/index.js +2 -2
  5. package/template/AGENTS.md +17 -11
  6. package/template/README.md +11 -7
  7. package/template/WORKSPACE.md +2 -0
  8. package/template/data/AGENTS.md +9 -7
  9. package/template/data/audits/AGENTS.md +10 -0
  10. package/template/data/documents/AGENTS.md +17 -0
  11. package/template/data/documents/document-data-retention-schedule.json +1 -0
  12. package/template/data/documents/document-data-retention-schedule.md +2 -2
  13. package/template/data/documents/document-security-incident-recovery-plan.json +1 -0
  14. package/template/data/documents/document-security-incident-recovery-plan.md +9 -9
  15. package/template/data/documents/document-soc2-management-assertion.json +2 -2
  16. package/template/data/documents/document-soc2-management-assertion.md +7 -7
  17. package/template/data/documents/document-soc2-management-representation.json +2 -2
  18. package/template/data/documents/document-soc2-management-representation.md +1 -1
  19. package/template/data/documents/document-soc2-period-completeness.json +2 -2
  20. package/template/data/documents/document-soc2-period-completeness.md +4 -4
  21. package/template/data/documents/document-soc2-system-description.json +2 -2
  22. package/template/data/documents/document-soc2-system-description.md +4 -4
  23. package/template/data/evidence/AGENTS.md +1 -1
  24. package/template/data/obligations/AGENTS.md +1 -1
  25. package/template/data/policies/AGENTS.md +6 -2
  26. package/template/data/policies/policy-information-security.json +1 -2
  27. package/template/data/policies/policy-information-security.md +232 -40
  28. package/template/data/training/training-security-awareness.md +7 -7
  29. package/template/data/workspace.json +1 -1
  30. package/template/package.json +1 -1
@@ -16,11 +16,11 @@ Retention periods may come from law, contract, tax, audit, security, or a docume
16
16
  | Customer and service records | [Complete before approval: Systems or Components] | [Complete before approval: owner] | [Complete before approval: trigger] | [Complete before approval: retention] | Delete or anonymize | Contract, law, and business need |
17
17
  | Incident and investigation records | Approved incident and Evidence Systems | Incident owner | Incident closure | [Complete before approval: retention] | Archive or securely delete | Legal, insurance, contract, and security needs |
18
18
 
19
- Add rows for each important data class in the System and Vendor inventories. A row is incomplete until it names the source System or Component, owner, trigger, period, disposal action, and authority. FileGRC detects the bracketed prompts as approval blockers. Remove each prompt only after replacing it with a reviewed fact.
19
+ Add rows for each important data class in the System and Vendor inventories. A row is incomplete until it names the source System or Component, owner, trigger, period, disposal action, and authority. Remove each bracketed prompt only after replacing it with a reviewed fact.
20
20
 
21
21
  ## Holds and exceptions
22
22
 
23
- An approved legal hold, investigation, or preservation duty suspends normal deletion for the affected records. Record the authority, scope, owner, start date, and release decision outside this public template.
23
+ An approved legal hold, investigation, or preservation duty suspends normal deletion for the affected records. Record the authority, scope, owner, start date, and release decision in controlled legal-hold records.
24
24
 
25
25
  Any retention exception needs a reason, owner, approval, compensating safeguards, and expiration or next review date.
26
26
 
@@ -4,6 +4,7 @@
4
4
  "title": "Security Incident and Recovery Plan",
5
5
  "status": "draft",
6
6
  "documentKind": "plan",
7
+ "workflowScope": "program",
7
8
  "ownerIds": [
8
9
  "appointment-policy-owner"
9
10
  ],
@@ -2,13 +2,13 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- This plan coordinates reporting, response, recovery, and continuity when a security event or disruption affects {{company_name}} or an in-scope service. Controls, Components, Systems, Obligations, and Evidence hold the actual technical configuration and proof of operation.
5
+ This plan coordinates reporting, response, recovery, and continuity when a security event or disruption affects {{company_name}} or an in-scope service. Supporting procedures, system records, and retained evidence document the actual technical configuration and operation.
6
6
 
7
7
  ## Reporting routes
8
8
 
9
9
  The primary reporting route is {{security_contact_email}}.
10
10
 
11
- [Complete before activation: Name a usable alternate reporting route, its owner, protected location, and how workers can find it when the primary email, identity, or collaboration System is unavailable, compromised, or involved in the concern. Do not put secrets in this plan.]
11
+ [Complete before activation: Name a usable alternate reporting route, its owner, protected location, and how workers can find it when the primary email, identity, or collaboration System is unavailable, compromised, or involved in the concern. Do not put plaintext credentials, private keys, tokens, or recovery codes in this plan.]
12
12
 
13
13
  Reports may describe suspected unauthorized access, malware, data loss, credential exposure, security-Control failure, service disruption, fraud affecting the service, or another policy violation. The recipient records the report, protects confidentiality, preserves relevant information, and assigns an initial owner.
14
14
 
@@ -22,7 +22,7 @@ The Policy Owner maintains this plan and ensures that the organization assigns t
22
22
  - Executive decision-maker for major business, customer, insurance, or legal decisions
23
23
  - Communication owner for workforce, customer, Vendor, and public messages
24
24
 
25
- If an incident raises a legal, privacy, or insurance question, the incident lead gets suitable advice at that time. FileGRC does not require pre-arranged counsel, in-house counsel, or a standing legal retainer.
25
+ If an incident raises a legal, privacy, or insurance question, the incident lead obtains suitable advice at that time. A pre-arranged counsel relationship or standing legal retainer is required only when management determines that the organization's obligations and risk warrant one.
26
26
 
27
27
  [Complete before activation: Record the emergency contact arrangement, its owner, alternate communication channel, protected storage location, and review schedule.]
28
28
 
@@ -49,24 +49,24 @@ The team does not destroy Evidence, promise external notification, or make publi
49
49
 
50
50
  ## Recovery priorities and procedures
51
51
 
52
- [Complete before activation: Link every important System and record its approved recovery time objective, recovery point objective, maximum tolerable downtime, dependencies, owner, and critical customer commitments in the System record.]
52
+ [Complete before activation: Document every important System's approved recovery time objective, recovery point objective, maximum tolerable downtime, dependencies, owner, and critical customer commitments.]
53
53
 
54
- For each important System, the applicable Control, Component, System, and Obligation records must identify:
54
+ Supporting recovery documentation for each important System must identify:
55
55
 
56
56
  - The backup or alternate recovery approach
57
57
  - Scope, frequency, retention, monitoring, and failure response
58
58
  - Recovery and restoration procedure
59
59
  - People who can access the procedure and required Systems
60
- - Restore-validation method and governed schedule
60
+ - Restore-validation method and approved schedule
61
61
  - Dependencies, fallback paths, and validation steps
62
62
 
63
- [Confirm or replace before activation: The starter proposal for important production data is a daily backup, 30-day retention period, and annual restore validation. Record the approved choice for every important System in its Control, Component, System, Retention Schedule, and Obligation records.]
63
+ [Confirm or replace before activation: The proposed starting point for important production data is a daily backup, 30-day retention period, and annual restore validation. Document the approved choice for every important System in its recovery procedures and the Data Retention Schedule.]
64
64
 
65
65
  If no approved objective or procedure exists during an event, the incident lead records an interim decision based on customer impact, data risk, and dependencies, then assigns the missing permanent decision as follow-up work.
66
66
 
67
67
  ## Alternate plan access
68
68
 
69
- [Complete before activation: Record the protected alternate location and access method responders will use when the primary identity, source-control, or collaboration Systems are unavailable. Confirm that authorized responders can retrieve the plan without exposing secrets.]
69
+ [Complete before activation: Record the protected alternate location and access method responders will use when the primary identity, source-control, or collaboration Systems are unavailable. Confirm that authorized responders can retrieve the plan without exposing plaintext secrets or decryption keys.]
70
70
 
71
71
  ## Closure and follow-up
72
72
 
@@ -74,6 +74,6 @@ The incident lead closes the incident only after affected Systems are stable, se
74
74
 
75
75
  ## Exercises and maintenance
76
76
 
77
- Management tests a representative security alert from generation through receipt, acknowledgement, escalation, and fallback on the approved governed schedule. It also exercises incident coordination, alternate plan access, emergency contacts, and recovery of selected important Systems on their approved schedules.
77
+ Management tests a representative security alert from generation through receipt, acknowledgement, escalation, and fallback on the approved schedule. It also exercises incident coordination, alternate plan access, emergency contacts, and recovery of selected important Systems on their approved schedules.
78
78
 
79
79
  Each exercise records scope, participants, objectives, result, Evidence, Exceptions, findings, and follow-up. The owner reviews this plan after a material incident, failed exercise, important System change, or reporting-path change and on the approved Policy-review schedule.
@@ -4,11 +4,11 @@
4
4
  "title": "SOC 2 Management Assertion",
5
5
  "status": "draft",
6
6
  "documentKind": "soc2-management-assertion",
7
+ "workflowScope": "engagement",
7
8
  "template": true,
8
9
  "ownerIds": [
9
10
  "appointment-policy-owner"
10
11
  ],
11
12
  "version": "0.1",
12
- "classificationId": "confidential",
13
- "programRole": "required"
13
+ "classificationId": "confidential"
14
14
  }
@@ -1,24 +1,24 @@
1
1
  # {{company_name}} Management Assertion
2
2
 
3
- > Draft preparation document. Reconcile this draft to the wording agreed with the service auditor before approval.
3
+ > Draft preparation document. Retain the section that matches the engagement, remove the other draft section, and reconcile the final wording with the service auditor before approval.
4
+
5
+ ## Type 1 Assertion Draft
4
6
 
5
- <!-- type-1:start -->
6
7
  Management is responsible for the attached description of the in-scope system as of [as-of date] and for designing, implementing, and documenting the controls within that system.
7
8
 
8
9
  Based on the criteria selected for the engagement, management asserts that:
9
10
 
10
- 1. The description presents the system that was designed and implemented as of [as-of date].
11
+ 1. The attached description presents the system as designed and implemented as of [as-of date], in accordance with the applicable SOC 2 Description Criteria.
11
12
  2. The controls stated in the description were suitably designed to provide reasonable assurance that the applicable service commitments, system requirements, and Trust Services Criteria would be met, assuming the complementary controls identified in the description operated effectively.
12
- <!-- type-1:end -->
13
13
 
14
- <!-- type-2:start -->
14
+ ## Type 2 Assertion Draft
15
+
15
16
  Management is responsible for the attached description of the in-scope system for [start date] through [end date] and for designing, implementing, operating, and documenting the controls within that system.
16
17
 
17
18
  Based on the criteria selected for the engagement, management asserts that:
18
19
 
19
- 1. The description presents the system that was designed and implemented during [start date] through [end date].
20
+ 1. The attached description presents the system as designed and implemented during [start date] through [end date], in accordance with the applicable SOC 2 Description Criteria.
20
21
  2. The controls stated in the description were suitably designed to provide reasonable assurance that the applicable service commitments, system requirements, and Trust Services Criteria would be met, assuming the complementary controls identified in the description operated effectively.
21
22
  3. The controls operated effectively throughout [start date] through [end date].
22
- <!-- type-2:end -->
23
23
 
24
24
  [Identify the responsible management signer, title, signature or approval method, and date.]
@@ -4,11 +4,11 @@
4
4
  "title": "SOC 2 Management Representation Letter",
5
5
  "status": "draft",
6
6
  "documentKind": "soc2-management-representation",
7
+ "workflowScope": "engagement",
7
8
  "template": true,
8
9
  "ownerIds": [
9
10
  "appointment-policy-owner"
10
11
  ],
11
12
  "version": "0.1",
12
- "classificationId": "confidential",
13
- "programRole": "required"
13
+ "classificationId": "confidential"
14
14
  }
@@ -17,4 +17,4 @@ Final letter received from auditor: [Date]
17
17
 
18
18
  Management signer and title: [Name and title]
19
19
 
20
- Signed letter evidence record: [Evidence ID]
20
+ Signed letter reference: [Approved storage location or evidence reference]
@@ -4,11 +4,11 @@
4
4
  "title": "SOC 2 Period Completeness Statement",
5
5
  "status": "draft",
6
6
  "documentKind": "soc2-period-completeness",
7
+ "workflowScope": "engagement",
7
8
  "template": true,
8
9
  "ownerIds": [
9
10
  "appointment-policy-owner"
10
11
  ],
11
12
  "version": "0.1",
12
- "classificationId": "confidential",
13
- "programRole": "conditional"
13
+ "classificationId": "confidential"
14
14
  }
@@ -4,9 +4,9 @@
4
4
 
5
5
  Reporting period: [start date] through [end date]
6
6
 
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.
7
+ Management reconciled every population used for this engagement to its authoritative source and included every item relevant to the in-scope system and controls. The accompanying `population-index.csv` is incorporated into this statement by reference and records each population reference, source system, query, timezone, count, validation, reviewer, conclusion, and fixed export.
8
8
 
9
- | Population | filegrc population ID | Result or exception |
9
+ | Population | Population reference | 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] |
@@ -19,7 +19,7 @@ Management reconciled every audit-population record linked to this engagement to
19
19
  | Backup failures and restoration tests | [Population ID] | [Result] |
20
20
  | Security exceptions and control findings | [Population ID] | [Result] |
21
21
 
22
- For a population with zero items, retain the source-Component export or report that produced the zero count. Describe any source limitation, omitted item, or reconciliation difference below.
22
+ For a population with zero items, retain the authoritative-source export or report that produced the zero count. Describe any source limitation, omitted item, or reconciliation difference below.
23
23
 
24
24
  ## Exceptions and Source Limitations
25
25
 
@@ -27,6 +27,6 @@ For a population with zero items, retain the source-Component export or report t
27
27
 
28
28
  ## Management Confirmation
29
29
 
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.
30
+ To the best of management's knowledge after the reconciliations above, management's records and 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.]
@@ -4,11 +4,11 @@
4
4
  "title": "SOC 2 System Description",
5
5
  "status": "draft",
6
6
  "documentKind": "soc2-system-description",
7
+ "workflowScope": "engagement",
7
8
  "template": true,
8
9
  "ownerIds": [
9
10
  "appointment-policy-owner"
10
11
  ],
11
12
  "version": "0.1",
12
- "classificationId": "internal",
13
- "programRole": "required"
13
+ "classificationId": "internal"
14
14
  }
@@ -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 filegrc records, and have the service auditor review the final presentation.
3
+ > Draft preparation document. Complete every bracketed item, reconcile it to management's authoritative 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 filegrc commitment records.]
19
+ [Summarize customer commitments, contractual security promises, internal objectives, and the system requirements needed to meet them. Reconcile the summary to supporting 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 filegrc.]
49
+ [Reference the selected criteria and management's control matrix.]
50
50
 
51
51
  ## DC6: Complementary User Entity Controls
52
52
 
@@ -58,7 +58,7 @@
58
58
 
59
59
  ## DC8: Criteria Not Relevant
60
60
 
61
- [Identify any criteria within an included category that are not relevant and explain why.]
61
+ [State that CC1.1 through CC9.2 remain in scope for the mandatory Security category. For any optional Trust Services Category, identify a criterion that the service auditor agrees is not relevant in the limited circumstances allowed by the criteria, and explain why. Otherwise state that management identified no criteria as not relevant.]
62
62
 
63
63
  ## DC9: Significant Changes
64
64
 
@@ -29,4 +29,4 @@ For a signed acknowledgement, bind the attestation to the exact content Git revi
29
29
 
30
30
  For a `population-export`, also record the authoritative `sourceComponentId`, exact period, generation timestamp, timezone, query or report parameters, item count, completeness check, and accuracy check. A zero-item population still needs its source export and query.
31
31
 
32
- Do not commit secrets, session data, regulated data, or personal data that may need erasure. Use an approved external reference when Git is not an appropriate store.
32
+ Do not commit plaintext credentials, private keys, tokens, recovery codes, session data, regulated data, or personal data that may need erasure. Source-controlled ciphertext is allowed only under the Information Security Policy's approved encryption, separate-key, access, and rotation conditions. Use an approved external reference when Git is not an appropriate store.
@@ -5,7 +5,7 @@ An obligation is a reusable policy schedule or event template. It is not the rec
5
5
  - Calendar obligations need a valid recurrence anchor, owners, expected completion types, and policy or control links.
6
6
  - Event obligations need a stable lowercase `eventType`, a prompt, owners, expected completion types, and an explicit deadline window.
7
7
  - Keep completed occurrences in `completionResourceIds`. Do not replace prior links when a new period starts.
8
- - Configure and enable Obligations during Step 3. An enabled Obligation remains dormant until every governing Policy is active and effective and, when it names Controls, at least one linked Control is implemented.
8
+ - Configure and enable Obligations during Step 3. An enabled Obligation remains dormant until every governing Policy and required program Document is active and effective and, when it names Controls, at least one linked Control is implemented. FileGRC starts calendar work from the latest Policy or governed Document effective date, so pre-cutover periods do not become overdue work.
9
9
  - Calendar Obligations generated with `status: proposed` contain suggested starting cadences. Review the scope and risk, edit the cadence when needed, and change the Obligation to `active` only when management accepts that schedule. A proposed Obligation never counts as a configured schedule.
10
10
  - When an approved cadence changes, update the policy, control, and obligation together.
11
11
  - Pause or retire a template only when the underlying policy work no longer applies. Do not delete historical templates that explain prior periods.
@@ -10,13 +10,15 @@ Use the `content` Markdown slot for the policy text. Keep ownership and approval
10
10
 
11
11
  Keep a Policy `draft` until its text, owner, scope, related Requirements and Controls, review Obligation, and acknowledgement requirement are ready for independent review. Move it to `approved` when management accepts the exact content revision. Approval does not require every linked Control to be implemented and does not make the Policy effective.
12
12
 
13
- The Security starter contains one Information Security Policy. Add another Policy only when management expands the program scope or has a distinct approval audience, owner, or legal requirement.
13
+ The Security starter contains one consolidated Information Security Policy. Its section headings use common policy-family names so a customer, auditor, or questionnaire reviewer can locate topics such as access control, personnel security, vulnerability management, incident response, continuity, and Vendor risk. Cite the consolidated Policy and exact section when that accurately answers a request. Do not claim that each section is a separate document, that the heading proves implementation, or that FileGRC supplies a certification.
14
+
15
+ Add another Policy only when management expands the program scope or has a distinct approval audience, owner, or legal requirement.
14
16
 
15
17
  During Step 3, implement Controls while the governing Policy is approved but inactive. Configure and enable its schedules, which remain dormant. Use the Controls-page cutover or `activate-policies --scaffold` to review the approved Policy. Before selecting it for activation:
16
18
 
17
19
  1. Review the per-Policy activation assessment.
18
20
  2. Review linked Controls that are planned or partial, missing Components or evidence sources, missing schedules, and unresolved Exceptions.
19
- 3. Complete required governed plans and assign Training or Attestations.
21
+ 3. Confirm required governed plans and schedules have independent Step 2 approval, implement their linked requirements, and activate their exact approved revisions separately in Step 3.
20
22
  4. Set the real effective date and change the approved Policy to `active` at implementation cutover.
21
23
  5. If management activates with a known gap, document the decision, follow-up, and any time-bound Exception. Activation does not mark a Control implemented, and Evidence Readiness still requires active and operating Policies.
22
24
 
@@ -25,3 +27,5 @@ The independent Policy approver is a management reviewer, not the CPA auditor. A
25
27
  If a proposed effective date has passed, choose a current or future activation date. Never backdate adoption.
26
28
 
27
29
  For a material revision, preserve Git history, obtain a new approval, and require a new acknowledgement when the audience’s responsibilities changed. Do not reuse the audit firm as a management approver without confirming independence.
30
+
31
+ After updating the `filegrc` package, run `npx filegrc policy-library` to review optional starter updates. The command prints exact diffs and skips customized or adopted Policy content. It writes only after you accept the named proposal and exact revision with the printed `--accept`, `--proposal-revision`, and `--yes` command. Acceptance fails if the proposal changed after review. It does not approve the Policy or mark a linked Control implemented.
@@ -10,8 +10,7 @@
10
10
  "version": "1.0",
11
11
  "audience": [
12
12
  "employees",
13
- "contractors",
14
- "vendors"
13
+ "contractors"
15
14
  ],
16
15
  "acknowledgementRequired": true,
17
16
  "relatedDocumentIds": [