app.white_label_grace
TableRow level security on
White label kept after a downgrade (Section 12): when an org's plan stops including white label, its brand without "Powered by XOS" and its custom domains stay until the end of the billing period already paid for, with notice to every Owner, then revert to default branding. Written only by the subscription trigger and the lifecycle job.
Primary key: id
| Column | Type | Nullable | Description |
|---|---|---|---|
| id | uuid | No | Primary key, UUID v7. |
| org_id | uuid | No | Owning org. A row never moves to another org.References app.organizations.id |
| plan_from | text | No | Plan that included white label before the change.References app.plans.code |
| kept_until | timestamp with time zone | No | End of the paid billing period: white label reverts then. |
| ended_at | timestamp with time zone | Yes | When the grace ended. |
| end_reason | text | Yes | reverted (the period ended) or plan_regained (the org moved back to a plan with white label). |
| created_at | timestamp with time zone | No | When the row was inserted. Set by the database. |
| created_by | uuid | Yes | Person who inserted the row, or null for a platform process. Set by the database.References app.people.id |
| updated_at | timestamp with time zone | No | When the row last changed. Set by the database. |
| updated_by | uuid | Yes | Person who last changed the row, or null for a platform process. Set by the database.References app.people.id |
| deleted_at | timestamp with time zone | Yes | Soft delete time. A row with deleted_at set is ignored by every access helper. |