@cloudgrid-io/mcp 0.20.46 → 0.20.47
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.
- package/package.json +1 -1
- package/src/corpus/playbook.md +5 -5
- package/src/corpus/templates/ai-knowledge-base/AGENTS.md +1 -1
- package/src/corpus/templates/appointment-booking/AGENTS.md +5 -5
- package/src/corpus/templates/appointment-booking/index.md +4 -4
- package/src/corpus/templates/approval-workflow/AGENTS.md +1 -1
- package/src/corpus/templates/calendar-scheduler/AGENTS.md +1 -1
- package/src/corpus/templates/forum/AGENTS.md +4 -4
- package/src/corpus/templates/marketplace/AGENTS.md +1 -1
- package/src/corpus/templates/membership-site/AGENTS.md +5 -5
- package/src/corpus/templates/membership-site/index.md +4 -4
- package/src/corpus/templates/restaurant-reservations/AGENTS.md +7 -7
- package/src/corpus/templates/restaurant-reservations/index.md +1 -1
- package/src/corpus/templates/subscription-management/AGENTS.md +5 -5
- package/src/corpus/templates/subscription-management/index.md +4 -4
- package/src/corpus/troubleshooting/persistent-apps.md +1 -1
- package/src/corpus/workflows/admin-dashboard.md +3 -3
- package/src/corpus/workflows/ai-app.md +4 -4
- package/src/corpus/workflows/ai-knowledge-base.md +3 -3
- package/src/corpus/workflows/analytics-dashboard.md +3 -3
- package/src/corpus/workflows/api-dashboard.md +3 -3
- package/src/corpus/workflows/api-service.md +4 -4
- package/src/corpus/workflows/app-with-data.md +4 -4
- package/src/corpus/workflows/appointment-booking.md +4 -4
- package/src/corpus/workflows/approval-workflow.md +2 -2
- package/src/corpus/workflows/billing-dashboard.md +4 -4
- package/src/corpus/workflows/blog-cms.md +3 -3
- package/src/corpus/workflows/booking-system.md +4 -4
- package/src/corpus/workflows/calendar-scheduler.md +3 -3
- package/src/corpus/workflows/course-platform.md +4 -4
- package/src/corpus/workflows/crm.md +3 -3
- package/src/corpus/workflows/directory.md +3 -3
- package/src/corpus/workflows/docs-app.md +2 -2
- package/src/corpus/workflows/erp.md +4 -4
- package/src/corpus/workflows/event-board.md +3 -3
- package/src/corpus/workflows/expense-tracker.md +3 -3
- package/src/corpus/workflows/feature-request-board.md +3 -3
- package/src/corpus/workflows/financial-dashboard.md +3 -3
- package/src/corpus/workflows/forum.md +4 -4
- package/src/corpus/workflows/hr-portal.md +4 -4
- package/src/corpus/workflows/internal-tools-portal.md +4 -4
- package/src/corpus/workflows/inventory.md +3 -3
- package/src/corpus/workflows/invoice.md +3 -3
- package/src/corpus/workflows/job-board.md +3 -3
- package/src/corpus/workflows/kanban.md +3 -3
- package/src/corpus/workflows/lms.md +4 -4
- package/src/corpus/workflows/marketplace.md +3 -3
- package/src/corpus/workflows/membership-site.md +4 -4
- package/src/corpus/workflows/monitoring-dashboard.md +3 -3
- package/src/corpus/workflows/multi-service.md +2 -2
- package/src/corpus/workflows/online-store.md +4 -4
- package/src/corpus/workflows/product-catalog.md +3 -3
- package/src/corpus/workflows/project-management.md +3 -3
- package/src/corpus/workflows/property-listings.md +3 -3
- package/src/corpus/workflows/quiz-platform.md +3 -3
- package/src/corpus/workflows/restaurant-reservations.md +4 -4
- package/src/corpus/workflows/revenue-dashboard.md +3 -3
- package/src/corpus/workflows/semantic-search.md +4 -4
- package/src/corpus/workflows/subscription-management.md +4 -4
- package/src/corpus/workflows/task-manager.md +3 -3
- package/src/corpus/workflows/ticket-system.md +3 -3
- package/src/corpus/workflows/time-tracking.md +3 -3
- package/src/corpus/workflows/travel-booking.md +4 -4
- package/src/tools/register.js +1 -1
|
@@ -53,7 +53,7 @@ workflow:
|
|
|
53
53
|
|
|
54
54
|
## 4. Scaffold
|
|
55
55
|
|
|
56
|
-
`
|
|
56
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
57
57
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
58
58
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
59
59
|
Then write the app under **`services/web/`** and
|
|
@@ -99,11 +99,11 @@ never set `needs:` and `requires:` together (the validator rejects it).
|
|
|
99
99
|
|
|
100
100
|
## 6. Config / secrets
|
|
101
101
|
|
|
102
|
-
- Stripe + auth secrets → `
|
|
102
|
+
- Stripe + auth secrets → `grid secrets set` (set the vault items `stripe-live-key`,
|
|
103
103
|
`stripe-webhook-secret`, `auth-provider-key` that the `vault:` block maps from).
|
|
104
104
|
The deployer injects each as its env var at runtime and under `grid dev`.
|
|
105
105
|
- Non-secret config (auth publishable key `NEXT_PUBLIC_...`, Stripe price id) →
|
|
106
|
-
`
|
|
106
|
+
`grid env set` / `services.web.env`.
|
|
107
107
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
108
108
|
`MONGODB_URL`) — the grid injects them.
|
|
109
109
|
|
|
@@ -116,7 +116,7 @@ and vault secrets before deploying. Don't require it.
|
|
|
116
116
|
|
|
117
117
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
118
118
|
response is `status: "building"`, NOT a live URL yet.
|
|
119
|
-
- Poll `
|
|
119
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
120
120
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
121
121
|
- Once live, register the `/api/webhook` URL as the Stripe webhook endpoint,
|
|
122
122
|
copy the signing secret into the `stripe-webhook-secret` vault item, and
|
|
@@ -39,7 +39,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
39
39
|
|
|
40
40
|
## 3. Scaffold
|
|
41
41
|
|
|
42
|
-
`
|
|
42
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
43
43
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
44
44
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
45
45
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -86,7 +86,7 @@ before deploying. Don't require it.
|
|
|
86
86
|
|
|
87
87
|
## 6. Config
|
|
88
88
|
|
|
89
|
-
- API keys / secrets → `
|
|
89
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
90
90
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
91
91
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
92
92
|
|
|
@@ -94,7 +94,7 @@ before deploying. Don't require it.
|
|
|
94
94
|
|
|
95
95
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
96
96
|
response is `status: "building"`, NOT a live URL yet.
|
|
97
|
-
- Poll `
|
|
97
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
98
98
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
99
99
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
100
100
|
|
|
@@ -35,7 +35,7 @@ Multi-service apps are runtime deploys. They require the **local edition**
|
|
|
35
35
|
|
|
36
36
|
## 3. Scaffold
|
|
37
37
|
|
|
38
|
-
`
|
|
38
|
+
`grid new`. It scaffolds the project folder with an empty
|
|
39
39
|
`services: {}`. Then:
|
|
40
40
|
|
|
41
41
|
1. Fill in `cloudgrid.yaml` with the services the app needs.
|
|
@@ -100,7 +100,7 @@ For a three-service layout (frontend + backend + cron), see the
|
|
|
100
100
|
## 7. Deploy (async)
|
|
101
101
|
|
|
102
102
|
Deploy the folder with `grid_plug`. A runtime deploy is ASYNC: poll
|
|
103
|
-
`
|
|
103
|
+
`grid_check_deploy` until the entity is live. Only then return the deployed URL.
|
|
104
104
|
|
|
105
105
|
## 8. Return the live URL + iterate
|
|
106
106
|
|
|
@@ -40,7 +40,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
40
40
|
|
|
41
41
|
## 3. Scaffold
|
|
42
42
|
|
|
43
|
-
`
|
|
43
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
44
44
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
45
45
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
46
46
|
|
|
@@ -88,9 +88,9 @@ This is a blueprint — the structure guide is the deliverable, not copy-paste c
|
|
|
88
88
|
|
|
89
89
|
## 6. Config
|
|
90
90
|
|
|
91
|
-
- Stripe secrets → the vault: `
|
|
91
|
+
- Stripe secrets → the vault: `grid secrets set` to set `stripe-live-key` (and a
|
|
92
92
|
`stripe-webhook-secret` if you map one). The `vault:` block turns them into env
|
|
93
|
-
vars. Non-secret config → `
|
|
93
|
+
vars. Non-secret config → `grid env set`.
|
|
94
94
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` /
|
|
95
95
|
`MONGODB_URL`) — the grid injects them.
|
|
96
96
|
|
|
@@ -98,7 +98,7 @@ This is a blueprint — the structure guide is the deliverable, not copy-paste c
|
|
|
98
98
|
|
|
99
99
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
100
100
|
response is `status: "building"`, NOT a live URL yet.
|
|
101
|
-
- Poll `
|
|
101
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
102
102
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
103
103
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
104
104
|
|
|
@@ -41,7 +41,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
41
41
|
|
|
42
42
|
## 3. Scaffold
|
|
43
43
|
|
|
44
|
-
`
|
|
44
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
45
45
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
46
46
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
47
47
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -87,7 +87,7 @@ before deploying. Don't require it.
|
|
|
87
87
|
|
|
88
88
|
## 6. Config
|
|
89
89
|
|
|
90
|
-
- API keys / secrets → `
|
|
90
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
91
91
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
92
92
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
93
93
|
|
|
@@ -95,7 +95,7 @@ before deploying. Don't require it.
|
|
|
95
95
|
|
|
96
96
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
97
97
|
response is `status: "building"`, NOT a live URL yet.
|
|
98
|
-
- Poll `
|
|
98
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
99
99
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
100
100
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
101
101
|
|
|
@@ -42,7 +42,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
42
42
|
|
|
43
43
|
## 3. Scaffold
|
|
44
44
|
|
|
45
|
-
`
|
|
45
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
46
46
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
47
47
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
48
48
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -88,7 +88,7 @@ before deploying. Don't require it.
|
|
|
88
88
|
|
|
89
89
|
## 6. Config
|
|
90
90
|
|
|
91
|
-
- API keys / secrets → `
|
|
91
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
92
92
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
93
93
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
94
94
|
|
|
@@ -96,7 +96,7 @@ before deploying. Don't require it.
|
|
|
96
96
|
|
|
97
97
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
98
98
|
response is `status: "building"`, NOT a live URL yet.
|
|
99
|
-
- Poll `
|
|
99
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
100
100
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
101
101
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
102
102
|
|
|
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
38
38
|
|
|
39
39
|
## 3. Scaffold
|
|
40
40
|
|
|
41
|
-
`
|
|
41
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
42
42
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
43
43
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
44
44
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -83,7 +83,7 @@ before deploying. Don't require it.
|
|
|
83
83
|
|
|
84
84
|
## 6. Config
|
|
85
85
|
|
|
86
|
-
- API keys / secrets → `
|
|
86
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
87
87
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
88
88
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ before deploying. Don't require it.
|
|
|
91
91
|
|
|
92
92
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
93
93
|
response is `status: "building"`, NOT a live URL yet.
|
|
94
|
-
- Poll `
|
|
94
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
95
95
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
96
96
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
97
97
|
|
|
@@ -39,7 +39,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
39
39
|
|
|
40
40
|
## 3. Scaffold
|
|
41
41
|
|
|
42
|
-
`
|
|
42
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
43
43
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
44
44
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
45
45
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -87,7 +87,7 @@ before deploying. Don't require it.
|
|
|
87
87
|
|
|
88
88
|
## 6. Config
|
|
89
89
|
|
|
90
|
-
- API keys / secrets → `
|
|
90
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
91
91
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
92
92
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
93
93
|
|
|
@@ -95,7 +95,7 @@ before deploying. Don't require it.
|
|
|
95
95
|
|
|
96
96
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
97
97
|
response is `status: "building"`, NOT a live URL yet.
|
|
98
|
-
- Poll `
|
|
98
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
99
99
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
100
100
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
101
101
|
|
|
@@ -56,7 +56,7 @@ so the deliverable is `cloudgrid.yaml` + `AGENTS.md`, not app code.
|
|
|
56
56
|
|
|
57
57
|
## 4. Scaffold + fill
|
|
58
58
|
|
|
59
|
-
1. `
|
|
59
|
+
1. `grid new <name>` — scaffolds the project folder and a
|
|
60
60
|
`cloudgrid.yaml` with an EMPTY `services: {}`. No server entity exists yet —
|
|
61
61
|
the first `grid plug` auto-creates it from the manifest (honoring its
|
|
62
62
|
`name:`) and writes `.cloudgrid/link.json`.
|
|
@@ -86,9 +86,9 @@ so the deliverable is `cloudgrid.yaml` + `AGENTS.md`, not app code.
|
|
|
86
86
|
|
|
87
87
|
## 5. Config / secrets
|
|
88
88
|
|
|
89
|
-
- Secret values (Stripe, SendGrid, auth) → `
|
|
89
|
+
- Secret values (Stripe, SendGrid, auth) → `grid secrets set` (the `vault:` block
|
|
90
90
|
maps them to env vars). Non-secret config (publishable keys, flags) →
|
|
91
|
-
`
|
|
91
|
+
`grid env set`.
|
|
92
92
|
- Do **NOT** set the DB vars yourself (`DATABASE_MONGODB_URL` / `MONGODB_URL`) —
|
|
93
93
|
the grid injects them.
|
|
94
94
|
|
|
@@ -101,7 +101,7 @@ against dev Mongo. Seed the `menu` collection, test a booking. Don't require it.
|
|
|
101
101
|
|
|
102
102
|
Deploy `services/web/` with `grid_plug`. A **runtime deploy is ASYNC**: the
|
|
103
103
|
first response is `status: building`, NOT a live URL.
|
|
104
|
-
- Poll `
|
|
104
|
+
- Poll `grid_check_deploy` (or the returned poll URL) until live.
|
|
105
105
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
106
106
|
- Only once live, return the deployed app URL (NOT the build/log link).
|
|
107
107
|
- If Stripe deposits are on, register the live `/api/webhooks/stripe` URL in the
|
|
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
38
38
|
|
|
39
39
|
## 3. Scaffold
|
|
40
40
|
|
|
41
|
-
`
|
|
41
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
42
42
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
43
43
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
44
44
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -84,7 +84,7 @@ before deploying. Don't require it.
|
|
|
84
84
|
|
|
85
85
|
## 6. Config
|
|
86
86
|
|
|
87
|
-
- API keys / secrets → `
|
|
87
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
88
88
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
89
89
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
90
90
|
|
|
@@ -92,7 +92,7 @@ before deploying. Don't require it.
|
|
|
92
92
|
|
|
93
93
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
94
94
|
response is `status: "building"`, NOT a live URL yet.
|
|
95
|
-
- Poll `
|
|
95
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
96
96
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
97
97
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
98
98
|
|
|
@@ -6,7 +6,7 @@ deploy: runtime
|
|
|
6
6
|
editions: local
|
|
7
7
|
capabilities_note: "Document search — needs a database (Mongo) for the documents + chunks collections. Two services: a React (Vite) static frontend at / and a FastAPI backend at /backend. Hybrid search = Mongo $text (lexical) + in-app NumPy cosine over chunk embedding arrays (semantic) + metadata filters, blended to the document level. Runtime app, async build, local edition only. Declare needs:{database:true}. NO needs:vector — this template stores embeddings in the Mongo chunks collection and cosine-ranks in-app (vector:pgvector is now available, #1545 shipped, verified live 2026-07-16; the template code does not use it). Two refresh paths: the manager 'Refresh now' endpoint AND a scheduled Python type:cron job (services/refresh, daily 03:00 UTC) that vendors the backend app/ modules and reuses indexing.run_sync — both degrade gracefully. Health is green with no secrets; startup ensure_indexes() so $text never 500s on an empty catalog. Pluggable source (dropbox|local|url) + embeddings (OpenAI-compatible) each behind one config point, all secrets from env."
|
|
8
8
|
summary: "Build a document-search app on the grid — index a folder of PDFs/DOCX/TXT/MD, then search by keyword + meaning + metadata, with a grounded answer mode and manager admin. React static frontend at / + FastAPI backend at /backend, backed by grid-shared Mongo. Edition-gate first, scaffold, put the code under services/web/ + services/backend/, declare needs:{database:true} (no vector — the template uses Mongo embeddings; #1545 shipped), wire the web+backend+refresh services, set the embeddings + source + manager secrets, deploy async, poll to a live URL, then Refresh now (or wait for the daily cron) to index."
|
|
9
|
-
recipe: "edition-gate -> auth+grid ->
|
|
9
|
+
recipe: "edition-gate -> auth+grid -> grid new -> fetch template + read AGENTS.md -> put code under services/web + services/backend, set cloudgrid.yaml active fields -> grid secrets set (embeddings + source + MANAGER_PASSWORD_HASH) -> optional grid dev -> grid plug (async, poll) -> Refresh now to index -> return live URL"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Workflow: semantic-search
|
|
@@ -42,7 +42,7 @@ the **local edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
42
42
|
|
|
43
43
|
## 3. Scaffold
|
|
44
44
|
|
|
45
|
-
`
|
|
45
|
+
`grid new <name>` — it scaffolds the project folder and a
|
|
46
46
|
starter `cloudgrid.yaml` with empty `services: {}`. No server entity exists yet:
|
|
47
47
|
the first `grid plug` auto-creates it from the manifest (honoring its `name:`)
|
|
48
48
|
and writes `.cloudgrid/link.json`; `grid plug --no-deploy` registers it without
|
|
@@ -114,7 +114,7 @@ the cron **vendors** the backend `app/` modules it needs into
|
|
|
114
114
|
|
|
115
115
|
Store all of these with `grid secrets set KEY=VALUE` (never commit them; the app
|
|
116
116
|
reads them lazily inside functions, never at import). Non-secret public config →
|
|
117
|
-
`
|
|
117
|
+
`grid env set`. Do NOT set `DATABASE_MONGODB_URL` yourself — the grid injects it.
|
|
118
118
|
|
|
119
119
|
The app starts and passes `GET /backend/health` with **none** of these set;
|
|
120
120
|
search/indexing degrade to a clear "not indexed / missing secret" state.
|
|
@@ -128,7 +128,7 @@ before deploying. Don't require it.
|
|
|
128
128
|
|
|
129
129
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
130
130
|
response is `status: "building"`, NOT a live URL yet.
|
|
131
|
-
- Poll `
|
|
131
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
132
132
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
133
133
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
134
134
|
|
|
@@ -60,7 +60,7 @@ workflow:
|
|
|
60
60
|
|
|
61
61
|
## 4. Scaffold
|
|
62
62
|
|
|
63
|
-
`
|
|
63
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
64
64
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
65
65
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
66
66
|
Then write the app under **`services/web/`** and
|
|
@@ -110,12 +110,12 @@ never set `needs:` and `requires:` together (the validator rejects it).
|
|
|
110
110
|
|
|
111
111
|
## 6. Config / secrets
|
|
112
112
|
|
|
113
|
-
- Stripe secrets → `
|
|
113
|
+
- Stripe secrets → `grid secrets set` (set the vault items `stripe-live-key` and
|
|
114
114
|
`stripe-webhook-secret` that the `vault:` block maps from). The deployer
|
|
115
115
|
injects each as its env var at runtime and under `grid dev`. Add
|
|
116
116
|
`auth-provider-key` too if you use an auth SDK.
|
|
117
117
|
- Non-secret config (Stripe publishable key `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY`,
|
|
118
|
-
price ids, auth publishable key) → `
|
|
118
|
+
price ids, auth publishable key) → `grid env set` / `services.web.env`.
|
|
119
119
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
120
120
|
`MONGODB_URL`) — the grid injects them.
|
|
121
121
|
|
|
@@ -128,7 +128,7 @@ and vault secrets before deploying. Don't require it.
|
|
|
128
128
|
|
|
129
129
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
130
130
|
response is `status: "building"`, NOT a live URL yet.
|
|
131
|
-
- Poll `
|
|
131
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
132
132
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
133
133
|
- Once live, register the `/api/webhook` URL as the Stripe webhook endpoint,
|
|
134
134
|
copy the signing secret into the `stripe-webhook-secret` vault item, configure
|
|
@@ -39,7 +39,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
39
39
|
|
|
40
40
|
## 3. Scaffold
|
|
41
41
|
|
|
42
|
-
`
|
|
42
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
43
43
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
44
44
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
45
45
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -83,7 +83,7 @@ before deploying. Don't require it.
|
|
|
83
83
|
|
|
84
84
|
## 6. Config
|
|
85
85
|
|
|
86
|
-
- API keys / secrets → `
|
|
86
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
87
87
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
88
88
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ before deploying. Don't require it.
|
|
|
91
91
|
|
|
92
92
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
93
93
|
response is `status: "building"`, NOT a live URL yet.
|
|
94
|
-
- Poll `
|
|
94
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
95
95
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
96
96
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
97
97
|
|
|
@@ -37,7 +37,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
37
37
|
|
|
38
38
|
## 3. Scaffold
|
|
39
39
|
|
|
40
|
-
`
|
|
40
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
41
41
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
42
42
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
43
43
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -83,7 +83,7 @@ before deploying. Don't require it.
|
|
|
83
83
|
|
|
84
84
|
## 6. Config
|
|
85
85
|
|
|
86
|
-
- API keys / secrets → `
|
|
86
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
87
87
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
88
88
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
89
89
|
|
|
@@ -91,7 +91,7 @@ before deploying. Don't require it.
|
|
|
91
91
|
|
|
92
92
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
93
93
|
response is `status: "building"`, NOT a live URL yet.
|
|
94
|
-
- Poll `
|
|
94
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
95
95
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
96
96
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
97
97
|
|
|
@@ -38,7 +38,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
38
38
|
|
|
39
39
|
## 3. Scaffold
|
|
40
40
|
|
|
41
|
-
`
|
|
41
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
42
42
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
43
43
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
44
44
|
Then (a) write the app under **`services/web/`**,
|
|
@@ -86,7 +86,7 @@ before deploying. Don't require it.
|
|
|
86
86
|
|
|
87
87
|
## 6. Config
|
|
88
88
|
|
|
89
|
-
- API keys / secrets → `
|
|
89
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
90
90
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
91
91
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
92
92
|
|
|
@@ -94,7 +94,7 @@ before deploying. Don't require it.
|
|
|
94
94
|
|
|
95
95
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
96
96
|
response is `status: "building"`, NOT a live URL yet.
|
|
97
|
-
- Poll `
|
|
97
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
98
98
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
99
99
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
100
100
|
|
|
@@ -51,7 +51,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
51
51
|
`flights` / `hotels` / `bookings` / `trips` collections + the overbooking
|
|
52
52
|
guard, how CloudGrid injects the DB and vault secrets, how to wire Stripe +
|
|
53
53
|
auth, and the trip-reminder-cron design).
|
|
54
|
-
2. `
|
|
54
|
+
2. `grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
55
55
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
56
56
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
57
57
|
|
|
@@ -88,9 +88,9 @@ it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
|
88
88
|
|
|
89
89
|
## 5. Config (secrets)
|
|
90
90
|
|
|
91
|
-
- Payment/auth secrets → add the vault items with `
|
|
91
|
+
- Payment/auth secrets → add the vault items with `grid secrets set` (e.g.
|
|
92
92
|
`stripe-live-key`, `stripe-webhook-secret`, `auth-provider-key`) BEFORE plug so
|
|
93
|
-
the `vault:` mappings resolve. Non-secret config → `
|
|
93
|
+
the `vault:` mappings resolve. Non-secret config → `grid env set`.
|
|
94
94
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
95
95
|
`MONGODB_URL`) — the grid injects them.
|
|
96
96
|
|
|
@@ -104,7 +104,7 @@ require it.
|
|
|
104
104
|
|
|
105
105
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
106
106
|
response is `status: "building"`, NOT a live URL yet.
|
|
107
|
-
- Poll `
|
|
107
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
108
108
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
109
109
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
110
110
|
|
package/src/tools/register.js
CHANGED
|
@@ -877,7 +877,7 @@ export function registerTools(server, ctx) {
|
|
|
877
877
|
"grid_get_template",
|
|
878
878
|
{
|
|
879
879
|
description:
|
|
880
|
-
"Load a specific CloudGrid workflow, template, example, rule, or doc by name — deterministic retrieval from the bundled corpus
|
|
880
|
+
"Load a specific CloudGrid workflow, template, example, rule, or doc by name — deterministic retrieval from the bundled corpus. Use after grid_start to pull the exact recipe/template you need, e.g. grid_get_template({kind:\"workflow\", name:\"presentation\"}) then grid_get_template({kind:\"template\", name:\"deck\"}).",
|
|
881
881
|
inputSchema: {
|
|
882
882
|
kind: z
|
|
883
883
|
.enum(["workflow", "template", "example", "rule", "troubleshooting", "doc"])
|