@suveren/gateway 0.25.1 → 0.27.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.
@@ -572,7 +572,7 @@ function printConfigHelp() {
572
572
  console.log(`suveren-gateway config — read or save gateway settings
573
573
 
574
574
  Usage:
575
- suveren-gateway config get [as-url|ca-file|pin-tls|proxy|port|mcp-port|data-dir]
575
+ suveren-gateway config get [as-url|ca-file|pin-tls|proxy|port|mcp-port|data-dir|team]
576
576
  Print the resolved value(s)
577
577
  suveren-gateway config set as-url <url> Save the Authority Server URL
578
578
  suveren-gateway config set ca-file <path> Save a CA bundle for internal TLS
@@ -599,6 +599,11 @@ A setting your organization's IT has set centrally (Windows registry policy,
599
599
  or a policy file — see docs/managed-settings.md) is LOCKED: \`config get\`
600
600
  shows "(set by your IT)" next to it, and \`config set\` refuses to change it.
601
601
 
602
+ team (IT policy only, no \`config set\`) binds this gateway to one team: only
603
+ shown by \`config get\` when IT has set it. Sign-in is refused for an account
604
+ not in that team, and the gateway locks if the signed-in account later
605
+ leaves it — see docs/managed-settings.md.
606
+
602
607
  proxy is a convenience for operators without shell access to set
603
608
  HTTP_PROXY/HTTPS_PROXY themselves — those environment variables remain the
604
609
  actual requirement (every process this gateway runs honours them directly)
@@ -787,6 +792,9 @@ async function config(args) {
787
792
  console.log(`port: ${INSTALL.cpPort} (${describeSource(INSTALL.source.cpPort, 'cpPort')})`);
788
793
  console.log(`mcp-port: ${INSTALL.mcpPort} (${describeSource(INSTALL.source.mcpPort, 'mcpPort')})`);
789
794
  console.log(`data-dir: ${INSTALL.dataDir} (${describeSource(INSTALL.source.dataDir, 'dataDir')})`);
795
+ if (isPolicyLocked('team')) {
796
+ console.log(`team: ${readPolicy().policy.team}${policySuffix('team')}`);
797
+ }
790
798
  return;
791
799
  }
792
800
  const install = INSTALL_KEYS[key];
@@ -798,6 +806,7 @@ async function config(args) {
798
806
  if (key === 'ca-file') { console.log(`${(policyCaFile ?? saved.caFile) ?? ''}${policySuffix('caFile')}`); return; }
799
807
  if (key === 'pin-tls') { console.log(`${resolvePinTls(DATA_DIR) ? 'on' : 'off'}${policySuffix('pinTls')}`); return; }
800
808
  if (key === 'proxy') { console.log(`${(policyProxy ?? saved.proxyUrl) ?? ''}${policySuffix('proxy')}`); return; }
809
+ if (key === 'team') { console.log(`${readPolicy().policy.team ?? '(not set)'}${policySuffix('team')}`); return; }
801
810
  console.error(`Unknown config key: ${key}\n`);
802
811
  printConfigHelp();
803
812
  process.exit(2);
@@ -21,7 +21,7 @@ Apply this to whatever systems are connected: the header above lists each system
21
21
  - **Limits come from the interview:** amounts, discounts, daily counts, allowed recipients. Do not invent them; ask.
22
22
  - **Intent:** write why, goal and watch-outs in the person's words, in the language the team uses. It is signed with the mandate and the working AI follows it.
23
23
  - **Teams:** in a team, the person must be an approver for the profile. `create_mandate` refuses at once if not; tell the person who can fix it (a team admin).
24
- - **Workspace:** without `team`, a mandate goes where the person's Delegation mandate is. If they hold Delegation mandates in several workspaces, ask which one and pass it (`team`: a team's name, or `"personal"`).
24
+ - **Workspace:** a mandate always goes to the person's current workspace — Personal, or their one team. There is no `team` argument; you cannot choose a different one.
25
25
  - **Reporting:** never propose a `reporting` mandate for the working AI during a run (see **risks**).
26
26
 
27
27
  ## Example (only an example)