@groundfloorcloud/mcp 0.1.11 → 0.1.12

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 +18 -5
  2. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -699,6 +699,11 @@ M2M tokens**, attach it on the Coderunner card, then deploy. v1 M2M is Team
699
699
  Writer on that workspace (full Vault skip-ACL + Files). Grant site users on
700
700
  **Administer \u2192 Access**. Never inject a Dataplane key.
701
701
 
702
+ Cache the minted JWT for its \`expires_in\` (refresh at ~80%). Never mint per
703
+ request: \`POST \u2026/m2m/token\` is rate-limited per client and per IP (default
704
+ 20/minute each) and returns **429** when exceeded. Treat 429/401 from the mint
705
+ call as retryable, not a crash.
706
+
702
707
  An M2M client can also read secret **values** directly at runtime instead
703
708
  of (or alongside) \`--secret\` deploy-time injection: grant it the
704
709
  **\`secrets:read\`** scope (same Portal **Administer \u2192 M2M tokens** screen,
@@ -900,6 +905,14 @@ database only if you need a different engine or workspace-owned isolation
900
905
  (\`docs_get\` id \`databases\`). Local UI without live vault:
901
906
  \`npm run dev:fixtures\`.
902
907
 
908
+ Detail routes (e.g. \`records/:id\`): once the record loads, call
909
+ \`setBreadcrumbLabel(record.name)\` from the kit's \`src/lib/shellBridge.ts\`
910
+ (wraps \`window.__GF_SET_BREADCRUMB_LABEL__(location.pathname, label)\`; no-op
911
+ outside Shell) so the breadcrumb does not show the raw id. Give that route
912
+ \`hidden: true\` in the manifest so it stays out of the sidebar nav but still
913
+ routes (omit it or use \`false\` otherwise \u2014 never \`null\`). \`visibility:
914
+ "public"\` makes a route reachable without login.
915
+
903
916
  ## suggest_cli
904
917
 
905
918
  - init_app \u2192 \`gf apps init --slug <portal-slug>\`
@@ -1023,7 +1036,7 @@ var DOC_CATALOG = [
1023
1036
  path: "/docs/customer-portal/coderunner",
1024
1037
  summary: "Workload types (function, job, schedule, service/Deployment), runtime contract (scripts.start, 0.0.0.0:8080), Dockerfile for services, Coderunner identities for Vault, App authentication optional, local live data, gf deploy.",
1025
1038
  embedded: CODERUNNER_GUIDE,
1026
- lastUpdated: "2026-09-23"
1039
+ lastUpdated: "2026-09-24"
1027
1040
  },
1028
1041
  {
1029
1042
  id: "coderunner-runtime",
@@ -1039,7 +1052,7 @@ var DOC_CATALOG = [
1039
1052
  path: "/docs/integrations/coderunner/overview",
1040
1053
  summary: "Architecture and lifecycle. Prefer docs_get id coderunner for type usage, Dockerfile, and create prerequisites.",
1041
1054
  embedded: CODERUNNER_GUIDE,
1042
- lastUpdated: "2026-09-23"
1055
+ lastUpdated: "2026-09-24"
1043
1056
  },
1044
1057
  {
1045
1058
  id: "authentication",
@@ -1057,7 +1070,7 @@ var DOC_CATALOG = [
1057
1070
  id: "m2m",
1058
1071
  title: "M2M tokens",
1059
1072
  path: "/docs/customer-portal/m2m-tokens",
1060
- summary: "Confidential client secret \u2192 short Control Plane JWT (typ=m2m). Attach on Coderunner or gf m2m token. Never DATAPLANE_SERVICE_API_KEY. v1 is Team Writer, no collection ACL."
1073
+ summary: "Confidential client secret \u2192 short Control Plane JWT (typ=m2m). Attach on Coderunner or gf m2m token. Never DATAPLANE_SERVICE_API_KEY. v1 is Team Writer, no collection ACL. Secrets only with the opt-in secrets:read scope (read-only). Cache the token; minting is rate-limited per client and IP."
1061
1074
  },
1062
1075
  {
1063
1076
  id: "api-authentication",
@@ -1071,7 +1084,7 @@ var DOC_CATALOG = [
1071
1084
  path: "/docs/integrations/shell",
1072
1085
  summary: "Product Apps vs Coderunner. Always gf apps init --slug <portal-slug>, then npm run release and gf apps publish --path release.zip. Never zip dist/ or upload only remoteEntry.js.",
1073
1086
  embedded: SHELL_APP_GUIDE,
1074
- lastUpdated: "2026-09-22"
1087
+ lastUpdated: "2026-09-24"
1075
1088
  },
1076
1089
  {
1077
1090
  id: "design-standard",
@@ -1111,7 +1124,7 @@ var DOC_CATALOG = [
1111
1124
  path: "/docs/customer-portal/scheduled-jobs",
1112
1125
  summary: "workload_type=schedule plus cron. gf coderunner status shows type/schedule/last_job. Use Process Log, not a public URL.",
1113
1126
  embedded: CODERUNNER_GUIDE,
1114
- lastUpdated: "2026-09-23"
1127
+ lastUpdated: "2026-09-24"
1115
1128
  }
1116
1129
  ];
1117
1130
  function docUrl(entry) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@groundfloorcloud/mcp",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Groundfloor MCP — inspect workspace state and docs; take actions with the gf CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -38,6 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^20",
41
+ "esbuild": "^0.27.7",
41
42
  "tsup": "^8.3.0",
42
43
  "typescript": "^5"
43
44
  },