Init Schemas
import { ... } from "@95octane/common/schemas/init"
The init schemas describe the response of GET /init, the public,
unauthenticated bootstrap endpoint clients call before sign-in. They carry no
user data — only environment-derived feature flags.
| Schema | Purpose |
|---|---|
InitResponseSchema |
Response body for GET /init |
InitResponseSchema
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
userEnabled |
boolean |
no | — | Whether the hidden review-process test-user sign-in is available on this build. Defaults to false. The server returns true in development, staging, and test environments and false in production. |
{ "userEnabled": false }
userEnabled — purpose
The mobile app exposes a hidden authentication mode (double-tap on the 95octane
logo) that signs reviewers in with a preconfigured email/password during Apple
App Store and Google Play review. userEnabled gates this UI:
false(production default) — the hidden sign-in mode is suppressed.true(non-production environments) — the mode is available.
See
docs/product/misc/review-process.md
for the full review-process behaviour.
Related: per-user client config
InitResponseSchema is intentionally minimal. Anything that depends on the
authenticated user (RevenueCat key, app SHA1, static-page URLs, Crashlytics
flag, sunrise/sunset) is returned later by GET /user/:id in its config
field. That payload is not part of @95octane/common/schemas/init — it is
assembled by getClientConfig in
projects/service/src/modules/common/config.model.ts and shaped by
SchemaUser.UserResponse. The fields it returns are:
| Field | Type | Description |
|---|---|---|
appSHA1 |
string \| null |
Android SHA1 fingerprint; null on iOS |
revenueCatAPIKey |
string |
RevenueCat key for the requesting platform (Android or iOS) |
sendCrashlyticsData |
boolean |
Whether the client should ship crash reports to Crashlytics |
urlAboutUs |
string |
URL of the About Us page |
urlPrivacy |
string |
URL of the Privacy Policy page |
urlTerms |
string |
URL of the Terms & Conditions page |
Firestore Storage
None. GET /init derives its response entirely from server runtime
configuration (config.isEnvDevelopment, config.isEnvStaging,
config.isEnvTest) — there is no Firestore document backing it.
See Also
- Init API
- User API —
GET /user/:idfor the per-userconfigpayload - Review Process