create-filegrc 0.16.5 → 0.16.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-filegrc",
3
- "version": "0.16.5",
3
+ "version": "0.16.7",
4
4
  "description": "Create a filegrc workspace for a SOC 2 program",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/defaults.js CHANGED
@@ -210,7 +210,7 @@ const controls = [
210
210
  title: "Access review and offboarding",
211
211
  statement: "Owners review privileged and production access at least quarterly and other important access at least annually. Access ends at or before notice for involuntary or high-risk departures and within 24 hours for other departures.",
212
212
  requirements: ["CC6.2", "CC6.3"],
213
- activity: "Review access populations, record decisions, and remove dormant, expired, or unneeded access.",
213
+ activity: "Review complete access populations, including workers and third parties with customer-data access, record decisions, and remove dormant, expired, or unneeded access.",
214
214
  controlType: "detective",
215
215
  operationMode: "manual",
216
216
  operationPattern: "mixed",
@@ -282,7 +282,7 @@ const controls = [
282
282
  title: "Endpoint protection",
283
283
  statement: "Devices that access company systems use approved configuration, encryption, screen locking, supported software, security updates, and continuous malware protection when supported.",
284
284
  requirements: ["CC6.6", "CC6.8", "CC7.1"],
285
- activity: "Use continuous platform protection where supported and verify endpoint configuration, update, and compliance state on the approved risk-based schedule when periodic work is needed.",
285
+ activity: "Document protection coverage and approved deviations by device or platform class. Use continuous platform protection where supported and verify configuration, updates, and compliance on the approved risk-based schedule when periodic work is needed.",
286
286
  controlType: "preventive",
287
287
  operationMode: "automated",
288
288
  operationPattern: "mixed",
@@ -294,7 +294,7 @@ const controls = [
294
294
  title: "Network and remote-access security",
295
295
  statement: "The organization restricts network paths, separates production and nonproduction environments according to data and risk, protects remote access with approved encryption and authentication, and reviews material network access rules at least annually.",
296
296
  requirements: ["CC6.6", "CC6.7"],
297
- activity: "Manage boundaries, environment connections, firewall rules, wireless safeguards, and remote production access.",
297
+ activity: "Document and verify customer and environment boundaries, approved network rules and deviations by source, wireless safeguards, and remote production access.",
298
298
  controlType: "preventive",
299
299
  operationMode: "hybrid",
300
300
  operationPattern: "mixed",
@@ -318,7 +318,7 @@ const controls = [
318
318
  title: "Vulnerability management",
319
319
  statement: "The organization monitors for vulnerabilities, chooses scan coverage and cadence based on exposure and risk, and assigns each confirmed vulnerability an approved risk-based remediation target or time-bound Exception.",
320
320
  requirements: ["CC7.1", "CC7.2", "CC7.3"],
321
- activity: "Choose scan coverage and cadence, define approved risk-based remediation targets, and document time-bound Exceptions when a target cannot be met.",
321
+ activity: "Define scan scope and cadence, severity criteria, risk-based remediation and patch targets, and time-bound Exceptions when a target cannot be met.",
322
322
  controlType: "detective",
323
323
  operationMode: "hybrid",
324
324
  operationPattern: "mixed",
@@ -414,7 +414,7 @@ const controls = [
414
414
  title: "Vendor monitoring",
415
415
  statement: "Owners review critical and high-risk vendors at least annually and reassess affected vendors within 30 days after a material service change or incident, then track risks, findings, and follow-up work.",
416
416
  requirements: ["CC4.1", "CC9.2"],
417
- activity: "Review vendor performance, assurance, recovery, access, incidents, and contract obligations.",
417
+ activity: "Set review intervals by Vendor risk and customer-data access. Review performance, assurance, recovery, access, incidents, and contract obligations, and reassess after material change.",
418
418
  controlType: "detective",
419
419
  operationMode: "manual",
420
420
  operationPattern: "mixed",
@@ -1157,7 +1157,7 @@ export function baselineRecordFiles(effectiveDate, starter = "security") {
1157
1157
  : obligation.recurrence,
1158
1158
  ...(obligation.window ? { window: obligation.window } : {}),
1159
1159
  ...(starterObligationSelector(obligation.id) ? { selector: starterObligationSelector(obligation.id) } : {}),
1160
- rationale: "Starter proposal derived from the linked Policy. Management must review the cadence, population, completion criteria, and timing before activation.",
1160
+ rationale: starterObligationRationale(obligation.id),
1161
1161
  sourceResourceIds: [...(obligation.policyIds || [])]
1162
1162
  }));
1163
1163
  const sourceCoverageRecords = SOURCE_FAMILIES.map(([sourceFamilyId, title]) => {
@@ -1243,6 +1243,18 @@ function starterObligationSelector(obligationId) {
1243
1243
  } : null;
1244
1244
  }
1245
1245
 
1246
+ function starterObligationRationale(obligationId) {
1247
+ const reviews = {
1248
+ "obligation-quarterly-privileged-access-review": "Cover privileged and production access. Add other customer-data access only when an approved commitment or risk decision requires quarterly review.",
1249
+ "obligation-annual-access-review": "Cover other important access, including customer-data paths not assigned to a shorter approved review schedule. Avoid counting the same access twice.",
1250
+ "obligation-monthly-endpoint-protection-verification": "Confirm device and platform classes, protection coverage, exceptions, evidence, and whether the monthly cadence fits the approved risk decision.",
1251
+ "obligation-annual-network-access-review": "Confirm the in-scope network and host rule sources, customer and environment boundaries, deviations, and review cadence.",
1252
+ "obligation-quarterly-vulnerability-scan": "Confirm scan scope, severity method, remediation and patch targets, and whether exposure or a customer commitment requires a shorter cadence, such as monthly.",
1253
+ "obligation-annual-critical-vendor-review": "Confirm the high and critical Vendor population, and set a separate review interval for other Vendors with customer-data access where needed."
1254
+ };
1255
+ return `Starter proposal derived from the linked Policy. Management must review the cadence, population, completion criteria, and timing before activation. ${reviews[obligationId] || ""}`.trim();
1256
+ }
1257
+
1246
1258
  export async function writeBaselineRecords(target, effectiveDate, starter = "security") {
1247
1259
  for (const { path: relativePath, record } of baselineRecordFiles(effectiveDate, starter)) {
1248
1260
  const path = join(target, relativePath);
package/src/index.js CHANGED
@@ -524,13 +524,13 @@ async function runCombinedSetup(target, input) {
524
524
  async function writeMinimalLockfile(target, name, versionRange) {
525
525
  const lock = {
526
526
  name,
527
- version: "0.16.5",
527
+ version: "0.16.7",
528
528
  lockfileVersion: 3,
529
529
  requires: true,
530
530
  packages: {
531
531
  "": {
532
532
  name,
533
- version: "0.16.5",
533
+ version: "0.16.7",
534
534
  dependencies: { filegrc: versionRange }
535
535
  }
536
536
  }
@@ -21,6 +21,8 @@ npx filegrc program-amendment SOURCE_RESOURCE_ID --json
21
21
 
22
22
  `program-path --next --json` gives agents the current step and first action. Use `--summary` for all five step statuses or `--current` for the current step’s page summaries, detailed guidance fields, commands, and next actions. The general guide lists every supported action and record type. A type guide adds the checks needed for that resource, including timing, required and conditional fields, current relationship candidates, JSON location, and Markdown slots.
23
23
 
24
+ Before proposing a new process or record for a Control, inspect the current Control, its linked Policy and Markdown, Obligations, operating records, Components, and Evidence with `get`, `list`, `search`, and `references`. Read `get CONTROL_ID --workflow --json` and the relevant type guides to find the actual gap. Reuse an existing rule or workflow when it covers the requirement. If the design exists but operation is unproven, ask for the real event, actors, dates, and evidence needed to record it; do not ask management to design the process again. Ask users only for decisions or facts that the repository and available sources cannot verify. Never infer that a Policy or planned Obligation proves the Control operated.
25
+
24
26
  For a new record, generate a mutation envelope:
25
27
 
26
28
  ```sh
@@ -64,6 +66,8 @@ The JSON and Markdown under `data/`, the installed model, policy content, and Gi
64
66
 
65
67
  Start with `npx filegrc program-path --next --json` for the current step and next action. Use `npx filegrc workflow --json` when you need the complete derived checklist, named readiness assessments, blockers, and Work Items. `guide`, `list --workflow`, `get --workflow`, mutation previews, the HTTP API, and the browser consume the same calculation. In `get --workflow` output, `findings` and `workItems` preserve the complete checklist relevant to that record. `related` additionally groups downstream work that the record supports but that belongs to another record or program step. Resolve a derived finding by changing its source facts, recording a reviewed applicability decision, accepting an allowed Exception, or completing authoritative assigned work. Never add a separate TODO file or UI-only completion flag for calculated work.
66
68
 
69
+ The workflow recommendation's `context` lists existing connected records, the work phase, and unmet checks. Open those records before following a setup prompt. A connected Policy, Obligation, or Evidence record is context; check the dated work and its proof before saying a Control operated.
70
+
67
71
  FileGRC marks an item `blocked` only when named prerequisite records must be resolved first. A missing record, editable error, or management decision is `ready` when you can act on it now, even when it prevents a readiness assessment from passing.
68
72
 
69
73
  An Action Item or Audit Request is a source record because it captures a real assignment, owner, deadline, and completion proof. A Collection Review is also a source record because FileGRC cannot infer that management reviewed an apparently complete or empty collection. `npx filegrc guide RESOURCE_TYPE --json` returns the type-specific review criteria and current confirmation state. Use `npx filegrc review-collection RESOURCE_TYPE --scaffold`, fill the conclusion and reviewer facts, preview it, then apply it with `--yes`. FileGRC calculates the collection revision and marks the confirmation stale after a reviewed record or material scope fact changes.
@@ -18,6 +18,10 @@ npx filegrc search "TERM" --json
18
18
 
19
19
  Use `program-path --next --json` for the current lifecycle step. Use `workflow --json` when you need the full shared assessments, complete checklist, Work Items, and blockers. Use `guide` before any unfamiliar create or status transition. It reports required fields, fields required by a status, enum values, relationship types and candidates, Markdown slots, timing, and exact paths. Use `describe` only when you need the raw model definition.
20
20
 
21
+ Before creating a record or asking for a new procedure, inspect matching records and their links with `list`, `search`, `get RESOURCE_ID --workflow --json`, and `references RESOURCE_ID --json`. Read the linked Policy and companion Markdown, Control, Obligations, operating records, Components, and Evidence as applicable. Reuse the authoritative record and update it when needed. Separate a documented design or enabled schedule from proof that work actually occurred. Ask for only the missing business facts, decisions, or external evidence that you cannot verify; do not invent an event or ask for facts already recorded here.
22
+
23
+ In `get RESOURCE_ID --workflow --json`, inspect `workflow.recommended.context.existing` before using `scaffold`. The listed records are relationship candidates, not proof that work occurred.
24
+
21
25
  After changing a lifecycle fact directly, review `reconcile --preview --json`. A candidate asks whether the change represents a real policy event. Supply the actual event date or timestamp, departure risk when relevant, and explicit confirmation before applying it. If it is a false positive, use `reconcile --dismiss` with the exact candidate fingerprint, a Person reviewer, the review date, a rationale, and `--yes`. The immutable dismissal suppresses only that fingerprint.
22
26
 
23
27
  ## Choose the right record
@@ -120,6 +120,8 @@ Removable media containing Confidential or Restricted data requires owner approv
120
120
 
121
121
  The Data Retention Schedule defines the approved period and disposal method for important in-scope record classes. Supporting standards, procedures, and system records document implementation. Disposal must be suitable for the media and classification, with dated proof when the Control requires it.
122
122
 
123
+ Owners document and test how approved deletion requests and retention cutoffs apply to primary data, derived copies, local copies, Vendor-held data, and backups. Procedures identify copies that cannot be removed immediately, their access restrictions and expiry, and any legal hold or contractual limit. Owners verify completion against the approved scope before representing data as deleted.
124
+
123
125
  ## Cryptography, Encryption, Key, and Secrets Management Policy
124
126
 
125
127
  ### Encryption requirements
@@ -164,6 +166,8 @@ Passwords and other authenticators must meet settings approved for the System's
164
166
  - **Customer and external-user access:** MFA is required when an approved Control, customer commitment, or risk decision requires it.
165
167
  - **Exceptions:** Where required MFA is unavailable, management must approve a time-bound Exception with a risk assessment, compensating Controls, an accountable owner, and a review or expiration date.
166
168
 
169
+ Owners document customer authentication and workforce authentication separately for each relevant System. They record whether either path uses single sign-on, where MFA is enforced, and how access is revoked. Remote-access methods are selected and approved for the System and risk; a VPN is required only when an approved Control, commitment, or risk decision calls for one.
170
+
167
171
  ## Endpoint, Mobile Device, BYOD, and Malware Protection Policy
168
172
 
169
173
  ### Company devices and platform protection
@@ -194,6 +198,8 @@ Owners restrict inbound, outbound, and internal network paths and management int
194
198
 
195
199
  Production, development, test, and general-user environments must be separated to the extent needed for their data, exposure, privileges, and change risk. Connections between environments require approved paths and safeguards. Wireless and other local networks used for company work require authentication and encryption appropriate to current risk and technical capability.
196
200
 
201
+ When a service processes data for multiple customers, owners define and enforce customer-data boundaries appropriate to the architecture. They verify that access paths and material changes preserve those boundaries, and record the test method, result, and follow-up.
202
+
197
203
  ## Configuration Management and System Maintenance Policy
198
204
 
199
205
  Important Systems and Components use documented secure configuration expectations based on trusted guidance, technical capability, and risk. Owners change or disable unnecessary default accounts, credentials, services, ports, features, and configurations. Deviations require review and, when material, an approved Exception.
@@ -230,6 +236,8 @@ Important Systems record and protect the security and operational events needed
230
236
 
231
237
  Logs use synchronized time, restrict alteration and access, and avoid unnecessary secrets or personal data. Each System's retention period belongs in the approved Data Retention Schedule. Owners document risk-based alerts, review paths, thresholds, and response ownership in approved standards, procedures, and schedules.
232
238
 
239
+ When an incident may require investigation, responders preserve relevant logs and their context under the incident process, with controlled access and a documented retention or hold decision.
240
+
233
241
  ### Monitoring and alert testing
234
242
 
235
243
  Systems with availability commitments, recovery objectives, or material operational dependencies monitor the health, capacity, failure, and service indicators needed to detect degradation. Representative alert paths are tested from generation through acknowledgement, escalation, and fallback on the approved schedule and after a material path change. This requirement does not prescribe a particular monitoring or log-management product.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "{{project_name}}",
3
- "version": "0.16.5",
3
+ "version": "0.16.7",
4
4
  "private": true,
5
5
  "description": "filegrc workspace for a SOC 2 program",
6
6
  "type": "module",