create-filegrc 0.3.4 → 0.5.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 +4 -3
- package/package.json +1 -1
- package/src/cli.js +12 -4
- package/src/defaults.js +299 -123
- package/src/index.js +30 -17
- package/template/AGENTS.md +55 -17
- package/template/README.md +20 -9
- package/template/WORKSPACE.md +13 -0
- package/template/data/AGENTS.md +41 -11
- package/template/data/action-items/AGENTS.md +2 -2
- package/template/data/appointments/appointment-independent-policy-reviewer.json +11 -0
- package/template/data/appointments/appointment-policy-owner.json +11 -0
- package/template/data/audits/AGENTS.md +1 -1
- package/template/data/collection-reviews/collection-review-complementary-control.json +10 -0
- package/template/data/collection-reviews/collection-review-framework.json +10 -0
- package/template/data/collection-reviews/collection-review-person.json +10 -0
- package/template/data/collection-reviews/collection-review-system.json +10 -0
- package/template/data/collection-reviews/collection-review-vendor.json +10 -0
- package/template/data/documents/document-business-continuity-disaster-recovery.json +14 -13
- package/template/data/documents/document-business-continuity-disaster-recovery.md +3 -1
- package/template/data/documents/document-contractor-policy-acknowledgement.json +12 -12
- package/template/data/documents/document-contractor-training-acknowledgement.json +15 -13
- package/template/data/documents/document-data-retention-schedule.json +11 -12
- package/template/data/documents/document-employee-handbook-acknowledgement.json +12 -12
- package/template/data/documents/document-employee-policy-acknowledgement.json +12 -12
- package/template/data/documents/document-employee-training-acknowledgement.json +15 -13
- package/template/data/documents/document-incident-response-plan.json +14 -13
- package/template/data/documents/document-incident-response-plan.md +4 -2
- package/template/data/documents/document-soc2-management-assertion.json +3 -3
- package/template/data/documents/document-soc2-management-representation.json +3 -3
- package/template/data/documents/document-soc2-period-completeness.json +3 -3
- package/template/data/documents/document-soc2-system-description.json +3 -3
- package/template/data/evidence/AGENTS.md +3 -3
- package/template/data/obligation-events/AGENTS.md +2 -2
- package/template/data/obligations/AGENTS.md +1 -1
- package/template/data/people/person-program-lead.json +9 -0
- package/template/data/policies/AGENTS.md +1 -1
- package/template/data/policies/policy-anti-bribery-corruption.json +10 -15
- package/template/data/policies/policy-anti-bribery-corruption.md +1 -1
- package/template/data/policies/policy-clear-desk-screen.json +9 -14
- package/template/data/policies/policy-clear-desk-screen.md +1 -1
- package/template/data/policies/policy-data-protection-handling.json +13 -24
- package/template/data/policies/policy-data-protection-handling.md +2 -2
- package/template/data/policies/policy-employee-handbook.json +9 -18
- package/template/data/policies/policy-information-security.json +11 -42
- package/template/data/policies/policy-information-security.md +3 -3
- package/template/data/policies/policy-mobile-computing-communications.json +9 -18
- package/template/data/policies/policy-mobile-computing-communications.md +1 -1
- package/template/data/renderer.json +1 -3
- package/template/data/systems/system-filegrc-program-repository.md +2 -2
- package/template/data/training/training-anti-bribery-high-risk-roles.json +1 -2
- package/template/data/training/training-privileged-sensitive-roles.json +1 -2
- package/template/data/training/training-secure-development.json +1 -2
- package/template/data/training/training-security-awareness.json +7 -9
- package/template/data/training/training-security-awareness.md +1 -1
- package/template/data/workspace.json +19 -8
- package/template/docs/filegrc-home.png +0 -0
- package/template/package.json +3 -2
- package/template-parameters.json +6 -1
- package/template/data/people/person-policy-owner.json +0 -10
|
@@ -17,7 +17,7 @@ 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. filegrc Evidence consists of dated Step
|
|
20
|
+
1. filegrc Evidence consists of dated Step 4 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
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.
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-business-continuity-disaster-recovery",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Business Continuity and Disaster Recovery Plan",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "plan",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"interval": 1,
|
|
15
|
-
"anchorDate": "{{effective_date}}"
|
|
16
|
-
},
|
|
17
|
-
"classification": "internal",
|
|
18
|
-
"audience": ["employees", "contractors"],
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees",
|
|
13
|
+
"contractors"
|
|
14
|
+
],
|
|
19
15
|
"acknowledgementRequired": true,
|
|
20
16
|
"controlIds": [
|
|
21
17
|
"control-policy-management",
|
|
@@ -23,6 +19,11 @@
|
|
|
23
19
|
"control-backup-restoration",
|
|
24
20
|
"control-continuity-exercise"
|
|
25
21
|
],
|
|
26
|
-
"relatedDocumentIds": [
|
|
27
|
-
|
|
22
|
+
"relatedDocumentIds": [
|
|
23
|
+
"document-incident-response-plan"
|
|
24
|
+
],
|
|
25
|
+
"evidenceIds": [],
|
|
26
|
+
"classificationId": "internal",
|
|
27
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
28
|
+
"programRole": "required"
|
|
28
29
|
}
|
|
@@ -31,9 +31,11 @@ During a disruption, {{company_name}} will:
|
|
|
31
31
|
|
|
32
32
|
## Roles
|
|
33
33
|
|
|
34
|
+
These names describe recovery functions, not required job titles or separate Appointments. The current Policy Owner performs them by default and management delegates a function only when that matches how the organization actually recovers its services.
|
|
35
|
+
|
|
34
36
|
### Policy owner
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
The current Policy Owner owns this plan and keeps it current. The Policy Owner may delegate response duties but remains accountable for the plan.
|
|
37
39
|
|
|
38
40
|
### Security and risk oversight
|
|
39
41
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-contractor-policy-acknowledgement",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Contractor Policy Acknowledgement",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "attestation-template",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"controlIds": ["control-workforce-expectations"]
|
|
11
|
+
"audience": [
|
|
12
|
+
"contractors"
|
|
13
|
+
],
|
|
14
|
+
"controlIds": [
|
|
15
|
+
"control-workforce-expectations"
|
|
16
|
+
],
|
|
17
|
+
"classificationId": "internal",
|
|
18
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
19
|
+
"programRole": "conditional"
|
|
20
20
|
}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-contractor-training-acknowledgement",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Contractor Training Acknowledgement",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "attestation-template",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
11
|
+
"audience": [
|
|
12
|
+
"contractors"
|
|
13
|
+
],
|
|
14
|
+
"controlIds": [
|
|
15
|
+
"control-security-training"
|
|
16
|
+
],
|
|
17
|
+
"trainingIds": [
|
|
18
|
+
"training-security-awareness"
|
|
19
|
+
],
|
|
20
|
+
"classificationId": "internal",
|
|
21
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
22
|
+
"programRole": "conditional"
|
|
21
23
|
}
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-data-retention-schedule",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Data Retention Schedule",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "schedule",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"interval": 1,
|
|
15
|
-
"anchorDate": "{{effective_date}}"
|
|
16
|
-
},
|
|
17
|
-
"classification": "internal",
|
|
18
|
-
"audience": ["data-owners", "system-owners"],
|
|
11
|
+
"audience": [
|
|
12
|
+
"data-owners",
|
|
13
|
+
"system-owners"
|
|
14
|
+
],
|
|
19
15
|
"acknowledgementRequired": false,
|
|
20
16
|
"controlIds": [
|
|
21
17
|
"control-data-classification-inventory",
|
|
22
18
|
"control-data-retention-disposal"
|
|
23
|
-
]
|
|
19
|
+
],
|
|
20
|
+
"classificationId": "internal",
|
|
21
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
22
|
+
"programRole": "conditional"
|
|
24
23
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-employee-handbook-acknowledgement",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Employee Handbook Acknowledgement",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "attestation-template",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"controlIds": ["control-workforce-expectations"]
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees"
|
|
13
|
+
],
|
|
14
|
+
"controlIds": [
|
|
15
|
+
"control-workforce-expectations"
|
|
16
|
+
],
|
|
17
|
+
"classificationId": "internal",
|
|
18
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
19
|
+
"programRole": "conditional"
|
|
20
20
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-employee-policy-acknowledgement",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Employee Policy Acknowledgement",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "attestation-template",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"controlIds": ["control-workforce-expectations"]
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees"
|
|
13
|
+
],
|
|
14
|
+
"controlIds": [
|
|
15
|
+
"control-workforce-expectations"
|
|
16
|
+
],
|
|
17
|
+
"classificationId": "internal",
|
|
18
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
19
|
+
"programRole": "conditional"
|
|
20
20
|
}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-employee-training-acknowledgement",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Employee Training Acknowledgement",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "attestation-template",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees"
|
|
13
|
+
],
|
|
14
|
+
"controlIds": [
|
|
15
|
+
"control-security-training"
|
|
16
|
+
],
|
|
17
|
+
"trainingIds": [
|
|
18
|
+
"training-security-awareness"
|
|
19
|
+
],
|
|
20
|
+
"classificationId": "internal",
|
|
21
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
22
|
+
"programRole": "conditional"
|
|
21
23
|
}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-incident-response-plan",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "Incident Response Plan",
|
|
6
5
|
"status": "draft",
|
|
7
6
|
"documentKind": "plan",
|
|
8
|
-
"ownerIds": [
|
|
7
|
+
"ownerIds": [
|
|
8
|
+
"appointment-policy-owner"
|
|
9
|
+
],
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"interval": 1,
|
|
15
|
-
"anchorDate": "{{effective_date}}"
|
|
16
|
-
},
|
|
17
|
-
"classification": "internal",
|
|
18
|
-
"audience": ["employees", "contractors"],
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees",
|
|
13
|
+
"contractors"
|
|
14
|
+
],
|
|
19
15
|
"acknowledgementRequired": false,
|
|
20
16
|
"controlIds": [
|
|
21
17
|
"control-security-communication",
|
|
@@ -23,6 +19,11 @@
|
|
|
23
19
|
"control-incident-response",
|
|
24
20
|
"control-incident-exercise"
|
|
25
21
|
],
|
|
26
|
-
"relatedDocumentIds": [
|
|
27
|
-
|
|
22
|
+
"relatedDocumentIds": [
|
|
23
|
+
"document-business-continuity-disaster-recovery"
|
|
24
|
+
],
|
|
25
|
+
"evidenceIds": [],
|
|
26
|
+
"classificationId": "internal",
|
|
27
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
28
|
+
"programRole": "required"
|
|
28
29
|
}
|
|
@@ -8,7 +8,7 @@ This plan defines how {{company_name}} identifies, declares, contains, investiga
|
|
|
8
8
|
|
|
9
9
|
This plan applies to suspected or confirmed events affecting company or customer systems, data, identities, devices, facilities, vendors, or business operations. Availability disruptions may also activate the Business Continuity and Disaster Recovery Plan.
|
|
10
10
|
|
|
11
|
-
Questions and incident reports should be sent immediately to {{security_contact_email}}. If that route is unavailable or may be compromised, contact
|
|
11
|
+
Questions and incident reports should be sent immediately to {{security_contact_email}}. If that route is unavailable or may be compromised, contact the current Policy Owner through a known alternate channel.
|
|
12
12
|
|
|
13
13
|
## Definitions
|
|
14
14
|
|
|
@@ -41,13 +41,15 @@ Severity considers affected data, systems, customers, privileges, duration, spre
|
|
|
41
41
|
|
|
42
42
|
## Roles and authority
|
|
43
43
|
|
|
44
|
+
These names describe response functions, not required job titles or separate Appointments. The current Policy Owner performs them by default and management delegates a function only when that matches how the organization actually responds.
|
|
45
|
+
|
|
44
46
|
### Reporter
|
|
45
47
|
|
|
46
48
|
Anyone may report a suspected incident. Reporters preserve available evidence, stop unsafe activity when they can do so safely, and follow response instructions. They do not need proof before reporting.
|
|
47
49
|
|
|
48
50
|
### Incident lead
|
|
49
51
|
|
|
50
|
-
The incident lead declares the incident, assigns severity, coordinates work, maintains the incident record, approves status changes, and decides when the incident is contained and closed.
|
|
52
|
+
The incident lead declares the incident, assigns severity, coordinates work, maintains the incident record, approves status changes, and decides when the incident is contained and closed. The current Policy Owner acts as incident lead until another qualified person is assigned.
|
|
51
53
|
|
|
52
54
|
### Technical responders
|
|
53
55
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-soc2-management-assertion",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "SOC 2 Management Assertion",
|
|
@@ -7,8 +6,9 @@
|
|
|
7
6
|
"documentKind": "soc2-management-assertion",
|
|
8
7
|
"template": true,
|
|
9
8
|
"ownerIds": [
|
|
10
|
-
"
|
|
9
|
+
"appointment-policy-owner"
|
|
11
10
|
],
|
|
12
11
|
"version": "0.1",
|
|
13
|
-
"
|
|
12
|
+
"classificationId": "confidential",
|
|
13
|
+
"programRole": "required"
|
|
14
14
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-soc2-management-representation",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "SOC 2 Management Representation Letter",
|
|
@@ -7,8 +6,9 @@
|
|
|
7
6
|
"documentKind": "soc2-management-representation",
|
|
8
7
|
"template": true,
|
|
9
8
|
"ownerIds": [
|
|
10
|
-
"
|
|
9
|
+
"appointment-policy-owner"
|
|
11
10
|
],
|
|
12
11
|
"version": "0.1",
|
|
13
|
-
"
|
|
12
|
+
"classificationId": "confidential",
|
|
13
|
+
"programRole": "required"
|
|
14
14
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-soc2-period-completeness",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "SOC 2 Period Completeness Statement",
|
|
@@ -7,8 +6,9 @@
|
|
|
7
6
|
"documentKind": "soc2-period-completeness",
|
|
8
7
|
"template": true,
|
|
9
8
|
"ownerIds": [
|
|
10
|
-
"
|
|
9
|
+
"appointment-policy-owner"
|
|
11
10
|
],
|
|
12
11
|
"version": "0.1",
|
|
13
|
-
"
|
|
12
|
+
"classificationId": "confidential",
|
|
13
|
+
"programRole": "conditional"
|
|
14
14
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "document-soc2-system-description",
|
|
4
3
|
"type": "document",
|
|
5
4
|
"title": "SOC 2 System Description",
|
|
@@ -7,8 +6,9 @@
|
|
|
7
6
|
"documentKind": "soc2-system-description",
|
|
8
7
|
"template": true,
|
|
9
8
|
"ownerIds": [
|
|
10
|
-
"
|
|
9
|
+
"appointment-policy-owner"
|
|
11
10
|
],
|
|
12
11
|
"version": "0.1",
|
|
13
|
-
"
|
|
12
|
+
"classificationId": "internal",
|
|
13
|
+
"programRole": "required"
|
|
14
14
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
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
|
+
Do not create placeholder or collection-test Evidence. Control implementation maps Controls to complete authoritative Systems; `npx filegrc evidence-map --json` remains available as a focused diagnostic. Create External Evidence during Step 4 only when a real export, report, screenshot, signed file, or approved external reference exists. When an operating record needs fixed supporting proof, create or update an External Evidence record and link its ID from that record. Keep new evidence as `draft` until the artifact exists. 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
|
|
|
@@ -16,12 +16,12 @@ Onboarding does not create collection tests. After confirming applicable control
|
|
|
16
16
|
Copy a local fixed file and update the record atomically:
|
|
17
17
|
|
|
18
18
|
```sh
|
|
19
|
-
npx filegrc attach EVIDENCE_ID /path/to/source-file --name auditor-facing-name.csv
|
|
19
|
+
npx filegrc attach EVIDENCE_ID /path/to/source-file --name auditor-facing-name.csv --expected-revision REVISION
|
|
20
20
|
```
|
|
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. filegrc will not delete an evidence record while local attachments remain.
|
|
24
|
+
Read `REVISION` from `npx filegrc get EVIDENCE_ID --mutation`. Use `npx filegrc detach EVIDENCE_ID FILE_NAME --yes --expected-revision REVISION` 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
|
|
|
@@ -12,7 +12,7 @@ The obligations output lists every task the trigger will add, with its owner, de
|
|
|
12
12
|
Complete each action with the requested resource type and proof. Then close the workflow:
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npx filegrc complete-event OBLIGATION_EVENT_ID --completed-on YYYY-MM-DD
|
|
15
|
+
npx filegrc complete-event OBLIGATION_EVENT_ID --completed-on YYYY-MM-DD --expected-revision REVISION
|
|
16
16
|
```
|
|
17
17
|
|
|
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.
|
|
18
|
+
Read `REVISION` from `npx filegrc get OBLIGATION_EVENT_ID --mutation`. 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.
|
|
@@ -9,4 +9,4 @@ An obligation is a reusable policy schedule or event template. It is not the rec
|
|
|
9
9
|
- When an approved cadence changes, update the policy, control, and obligation together.
|
|
10
10
|
- Pause or retire a template only when the underlying policy work no longer applies. Do not delete historical templates that explain prior periods.
|
|
11
11
|
|
|
12
|
-
Use `npx filegrc obligations --json` to inspect calculated recurring work and preview every Policy Event task, owner, deadline, and requested proof.
|
|
12
|
+
Use `npx filegrc obligations --json` to inspect calculated recurring work and preview every Policy Event task, owner, deadline, and requested proof. Run `npx filegrc complete OBLIGATION_ID --scaffold --window-start YYYY-MM-DD --completed-on YYYY-MM-DD > completion-mutation.json`, fill the actual work and proof, then pass that file to `npx filegrc complete OBLIGATION_ID completion-mutation.json`. The scaffold includes the current Obligation revision, and the final command creates and links the dated occurrence in one validated write. Use `npx filegrc trigger EVENT_TYPE ...` only after the matching event occurs; it adds all configured Action Items to the Work Queue atomically.
|
|
@@ -4,7 +4,7 @@ Policies state required behavior. Controls, obligations, training, attestations,
|
|
|
4
4
|
|
|
5
5
|
Use the `content` Markdown slot for the policy text. Keep ownership and approval metadata in JSON. The approver must be separate from the owner, including through team membership. The reviewer will usually be another leader or manager in the organization, but may be external.
|
|
6
6
|
|
|
7
|
-
Keep a policy `draft` until its text, owner, scope, related requirements and controls, approval, effective date, review
|
|
7
|
+
Keep a policy `draft` until its text, owner, scope, related requirements and controls, approval, effective date, review Obligation, and acknowledgement requirement match actual practice. When activating it:
|
|
8
8
|
|
|
9
9
|
1. Record the real approver and approval date.
|
|
10
10
|
2. Set the effective date.
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "policy-anti-bribery-corruption",
|
|
4
3
|
"type": "policy",
|
|
5
4
|
"title": "Anti-Bribery and Corruption Policy",
|
|
6
5
|
"status": "draft",
|
|
7
|
-
"ownerIds": [
|
|
6
|
+
"ownerIds": [
|
|
7
|
+
"appointment-policy-owner"
|
|
8
|
+
],
|
|
8
9
|
"policyKind": "corporate-conduct",
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
"anchorDate": "{{effective_date}}"
|
|
16
|
-
},
|
|
17
|
-
"audience": ["employees", "contractors", "agents"],
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees",
|
|
13
|
+
"contractors",
|
|
14
|
+
"agents"
|
|
15
|
+
],
|
|
18
16
|
"acknowledgementRequired": true,
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"control-policy-management",
|
|
22
|
-
"control-workforce-expectations"
|
|
23
|
-
]
|
|
17
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
18
|
+
"programRole": "conditional"
|
|
24
19
|
}
|
|
@@ -70,7 +70,7 @@ Transactions must be recorded promptly, accurately, and with enough detail to ex
|
|
|
70
70
|
|
|
71
71
|
## Reporting
|
|
72
72
|
|
|
73
|
-
Report questions, suspected violations, requests for improper payments, or inaccurate records to
|
|
73
|
+
Report questions, suspected violations, requests for improper payments, or inaccurate records to the current Policy Owner at {{security_contact_email}}. Reports may be made without first notifying a manager.
|
|
74
74
|
|
|
75
75
|
{{company_name}} prohibits retaliation against anyone who reports a concern or participates in an investigation in good faith.
|
|
76
76
|
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
2
|
"id": "policy-clear-desk-screen",
|
|
4
3
|
"type": "policy",
|
|
5
4
|
"title": "Clear Desk and Clear Screen Policy",
|
|
6
5
|
"status": "draft",
|
|
7
|
-
"ownerIds": [
|
|
6
|
+
"ownerIds": [
|
|
7
|
+
"appointment-policy-owner"
|
|
8
|
+
],
|
|
8
9
|
"policyKind": "information-security",
|
|
9
10
|
"version": "1.0",
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
"interval": 1,
|
|
15
|
-
"anchorDate": "{{effective_date}}"
|
|
16
|
-
},
|
|
17
|
-
"audience": ["employees", "contractors"],
|
|
11
|
+
"audience": [
|
|
12
|
+
"employees",
|
|
13
|
+
"contractors"
|
|
14
|
+
],
|
|
18
15
|
"acknowledgementRequired": true,
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"control-physical-workspace-security"
|
|
22
|
-
]
|
|
16
|
+
"proposedEffectiveOn": "{{effective_date}}",
|
|
17
|
+
"programRole": "alternative"
|
|
23
18
|
}
|