create-filegrc 0.16.4 → 0.16.5
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 +1 -1
- package/src/cli.js +12 -8
- package/src/index.js +5 -2
- package/template/AGENTS.md +9 -9
- package/template/WORKSPACE.md +1 -1
- package/template/package.json +1 -1
- package/template-parameters.json +4 -0
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -30,20 +30,22 @@ export async function runCli(argv = process.argv.slice(2)) {
|
|
|
30
30
|
`filegrc ${result.engineVersion}${result.enginePackage ? ` from ${result.enginePackage}` : ""}: ` +
|
|
31
31
|
`${result.install === "installed" ? "installed" : "installation skipped"}`
|
|
32
32
|
);
|
|
33
|
-
console.log("Use a dedicated private repository for your FileGRC workspace.
|
|
34
|
-
console.log("
|
|
35
|
-
console.log(
|
|
33
|
+
console.log("Use a dedicated private repository for your FileGRC workspace.");
|
|
34
|
+
console.log("A standalone repository keeps the compliance audit trail separate from application development history.");
|
|
35
|
+
console.log(result.repository.mode === "trunk"
|
|
36
|
+
? "In trunk mode, browser saves commit and push to the configured remote."
|
|
37
|
+
: "In manual mode, browser saves stay local until you commit and push with Git.");
|
|
36
38
|
console.log(`Git: ${result.gitMode === "existing-worktree" ? "joined existing worktree" : "initialized new repository"}`);
|
|
37
39
|
if (result.gitMode === "existing-worktree") {
|
|
38
40
|
console.log("");
|
|
39
41
|
console.log("This FileGRC workspace joined an existing Git repository.");
|
|
40
42
|
console.log("");
|
|
41
|
-
console.log("FileGRC recommends a dedicated private repository
|
|
42
|
-
console.log("frequent compliance commits. A standalone repository keeps the GRC audit trail");
|
|
43
|
+
console.log("FileGRC recommends a dedicated private repository. A standalone repository keeps the GRC audit trail");
|
|
43
44
|
console.log("separate from application development history.");
|
|
44
45
|
console.log("");
|
|
45
|
-
console.log(
|
|
46
|
-
|
|
46
|
+
console.log(result.repository.mode === "trunk"
|
|
47
|
+
? "Monorepo mode remains supported. Browser Git operations commit only this workspace."
|
|
48
|
+
: "Monorepo mode remains supported. In manual mode, browser saves remain local.");
|
|
47
49
|
}
|
|
48
50
|
if (
|
|
49
51
|
result.gitMode === "existing-worktree"
|
|
@@ -90,7 +92,9 @@ export async function runCli(argv = process.argv.slice(2)) {
|
|
|
90
92
|
console.log(" 2. Appoint an independent reviewer who is separate from the policy owner.");
|
|
91
93
|
console.log(result.gitMode === "existing-worktree"
|
|
92
94
|
? "Review the generated records and commit only this workspace's approved baseline."
|
|
93
|
-
:
|
|
95
|
+
: result.repository.mode === "trunk"
|
|
96
|
+
? `Connect a private ${result.repository.remote} and push ${result.repository.authoritativeBranch} before using browser writes.`
|
|
97
|
+
: "Review the generated records, then commit and push with Git when ready.");
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
function shellQuote(value) {
|
package/src/index.js
CHANGED
|
@@ -33,6 +33,9 @@ export async function createFilegrc(options = {}) {
|
|
|
33
33
|
project_name: normalizePackageName(basename(target)),
|
|
34
34
|
filegrc_version: engine.version,
|
|
35
35
|
filegrc_version_range: engine.dependency,
|
|
36
|
+
repository_setup: repository.mode === "trunk"
|
|
37
|
+
? `The editable browser uses \`${repository.authoritativeBranch}\` and pushes saved changes to \`${repository.remote}\`. Connect this repository to a dedicated private remote and push \`${repository.authoritativeBranch}\` before using browser writes.`
|
|
38
|
+
: "In manual mode, browser saves stay local. Review the workspace diff and commit or push with Git when ready.",
|
|
36
39
|
...starterText
|
|
37
40
|
};
|
|
38
41
|
|
|
@@ -521,13 +524,13 @@ async function runCombinedSetup(target, input) {
|
|
|
521
524
|
async function writeMinimalLockfile(target, name, versionRange) {
|
|
522
525
|
const lock = {
|
|
523
526
|
name,
|
|
524
|
-
version: "0.16.
|
|
527
|
+
version: "0.16.5",
|
|
525
528
|
lockfileVersion: 3,
|
|
526
529
|
requires: true,
|
|
527
530
|
packages: {
|
|
528
531
|
"": {
|
|
529
532
|
name,
|
|
530
|
-
version: "0.16.
|
|
533
|
+
version: "0.16.5",
|
|
531
534
|
dependencies: { filegrc: versionRange }
|
|
532
535
|
}
|
|
533
536
|
}
|
package/template/AGENTS.md
CHANGED
|
@@ -78,22 +78,22 @@ Git exclusively supplies file authors, commit timestamps, messages, diffs, revis
|
|
|
78
78
|
|
|
79
79
|
Domain events still need explicit dates. Keep values such as `occurredOn`, `scheduledFor`, `approvedOn`, `completedOn`, and audit-period dates in their records.
|
|
80
80
|
|
|
81
|
-
Use a dedicated private repository for your FileGRC workspace.
|
|
81
|
+
Use a dedicated private repository for your FileGRC workspace. A standalone repository keeps the compliance audit trail separate from application development history.
|
|
82
82
|
|
|
83
83
|
- Prefer creating or cloning FileGRC as a standalone private repository.
|
|
84
|
-
-
|
|
84
|
+
- In trunk mode, run the editable browser from the configured authoritative branch's main checkout.
|
|
85
85
|
- Do not place a new FileGRC workspace inside an application monorepo unless the organization has explicitly chosen that structure.
|
|
86
86
|
- If FileGRC already lives in a monorepo, do not relocate it automatically.
|
|
87
|
-
- In a monorepo, never
|
|
88
|
-
-
|
|
87
|
+
- In trunk mode, FileGRC-generated commits in a monorepo include only this workspace, never application changes.
|
|
88
|
+
- In trunk mode, detached and feature-branch copies are read-only unless an explicit development override is active.
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
In trunk repository mode, each browser mutation checks the whole Git worktree, fetches the remote, fast-forwards only, rechecks the edited revision, writes through the normal domain function, validates the workspace, stages only this FileGRC workspace, creates a focused commit, and pushes it. Browser onboarding commits its related Workspace, Program, System, Component, and renderer changes together.
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
In trunk mode, the Repository page reports `Synced`, `Syncing`, `Not synced`, `Read-only checkout`, or `Git setup required`. Browser saves return after the validated local commit, then push in the background. Treat `Syncing` as locally durable but not yet durable on the remote, and wait for `Synced` before starting another write. A failed push keeps the local FileGRC commit and offers Retry sync when every ahead commit changes only this workspace. FileGRC never pushes an ahead commit that includes files outside this workspace, and it never merges, rebases, switches branches, resolves conflicts, or changes files outside the workspace.
|
|
93
93
|
|
|
94
|
-
Record lifecycle fields are the approval source. Draft, proposed, approved, and retired records may all live on the
|
|
94
|
+
Record lifecycle fields are the approval source. Draft, proposed, approved, and retired records may all live on the same branch. Do not use Git branches to represent policy approval.
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
Read `repositoryMode`, `authoritativeBranch`, and `repositoryRemote` from `data/renderer.json`. In manual mode, browser saves stay local, including on feature branches. Review the workspace diff, then commit and push with Git when ready. Agents and terminal users always own their Git synchronization. FileGRC does not replace repository authentication, authorization, branch protection, or review controls.
|
|
97
97
|
|
|
98
98
|
Use `npx filegrc serve --allow-non-authoritative-writes` only for local development in a task worktree. The override is visible in the UI and never commits or pushes.
|
|
99
99
|
|
|
@@ -148,7 +148,7 @@ Headless agents get the same protection by exporting an edit payload with `fileg
|
|
|
148
148
|
|
|
149
149
|
## Renderer settings and onboarding
|
|
150
150
|
|
|
151
|
-
`data/renderer.json` stores committed renderer and repository preferences. New workspaces set `showOnboarding` to `true
|
|
151
|
+
`data/renderer.json` stores committed renderer and repository preferences. New workspaces set `showOnboarding` to `true`; the default Git settings are trunk mode, `main`, and `origin`. Creation can choose manual mode or other branch and remote names. In trunk mode, completing or skipping onboarding commits the related change and starts its background push.
|
|
152
152
|
|
|
153
153
|
Onboarding explains the file and Git workflow, the program path, policy obligations, and Policy Events before covering report types and the final audit stage. It then collects the initial service boundary, owner, business criticality, highest data classification, internet exposure, and optional program goal. It creates or updates one `system` record, stores that selected system and the management goal on `workspace`, and creates one planned service-commitment prompt. Replace that prompt with the actual customer promise or approved service requirement before activation. Onboarding does not create a Requirement Mapping for the baseline SOC 2 Commitment, mark Controls implemented, or create evidence. Selecting Type 1 or Type 2 does not create an audit engagement. Completing onboarding opens the Step 1 overview so the user can add the real reviewers and operators, finish the oversight team, commit the prepared Reporting Channel Set proposal, and confirm the criteria, commitments, any supplemental mappings, vendors, and systems before approving policies.
|
|
154
154
|
|
package/template/WORKSPACE.md
CHANGED
|
@@ -38,7 +38,7 @@ git add .
|
|
|
38
38
|
git commit -m "Initialize FileGRC program"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
{{repository_setup}} CLI and file-based users can manage Git on their normal review cadence, but should still commit the baseline before changing program facts.
|
|
42
42
|
|
|
43
43
|
{{starter_setup}}
|
|
44
44
|
|
package/template/package.json
CHANGED
package/template-parameters.json
CHANGED