Settings Schema

Global app configuration is stored as a single Firestore document. It is seeded at deploy time and updated directly in Firestore (no public API).

Firestore Document (settings/global)

Field Type Required Description
group.maxGroupsPerUser.free number yes Max groups a free user can create
group.maxGroupsPerUser.trial number yes Max groups a trial user can create
group.maxGroupsPerUser.subscriber number yes Max groups a subscriber user can create
group.maxGroupsPerUser.beta number yes Max groups a beta user can create
group.coolDownPeriodForArchivingGroup number yes Months of inactivity before a group is auto-archived
tier.maxRidesPerUser.free number yes Max rides a free user can create
tier.maxRidesPerUser.trial number yes Max rides a trial user can create
tier.maxRidesPerUser.subscriber number yes Max rides a subscriber user can create
tier.maxRidesPerUser.beta number yes Max rides a beta user can create
ride.maxWaypoints number yes Max breakpoints per ride (excluding origin and destination)
ride.defaultRequireRsvpApproval boolean yes Planned — not yet live. Default value pre-filled into settings.requireRsvpApproval on the Create Ride form
ride.defaultMaxRiders number yes Planned — not yet live. Default value pre-filled into settings.maxRiders on the Create Ride form (0 = unlimited)
{
  "group": {
    "maxGroupsPerUser": {
      "free": 1,
      "trial": 3,
      "subscriber": 10,
      "beta": 5,
    },
    "coolDownPeriodForArchivingGroup": 6, // months of inactivity before auto-archive
  },
  "tier": {
    "maxRidesPerUser": {
      "free": 0, // free users cannot create rides
      "trial": 5,
      "subscriber": 100,
      "beta": 100,
    },
  },
  "ride": {
    "maxWaypoints": 6, // breakpoints only; excludes origin and destination
    // Planned — not yet live:
    // "defaultRequireRsvpApproval": false,
    // "defaultMaxRiders": 0, // 0 = unlimited
  },
}

Planned — not yet live: ride.defaultRequireRsvpApproval and ride.defaultMaxRiders are referenced in docs/product/settings/ but are not yet read by any service code. They are listed here so the schema and the product doc stay in sync. No global settings/global document is currently loaded by the API — the values above are documented for the planned admin control panel.

Indexes

No indexes required. Settings are accessed by the fixed path settings/global.