@cloudgrid-io/mcp 0.20.45 → 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 +2 -1
- package/src/auth.js +18 -4
- 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/index.js +2 -0
- package/src/tools/cli.js +4 -3
- package/src/tools/constants.js +1 -1
- package/src/tools/deploy.js +17 -7
- package/src/tools/register.js +70 -36
- package/src/web.js +52 -6
|
@@ -55,7 +55,7 @@ route, server page).
|
|
|
55
55
|
|
|
56
56
|
## 4. Scaffold
|
|
57
57
|
|
|
58
|
-
`
|
|
58
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
59
59
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
60
60
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
61
61
|
Then (a) write the app under **`services/web/`**
|
|
@@ -113,7 +113,7 @@ before deploying. Don't require it.
|
|
|
113
113
|
|
|
114
114
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
115
115
|
response is `status: "building"`, NOT a live URL yet.
|
|
116
|
-
- Poll `
|
|
116
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
117
117
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
118
118
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
119
119
|
|
|
@@ -43,7 +43,7 @@ A persistent billing dashboard is a built + deployed container. It requires the
|
|
|
43
43
|
|
|
44
44
|
## 3. Scaffold
|
|
45
45
|
|
|
46
|
-
`
|
|
46
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
47
47
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
48
48
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
49
49
|
|
|
@@ -94,9 +94,9 @@ This is a blueprint — the structure guide is the deliverable, not copy-paste c
|
|
|
94
94
|
|
|
95
95
|
## 6. Config
|
|
96
96
|
|
|
97
|
-
- Stripe secrets → the vault: `
|
|
97
|
+
- Stripe secrets → the vault: `grid secrets set` to set `stripe-live-key` (and a
|
|
98
98
|
`stripe-webhook-secret` if you map one). The `vault:` block turns them into env
|
|
99
|
-
vars. Non-secret config → `
|
|
99
|
+
vars. Non-secret config → `grid env set`.
|
|
100
100
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` /
|
|
101
101
|
`MONGODB_URL`) — the grid injects them.
|
|
102
102
|
|
|
@@ -104,7 +104,7 @@ This is a blueprint — the structure guide is the deliverable, not copy-paste c
|
|
|
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
|
|
|
@@ -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
|
|
|
@@ -52,7 +52,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
52
52
|
`services` / `availabilityRules` / `bookings` collections + the double-booking
|
|
53
53
|
guard, how CloudGrid injects the DB and vault secrets, how to wire Stripe +
|
|
54
54
|
auth, and the reminder-cron design).
|
|
55
|
-
2. `
|
|
55
|
+
2. `grid new <name>`. It scaffolds the project folder and
|
|
56
56
|
writes a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity
|
|
57
57
|
exists yet — the first `grid plug` auto-creates it from the manifest
|
|
58
58
|
(honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
@@ -90,9 +90,9 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
90
90
|
|
|
91
91
|
## 5. Config (secrets)
|
|
92
92
|
|
|
93
|
-
- Payment/auth secrets → add the vault items with `
|
|
93
|
+
- Payment/auth secrets → add the vault items with `grid secrets set` (e.g.
|
|
94
94
|
`stripe-live-key`, `stripe-webhook-secret`, `auth-provider-key`) BEFORE plug so
|
|
95
|
-
the `vault:` mappings resolve. Non-secret config → `
|
|
95
|
+
the `vault:` mappings resolve. Non-secret config → `grid env set`.
|
|
96
96
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
97
97
|
`MONGODB_URL`) — the grid injects them.
|
|
98
98
|
|
|
@@ -106,7 +106,7 @@ require it.
|
|
|
106
106
|
|
|
107
107
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
108
108
|
response is `status: "building"`, NOT a live URL yet.
|
|
109
|
-
- Poll `
|
|
109
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
110
110
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
111
111
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
112
112
|
|
|
@@ -56,7 +56,7 @@ There is no app code to copy — you generate it from the guide.
|
|
|
56
56
|
|
|
57
57
|
## 4. Scaffold + fill cloudgrid.yaml
|
|
58
58
|
|
|
59
|
-
`
|
|
59
|
+
`grid new <name>` — it scaffolds the project folder and a
|
|
60
60
|
starter `cloudgrid.yaml` with empty `services:{}` (no server entity yet; the
|
|
61
61
|
first `grid plug` auto-creates it from the manifest, honoring its `name:`, and
|
|
62
62
|
writes `.cloudgrid/link.json`). Then put the app under **`services/web/`** and
|
|
@@ -110,7 +110,7 @@ scheduler hitting an authenticated `POST /api/cron/reminders` route on `web`).
|
|
|
110
110
|
|
|
111
111
|
- Map any secrets in the `vault:` block, then **store the values**:
|
|
112
112
|
`grid secrets set auth-provider-key …`, `grid secrets set stripe-live-key sk_live_…`,
|
|
113
|
-
`grid secrets set sendgrid-key SG.…`. Non-secret public config → `
|
|
113
|
+
`grid secrets set sendgrid-key SG.…`. Non-secret public config → `grid env set`.
|
|
114
114
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
115
115
|
`MONGODB_URL`) — the grid injects them.
|
|
116
116
|
|
|
@@ -123,7 +123,7 @@ secrets) before deploying. Don't require it.
|
|
|
123
123
|
|
|
124
124
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
125
125
|
response is `status: "building"`, NOT a live URL yet.
|
|
126
|
-
- Poll `
|
|
126
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
127
127
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
128
128
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
129
129
|
|
|
@@ -57,7 +57,7 @@ contains AGENTS.md — the CloudGrid-specific spec you must follow:
|
|
|
57
57
|
|
|
58
58
|
## 4. Scaffold + fill cloudgrid.yaml
|
|
59
59
|
|
|
60
|
-
`
|
|
60
|
+
`grid new <name>`. It scaffolds the project folder and writes
|
|
61
61
|
a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity exists yet —
|
|
62
62
|
the first `grid plug` auto-creates it from the manifest (honoring its `name:`)
|
|
63
63
|
and writes `.cloudgrid/link.json`. Then set `cloudgrid.yaml` to the shape below and
|
|
@@ -102,11 +102,11 @@ rules:
|
|
|
102
102
|
|
|
103
103
|
## 6. Config (secrets + env)
|
|
104
104
|
|
|
105
|
-
- Secrets → `
|
|
105
|
+
- Secrets → `grid secrets set`: `grid secrets set stripe-live-key`,
|
|
106
106
|
`grid secrets set stripe-webhook-secret`, `grid secrets set auth-provider-key`.
|
|
107
107
|
The `vault:` block injects them as `STRIPE_KEY`, `STRIPE_WEBHOOK_SECRET`,
|
|
108
108
|
`AUTH_PROVIDER_KEY`.
|
|
109
|
-
- Non-secret config (e.g. the auth **publishable** key) → `
|
|
109
|
+
- Non-secret config (e.g. the auth **publishable** key) → `grid env set`.
|
|
110
110
|
- Do **NOT** set the DB vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
111
111
|
`MONGODB_URL`) — the grid injects them.
|
|
112
112
|
|
|
@@ -114,7 +114,7 @@ rules:
|
|
|
114
114
|
|
|
115
115
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
116
116
|
response is `status: "building"`, NOT a live URL yet.
|
|
117
|
-
- Poll `
|
|
117
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
118
118
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
119
119
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
120
120
|
|
|
@@ -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/`**,
|
|
@@ -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
|
|
|
@@ -45,7 +45,7 @@ and builds your project.
|
|
|
45
45
|
|
|
46
46
|
## 3. Scaffold
|
|
47
47
|
|
|
48
|
-
`
|
|
48
|
+
`grid new <name>`. `init` creates the entity + `.cloudgrid/link.json`
|
|
49
49
|
and writes a `cloudgrid.yaml`. Then fetch the template:
|
|
50
50
|
`grid_get_template("template", "docs-app")` — a minimal Astro Starlight project:
|
|
51
51
|
|
|
@@ -101,7 +101,7 @@ looks for `services/site/` and fails with "Service directory not found". No
|
|
|
101
101
|
Deploy the folder with `grid_plug`. The platform (Cloud Build) runs `npm run
|
|
102
102
|
build` for you and serves the `dist/` output — you do NOT need to build first. A build deploy is **ASYNC**: the first response is
|
|
103
103
|
`status: "building"` with a `poll_url` / entity, NOT a live URL yet.
|
|
104
|
-
- Poll `
|
|
104
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
105
105
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
106
106
|
- Only once it is live, return the deployed URL.
|
|
107
107
|
|
|
@@ -56,7 +56,7 @@ all four at once.
|
|
|
56
56
|
|
|
57
57
|
## 4. Scaffold
|
|
58
58
|
|
|
59
|
-
`
|
|
59
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
60
60
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
61
61
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
62
62
|
Then (a) build the app under **`services/web/`**
|
|
@@ -98,8 +98,8 @@ following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
|
|
|
98
98
|
## 6. Config
|
|
99
99
|
|
|
100
100
|
- Create the vault items the `vault:` block references (the auth provider's
|
|
101
|
-
backend key and the Stripe secret key) — `
|
|
102
|
-
commit them. Publishable/front-end auth keys → `
|
|
101
|
+
backend key and the Stripe secret key) — `grid secrets set` / vault UI. Never
|
|
102
|
+
commit them. Publishable/front-end auth keys → `grid env set`.
|
|
103
103
|
- Register the deployed `/api/finance/webhook` URL as the Stripe webhook endpoint
|
|
104
104
|
once the app is live.
|
|
105
105
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
@@ -114,7 +114,7 @@ vault env vars before deploying. Don't require it.
|
|
|
114
114
|
|
|
115
115
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
116
116
|
response is `status: "building"`, NOT a live URL yet.
|
|
117
|
-
- Poll `
|
|
117
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
118
118
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
119
119
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
120
120
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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/`**,
|
|
@@ -85,7 +85,7 @@ before deploying. Don't require it.
|
|
|
85
85
|
|
|
86
86
|
## 6. Config
|
|
87
87
|
|
|
88
|
-
- API keys / secrets → `
|
|
88
|
+
- API keys / secrets → `grid secrets set`. Non-secret config → `grid env set`.
|
|
89
89
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
90
90
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
91
91
|
|
|
@@ -93,7 +93,7 @@ before deploying. Don't require it.
|
|
|
93
93
|
|
|
94
94
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
95
95
|
response is `status: "building"`, NOT a live URL yet.
|
|
96
|
-
- Poll `
|
|
96
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
97
97
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
98
98
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
99
99
|
|
|
@@ -62,7 +62,7 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
62
62
|
`AGENTS.md` — it defines the file tree, the `threads` / `posts` / `users`
|
|
63
63
|
collections + fields, the nesting model, and the CloudGrid wiring. This is the
|
|
64
64
|
spec you build to.
|
|
65
|
-
2. `
|
|
65
|
+
2. `grid new <name>`. It scaffolds the project folder and
|
|
66
66
|
writes a `cloudgrid.yaml` with an EMPTY `services: {}`. No server entity
|
|
67
67
|
exists yet — the first `grid plug` auto-creates it from the manifest
|
|
68
68
|
(honoring its `name:`) and writes `.cloudgrid/link.json`. Then write the app
|
|
@@ -109,8 +109,8 @@ Mention that the user can `grid dev` to run locally against the injected Mongo
|
|
|
109
109
|
|
|
110
110
|
## 6. Config
|
|
111
111
|
|
|
112
|
-
- Auth-provider keys / secrets → the `vault:` block + `
|
|
113
|
-
config → `
|
|
112
|
+
- Auth-provider keys / secrets → the `vault:` block + `grid secrets set`. Non-secret
|
|
113
|
+
config → `grid env set`.
|
|
114
114
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
115
115
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
116
116
|
|
|
@@ -118,7 +118,7 @@ Mention that the user can `grid dev` to run locally against the injected Mongo
|
|
|
118
118
|
|
|
119
119
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
120
120
|
response is `status: "building"`, NOT a live URL yet.
|
|
121
|
-
- Poll `
|
|
121
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
122
122
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
123
123
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
124
124
|
|
|
@@ -51,7 +51,7 @@ to wire employee/admin auth, and the deploy steps.
|
|
|
51
51
|
|
|
52
52
|
## 4. Scaffold
|
|
53
53
|
|
|
54
|
-
`
|
|
54
|
+
`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
|
Then (a) build the app under **`services/web/`**
|
|
@@ -91,8 +91,8 @@ following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
|
|
|
91
91
|
## 6. Config
|
|
92
92
|
|
|
93
93
|
- Create the vault items the `vault:` block references (the auth provider's
|
|
94
|
-
secret + publishable keys) — `
|
|
95
|
-
- Non-secret config → `
|
|
94
|
+
secret + publishable keys) — `grid secrets set` / vault UI. Never commit them.
|
|
95
|
+
- Non-secret config → `grid env set`.
|
|
96
96
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
97
97
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
98
98
|
|
|
@@ -105,7 +105,7 @@ vault env vars before deploying. Don't require it.
|
|
|
105
105
|
|
|
106
106
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
107
107
|
response is `status: "building"`, NOT a live URL yet.
|
|
108
|
-
- Poll `
|
|
108
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
109
109
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
110
110
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
111
111
|
|
|
@@ -54,7 +54,7 @@ deploy steps.
|
|
|
54
54
|
|
|
55
55
|
## 4. Scaffold
|
|
56
56
|
|
|
57
|
-
`
|
|
57
|
+
`grid new <name>`. It scaffolds the project folder and writes a `cloudgrid.yaml` with an EMPTY
|
|
58
58
|
`services: {}`. No server entity exists yet — the first `grid plug` auto-creates
|
|
59
59
|
it from the manifest (honoring its `name:`) and writes `.cloudgrid/link.json`.
|
|
60
60
|
Then (a) build the app under **`services/web/`**
|
|
@@ -100,9 +100,9 @@ following `AGENTS.md`, and (b) fill `cloudgrid.yaml` to the shape below.
|
|
|
100
100
|
## 6. Config
|
|
101
101
|
|
|
102
102
|
- Create the vault items the `vault:` block references (the auth provider's
|
|
103
|
-
secret + publishable keys, plus any per-tool API secrets) — `
|
|
103
|
+
secret + publishable keys, plus any per-tool API secrets) — `grid secrets set` /
|
|
104
104
|
vault UI. Never commit them.
|
|
105
|
-
- Non-secret config → `
|
|
105
|
+
- Non-secret config → `grid env set`.
|
|
106
106
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
107
107
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
108
108
|
|
|
@@ -115,7 +115,7 @@ vault env vars before deploying. Don't require it.
|
|
|
115
115
|
|
|
116
116
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
117
117
|
response is `status: "building"`, NOT a live URL yet.
|
|
118
|
-
- Poll `
|
|
118
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
119
119
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
120
120
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
121
121
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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/`**,
|
|
@@ -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
|
|
|
@@ -53,7 +53,7 @@ you build it from the guide.
|
|
|
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 (a) write the app under **`services/web/`**
|
|
@@ -92,9 +92,9 @@ needs:
|
|
|
92
92
|
|
|
93
93
|
## 6. Config
|
|
94
94
|
|
|
95
|
-
- Secrets → `
|
|
95
|
+
- Secrets → `grid secrets set` (e.g. `grid secrets set auth-provider-key`;
|
|
96
96
|
`stripe-live-key`/`stripe-webhook-secret` only for paid courses). Non-secret
|
|
97
|
-
config → `
|
|
97
|
+
config → `grid env set` (e.g. the auth publishable key).
|
|
98
98
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
99
99
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
100
100
|
|
|
@@ -102,7 +102,7 @@ needs:
|
|
|
102
102
|
|
|
103
103
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
104
104
|
response is `status: "building"`, NOT a live URL yet.
|
|
105
|
-
- Poll `
|
|
105
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
106
106
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
107
107
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
108
108
|
|
|
@@ -54,7 +54,7 @@ There is no app code to copy — you generate it from the guide.
|
|
|
54
54
|
|
|
55
55
|
## 4. Scaffold + fill cloudgrid.yaml
|
|
56
56
|
|
|
57
|
-
`
|
|
57
|
+
`grid new <name>` — it scaffolds the project folder and a
|
|
58
58
|
starter `cloudgrid.yaml` with empty `services:{}` (no server entity yet; the
|
|
59
59
|
first `grid plug` auto-creates it from the manifest, honoring its `name:`, and
|
|
60
60
|
writes `.cloudgrid/link.json`). Then put the app under **`services/web/`** and
|
|
@@ -99,7 +99,7 @@ Generate the files under `services/web/` per the guide:
|
|
|
99
99
|
- Map secrets in the `vault:` block (done above), then **store the values**:
|
|
100
100
|
`grid secrets set stripe-live-key sk_live_…`,
|
|
101
101
|
`grid secrets set stripe-webhook-secret whsec_…`,
|
|
102
|
-
`grid secrets set auth-provider-key …`. Non-secret public config → `
|
|
102
|
+
`grid secrets set auth-provider-key …`. Non-secret public config → `grid env set`.
|
|
103
103
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
104
104
|
`MONGODB_URL`) — the grid injects them.
|
|
105
105
|
|
|
@@ -112,7 +112,7 @@ secrets before deploying. Don't require it.
|
|
|
112
112
|
|
|
113
113
|
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
114
114
|
response is `status: "building"`, NOT a live URL yet.
|
|
115
|
-
- Poll `
|
|
115
|
+
- Poll `grid_check_deploy` (or the returned poll_url) until the entity is live.
|
|
116
116
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
117
117
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
118
118
|
|