@cloudgrid-io/mcp 0.20.20 → 0.20.22
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/corpus/capability-map.md +1 -1
- package/src/corpus/cloudgrid-yaml.md +3 -3
- package/src/corpus/examples/ai-app/index.md +20 -21
- package/src/corpus/templates/_cloudgrid.yaml.reference +2 -2
- package/src/corpus/templates/admin-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/ai-app/README.md +18 -13
- package/src/corpus/templates/ai-app/cloudgrid.yaml +2 -2
- package/src/corpus/templates/ai-app/index.md +23 -18
- package/src/corpus/templates/ai-app/services/web/app/api/chat/route.js +11 -8
- package/src/corpus/templates/ai-app/services/web/package.json +1 -1
- package/src/corpus/templates/ai-knowledge-base/AGENTS.md +19 -21
- package/src/corpus/templates/ai-knowledge-base/README.md +1 -1
- package/src/corpus/templates/ai-knowledge-base/cloudgrid.yaml +2 -2
- package/src/corpus/templates/ai-knowledge-base/index.md +2 -2
- package/src/corpus/templates/analytics-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/api-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/api-docs/cloudgrid.yaml +2 -2
- package/src/corpus/templates/api-service/cloudgrid.yaml +2 -2
- package/src/corpus/templates/app-with-data/cloudgrid.yaml +2 -2
- package/src/corpus/templates/appointment-booking/AGENTS.md +1 -1
- package/src/corpus/templates/appointment-booking/cloudgrid.yaml +2 -2
- package/src/corpus/templates/approval-workflow/AGENTS.md +2 -2
- package/src/corpus/templates/approval-workflow/cloudgrid.yaml +2 -2
- package/src/corpus/templates/billing-dashboard/AGENTS.md +2 -2
- package/src/corpus/templates/billing-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/blog-cms/cloudgrid.yaml +2 -2
- package/src/corpus/templates/booking-system/AGENTS.md +2 -2
- package/src/corpus/templates/booking-system/cloudgrid.yaml +2 -2
- package/src/corpus/templates/booking-system/index.md +1 -1
- package/src/corpus/templates/calendar-scheduler/AGENTS.md +1 -1
- package/src/corpus/templates/calendar-scheduler/cloudgrid.yaml +2 -2
- package/src/corpus/templates/calendar-scheduler/index.md +1 -1
- package/src/corpus/templates/changelog/cloudgrid.yaml +2 -2
- package/src/corpus/templates/company-website/cloudgrid.yaml +2 -2
- package/src/corpus/templates/course-platform/AGENTS.md +2 -2
- package/src/corpus/templates/course-platform/cloudgrid.yaml +2 -2
- package/src/corpus/templates/crm/cloudgrid.yaml +2 -2
- package/src/corpus/templates/dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/deck/cloudgrid.yaml +2 -2
- package/src/corpus/templates/directory/cloudgrid.yaml +2 -2
- package/src/corpus/templates/docs-site/cloudgrid.yaml +2 -2
- package/src/corpus/templates/erp/AGENTS.md +2 -2
- package/src/corpus/templates/erp/cloudgrid.yaml +2 -2
- package/src/corpus/templates/erp/index.md +1 -1
- package/src/corpus/templates/event-board/cloudgrid.yaml +2 -2
- package/src/corpus/templates/expense-tracker/cloudgrid.yaml +2 -2
- package/src/corpus/templates/feature-request-board/cloudgrid.yaml +2 -2
- package/src/corpus/templates/financial-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/forum/AGENTS.md +3 -3
- package/src/corpus/templates/forum/cloudgrid.yaml +2 -2
- package/src/corpus/templates/hr-portal/AGENTS.md +1 -1
- package/src/corpus/templates/hr-portal/cloudgrid.yaml +2 -2
- package/src/corpus/templates/internal-tools-portal/AGENTS.md +2 -2
- package/src/corpus/templates/internal-tools-portal/cloudgrid.yaml +2 -2
- package/src/corpus/templates/inventory/cloudgrid.yaml +2 -2
- package/src/corpus/templates/invoice/cloudgrid.yaml +2 -2
- package/src/corpus/templates/job-board/cloudgrid.yaml +2 -2
- package/src/corpus/templates/kanban/cloudgrid.yaml +2 -2
- package/src/corpus/templates/landing-page/cloudgrid.yaml +2 -2
- package/src/corpus/templates/lms/AGENTS.md +3 -3
- package/src/corpus/templates/lms/cloudgrid.yaml +2 -2
- package/src/corpus/templates/marketplace/AGENTS.md +1 -1
- package/src/corpus/templates/marketplace/cloudgrid.yaml +2 -2
- package/src/corpus/templates/marketplace/index.md +1 -1
- package/src/corpus/templates/membership-site/AGENTS.md +1 -1
- package/src/corpus/templates/membership-site/cloudgrid.yaml +2 -2
- package/src/corpus/templates/monitoring-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/online-store/AGENTS.md +1 -1
- package/src/corpus/templates/online-store/cloudgrid.yaml +2 -2
- package/src/corpus/templates/portfolio/cloudgrid.yaml +2 -2
- package/src/corpus/templates/product-catalog/cloudgrid.yaml +2 -2
- package/src/corpus/templates/product-launch/cloudgrid.yaml +2 -2
- package/src/corpus/templates/project-management/cloudgrid.yaml +2 -2
- package/src/corpus/templates/property-listings/cloudgrid.yaml +2 -2
- package/src/corpus/templates/quiz-platform/cloudgrid.yaml +2 -2
- package/src/corpus/templates/report/cloudgrid.yaml +2 -2
- package/src/corpus/templates/restaurant-reservations/AGENTS.md +2 -2
- package/src/corpus/templates/restaurant-reservations/cloudgrid.yaml +2 -2
- package/src/corpus/templates/revenue-dashboard/cloudgrid.yaml +2 -2
- package/src/corpus/templates/saas-marketing/cloudgrid.yaml +2 -2
- package/src/corpus/templates/semantic-search/cloudgrid.yaml +1 -1
- package/src/corpus/templates/simple-semantic-search/cloudgrid.yaml +3 -3
- package/src/corpus/templates/status-page/cloudgrid.yaml +2 -2
- package/src/corpus/templates/subscription-management/AGENTS.md +1 -1
- package/src/corpus/templates/subscription-management/cloudgrid.yaml +2 -2
- package/src/corpus/templates/task-manager/cloudgrid.yaml +2 -2
- package/src/corpus/templates/ticket-system/cloudgrid.yaml +2 -2
- package/src/corpus/templates/time-tracking/cloudgrid.yaml +2 -2
- package/src/corpus/templates/travel-booking/AGENTS.md +2 -2
- package/src/corpus/templates/travel-booking/cloudgrid.yaml +2 -2
- package/src/corpus/templates/travel-booking/index.md +1 -1
- package/src/corpus/templates/waitlist/cloudgrid.yaml +2 -2
- package/src/corpus/templates/web-app/cloudgrid.yaml +2 -2
- package/src/corpus/workflows/ai-app.md +13 -9
- package/src/corpus/workflows/ai-knowledge-base.md +15 -12
- package/src/tools/constants.js +1 -1
- package/src/tools/register.js +22 -14
- package/src/tools.js +1 -1
|
@@ -96,7 +96,7 @@ name: my-jobs
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: my-board
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -102,7 +102,7 @@ name: landing-page
|
|
|
102
102
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
103
103
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
104
104
|
# disk: true
|
|
105
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
105
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
106
106
|
# ai: true
|
|
107
107
|
|
|
108
108
|
|
|
@@ -198,7 +198,7 @@ services:
|
|
|
198
198
|
# path: /api/health
|
|
199
199
|
# expected: "200"
|
|
200
200
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
201
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
201
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
202
202
|
# env:
|
|
203
203
|
# LOG_LEVEL: info
|
|
204
204
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -105,11 +105,11 @@ runtime (after `grid plug`).
|
|
|
105
105
|
client getter in `lib/auth.js`), not at module top level. If you add paid
|
|
106
106
|
courses, map `STRIPE_KEY`/`STRIPE_WEBHOOK_SECRET` the same way.
|
|
107
107
|
- **AI (optional — auto-grading / quiz generation / a study tutor)** — add
|
|
108
|
-
`needs: { ai: true }` → the grid injects **`
|
|
109
|
-
`@cloudgrid-io/
|
|
108
|
+
`needs: { ai: true }` → the grid injects **`RUNTIME_GATEWAY_URL`**; call it via
|
|
109
|
+
`@cloudgrid-io/runtime`. Not enabled in this blueprint; add the need if you want it.
|
|
110
110
|
|
|
111
111
|
Reserved env var names you must NOT set yourself: `PORT`, `NODE_ENV`,
|
|
112
|
-
`DATABASE_MONGODB_URL`/`MONGODB_URL`, `
|
|
112
|
+
`DATABASE_MONGODB_URL`/`MONGODB_URL`, `RUNTIME_GATEWAY_URL`, `CLOUDGRID_*`.
|
|
113
113
|
|
|
114
114
|
---
|
|
115
115
|
|
|
@@ -96,7 +96,7 @@ name: lms
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -197,7 +197,7 @@ services:
|
|
|
197
197
|
# path: /api/health
|
|
198
198
|
# expected: "200"
|
|
199
199
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
200
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
200
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
201
201
|
# env:
|
|
202
202
|
# LOG_LEVEL: info
|
|
203
203
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -92,7 +92,7 @@ injected as env vars at `grid dev` (local) and at runtime (after `grid plug`):
|
|
|
92
92
|
| Stripe secret key | `vault: { STRIPE_KEY: stripe-live-key }` | `STRIPE_KEY` | `lib/stripe.js` |
|
|
93
93
|
| Stripe webhook secret | `vault: { STRIPE_WEBHOOK_SECRET: stripe-webhook-secret }` | `STRIPE_WEBHOOK_SECRET` | `api/webhooks/stripe/route.js` |
|
|
94
94
|
| Auth provider server key | `vault: { AUTH_PROVIDER_KEY: auth-provider-key }` | `AUTH_PROVIDER_KEY` | `lib/auth.js` |
|
|
95
|
-
| AI (optional) | `needs: { ai: true }` | `
|
|
95
|
+
| AI (optional) | `needs: { ai: true }` | `RUNTIME_GATEWAY_URL` | via `@cloudgrid-io/runtime` |
|
|
96
96
|
|
|
97
97
|
The `vault:` block only **maps** an org vault item key → an env var name. You must
|
|
98
98
|
store the real value once with `grid secrets set <vault-item-key> <value>` (e.g.
|
|
@@ -96,7 +96,7 @@ needs:
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -197,7 +197,7 @@ services:
|
|
|
197
197
|
# path: /api/health
|
|
198
198
|
# expected: "200"
|
|
199
199
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
200
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
200
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
201
201
|
# env:
|
|
202
202
|
# LOG_LEVEL: info
|
|
203
203
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -71,7 +71,7 @@ webhook), and the `write files → grid plug --no-deploy → secrets set → gri
|
|
|
71
71
|
|
|
72
72
|
- Choose your auth provider SDK (Clerk or Auth0) and set the `role` claim.
|
|
73
73
|
- Set your commission take-rate in `lib/commission.js`.
|
|
74
|
-
- Add `needs: { ai: true }` (injects `
|
|
74
|
+
- Add `needs: { ai: true }` (injects `RUNTIME_GATEWAY_URL`) only if you add AI features
|
|
75
75
|
like listing generation or search.
|
|
76
76
|
- Build under `services/web/`, then `grid dev` (local) / `grid plug` (async — poll
|
|
77
77
|
to a live URL). Point the Stripe webhook at `<live-url>/api/webhooks/stripe`.
|
|
@@ -88,7 +88,7 @@ A user is a member when a `memberships` doc for their `authId` has
|
|
|
88
88
|
non-secret `services.web.env` block (or as a build-time env) rather than the
|
|
89
89
|
vault.
|
|
90
90
|
- **AI (optional)** — if you add AI features, declare `needs: { ai: true }` and
|
|
91
|
-
call the gateway at `process.env.
|
|
91
|
+
call the gateway at `process.env.RUNTIME_GATEWAY_URL` via `@cloudgrid-io/runtime`. Not
|
|
92
92
|
required for this blueprint.
|
|
93
93
|
|
|
94
94
|
## 4. Wiring auth + payments
|
|
@@ -96,7 +96,7 @@ name: membership-site
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -196,7 +196,7 @@ services:
|
|
|
196
196
|
# path: /api/health
|
|
197
197
|
# expected: "200"
|
|
198
198
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
199
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
199
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
200
200
|
# env:
|
|
201
201
|
# LOG_LEVEL: info
|
|
202
202
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: monitoring-dashboard
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -82,7 +82,7 @@ verified Stripe event.
|
|
|
82
82
|
Derive them from the incoming request (`new URL(request.url).origin`) rather than
|
|
83
83
|
hardcoding the live host, so it works in `grid dev` and after `grid plug`.
|
|
84
84
|
- **AI (only if you add it):** declare `needs: { ai: true }` and the platform
|
|
85
|
-
injects `
|
|
85
|
+
injects `RUNTIME_GATEWAY_URL`; call it via `@cloudgrid-io/runtime`. Not required for a store.
|
|
86
86
|
|
|
87
87
|
## 4. Wiring payments (Stripe) — and optional auth
|
|
88
88
|
|
|
@@ -96,7 +96,7 @@ name: online-store
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -194,7 +194,7 @@ services:
|
|
|
194
194
|
# path: /api/health
|
|
195
195
|
# expected: "200"
|
|
196
196
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
197
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
197
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
198
198
|
# env:
|
|
199
199
|
# LOG_LEVEL: info
|
|
200
200
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: portfolio
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: product-catalog
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -102,7 +102,7 @@ name: product-launch
|
|
|
102
102
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
103
103
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
104
104
|
# disk: true
|
|
105
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
105
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
106
106
|
# ai: true
|
|
107
107
|
|
|
108
108
|
|
|
@@ -198,7 +198,7 @@ services:
|
|
|
198
198
|
# path: /api/health
|
|
199
199
|
# expected: "200"
|
|
200
200
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
201
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
201
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
202
202
|
# env:
|
|
203
203
|
# LOG_LEVEL: info
|
|
204
204
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: my-project-board
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: property-listings
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: quiz-platform
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -102,7 +102,7 @@ name: report
|
|
|
102
102
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
103
103
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
104
104
|
# disk: true
|
|
105
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
105
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
106
106
|
# ai: true
|
|
107
107
|
|
|
108
108
|
|
|
@@ -198,7 +198,7 @@ services:
|
|
|
198
198
|
# path: /api/health
|
|
199
199
|
# expected: "200"
|
|
200
200
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
201
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
201
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
202
202
|
# env:
|
|
203
203
|
# LOG_LEVEL: info
|
|
204
204
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -122,11 +122,11 @@ You never provision infra or set connection strings by hand. Declare intent in
|
|
|
122
122
|
|
|
123
123
|
- **AI (optional).** If you add AI (e.g. menu-copy generation, natural-language
|
|
124
124
|
booking parsing), declare `needs: { ai: true }` → the grid injects
|
|
125
|
-
**`
|
|
125
|
+
**`RUNTIME_GATEWAY_URL`**; call it via `@cloudgrid-io/runtime`. Not required for the base
|
|
126
126
|
blueprint.
|
|
127
127
|
|
|
128
128
|
Reserved env var names you must NOT set: `PORT`, `APP_NAME`, `SERVICE_NAME`,
|
|
129
|
-
`NODE_ENV`, `MONGODB_URL`, `REDIS_URL`, `
|
|
129
|
+
`NODE_ENV`, `MONGODB_URL`, `REDIS_URL`, `RUNTIME_GATEWAY_URL`, `CLOUDGRID_*`.
|
|
130
130
|
|
|
131
131
|
---
|
|
132
132
|
|
|
@@ -96,7 +96,7 @@ name: restaurant-reservations
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -204,7 +204,7 @@ services:
|
|
|
204
204
|
# path: /api/health
|
|
205
205
|
# expected: "200"
|
|
206
206
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
207
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
207
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
208
208
|
# env:
|
|
209
209
|
# LOG_LEVEL: info
|
|
210
210
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: revenue-dashboard
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: saas-marketing
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -100,7 +100,7 @@ name: semantic-search
|
|
|
100
100
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
101
101
|
# # Use with SOURCE_TYPE=local to read documents from the mount.
|
|
102
102
|
# disk: true
|
|
103
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
103
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
104
104
|
# ai: true
|
|
105
105
|
|
|
106
106
|
|
|
@@ -98,7 +98,7 @@ icon: "🔎"
|
|
|
98
98
|
# # disk â persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
99
99
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
100
100
|
# disk: true
|
|
101
|
-
# # ai â AI Gateway via @cloudgrid-io/
|
|
101
|
+
# # ai â AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
102
102
|
# ai: true
|
|
103
103
|
|
|
104
104
|
|
|
@@ -193,7 +193,7 @@ services:
|
|
|
193
193
|
# Returns 503 until the startup seed finishes, so traffic waits for a ready index.
|
|
194
194
|
health: /health
|
|
195
195
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
196
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
196
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
197
197
|
# env:
|
|
198
198
|
# LOG_LEVEL: info
|
|
199
199
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -223,7 +223,7 @@ services:
|
|
|
223
223
|
|
|
224
224
|
needs:
|
|
225
225
|
vector: pgvector # pgvector on Postgres. Injects VECTOR_PGVECTOR_URL (+legacy PGVECTOR_URL).
|
|
226
|
-
ai: true # AI Gateway for embeddings via @cloudgrid-io/runtime. Injects
|
|
226
|
+
ai: true # AI Gateway for embeddings via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL.
|
|
227
227
|
|
|
228
228
|
|
|
229
229
|
# ============================================================================
|
|
@@ -96,7 +96,7 @@ name: status-page
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -101,7 +101,7 @@ client for plan/status — read this (kept current by the webhook).
|
|
|
101
101
|
vault. An auth SDK's publishable key goes here too.
|
|
102
102
|
- **AI (optional)** — if you add AI features (e.g. churn-reason summaries),
|
|
103
103
|
declare `needs: { ai: true }` and call the gateway at
|
|
104
|
-
`process.env.
|
|
104
|
+
`process.env.RUNTIME_GATEWAY_URL` via `@cloudgrid-io/runtime`. Not required for this
|
|
105
105
|
blueprint.
|
|
106
106
|
|
|
107
107
|
## 4. Wiring auth + payments
|
|
@@ -96,7 +96,7 @@ name: subscription-management
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -196,7 +196,7 @@ services:
|
|
|
196
196
|
# path: /api/health
|
|
197
197
|
# expected: "200"
|
|
198
198
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
199
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
199
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
200
200
|
# env:
|
|
201
201
|
# LOG_LEVEL: info
|
|
202
202
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: my-tasks
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: my-tickets
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -96,7 +96,7 @@ name: time-tracking
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -115,8 +115,8 @@ You do NOT provision infra or set connection strings/secrets by hand. Declared i
|
|
|
115
115
|
`STRIPE_KEY`, `STRIPE_WEBHOOK_SECRET`, `AUTH_PROVIDER_KEY`. Add the underlying
|
|
116
116
|
vault items with `grid secrets set <item> <value>` (or the vault UI) BEFORE
|
|
117
117
|
plug, so resolution succeeds. Never hardcode a key; never commit `.env`.
|
|
118
|
-
- **AI (`needs: { ai: true }`, if you add it)** → `
|
|
119
|
-
`@cloudgrid-io/
|
|
118
|
+
- **AI (`needs: { ai: true }`, if you add it)** → `RUNTIME_GATEWAY_URL`, used via
|
|
119
|
+
`@cloudgrid-io/runtime`. Optional — e.g. a natural-language "plan my trip" search
|
|
120
120
|
assistant. Not required for a basic portal.
|
|
121
121
|
|
|
122
122
|
Read every injected var lazily (inside getters), same rule as the DB.
|
|
@@ -96,7 +96,7 @@ name: travel-booking
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -197,7 +197,7 @@ services:
|
|
|
197
197
|
# path: /api/health
|
|
198
198
|
# expected: "200"
|
|
199
199
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
200
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
200
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
201
201
|
# env:
|
|
202
202
|
# LOG_LEVEL: info
|
|
203
203
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|
|
@@ -66,7 +66,7 @@ The heart of this blueprint. Read it before building. It covers:
|
|
|
66
66
|
2. **Mongo collections + fields** — `flights`, `hotels`, `bookings`, `trips`,
|
|
67
67
|
plus the guarded-`$inc` overbooking rule that prevents overselling seats/rooms.
|
|
68
68
|
3. **CloudGrid injection** — `DATABASE_MONGODB_URL` for Mongo, `vault:` → env vars
|
|
69
|
-
for secrets, `
|
|
69
|
+
for secrets, `RUNTIME_GATEWAY_URL` for ai.
|
|
70
70
|
4. **Auth + payments wiring** — provider SDK from `AUTH_PROVIDER_KEY`; Stripe
|
|
71
71
|
checkout + signature-verified webhook from `STRIPE_KEY` /
|
|
72
72
|
`STRIPE_WEBHOOK_SECRET`.
|
|
@@ -96,7 +96,7 @@ name: waitlist
|
|
|
96
96
|
# # disk — persistent FS mount (PVC). Injects DISK_PATH. Pins to 1 replica.
|
|
97
97
|
# # true | { size: 1Gi, mount: /var/data } (forbidden: /proc /sys /dev)
|
|
98
98
|
# disk: true
|
|
99
|
-
# # ai — AI Gateway via @cloudgrid-io/
|
|
99
|
+
# # ai — AI Gateway via @cloudgrid-io/runtime. Injects RUNTIME_GATEWAY_URL. true | false.
|
|
100
100
|
# ai: true
|
|
101
101
|
|
|
102
102
|
|
|
@@ -192,7 +192,7 @@ services:
|
|
|
192
192
|
# path: /api/health
|
|
193
193
|
# expected: "200"
|
|
194
194
|
# Static runtime env vars (strings). Reserved: PORT, APP_NAME, SERVICE_NAME,
|
|
195
|
-
# NODE_ENV, MONGODB_URL, REDIS_URL,
|
|
195
|
+
# NODE_ENV, MONGODB_URL, REDIS_URL, RUNTIME_GATEWAY_URL, N8N_WEBHOOK_URL, CLOUDGRID_*.
|
|
196
196
|
# env:
|
|
197
197
|
# LOG_LEVEL: info
|
|
198
198
|
# Sibling services/private resources that must be Ready first (no cron, no cycles).
|