@groundfloorcloud/mcp 0.2.0 → 0.2.2

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.
Files changed (2) hide show
  1. package/dist/index.js +41 -7
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -516,17 +516,39 @@ the provider.
516
516
 
517
517
  ## Users and roles (Groundfloor mode)
518
518
 
519
- - **Invite user**: they set their own password (email needs Branding set up).
520
- - **Add user**: you set a password now; no email is sent.
519
+ - **Invite user**: they set their own password from an emailed invitation.
520
+ - **Add user**: you set a password now; they get an email with their sign-in
521
+ address and role (never the password).
521
522
  - Each user has a role: built-in \`viewer\`, \`user\`, \`admin\`, or a custom role
522
523
  created on the **Roles** tab. Roles here are unrelated to Portal team roles.
523
524
  - The role decides what the user reaches once granted on **Site access**
524
525
  (Data Vault collections, workspace-wide Files, App launch). The built-in
525
- \`admin\` role reaches everything. A signed-in user with no recognised role
526
+ \`admin\` role is granted like any other role: new collections start with
527
+ an \`admin\` grant and new workspaces give it Files write, and removing a
528
+ grant removes admins' access. Keep \`admin\` in every Access PUT unless the
529
+ user means to remove it. A signed-in user with no recognised role
526
530
  gets 403 on role-gated endpoints (Vault, feature flags).
527
531
  - SSO (OIDC or SAML) can be connected per workspace; role names in the
528
532
  provider's tokens must match the roles granted on Site access.
529
533
 
534
+ ## Sign-in email (invites, password resets, email verification)
535
+
536
+ - Sent by **Groundfloor email** by default in every workspace: a Groundfloor
537
+ no-reply address with the organization's name as sender. Nothing to set up;
538
+ do not tell the user to configure email before inviting.
539
+ - To use their own mail server, the user chooses **Your own email server**
540
+ under **Branding \u2192 Email sending** (host, port and from address required;
541
+ port 25, 465, 587 or 2525), then **Send test email** (goes to their own
542
+ verified address). API: \`PUT /v1/workspaces/{id}/auth\` with
543
+ \`mail: {mode: "custom", ...}\`; test with
544
+ \`POST /v1/workspaces/{id}/auth/mail/test\`.
545
+ - A failing custom server does not fall back to Groundfloor email; the send
546
+ fails. Changing host or port needs the password again.
547
+ - **Warning:** saving a \`mail\` block with no \`host\` (or
548
+ \`mode: "groundfloor"\`) switches back to Groundfloor email and deletes the
549
+ stored custom server settings and password. Only send \`mail\` when the user
550
+ means to change email settings.
551
+
530
552
  ## Multi-tenant (customer companies inside one workspace)
531
553
 
532
554
  Turn on **Multi-tenant** in Settings to get a Tenants tab: one tenant per
@@ -1326,6 +1348,18 @@ Grant site roles on **Administer \u2192 Access**. Workload identities get
1326
1348
  collection grants via \`PUT \u2026/vault/collections/{name}/acl\`. M2M is Team
1327
1349
  Writer (workspace-wide), not an Access subject.
1328
1350
 
1351
+ - \`PUT \u2026/acl\` is a **full replace**, saved exactly as sent. \`GET\` the
1352
+ current grants first and send them all back with your change: every site
1353
+ role grant, \`admin\` included, and every workload identity grant. Anything
1354
+ you leave out is removed.
1355
+ - The built-in site role \`admin\` is granted like any other role. New
1356
+ collections start with \`admin\` \u2192 \`delete\`; if a PUT leaves \`admin\`
1357
+ out, admins lose access to that collection. Never drop it unless the user
1358
+ asked for that.
1359
+ - Only builders (team members with \`ddl\`, or the Client Portal) read or
1360
+ change ACLs. A site (app end user) token gets 403 on every ACL route,
1361
+ even with the \`admin\` role.
1362
+
1329
1363
  ## Identities vs M2M
1330
1364
 
1331
1365
  - Unattended Coderunners: attach an M2M client, \`gf deploy\`, then
@@ -1405,15 +1439,15 @@ var DOC_CATALOG = [
1405
1439
  id: "authentication",
1406
1440
  title: "Workspace Authentication",
1407
1441
  path: "/docs/access/app-authentication",
1408
- summary: "App end users sign in only to the app via the workspace App Authentication realm; no Groundfloor console account or workspace membership. Modes none / Groundfloor / external, users and roles, SSO, multi-tenant. Optional; not required to create Apps or Coderunners. Separate from portal Team.",
1442
+ summary: "App end users sign in only to the app via the workspace App Authentication realm; no Groundfloor console account or workspace membership. Modes none / Groundfloor / external, users and roles, SSO, multi-tenant, sign-in email (Groundfloor email by default, or your own server). Optional; not required to create Apps or Coderunners. Separate from portal Team.",
1409
1443
  embedded: APP_AUTHENTICATION_GUIDE,
1410
- lastUpdated: "2026-10-08"
1444
+ lastUpdated: "2026-10-13"
1411
1445
  },
1412
1446
  {
1413
1447
  id: "access",
1414
1448
  title: "Access",
1415
1449
  path: "/docs/access/site-access",
1416
- summary: "Grant site roles Data Vault collections, workspace-wide Files, and Apps launch. Admin is implicit. M2M is not an Access subject. Team membership is unchanged."
1450
+ summary: "Grant site roles Data Vault collections, workspace-wide Files, and Apps launch. The built-in admin role is granted like any other role; every Access PUT is a full replace, so include admin and the existing grants or they are removed. Only builders manage Access; app end users get 403. M2M is not an Access subject. Team membership is unchanged."
1417
1451
  },
1418
1452
  {
1419
1453
  id: "m2m",
@@ -1465,7 +1499,7 @@ var DOC_CATALOG = [
1465
1499
  path: "/docs/api/vault",
1466
1500
  summary: "Create collections with JSON Schema, record routes (/vault/collections/{collection}/\u2026), query request/response (items, total, has_more, next_offset, limit 1-500), $text substring search (bounded scan, chunked_scan/scan_cursor), ACLs, implicit tables, nested filters, identities vs M2M, secrets fallback.",
1467
1501
  embedded: VAULT_GUIDE,
1468
- lastUpdated: "2026-10-09"
1502
+ lastUpdated: "2026-10-12"
1469
1503
  },
1470
1504
  {
1471
1505
  id: "feature-flags",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundfloorcloud/mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Groundfloor MCP — inspect workspace state and docs; take actions with the gf CLI.",
5
5
  "type": "module",
6
6
  "bin": {