Skip to content

docs(enterprise): document system-managed settings file paths#1140

Open
factory-davidgu wants to merge 1 commit into
mainfrom
dgu/system-managed-settings-paths
Open

docs(enterprise): document system-managed settings file paths#1140
factory-davidgu wants to merge 1 commit into
mainfrom
dgu/system-managed-settings-paths

Conversation

@factory-davidgu
Copy link
Copy Markdown
Contributor

Description

Documents the hardcoded system-managed settings.json deployment paths shipped in Factory-AI/factory-mono#13857 (CLI-656). IT/MDM administrators can drop a settings file at a well-known platform path so org policy is enforced before any user authenticates — useful for managed laptops, airgapped fleets, and CI runners.

OS Path
macOS /Library/Application Support/Factory/settings.json
Linux & WSL /etc/factory/settings.json
Windows C:\Program Files\Factory\settings.json

Changes

  • New System-managed settings file section in docs/enterprise/hierarchical-settings-and-org-control.mdx covering paths, precedence, tier behaviour, and failure semantics.
  • Cross-link bullet in docs/enterprise/network-and-deployment.mdx under "Configuration surfaces".

Japanese mirrors under jp/enterprise/* are intentionally not updated in this PR — translation typically batches separately.

Documents the hardcoded system-managed settings.json deployment paths
(macOS /Library/Application Support/Factory/, Linux/WSL /etc/factory/,
Windows C:\\Program Files\\Factory\\) so IT/MDM administrators can
ship base org policy before any user authenticates.

Source PR (factory-mono): Factory-AI/factory-mono#13857

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
@mintlify
Copy link
Copy Markdown
Contributor

mintlify Bot commented May 22, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
factory 🟢 Ready View Preview May 22, 2026, 12:22 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@factory-droid
Copy link
Copy Markdown
Contributor

factory-droid Bot commented May 22, 2026

Droid finished @factory-davidgu's task —— View job


Solid doc addition that explains system-managed settings paths and precedence, but a couple details need tightening: the failure-mode semantics (unreadable vs malformed) are easy to misinterpret, and the guidance should explicitly address file permissions/secret handling to avoid accidental key leakage.


## System-managed settings file

For deployments where org policy must be applied **before any user signs in** — managed laptops, CI runners that aren’t authenticated to Factory, airgapped or restricted‑network installs — IT/MDM administrators can drop a `settings.json` at a hardcoded, well‑known path on each machine:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] [security] Warn about secrets and permissions for system-managed settings

This section recommends dropping a machine-wide settings.json while also stating it uses the full Settings schema (which includes secret-bearing fields like customModels[].apiKey and arbitrary headers); please add explicit guidance to (1) avoid placing long-lived secrets in this file when possible and (2) lock down filesystem permissions/ACLs so unprivileged local users cannot read it on shared systems, otherwise admins may inadvertently leak provider keys/tokens.


The file uses the same [Settings JSON schema](#settings-json-schema) as the rest of this page.

When this file is present it is the **authoritative source for org‑level settings** on that machine — it short‑circuits any API fetch or developer‑mode environment overrides for org settings. The `factoryTier` signal is still queried from the Factory API on a best‑effort basis (failures are non‑fatal) so enterprise‑gated behaviors keep working for managed deployments.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Define factoryTier and "developer-mode environment overrides"

The doc introduces factoryTier and "developer-mode environment overrides" as part of the resolution logic, but neither term is defined or linked anywhere else in the docs, which makes this guidance hard to operationalize; add a short definition (what factoryTier is used for and what overrides exist / how to enable them) or replace with user-facing terminology and a link to the relevant configuration surface.


When this file is present it is the **authoritative source for org‑level settings** on that machine — it short‑circuits any API fetch or developer‑mode environment overrides for org settings. The `factoryTier` signal is still queried from the Factory API on a best‑effort basis (failures are non‑fatal) so enterprise‑gated behaviors keep working for managed deployments.

If the file is absent or unreadable, Droid falls back to the existing org‑settings flow (Factory App / managed‑settings endpoint). If the file is present but malformed or fails schema validation, org settings resolve to an empty policy and the failure is logged — a broken admin deployment is **not** silently bypassed.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P3] Clarify behavior for unreadable vs malformed system-managed settings

This paragraph says an absent or unreadable system-managed file falls back to the managed-settings endpoint, but a present-but-malformed file resolves to an empty policy and is "not silently bypassed"; if permission/IO errors are treated as "unreadable" and fall back without an explicit warning, admins may assume enforcement is active when it is not—please spell out which failure modes (missing vs permission denied vs parse/validation failure) map to fallback vs empty policy, and whether each path is logged/ surfaced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant