Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
afae79b
Customizable ports
N2D4 Oct 17, 2025
8a76453
Update
N2D4 Oct 17, 2025
4433317
fix types
N2D4 Oct 17, 2025
915252d
fix lint
N2D4 Oct 17, 2025
f4e3b9a
Merge branch 'dev' into customizable-ports
N2D4 Oct 17, 2025
eb5662c
Update title
N2D4 Oct 17, 2025
a20ccaa
fix tests
N2D4 Oct 17, 2025
8e880cc
more fixes
N2D4 Oct 17, 2025
4caefb1
more fixes
N2D4 Oct 17, 2025
0550e2f
fix
N2D4 Oct 17, 2025
60410a3
fix
N2D4 Oct 17, 2025
f441c50
better
N2D4 Oct 17, 2025
2c04b0a
fix
N2D4 Oct 17, 2025
abdad07
No more config twiddling
N2D4 Oct 17, 2025
faf2157
chore(docs): update TOC
N2D4 Oct 17, 2025
184e9e6
Rename envvar
N2D4 Oct 17, 2025
d6ed716
fixes
N2D4 Oct 17, 2025
7c4c8ba
Merge branch 'dev' into customizable-ports
N2D4 Oct 17, 2025
8400777
more
N2D4 Oct 17, 2025
5c2a55c
fixes
N2D4 Oct 17, 2025
51860cc
fixes
N2D4 Oct 17, 2025
3774341
fixes
N2D4 Oct 17, 2025
14eafbb
fix
N2D4 Oct 17, 2025
f1d479a
more test fixes
N2D4 Oct 17, 2025
30f5592
fix
N2D4 Oct 17, 2025
52c398d
fix
N2D4 Oct 17, 2025
7ccc830
fix wildcard domains test
N2D4 Oct 17, 2025
cab12f0
stuff
N2D4 Oct 17, 2025
434d1bf
fix emulator
N2D4 Oct 17, 2025
c796ebf
Customizable ports docs
N2D4 Oct 17, 2025
0f5c776
disable emulator workflow
N2D4 Oct 17, 2025
7c699a5
improve process names
N2D4 Oct 17, 2025
8e4574e
Merge dev into customizable-ports
N2D4 Oct 18, 2025
f42efeb
Merge dev into customizable-ports
N2D4 Oct 19, 2025
75c2595
Merge branch 'dev' into customizable-ports
N2D4 Oct 20, 2025
76ef55f
REmove ppr
N2D4 Oct 20, 2025
ba0ec30
Merge branch 'dev' into customizable-ports
N2D4 Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge branch 'dev' into customizable-ports
  • Loading branch information
N2D4 committed Oct 20, 2025
commit 75c259545e1bf5c55e5e330a987450a5a99aefce
3 changes: 0 additions & 3 deletions .github/workflows/e2e-api-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ jobs:
- name: Create .env.test.local file for examples/middleware
run: cp examples/middleware/.env.development examples/middleware/.env.test.local

- name: Create .env.test.local file for examples/partial-prerendering
run: cp examples/partial-prerendering/.env.development examples/partial-prerendering/.env.test.local

- name: Create .env.test.local file for examples/supabase
run: cp examples/supabase/.env.development examples/supabase/.env.test.local

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/e2e-source-of-truth-api-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,6 @@ jobs:
- name: Create .env.test.local file for examples/middleware
run: cp examples/middleware/.env.development examples/middleware/.env.test.local

- name: Create .env.test.local file for examples/partial-prerendering
run: cp examples/partial-prerendering/.env.development examples/partial-prerendering/.env.test.local

- name: Create .env.test.local file for examples/supabase
run: cp examples/supabase/.env.development examples/supabase/.env.test.local

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/lint-and-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ jobs:
- name: Create .env.production.local file for examples/middleware
run: cp examples/middleware/.env.development examples/middleware/.env.production.local

- name: Create .env.production.local file for examples/partial-prerendering
run: cp examples/partial-prerendering/.env.development examples/partial-prerendering/.env.production.local

- name: Create .env.production.local file for examples/supabase
run: cp examples/supabase/.env.development examples/supabase/.env.production.local

Expand Down
9 changes: 9 additions & 0 deletions apps/backend/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @stackframe/stack-backend

## 2.8.44

### Patch Changes

- Various changes
- Updated dependencies
- @stackframe/stack-shared@2.8.44
- @stackframe/stack@2.8.44

## 2.8.43

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/backend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackframe/stack-backend",
"version": "2.8.43",
"version": "2.8.44",
"private": true,
"scripts": {
"clean": "rimraf src/generated && rimraf .next && rimraf node_modules",
Expand Down
3 changes: 1 addition & 2 deletions apps/backend/src/middleware.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,11 @@ export async function middleware(request: NextRequest) {
} : undefined;

// ensure our clients can handle 429 responses
if (isApiRequest && getNodeEnvironment() === 'development' && request.method !== 'OPTIONS') {
if (isApiRequest && !request.headers.get('x-stack-disable-artificial-development-delay') && getNodeEnvironment() === 'development' && request.method !== 'OPTIONS' && !request.url.includes(".well-known")) {
const now = Date.now();
while (devRateLimitTimestamps.length > 0 && now - devRateLimitTimestamps[0] > DEV_RATE_LIMIT_WINDOW_MS) {
devRateLimitTimestamps.shift();
}
console.log('devRateLimitTimestamps', devRateLimitTimestamps.length);
if (devRateLimitTimestamps.length >= DEV_RATE_LIMIT_MAX_REQUESTS) {
const waitMs = Math.max(0, DEV_RATE_LIMIT_WINDOW_MS - (now - devRateLimitTimestamps[0]));
const retryAfterSeconds = Math.max(1, Math.ceil(waitMs / 1000));
Expand Down
10 changes: 10 additions & 0 deletions apps/dashboard/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @stackframe/stack-dashboard

## 2.8.44

### Patch Changes

- Various changes
- Updated dependencies
- @stackframe/stack-shared@2.8.44
- @stackframe/stack-ui@2.8.44
- @stackframe/stack@2.8.44

## 2.8.43

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/dashboard/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackframe/stack-dashboard",
"version": "2.8.43",
"version": "2.8.44",
"private": true,
"scripts": {
"clean": "rimraf .next && rimraf node_modules",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
import { SiteLoadingIndicator } from "@/components/site-loading-indicator";
import { UrlPrefetcher } from "@/lib/prefetch/url-prefetcher";
import { Suspense } from "react";
import SidebarLayout from "./sidebar-layout";
import { AdminAppProvider } from "./use-admin-app";

export default async function Layout(
props: { children: React.ReactNode, modal?: React.ReactNode, params: Promise<{ projectId: string }> }
) {
return (
<AdminAppProvider projectId={(await props.params).projectId}>
<Suspense fallback={<SiteLoadingIndicator />}>
<AdminAppProvider projectId={(await props.params).projectId}>

{/* Pre-fetch the current URL to prevent request waterfalls */}
<UrlPrefetcher href="" />
{/* Pre-fetch the current URL to prevent request waterfalls */}
<UrlPrefetcher href="" />

<SidebarLayout projectId={(await props.params).projectId}>
{props.children}
{props.modal}
</SidebarLayout>
</AdminAppProvider>
<SidebarLayout projectId={(await props.params).projectId}>
{props.children}
{props.modal}
</SidebarLayout>
</AdminAppProvider>
</Suspense>
);
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Typography } from "@stackframe/stack-ui";
import React from "react";

export function PageLayout(props: {
children?: React.ReactNode,
title?: string,
description?: string,
description?: string | React.ReactNode,
actions?: React.ReactNode,
fillWidth?: boolean,
} & ({
Expand All @@ -26,7 +27,7 @@ export function PageLayout(props: {
{props.title}
</Typography>}
{props.description && (
<Typography type="p" variant="secondary">
<Typography type={typeof props.description === "string" ? "p" : "div"} variant="secondary">
{props.description}
</Typography>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,33 @@ import { stackAppInternalsSymbol } from "@/app/(main)/integrations/transfer-conf
import { UserTable } from "@/components/data-table/user-table";
import { StyledLink } from "@/components/link";
import { UserDialog } from "@/components/user-dialog";
import { Alert, Button } from "@stackframe/stack-ui";
import { Alert, Button, Skeleton } from "@stackframe/stack-ui";
import { Suspense } from "react";
import { AppEnabledGuard } from "../app-enabled-guard";
import { PageLayout } from "../page-layout";
import { useAdminApp } from "../use-admin-app";

export default function PageClient() {
function TotalUsersDisplay() {
const stackAdminApp = useAdminApp();
const data = (stackAdminApp as any)[stackAppInternalsSymbol].useMetrics();

return <>{data.total_users}</>;
}

export default function PageClient() {
const stackAdminApp = useAdminApp();
const firstUser = stackAdminApp.useUsers({ limit: 1 });

return (
<AppEnabledGuard appId="authentication">
<PageLayout
title="Users"
description={`Total: ${data.total_users}`}
description={<>
Total:{" "}
<Suspense fallback={<Skeleton className="inline"><span>Calculating</span></Skeleton>}>
<TotalUsersDisplay />
</Suspense>
</>}
actions={<UserDialog
type="create"
trigger={<Button>Create User</Button>}
Expand Down
4 changes: 3 additions & 1 deletion apps/dashboard/src/lib/prefetch/hook-prefetcher.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ export function HookPrefetcher(props: {
if (options.cache.isDirty(options.dependencies)) {
if (isPrefetching) {
// all good, continue
console.log(`Prefetched ${options.caller}`);
if (process.env.NODE_ENV === "development") {
console.info(`Prefetching ${options.caller}...`);
}
} else {
console.warn(deindent`
Fetched ${options.caller} on ${window.location.pathname} without prefetching! Could you maybe add a HookPrefetcher to make this transition faster?
Expand Down
6 changes: 6 additions & 0 deletions apps/dev-launchpad/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @stackframe/dev-launchpad

## 2.8.44

### Patch Changes

- Various changes

## 2.8.43

## 2.8.42
Expand Down
2 changes: 1 addition & 1 deletion apps/dev-launchpad/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackframe/dev-launchpad",
"version": "2.8.43",
"version": "2.8.44",
"private": true,
"scripts": {
"dev": "node scripts/write-env-config.js && serve -p ${NEXT_PUBLIC_STACK_PORT_PREFIX:-81}00 -s public",
Expand Down
7 changes: 0 additions & 7 deletions apps/dev-launchpad/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,6 @@ <h2 style="margin-top: 64px;">Background services</h2>
"Src: ./examples/docs-examples",
],
},
{
name: "examples/partial-prerendering",
portSuffix: "09",
description: [
"Src: ./examples/partial-prerendering",
],
},
{
name: "examples/cjs-test",
portSuffix: "10",
Expand Down
9 changes: 9 additions & 0 deletions apps/e2e/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @stackframe/e2e-tests

## 2.8.44

### Patch Changes

- Various changes
- Updated dependencies
- @stackframe/stack-shared@2.8.44
- @stackframe/js@2.8.44

## 2.8.43

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/e2e/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackframe/e2e-tests",
"version": "2.8.43",
"version": "2.8.44",
"private": true,
"type": "module",
"scripts": {
Expand Down
2 changes: 2 additions & 0 deletions apps/mock-oauth-server/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @stackframe/mock-oauth-server

## 2.8.44

## 2.8.43

## 2.8.42
Expand Down
2 changes: 1 addition & 1 deletion apps/mock-oauth-server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@stackframe/mock-oauth-server",
"version": "2.8.43",
"version": "2.8.44",
"private": true,
"main": "index.js",
"scripts": {
Expand Down
3 changes: 1 addition & 2 deletions docs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ yarn-error.log*
.vercel
next-env.d.ts

# ignore all generated docs content
/content/docs/
# ignore generated API content
/content/api/
/public/openapi/
/openapi/
Expand Down
9 changes: 9 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @stackframe/stack-docs

## 2.8.44

### Patch Changes

- Various changes
- Updated dependencies
- @stackframe/stack-shared@2.8.44
- @stackframe/stack@2.8.44

## 2.8.43

### Patch Changes
Expand Down
22 changes: 22 additions & 0 deletions docs/code-examples/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { CodeExample } from '../lib/code-examples';
import { setupExamples } from './setup';

const allExamples: Record<string, Record<string, Record<string, CodeExample[]>>> = {
'setup': setupExamples,
// Add more sections here as needed:
// 'auth': authExamples,
// 'customization': customizationExamples,
};

export function getExample(documentPath: string, exampleName: string): CodeExample[] | undefined {
const [section, ...rest] = documentPath.split('/');
const subsection = rest.join('/');
return allExamples[section]?.[subsection]?.[exampleName];
}

export function getDocumentExamples(documentPath: string): Record<string, CodeExample[]> | undefined {
const [section, ...rest] = documentPath.split('/');
const subsection = rest.join('/');
return allExamples[section]?.[subsection];
}

Loading
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.