filegrc 0.13.4 → 0.14.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 CHANGED
@@ -44,13 +44,13 @@ npx filegrc policy-library
44
44
 
45
45
  The command shows an exact diff only when the current text still matches the prior starter default. It skips customized, approved, active, superseded, and retired Policy content. Accept one named proposal revision only with the command printed by the review, which includes `--accept`, `--proposal-revision`, and `--yes`. Acceptance fails if the proposal changed after review. It changes only the listed defaults and does not approve a Policy, activate it, or mark a Control implemented.
46
46
 
47
- The normal runtime uses data model v6. Start a model v5 upgrade with a read-only preview:
47
+ The normal runtime uses data model v11. Existing model v10 workspaces start with a read-only preview:
48
48
 
49
49
  ```sh
50
- npx filegrc migrate --to-model 6 --preview --json
50
+ npx filegrc migrate --to-model 11 --preview --json
51
51
  ```
52
52
 
53
- Review every automatic, review-required, and unsupported item. Model v6 gives Training the same separate approval and activation lifecycle as other governed content. It preserves active model v5 Training with a visible legacy basis and removes Training schedule fields, because Obligations now own assignment timing. Resolve unsupported items before applying the same migration with `--yes`. The [model v6 upgrade guide](https://github.com/Alignbase/filegrc/blob/main/docs/upgrading-to-model-v6.md) documents the review.
53
+ Review every automatic, review-required, and unsupported item. Model v11 removes the old per-Control implementation approval fields. Owners can record implementation directly, while periodic Control oversight uses one Collection Review at the end of Step 3. Policy, Document, and Training approvals stay independent. Resolve unsupported items before applying the same migration with `--yes`. The [model v11 upgrade guide](https://github.com/Alignbase/filegrc/blob/main/docs/upgrading-to-model-v11.md) documents the review.
54
54
 
55
55
  A model v2 workspace must migrate to v3 first:
56
56
 
@@ -66,7 +66,7 @@ A model v1 workspace must migrate to v2 first:
66
66
  npx filegrc migrate --to-model 2 --preview --json
67
67
  ```
68
68
 
69
- Follow the [model v2 upgrade guide](https://github.com/Alignbase/filegrc/blob/main/docs/upgrading-to-model-v2.md), then run the model v3, v4, v5, and v6 previews in order.
69
+ Follow the [model v2 upgrade guide](https://github.com/Alignbase/filegrc/blob/main/docs/upgrading-to-model-v2.md), then migrate one model version at a time through model v11.
70
70
 
71
71
  `filegrc serve --help` prints bind, port, environment, and safety options without starting the server. The editable server prefers `127.0.0.1:8787` and chooses another available port when that port is occupied. Set `FILEGRC_HOST`, `FILEGRC_PORT`, or the matching flags when needed. In trunk mode, browser saves synchronize, commit, and push from the authoritative branch. Use `--allow-non-authoritative-writes` for local development in a task checkout; the override never commits or pushes.
72
72
 
package/model/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { readFileSync } from "node:fs";
2
2
 
3
- export const ACTIVE_MODEL_VERSION = "10";
4
- export const SUPPORTED_MODEL_VERSIONS = Object.freeze(["2", "3", "4", "5", "6", "7", "8", "9", ACTIVE_MODEL_VERSION]);
3
+ export const ACTIVE_MODEL_VERSION = "11";
4
+ export const SUPPORTED_MODEL_VERSIONS = Object.freeze(["2", "3", "4", "5", "6", "7", "8", "9", "10", ACTIVE_MODEL_VERSION]);
5
5
  export const MODEL_CAPABILITY_VERSIONS = Object.freeze({
6
6
  "guided-workflow": 3,
7
7
  "program-scope": 4,
@@ -16,7 +16,8 @@ export const MODEL_CAPABILITY_VERSIONS = Object.freeze({
16
16
  "rolled-up-obligations": 9,
17
17
  "temporal-collection-reviews": 9,
18
18
  "reporting-routes": 9,
19
- "reporting-route-sets": 10
19
+ "reporting-route-sets": 10,
20
+ "control-collection-oversight": 11
20
21
  });
21
22
 
22
23
  export function modelSupports(modelOrVersion, capability) {
@@ -31,9 +32,9 @@ export function modelSupports(modelOrVersion, capability) {
31
32
  export function loadModel(version = ACTIVE_MODEL_VERSION) {
32
33
  const requested = String(version);
33
34
  if (!SUPPORTED_MODEL_VERSIONS.includes(requested)) {
34
- const migrationTarget = requested === "1" ? "2" : requested === "2" ? "3" : requested === "3" ? "4" : requested === "4" ? "5" : requested === "5" ? "6" : requested === "6" ? "7" : requested === "7" ? "8" : requested === "8" ? "9" : "10";
35
+ const migrationTarget = requested === "1" ? "2" : requested === "2" ? "3" : requested === "3" ? "4" : requested === "4" ? "5" : requested === "5" ? "6" : requested === "6" ? "7" : requested === "7" ? "8" : requested === "8" ? "9" : requested === "9" ? "10" : "11";
35
36
  throw new Error(
36
- `Unsupported data model version "${requested}". This filegrc release supports models v2 through v10. `
37
+ `Unsupported data model version "${requested}". This filegrc release supports models v2 through v11. `
37
38
  + `Run \`npx filegrc migrate --to-model ${migrationTarget} --preview --json\` from the workspace root.`
38
39
  );
39
40
  }
package/model/v10.json CHANGED
@@ -1436,9 +1436,9 @@
1436
1436
  "policyBasis": "Policies rely on governed documents for detailed plans, schedules, procedures, charters, and reports. Approval accepts the intended values and exact content. Activation records that the linked requirements were implemented and the approved Document was put into use.",
1437
1437
  "cadence": "Complete required program Documents in Step 2, obtain approval from a reviewer who is separate from the owner, implement their linked requirements in Step 3, then activate the unchanged approved revision. Follow the linked review Obligation after activation. Prepare Audit Documents in Step 5, then approve and activate each one there as separate revision-bound updates.",
1438
1438
  "reviewPoints": [
1439
- "Keep companion Markdown to the policy, procedure, evidence, or narrative the Document records. Put FileGRC instructions and derived actions in the UI or guides unless FileGRC is the subject.",
1439
+ "Make the companion Markdown read as a finished policy, procedure, evidence record, or narrative.",
1440
1440
  "Replace every bracketed prompt with a reviewed fact before approval, activation, signing, or delivery.",
1441
- "Use ordinary business language; keep resource relationships in this record and its supporting records."
1441
+ "Write in ordinary business language. Add resource relationships to this record, not its Markdown."
1442
1442
  ],
1443
1443
  "sourceResourceIds": [
1444
1444
  "policy-information-security",
@@ -1771,9 +1771,9 @@
1771
1771
  "cadence": "Create an Evidence Artifact only for a real retained artifact or approved reference. Identify its source Component or source records, Controls, collection and verification facts, coverage, revision, and classification.",
1772
1772
  "emptyState": "No Evidence Artifacts have been collected. Add one only when a real retained artifact or approved external reference exists.",
1773
1773
  "reviewPoints": [
1774
- "For a signed management representation, use artifactKind signed-record and artifactSubtype signed-management-representation.",
1775
- "For that representation, record the signing time in businessEventAt; use collectedOn for when FileGRC received it.",
1776
- "For a final CPA report, use artifactKind third-party-report and artifactSubtype soc2-report, then record its issuance time in sourceGeneratedAt."
1774
+ "For a signed management representation, choose \"Signed Record\" for \"Artifact Kind\" and enter \"signed-management-representation\" for \"Artifact Subtype\".",
1775
+ "Enter when the representation was signed in \"Business event time\". Use \"Collected On\" for the date you received it.",
1776
+ "For a final CPA report, choose \"Third Party Report\" for \"Artifact Kind\", enter \"soc2-report\" for \"Artifact Subtype\", and enter when the CPA firm issued it in \"Source generation time\"."
1777
1777
  ],
1778
1778
  "sourceResourceIds": [
1779
1779
  "policy-information-security"
@@ -2545,7 +2545,7 @@
2545
2545
  "reviewPoints": [
2546
2546
  "Decide whether this criterion applies to the selected service, Trust Services Categories, customer commitments, and planned audit.",
2547
2547
  "Explain the decision using current service and system scope facts, not a generic statement.",
2548
- "Before marking it not applicable, confirm that no in-scope promise or control objective depends on it."
2548
+ "Before choosing \"Not Applicable\", confirm that no in-scope promise or Control objective depends on it."
2549
2549
  ]
2550
2550
  },
2551
2551
  "required": [
@@ -2592,7 +2592,7 @@
2592
2592
  "reviewPoints": [
2593
2593
  "Confirm the statement reflects a real customer promise, service requirement, or approved business objective that applies to the current scope.",
2594
2594
  "Confirm which parts of the service the promise or objective affects.",
2595
- "Use an external, zero-population, or not-applicable conclusion only when it is factually true for the current scope."
2595
+ "Use \"External\", \"Zero Population\", or \"Not Applicable\" only when it is true for the current scope."
2596
2596
  ],
2597
2597
  "sourceResourceIds": [
2598
2598
  "policy-information-security"
@@ -2737,7 +2737,7 @@
2737
2737
  "reviewPoints": [
2738
2738
  "Confirm that the linked Control actually depends on a customer or carved-out provider action.",
2739
2739
  "Make the statement specific enough for the responsible party to perform and for the system description to explain.",
2740
- "Before marking it not applicable, confirm that management is not responsible for the action."
2740
+ "Before choosing \"Not Applicable\", confirm that management is not responsible for the action."
2741
2741
  ],
2742
2742
  "sourceResourceIds": [
2743
2743
  "policy-information-security"
@@ -2866,8 +2866,8 @@
2866
2866
  "cadence": "A Control may be implemented while its governing Policy, required program Document, or Training is approved but inactive. Before marking it implemented, record its owner, actual procedure in Record Markdown, bounded System scope, operation pattern, authoritative evidence-source Components, implementation date, and enabled calendar or event Obligations. Confirm each source Component is active, has the evidence role required by the Control family and current access owners, and includes repeatable retrieval instructions in Record Markdown. Enabled Obligations remain dormant until all of their governing content is active and effective.",
2867
2867
  "reviewPoints": [
2868
2868
  "Confirm the Control is needed for the applicable Requirements, Commitments, and service boundary.",
2869
- "Describe the actual procedure. Put starter-selection and FileGRC record-entry instructions in the UI or guides, unless FileGRC is an operating Component or evidence source.",
2870
- "Use not applicable, external, or zero population only when it is true for the current scope."
2869
+ "Describe what people actually do to operate the Control.",
2870
+ "Use \"Not Applicable\", \"External\", or \"Zero Population\" only when it is true for the current scope."
2871
2871
  ],
2872
2872
  "sourceResourceIds": [
2873
2873
  "policy-information-security"
@@ -4389,9 +4389,9 @@
4389
4389
  "policyBasis": "The information security policy requires security training and added role-specific instruction when a person’s responsibilities or data access warrant it.",
4390
4390
  "cadence": "Approve the exact training content in Step 2. During Step 3, finish the linked Controls and Obligations, then activate the unchanged approved revision. Assign training through Obligations at onboarding, annually, and after relevant material changes or incidents.",
4391
4391
  "reviewPoints": [
4392
- "Keep workforce material focused on required behavior. Put FileGRC commands, record-entry instructions, and data-model terms in guides and assignments.",
4393
- "Do not imply every user needs a paid product or that customer MFA applies without an approved requirement.",
4394
- "Bind each completion to the exact revision the person reviewed."
4392
+ "Write the training for the people who must follow it and state the behavior you expect.",
4393
+ "Include product-license or customer MFA requirements only when an approved requirement calls for them.",
4394
+ "Link each completion to the exact Training revision the person completed."
4395
4395
  ],
4396
4396
  "sourceResourceIds": [
4397
4397
  "policy-information-security"
@@ -8065,7 +8065,7 @@
8065
8065
  "reviewPoints": [
8066
8066
  "Decide whether this source family applies to the current scope and audit period.",
8067
8067
  "Confirm the chosen source can produce the complete population or evidence needed.",
8068
- "Use not applicable or zero population only when that conclusion is factually true."
8068
+ "Use \"Not Applicable\" or \"Zero Population\" only when it is true."
8069
8069
  ]
8070
8070
  },
8071
8071
  "required": [