<?xml version="1.0" encoding="utf-8"?>
<!-- Krate organisation policy, version 1. Generated by scripts/build-policy-templates.py. -->
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
  <displayName>Krate</displayName>
  <description>Krate organisation policy, version 1.</description>
  <resources>
    <stringTable>
      <string id="Krate">Krate</string>
      <string id="SUPPORTED_KratePolicy1">Krate with organisation policy version 1</string>
      <string id="Krate_Trust">Which apps may open</string>
      <string id="Krate_Apps">What apps may do</string>
      <string id="Krate_Krate">Krate itself</string>
      <string id="Krate_Studio">Krate Studio and AI builds</string>
      <string id="Name">Organisation name</string>
      <string id="Name_Help">Your organisation's name. Every message Krate shows about the policy uses it, for example &quot;Acme Labs does not allow this app&quot;. Optional. Registry: the value name in HKLM\SOFTWARE\Policies\Krate.</string>
      <string id="OrgSlug">Organisation on Krate</string>
      <string id="OrgSlug_Help">The organisation on Krate's hub that these computers belong to: its short name, as in krate.tech/org/acme-labs. Krate shows that organisation's apps to the people signed in to it. Optional. Registry: the value slug in HKLM\SOFTWARE\Policies\Krate\org.</string>
      <string id="TrustRoots">Trusted signing roots</string>
      <string id="TrustRoots_Help">The signing roots this computer trusts: each a name and the public half of an Ed25519 root key, as 64 hex characters. An app passes when its signature verifies and its root (the delegation's root, or the signing key itself) is listed. Empty or absent: no limit on roots. Enter each root on its own row: the name in the first column (Value name) and the 64 hex characters in the second (Value). Registry: one value per root in HKLM\SOFTWARE\Policies\Krate\trust\roots.</string>
      <string id="TrustAllowUnsigned">Allow unsigned apps</string>
      <string id="TrustAllowUnsigned_Help">Whether an app with no signature may open. Default: allowed when there is no [trust] section, refused when roots are listed. A signature that is present but damaged never passes, whatever this says. Enabled sets it to true, Disabled to false, Not configured leaves Krate's default. Registry: the value allow_unsigned in HKLM\SOFTWARE\Policies\Krate\trust.</string>
      <string id="TrustAllowOtherSigned">Allow apps signed by other roots</string>
      <string id="TrustAllowOtherSigned_Help">Whether an app signed by a root that is not listed may open. Default: allowed when no roots are listed, refused when they are. Enabled sets it to true, Disabled to false, Not configured leaves Krate's default. Registry: the value allow_other_signed in HKLM\SOFTWARE\Policies\Krate\trust.</string>
      <string id="CapabilitiesDeny">Blocked capabilities</string>
      <string id="CapabilitiesDeny_Help">Capabilities no app may be given on this computer, spelled as an app's manifest spells them (camera.capture, audio.capture, location.read, ui.clipboard, fs.write ...). Matched on the name before ':', so fs.write blocks every fs.write grant. A blocked capability is shown as blocked by your organisation and cannot be granted. One capability per line. Registry: the value deny in HKLM\SOFTWARE\Policies\Krate\capabilities.</string>
      <string id="NetworkAllow">Network ceiling</string>
      <string id="NetworkAllow_Help">The only hosts any app may connect to, whatever its manifest asks for. Same patterns as a manifest: host or *.host, then :port or :*. Absent: no ceiling. One host pattern per line. Registry: the value allow in HKLM\SOFTWARE\Policies\Krate\network.</string>
      <string id="NetworkProxy">Proxy</string>
      <string id="NetworkProxy_Help">The proxy every connection Krate makes goes through, for http and https alike, as http://host:port (user:password@ allowed), or &quot;direct&quot; to use none. When set, it replaces the proxy variables (HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, NO_PROXY) and the system's own proxy settings, so a person's shell cannot route around it; absent, the variables apply when set and the system's static proxy otherwise. This computer's own services (localhost) are always reached directly. Krate does not run a PAC script or WPAD; if your computers rely on one, set the proxy here. Registry: the value proxy in HKLM\SOFTWARE\Policies\Krate\network.</string>
      <string id="NetworkNoProxy">Hosts reached without the proxy</string>
      <string id="NetworkNoProxy_Help">Used with proxy: hosts reached directly, separated by commas, as NO_PROXY is written: an entry covers the host and every name under it (acme.com covers git.acme.com), * covers every host. Address ranges such as 10.0.0.0/8 are not read; name the hosts. Registry: the value no_proxy in HKLM\SOFTWARE\Policies\Krate\network.</string>
      <string id="UsageCounting">Send usage counts</string>
      <string id="UsageCounting_Help">Whether Krate sends its anonymous usage counts (install, make, open, publish) to Krate's hub. false: none are sent and the first-run question about them is not asked. Enabled sets it to true, Disabled to false, Not configured leaves Krate's default. Registry: the value counting in HKLM\SOFTWARE\Policies\Krate\usage.</string>
      <string id="HubUrl">Hub</string>
      <string id="HubUrl_Help">The only Krate hub this computer talks to for private apps, publishing and sign-in. Any other hub, from a flag or an environment variable, is refused. Registry: the value url in HKLM\SOFTWARE\Policies\Krate\hub.</string>
      <string id="StudioAi">Allow AI builds</string>
      <string id="StudioAi_Help">false: Krate Studio and krate create refuse to start an AI build, before any AI provider is contacted. Enabled sets it to true, Disabled to false, Not configured leaves Krate's default. Registry: the value ai in HKLM\SOFTWARE\Policies\Krate\studio.</string>
      <string id="StudioProviders">Allowed AI providers</string>
      <string id="StudioProviders_Help">When present, only these AI providers may be used for a build. Provider ids: claude, codex, gemini, copilot, grok. One provider id per line. Registry: the value providers in HKLM\SOFTWARE\Policies\Krate\studio.</string>
      <string id="UpdatesMode">Updates</string>
      <string id="UpdatesMode_Help">auto (the default): updates are offered as usual. notify: Krate checks for a new version and says so, and never installs one. off: Krate never checks. Registry: the value mode in HKLM\SOFTWARE\Policies\Krate\updates.</string>
      <string id="UpdatesMode_auto">auto</string>
      <string id="UpdatesMode_notify">notify</string>
      <string id="UpdatesMode_off">off</string>
      <string id="AuditPath">Open record location</string>
      <string id="AuditPath_Help">Where Krate appends its record of every app opened or refused on this computer, one JSON line each. Default: /var/log/krate/opens.jsonl on macOS and Linux, %ProgramData%\Krate\logs\opens.jsonl on Windows. Registry: the value path in HKLM\SOFTWARE\Policies\Krate\audit.</string>
      <string id="RuntimeInterpreter">Run apps on the interpreter</string>
      <string id="RuntimeInterpreter_Help">true: every app runs on Krate's interpreter (Pulley) instead of compiled machine code, so Krate never makes executable memory. For endpoint protection that blocks code generated at run time, and Windows Arbitrary Code Guard. Apps may run slower this way. Enabled sets it to true, Disabled to false, Not configured leaves Krate's default. Registry: the value interpreter in HKLM\SOFTWARE\Policies\Krate\runtime.</string>
    </stringTable>
    <presentationTable>
      <presentation id="Name"><textBox refId="name"><label>Organisation name</label></textBox></presentation>
      <presentation id="OrgSlug"><textBox refId="slug"><label>Organisation on Krate</label></textBox></presentation>
      <presentation id="TrustRoots"><listBox refId="roots">Trusted signing roots</listBox></presentation>
      <presentation id="CapabilitiesDeny"><text>Blocked capabilities, one per line:</text><multiTextBox refId="deny" defaultHeight="6" /></presentation>
      <presentation id="NetworkAllow"><text>Network ceiling, one per line:</text><multiTextBox refId="allow" defaultHeight="6" /></presentation>
      <presentation id="NetworkProxy"><textBox refId="proxy"><label>Proxy</label></textBox></presentation>
      <presentation id="NetworkNoProxy"><textBox refId="no_proxy"><label>Hosts reached without the proxy</label></textBox></presentation>
      <presentation id="HubUrl"><textBox refId="url"><label>Hub</label></textBox></presentation>
      <presentation id="StudioProviders"><text>Allowed AI providers, one per line:</text><multiTextBox refId="providers" defaultHeight="6" /></presentation>
      <presentation id="UpdatesMode"><dropdownList refId="mode" noSort="true" defaultItem="0">Updates</dropdownList></presentation>
      <presentation id="AuditPath"><textBox refId="path"><label>Open record location</label></textBox></presentation>
    </presentationTable>
  </resources>
</policyDefinitionResources>
