Registered types

The whitelist of resource types ConfigForge knows about for the targeted CLI version. Source of truth: packages/core/src/oscfg/registered-types.ts, including the OSCFG_CLI_VERSION constant currently set to 1.3.9-preview11. This page is a documentation copy of that source; if it disagrees with the source file, the source file wins. The resources/oscfg/ tree is only a dev convenience drop for optional local binaries and does not contain a canonical type catalog.

Note: since v0.2.0 the binary is not bundled - "targeted CLI" means the version the whitelist in source was last probed against, not what the user happens to have installed. The runtime resolver discovers whatever oscfg is on the host (see the oscfg CLI contract for discovery order).

Registered on Windows (code whitelist for OSCFG_CLI_VERSION)

TypeNotes
Microsoft.Windows/CSPConfiguration Service Provider - the OMA-DM-style policy surface.
Microsoft.Windows/RegistryRegistry value - keyPath + valueName + valueType (use Dword / String / … or the legacy REG_* names) + value. All three of keyPath, valueName, valueType are schema-required.
Microsoft.Windows/AccountPolicyPassword / lockout policies.
Microsoft.Windows/AuditPolicyAudit subcategories.
Microsoft.Windows/UserRightsAssignmentSe*Privilege / Se*Right user rights.
Microsoft.OSConfig/TestCompliance assertion wrapper.
Microsoft.OSConfig/GroupCross-platform group wrapper.
Microsoft.OSConfig/FileFile content management.
Microsoft.OSConfig/FileLineSingle-line file edits.
Microsoft.OSConfig/DeviceInfoRead-only device info.
Microsoft.OSConfig/FirmwareRead-only firmware info.

Registered on Linux (code whitelist for OSCFG_CLI_VERSION)

TypeNotes
Microsoft.OSConfig/FileCross-platform.
Microsoft.OSConfig/FileLineCross-platform.
Microsoft.OSConfig/TestCross-platform - same wrapper as Windows.
Microsoft.OSConfig/GroupCross-platform group wrapper.
Microsoft.OSConfig/DeviceInfoRead-only.
Microsoft.OSConfig/FirmwareRead-only.
Linux/FilePermissionPOSIX file mode + ownership.
Linux/KernelModuleKernel module load state.
Linux/UserLocal user account state.

The Linux side is untested end-to-end in CI. The whitelist reflects the CLI's registered types; live deploy/audit on a Linux host is community-validated rather than CI-gated.

"Aspirational" - what that meant

Earlier versions of oscfg returned Unsupported resource type for Microsoft.Windows/AccountPolicy, AuditPolicy, and UserRightsAssignment. Manifests using them registered with a soft warning but the CLI couldn't apply them. Those types landed in preview11 and are now fully supported.

If you encounter a baseline that still produces Unsupported resource type, it means the type is not supported by your installed CLI or is missing from ConfigForge's host-platform whitelist - the manifest still registers but the soft warning surfaces in the response's warnings[] field, and unaffected resources still apply.

How the whitelist is used

CallerWhat it does with the whitelist
registerManifest() (packages/core/src/handlers/manifests.ts)Walks the manifest's resource types. Anything not in REGISTERED_{WINDOWS,LINUX}_TYPES produces a soft warning only when the manifest targets this host's platform (so a Linux manifest registered on Windows doesn't spam Windows-only-type false positives).
detectManifestPlatform() (packages/core/src/platform.ts)Looks up each type's platform tag (Microsoft.Windows/* → windows, Linux/* → linux). 'mixed' falls out of seeing both Windows and Linux tags.
Visual spreadsheet (apps/desktop/src/pages/ManifestEditor/visual-viewer.ts)Supplies safe blank-row templates and typed inline editing hints.
CIS cross-reference (packages/core/src/cis/)Filters which CIS rules can match against which types (only when CIS data is available locally - see the glossary).

Updating the whitelist

When upstream adds a new type:

  1. Probe the CLI: scripts/discovery.ps1 or scripts/probe-types.ps1 against the new CLI build.
  2. Add the type to REGISTERED_WINDOWS_TYPES / REGISTERED_LINUX_TYPES in packages/core/src/oscfg/registered-types.ts.
  3. Bump OSCFG_CLI_VERSION to match the targeted CLI.
  4. Update tests in packages/core/src/oscfg/registered-types.test.ts.
  5. Add a one-liner to the changelog.

See Adding an oscfg type for the full checklist.

See also