You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* | `test` | `development` | ephemeral developer-class run (vitest/CI), not a provisioned pre-production copy |
313
317
* | `staging` | `sandbox` | pre-production and production-LIKE; certainly not `production`, and `sandbox` is the enum's pre-production member |
318
+
* | `preview` | `sandbox` | a PROVISIONED environment (own database, hostname, plan tier, per-environment RBAC), not a developer's machine — same class as `staging` (#6287) |
319
+
* | `trial` | `sandbox` | a provisioned environment holding an evaluating customer's real business data; developer-class would understate it (#6287) |
314
320
* | unset / blank | `production` | the host declined to say; every other reader of that absence already says `production`, and of the two ways to be wrong, calling a real production deployment `development` is the dangerous one (#5673, #5936) |
315
321
* | anything else | `development` | an unrecognised spelling is a GUESS, and this function never claims `production` on a guess (#4828) |
316
322
*
317
323
* The last two rows carry the whole safety argument, and they point opposite
318
-
* ways on purpose. An unrecognised spelling (`qa`, `preview`) degrades to
324
+
* ways on purpose. An unrecognised spelling (`qa`, `uat`) degrades to
319
325
* `development`, so nothing here ever advertises `production` for an
320
326
* environment it failed to recognise. **Absence is not a guess** — it is the
321
327
* host declining to answer, and the conservative response to that is
322
328
* `production`: `environment` is machine-readable, and a client may skip
323
329
* production warnings or loosen a destructive action's confirmation on it.
324
330
*
331
+
* ## `preview` and `trial` are a THIRD case — declared, not absent, not a guess (#6287)
332
+
*
333
+
* Until #6287 those two reached `development` through the `??` fallback rather
334
+
* than through a decision, so this table declared five of the seven
335
+
* `EnvironmentTypeSchema` members and let the other two fall off the end. That
336
+
* is the same shape the two rows above exist to separate: the fallback answers
337
+
* for spellings this repo has never heard of, and a first-class member of our
338
+
* OWN taxonomy is not one of those. It is neither the host declining to answer
339
+
* nor a guess — it is a bucket we ship, and where it folds is ours to state.
340
+
*
341
+
* Both fold to `sandbox`, and the reasoning is the same for each:
342
+
*
343
+
* 1. **What they are here.** In this repo's taxonomy an environment is a
0 commit comments