Commit Graph
1934 Commits
Author SHA1 Message Date
Riccardo Busetti f07c9cad3a ref(replication): Add alpha banner and remove batch size (#38588) 2025-09-11 15:25:39 +08:00
Joshen Lim dabfaa8972 Support for projects pagination part 1 (#38298)
* init

* Infinite scrolling pagination for projects in table view

* Infinite scrolling pagination for projects in cards view

* Shift searching projects to URL state + to server side

* Shift status filter to URL state

* opt to use local storage query for view moe

* update wildcard project route

* add created at value, and shift filter status to server side

* Nit

* final nit

* Address comments

* Fix

* Prettier

* Raise page limit to 96
2025-09-11 14:02:58 +08:00
kemal.earthandJoshen Lim 1bb9453b0c feat(studio): update query performance table ui (#38523)
* feat: tidy up query perf column headers

* feat: update col widths and which ones are sortable

This gives a reasonable column width to all cols as well as adds an option for us to filter out which columns we dont want to make the table sortable by.

* feat: column order and word wrapping for query

* feat: column data text align for numbers

* fix: pointer event was preventing index advisor icon popover

* feat: use code block instead of editor

Swapped Editor out for Code block as its less expensive and modified it to add pgsql syntax highlighting

* fix: small truncation issue

* chore: remove unused sort function

* fix: sort menu closing on first click

Sort menu of a column no longer disappears on first click

* feat: move sorting and ordering over to nuqs

This removes the usage of Next Router params and uses Nuqs instead for managing the QP table sorting and ordering.

* feat: add clear sorting button to filter bar

* chore: remove unused files

* fix: add highlighting for selected sort

* Nit update sort

* nit: smol styling update for direction

* feat: inian feedback on time based numbers

* fix: return number instead of string for total time

We were returning a string for total time percentage which meant the sorting was a little bit off

* Shift roles to nuqs

* chore: clean up

* fix: smaller viewport filter bar

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-10 17:40:25 +01:00
Raúl Barroso 4590b36a03 fix reading time for blog posts (#38600)
* fix reading time for blog posts

* fix prettier

* ran `pnpm run format`
2025-09-10 16:43:31 +02:00
Cemal Kılıç 70ce5df691 feat(docs): add auth audit logs docs (#37548)
* feat(docs): add auth audit logs docs

* fix: postgresql -> postgres

* fix: queryable -> searchable?

* fix: format

* feat: add log field reference for auth audit logs

* fix: add missing `actor_via_sso` for auth logs
2025-09-10 10:08:45 +02:00
Joshen Lim 3963cbdf8f Gracefully handle feature flag set up (#38394)
* Gracefully handle feature flag set up

* Update FeatureFlagProvider to support granular provider toggling, and make getConfigCatFlags an optional prop

* Nit

* Fix TS
2025-09-10 12:00:16 +08:00
8da4cbc46e Home New: Advisors (#38337)
* new home top

* advisors

* fix ts

* add advisor section

* Update apps/studio/components/interfaces/Linter/Linter.utils.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/components/interfaces/Linter/LintDetail.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/components/interfaces/Linter/LinterDataGrid.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update packages/ui-patterns/src/Row/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update packages/ui-patterns/src/Row/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/components/interfaces/HomeNew/AdvisorSection.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* row refactor

---------

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-10 12:49:34 +10:00
Charis b65a0aefb9 fix: turn compliance docs back on for main site (#38567) 2025-09-09 22:33:11 +00:00
Charis 3791e39471 fix: add 'use client' to fix docs build (#38568) 2025-09-09 22:14:56 +00:00
920aeb1e1a Improves the filter bar (#38389)
* Refactor Drawer component and add date-fns dependency

Refactored the Drawer component for improved slot-based structure, updated styles, and added 'use client' directive. Added 'date-fns' as a dependency in design-system, updated tsconfig paths for icons, and marked ToggleGroup as a client component.

* nit: add env for svg path

* fix: instructions

* add-ons design

* chore: new generated llms

* Rebuild the pnpm-lock file.

* fix: update vaul dep in ui for drawer

* chore: update radix dialog deps

* fix: clipPath prop on chart tooltip svg

* fix: update dialog deps

* fix: update hover card deps

* fix: remove legacy next link from nav menu docs

* fix: radio group dep update

* fix: scroll area example key

* fix: sheet form readOnly

* fix: slider dep update

* fix: hide empty toast view

* fix: toggle and toggle group dep update

* Rebuild the lockfile.

* chore: updating branch

* fix: remove unused prop in docs

Removes unused prop on Drawer component inside docs causing type error

* filtering refactor

filter refactor

more

* styling

* use popovers instead

* refactor and fine tune

* remove code

* fix portal popover dismissing

* custom component popover

* tests fix

* fix ts

* rm unrelated changes

* fix type error - remove type cast

* undo previewfilterpanel

* fix type

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: kemal <hello@kemal.earth>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-09-09 20:06:25 +02:00
CharisandChris Chinchilla 3c3f85a06b chore(docs): feature flag compliance content (#38527)
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
2025-09-09 10:52:48 -04:00
Andrew ValleteauandKevin Grüneberg 1ddfaf5a9e fix(types): update branching types for api route changes (#38548)
Co-authored-by: Kevin Grüneberg <k.grueneberg1994@gmail.com>
2025-09-09 19:47:46 +08:00
kemal.earth f0ff1ada22 fix(studio): usage project selector truncation (#38546)
* fix: truncation on usage selector

Fixes the project selector truncation for selected value in the selector.

* chore: move truncation to component itself

* nit: prevent cehvron from shrinking

* chore: tidy up
2025-09-09 12:05:35 +01: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
65b962e771 design system: text color contrast (#38343)
* Refactor Drawer component and add date-fns dependency

Refactored the Drawer component for improved slot-based structure, updated styles, and added 'use client' directive. Added 'date-fns' as a dependency in design-system, updated tsconfig paths for icons, and marked ToggleGroup as a client component.

* nit: add env for svg path

* fix: instructions

* accent color docs and basic tidy

* copy value feature

* improve color contrast

* increase contrast on text-warning in light mode

* update changelog

* replace outdated text-warning utility classes

* remove redundant warning-600

* minor design-system docs updates

* docs updates

* remove unused brand-button class

* update docs

* fix: restore brand default

* update docs brand text color

* low hanging branded text fruit

* Nit refactor and clean  up

* re-add Kemal’s README instructions for hot reload

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-09 11:45:08 +10:00
Etienne Stalmans 70e61c2aa9 chore: add lint warning for pg version (#38280) 2025-09-08 17:40:05 +00:00
Danny White 72db84b0b0 fix: remove duplicate tweet (#38500)
remove duplicate tweet
2025-09-08 17:04:50 +10:00
Charis 67c14215ef chore(docs): put feedback form behind feature flag (#38471) 2025-09-05 17:02:42 -04:00
ZiincandJordi Enric 2049e75c1d feat: more charts, use functions.combined-stats (#38128)
* feat: more charts, use functions.combined-stats

* fix padding bottom

* spacing fix

* fix empty state missing title

* fix spacing

* fix api types

* fix api types 2

* fix type errors

* add flag

* rm consolelog

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-09-05 10:43:57 +00:00
Chris ChinchillaandCharis Lam 6821c07811 docs: feature toggle tests (#38282)
* Docs feature toggle tests

* Prettier

* Types fix

* Hide unsupported languages

* Fix import

* Add unsupported code warning

* Further SDK toggling

* Temp intro text

* Auth toggles

* clean up conditional visibility code

* fix: typecheck, tests, tiny bug

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-09-04 16:46:08 +02:00
Danny White 7bb07d891f chore: new tweets sep 2025 (#38423)
* remove duplicate tweets file

* support multi-line tweets

* added new tweets

* remove deleted tweets
2025-09-04 13:44:44 +10:00
Saxon FletcherandJoshen Lim 0f712bc9e2 Home New: Top (#38336)
* new home top

* misc clean ups

* branching truncate

* revert to button

* fixes

* Add comments + small style nudges

* Add comment

* nit

* Use Timestampinfo

* final final final v4

* I swear last nit i found

* FIX

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-04 10:58:30 +10:00
Chris Chinchilla f0ad895dbe chore: Fix ShadowScrollArea breaking docs builds (#38410)
Draft
2025-09-03 16:56:53 +02:00
6851d7a5ba fix(design-system): missing path and deps (#38307)
* Refactor Drawer component and add date-fns dependency

Refactored the Drawer component for improved slot-based structure, updated styles, and added 'use client' directive. Added 'date-fns' as a dependency in design-system, updated tsconfig paths for icons, and marked ToggleGroup as a client component.

* nit: add env for svg path

* fix: instructions

* chore: new generated llms

* Rebuild the pnpm-lock file.

* fix: update vaul dep in ui for drawer

* chore: update radix dialog deps

* fix: clipPath prop on chart tooltip svg

* fix: update dialog deps

* fix: update hover card deps

* fix: remove legacy next link from nav menu docs

* fix: radio group dep update

* fix: scroll area example key

* fix: sheet form readOnly

* fix: slider dep update

* fix: hide empty toast view

* fix: toggle and toggle group dep update

* Rebuild the lockfile.

* chore: updating branch

* fix: remove unused prop in docs

Removes unused prop on Drawer component inside docs causing type error

* Update apps/design-system/registry/default/example/scroll-area-demo.tsx

Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>

* chore: remove commented out menu item

* chore: remove types/node in common

---------

Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-02 09:54:06 +01:00
Alaister Young d4496530f7 chore: add ConfigCat custom attributes (#38347)
chore: add configcat custom attributes
2025-09-01 18:30:05 +08:00
Joshen Lim 32f55e8238 Chore/finalize setup configcat www (#38236)
* Finalize setup configcat for www

* Add comments

* Add comment

* Add a console error if env var is missing for DX clarity

* Nit
2025-09-01 16:17:45 +07: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
Riccardo Busetti 77356bf946 feat(replication): Significantly improve the replication UI behavior (#38237) 2025-08-29 12:20:51 +02:00
Joshen Lim 4124f0ed98 Shift useFlag hook and configcat library to common package, remove from Studio (#38203)
* Shift useFlag hook and configcat library to common package, remove from studio

* Fix test

* Fix test
2025-08-27 13:42:20 +07:00
kemal.earthandJoshen Lim 7f0fee6541 feat(ui): add shadow to tables on inner scroll (#38094)
* feat: add shadow to tables on inner scroll

This adds a shadow to indicate the tables still have more content to scroll.

* chore: remove comments from file

* fix: update easing and duration of shadow transitions

* fix: some more column size fixes

* feat: generic ShadowScrollArea component

This creates a generic ShadowScrollArea component we can reuse eleswhere

* feat: working sticky last col and shadow

* chore: run prettier

* fix: bg hover of sticky column

* Fix hover states for table header and table row, and if last column is sticky

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-26 18:05:53 +01:00
Sean Oliver 8459d18005 feat: remove server-side page tracking calls (#38043)
Remove backend API calls for page view and page leave tracking,
keeping only client-side PostHog tracking. Generic events and
identify calls remain server-side for now.

- Remove /platform/telemetry/page API call from handlePageTelemetry
- Remove /platform/telemetry/page-leave API call from handlePageLeaveTelemetry
- Both functions now return Promise.resolve() for compatibility
- Client-side PostHog tracking remains fully functional
- Keep sendTelemetryEvent and sendTelemetryIdentify unchanged
2025-08-25 13:30:13 -07:00
a1f2e50068 feat(profile): add self-serve editing of username and primary email (#38042)
* feat(profile): add self-serve editing of username and primary email

Users can now update `username` and choose a `primary_email` directly in the
Dashboard profile editor.

Changes:
- Add `username` and `primary_email` fields to the profile form.
- Introduce `Select_Shadcn_` dropdown listing the user's identities
  (via `useProfileIdentitiesQuery`) for selecting a primary email.
- Default `primary_email` selection is derived from the current profile.
- Extend form submission to patch `username` and `primary_email` to the
  profile API.
- Wire zod schema and react-hook-form defaults for new fields.

* chore: remove unused variable

* fix: disable username & primary_email modification for SSO users

* Small refactors

* Remove hard code

* Refactor to use FormItemLayout

* chore: add descriptions for primary_email and username

* chore: fix format and lint error

* chore: fix lint error

* Use identities to derive user dropdown profile image, and remove profile image from useProfile hook

---------

Co-authored-by: Chris Stockton <chris.stockton@supabase.io>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-25 07:30:57 -07:00
Raúl Barroso 29ee6a2992 style: use GitHub's right product name (#38099)
* style: use GitHub's right product name

* fix: use correct kotlin provider
2025-08-22 13:43:47 +02:00
Joshen Lim 7b1ac2a66e Chore/disable more sections 04 (#38064)
* Add flags for policies, third party auth, and manual linking + providers in sign in page

* Add flag for rate limitm page

* Add UnknownInterface components

* Update comment

* Flip flags to true

* Add flags for realtime policies and reports page

* Temp

* Add flag for sign in providers page

* Add flag for stripe wrapper

* Add flag for custom domains

* Add flag for dedicated ipv4 address addon

* Add empty state for realtime policies

* Add empty state for reports page

* Add flag for disable legacy JWT keys section

* Add flag for legacy jwt keys

* nit

* Remove ConnectionStringMoved call out

* Add flag for project settings log drains

* Add flag for subscription link in project settings

* Deprecate settings/auth page and redirect directly to auth page

* Flip back flags

* Add flags for account preferences analytics marketing and account deleetion

* Remove 'table_editor:enable_rls_toggle' flag and revert UI changes

* Remove 'authentication:policies' flag and revert UI changes

* Add flags for cmd K routes

* Add flags for instance size in infra settings

* Small refactor to DisplayApiSettings, decouple ToggleLegacyApiKeysPanel from it

* Have project_connection:javascript_example toggle code example title to TS

* add flag for templates dropdown in logs explorer

* UsesOverview only show link to providers page if providers is enabled

* API Docs UserManagement to only include docs on third party auth if providers is enabled

* Hide instance size on project card if flag is off

* Fix cmd k for roles, update redirect link from settings/auth to auth/providers
2025-08-22 16:17:43 +08:00
Terry SuttonandIvan Vasilov f9921569a9 Nudge feedback widget, move request to bedrock (#38074)
* Nudge feedback widget, move request to bedrock

* Fix the response object

* Remove an import to deleted file.

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-08-21 08:56:54 -02:30
TaishiandTerry Sutton 0d15e7e0e2 style: update ExpandingTextArea focus styles (#37935)
* style: update `ExpandingTextArea` focus styles

* revert the changes on `index.tsx`

* add `focus:border-control` to text-area component

* remove `overflow-hidden` from `form` to show box-shadow

---------

Co-authored-by: Terry Sutton <saltcod@gmail.com>
2025-08-20 15:52:08 +00:00
Joshen LimandTerry Sutton 39639a4073 chore/disable-more-sections-03 (#38060)
* Add flags for policies, third party auth, and manual linking + providers in sign in page

* Add flag for rate limitm page

* Add UnknownInterface components

* Update comment

* Flip flags to true

* Add flags for realtime policies and reports page

* Temp

* Add flag for sign in providers page

* Add flag for stripe wrapper

* Add flag for custom domains

* Add flag for dedicated ipv4 address addon

* Add empty state for realtime policies

* Add empty state for reports page

* Add flag for disable legacy JWT keys section

* Add flag for legacy jwt keys

* nit

* Remove ConnectionStringMoved call out

* Add flag for project settings log drains

* Add flag for subscription link in project settings

* Deprecate settings/auth page and redirect directly to auth page

* Flip back flags

* Add flags for account preferences analytics marketing and account deleetion

* Remove 'table_editor:enable_rls_toggle' flag and revert UI changes

* Remove 'authentication:policies' flag and revert UI changes

* Update flags

---------

Co-authored-by: Terry Sutton <saltcod@gmail.com>
2025-08-20 21:50:53 +08:00
Joshen Lim 6a8836f968 Chore/disable more sections 02 (#38058)
* Add flags for policies, third party auth, and manual linking + providers in sign in page

* Add flag for rate limitm page

* Add UnknownInterface components

* Update comment

* Flip flags to true

* Add flags for realtime policies and reports page

* Temp

* Add flag for sign in providers page

* Add flag for stripe wrapper

* Add flag for custom domains

* Add flag for dedicated ipv4 address addon

* Add empty state for realtime policies

* Add empty state for reports page

* Add flag for disable legacy JWT keys section

* Add flag for legacy jwt keys

* nit

* Remove ConnectionStringMoved call out

* Add flag for project settings log drains

* Add flag for subscription link in project settings

* Deprecate settings/auth page and redirect directly to auth page

* Flip back flags
2025-08-20 20:17:34 +08:00
Joshen Lim c4b36d9ab0 Chore/disable more sections 01 (#38057)
* Add flags for policies, third party auth, and manual linking + providers in sign in page

* Add flag for rate limitm page

* Add UnknownInterface components

* Update comment

* Flip flags to true

* Add flags for realtime policies and reports page

* Temp

* Add flag for sign in providers page

* Add flag for stripe wrapper

* Add empty state for realtime policies

* Add empty state for reports page

* nit

* Hide realtime configuration section in side nav if neither policies nor settings are visible
2025-08-20 19:59:43 +08:00
Joshen Lim 78fab83aee Chore/disable authentication segments (#38029)
* Add flags for policies, third party auth, and manual linking + providers in sign in page

* Add flag for rate limitm page

* Add UnknownInterface components

* Update comment

* Flip flags to true

* Add flag for sign in providers page
2025-08-20 19:34:41 +08:00
kemal.earthandJoshen Lim 099304dac0 feat(studio): update access token area ui (#37949)
* chore: branching off breaking down scoped pat work

This branches off the scoped PAT prototype and gives us a first base to go off. In this branch I will be migrating access tokens to their new visual style but they will be behaving as they currently do.

* chore: separate sheet and dialog

Separated the new scoped PAT sheet off. We can interchange. Anyway we will probably need to when opt in and out becomes available.

* fix: remove unused part of test

The test was still checking for permissions. Hidden that for now.

* Fix prettier

* Clean up

* Hide new token banner if deleting the new token that was created

* Clean up

* Nit prettier import sorts

* feat: remove future files for now

This removes some of the upcoming components for Scopted PATs as its not really in scope of this. Also tidys up imports etc in files

* Nit refactors

* Update warning dialog in NewAccessTokenDialog

* chore: regenerate types

* chore: regenerate types again

* fix: update mock response in new access token button test

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-19 11:10:56 +01:00
Alaister YoungandJoshen Lim a0f86b3010 feat: disable users features (#38020)
* feat: disable logs features

* feat: disable project homepage features

* feat: disable org features

* Nit fixes

* reenable billing

* feat: disable database features

* feat: disable users features

* Change create user flag to send invite

* Change create user flag to send invite flag

* Tiny nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-19 14:22:12 +08:00
Alaister YoungandJoshen Lim 33bd798d14 feat: disable database features (#38019)
* feat: disable logs features

* feat: disable project homepage features

* feat: disable org features

* Nit fixes

* reenable billing

* feat: disable database features

* Rename creation_enable_rls_toggle to just enable_rls_toggle and apply it to GridHeaderActions

* Minor nits

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-19 12:52:00 +08:00
Alaister YoungandJoshen Lim 44c8f849ba feat: disable org features (#37991)
* feat: disable logs features

* feat: disable project homepage features

* feat: disable org features

* Nit fixes

* reenable billing

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-19 12:03:29 +08:00
Alaister YoungandJoshen Lim be45baf6c4 feat: disable project homepage features (#37990)
* feat: disable logs features

* feat: disable project homepage features

* Minor nit fixes

* Fix TS

* Rename profile:update to profile:show_information

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-18 15:59:24 +08:00
Alaister YoungandJoshen Lim 71ba2126a5 feat: disable logs features (#37989)
* feat: disable logs features

* Nit tidy up

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-18 14:21:04 +08:00
Alaister YoungandJoshen Lim 915ba4bd30 feat: enable/disable dashboard features (#37921)
* feat: enable/disable dashboard features

* use the set directly

* move enabled features to common

* remove sneaky any

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-16 01:45:43 +08:00
Ivan Vasilov 35b09ac55c chore: Add lint warning on using default exports in the apps (except in app and pages folder) (#37952)
Add lint warning on using default exports in the apps (except in app and pages folders).
2025-08-15 15:24:54 +02:00
Saxon FletcherandJoshen Lim f9a6af7a68 Table consistency (#37924)
* update project tables

* org team table

* Minor fixes

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-15 13:16:55 +10:00
Sean Oliver 97d746b665 fix: resolve 50% session tracking discrepancy on root route (#37853)
* fix: resolve 50% session tracking discrepancy on root route

- Fixes race condition causing ~50% discrepancy in session tracking between client and server on root route
- Implements event queuing to capture telemetry events before PostHog initializes
- Adds session ID correlation to enable unified tracking analysis between client and server events
- Uses sendBeacon API for both pageview and pageleave events to ensure reliable capture even during navigation
- Adds production safeguards with try/catch blocks and memory caps to prevent API errors from breaking tracking

* refactor(posthog-client): reduce max pending events and improve event handling

- Decreased the maximum number of queued events from 200 to 20
- Added the use of the sendBeacon API for pending events to survive page unload
- Added comments to clarify the handling of pending properties and events during posthog initialization
2025-08-13 12:54:52 -07:00