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.defaultRequireRsvpApprovalandride.defaultMaxRidersare referenced indocs/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 globalsettings/globaldocument 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.