Commit Graph
14 Commits
Author SHA1 Message Date
CharisandClaude Code b2cf3693dd feat(studio): /api/status-page endpoint backed by incident.io Widget API (#50931)
## Summary

* Adds `/api/status-page` (Next route + TanStack wrapper), backed by the
[incident.io](<http://incident.io>) Widget API, annotating each item
with `visible`, `show_banner`, and (for scheduled maintenances)
`banner_lead_days`.
* Deployment-mode visibility is driven by a new
`status_page:visibility_field_ids` custom-content key.
* Widget array parsing is fault-tolerant: a malformed item in one array
is dropped and logged rather than failing the whole response, so one bad
item can't hide a real ongoing incident.
* 429s from [incident.io](<http://incident.io>) are retried with
equal-jitter exponential backoff, respecting `Retry-After`, up to 2
retries.
* Nothing consumes this endpoint yet — it replaces no existing behavior
and changes nothing user-visible. Later PRs (this is PR 1 of a stack)
wire up consumers behind the `incidentIoStatusPage` ConfigCat flag.

Part of
[FE-4057](https://linear.app/supabase/issue/FE-4057/frontend-bannerbot-reconfigured)
— see Linear for full design context.

## Test plan

- [X] `pnpm --filter studio run typecheck`
- [X] `pnpm --filter studio run lint:ratchet`
- [X] `pnpm knip --workspace apps/studio`
- [X] `pnpm test:prettier`
- [X] `pnpm --filter studio exec vitest run status-page` — 44 tests
passing, including a regression test built from a real production
[incident.io](<http://incident.io>) payload that initially failed to
parse, and a compile-time type-safety regression test for the
array-parsing helper

Co-authored-by: Claude Code
[charis@supabase.io](<mailto:charis@supabase.io>)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a status page that displays ongoing incidents and maintenance,
with visibility and banner settings based on linked incident details.
* Status page data is available through a new API endpoint, with caching
for successful responses and degraded results.
* **Bug Fixes**
* Status page data can still display when some linked incident details
are unavailable; affected results are marked as degraded.
* Improved handling of invalid widget entries so they don’t prevent
valid items from being processed.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Code <charis@supabase.io>
2026-09-28 11:36:29 -04:00
b044408e79 [FE-4185] feat(studio): custom content key for auth page logo link (#49130)
Adds a `dashboard_auth:logo_link_url` custom content key so
white-labeled deployments can point the logged-out logo link at their
own marketing site instead of the hardcoded `https://supabase.com`.

**Added:**
- `dashboard_auth:logo_link_url` custom content key (schema, types,
default `null`, sample value)

**Changed:**
- `SignInLayout` and `ForgotPasswordLayout` now resolve the
marketing-site logo href from custom content, falling back to
`https://supabase.com` — these two shared layouts cover all auth pages
(sign-in, sign-in-sso, sign-in-mfa, sign-in-partner, forgot/reset
password) in both the Next and TanStack runtimes

## To test

- On a normal deployment (key `null`): visit `/sign-in` and
`/forgot-password` logged out — the logo should still link to
`https://supabase.com`
- Set `"dashboard_auth:logo_link_url": "https://example.com"` in
`apps/studio/hooks/custom-content/custom-content.json` locally — the
logo on those pages should link to `https://example.com`
- Signed-in contexts (`logoLinkToMarketingSite` unset) still link to
`/organizations`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added support for configuring the URL linked from authentication-page
logos.
* Authentication logos now use the configured destination when
available.
* Added a default destination to ensure logo links remain functional
when no custom URL is set.
* **Documentation**
* Added sample configuration for the customizable authentication logo
link.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-08-17 09:15:53 +00:00
Joshen Lim 8962308215 Add support for multiple custom auth providers in custom-content (#48030)
## Context

Adds support for multiple custom auth providers in custom-content

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for multiple custom sign-in providers via a new plural
configuration.
* Updated the sign-in page to render all configured custom provider
options while maintaining compatibility with the legacy single-provider
setting.
* Improved the custom provider button display to remove internal
prefixes from provider names.

* **Documentation**
* Updated the configuration schema, examples, and sample data to
document the new multi-provider setting.
* Marked the legacy single-provider configuration as deprecated in favor
of the plural option.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-20 11:02:15 +08:00
Alaister Young d30e4d3aa0 chore(studio): custom docs rls guide path (#39480)
* chore(studio): custom docs rls guide path

* required keys
2025-10-13 19:20:31 +08:00
Joshen Lim 8e3419834a Chore/add flag for html title (#39173)
* Add flag for custom html title

* nit
2025-10-02 03:16:35 +08:00
Alaister YoungandJoshen Lim c0da4fc689 chore: add custom content provider label (#38745)
* chore: add custom content provider label

* Remove lowercase for desc in ProjectCard

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-16 22:06:57 +08:00
Alaister Young 104569ea86 chore: use custom content for client libraries (#38633) 2025-09-11 23:41:07 +08:00
Alaister YoungandJoshen Lim 774825c1cc chore: customizable dashboard auth (#38516)
* chore: customizable dashboard auth

* minor fixes

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-09 07:04:27 +00:00
Alaister Young 8b3179ea26 chore: custom ssl cert url (#38464)
* chore: custom ssl cert url

* use lodash template

* fix lock
2025-09-09 13:12:16 +08:00
Alaister YoungandJoshen Lim 0ed15ee397 feat: add aws nimbus cloud provider (#38312)
* feat: add aws nimbus cloud provider

* Fix return type of useCustomContent hook

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-01 16:06:43 +08:00
Joshen LimandJordi Enric f9027a29cd Chore/custom content connect UI frameworks (#38090)
* Init custom content hook

* Implement useCustomContent hook similarly to useIsFeatureEnabled, and implement extension of organization documents

* Attempt to type things nicely

* Add support for custom content example projects

* Add support for custom content logs explorer default query

* nit

* Add support for custom content connect UI frameworks

* Reset custom-content.json

* Smol nit

* set custom-content to null

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-08-22 17:57:40 +08:00
Joshen Lim b8b01efae6 Chore/custom content logs default query (#38087)
* Init custom content hook

* Implement useCustomContent hook similarly to useIsFeatureEnabled, and implement extension of organization documents

* Attempt to type things nicely

* Add support for custom content example projects

* Add support for custom content logs explorer default query

* nit

* Fix types
2025-08-22 17:23:25 +08:00
Joshen Lim 0beba891d3 Chore/custom content example projects (#38086)
* Init custom content hook

* Implement useCustomContent hook similarly to useIsFeatureEnabled, and implement extension of organization documents

* Attempt to type things nicely

* Add support for custom content example projects

* Fix types
2025-08-22 17:14:24 +08:00
Joshen LimandJordi Enric bc1c050b1d Chore/custom content hook (#38073)
* Init custom content hook

* Implement useCustomContent hook similarly to useIsFeatureEnabled, and implement extension of organization documents

* Attempt to type things nicely

* add test

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-08-22 16:52:28 +08:00