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.

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