Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0e6a94c
Generated with Hive: Remove app service block from dockerComposeConte…
gonzaloaune Apr 22, 2026
5da5622
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 22, 2026
a8c5770
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 22, 2026
4a61b1e
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 22, 2026
c657f9d
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 23, 2026
0d4d12b
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 23, 2026
b11cfea
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 23, 2026
61da0ed
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 23, 2026
78aa1b1
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 24, 2026
9149dc0
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 24, 2026
f2a20dd
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 24, 2026
1653544
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 24, 2026
c566533
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 24, 2026
211a869
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
6c1dfb1
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
f72b6c8
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
4b533ff
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
84331ef
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
4b6b5e4
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 25, 2026
5a259c1
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 26, 2026
94b4962
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 26, 2026
7a4e09b
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 26, 2026
400de4a
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 26, 2026
3ed727f
Generated with Hive: Fix CompactTasksList model selector test to avoi…
gonzaloaune Apr 26, 2026
508e3b9
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 26, 2026
1419b0e
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
efc7f9a
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
186e420
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
7f14f37
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
6adcfc9
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
f4fea6d
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
176dc00
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
52b163c
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
c229d64
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 27, 2026
b3a7f14
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
21b61a0
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
beffc5f
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
b4f28e2
Resolve merge conflict in ask/quick/route.ts - use validateUserBelong…
tomsmith8 Apr 28, 2026
a742ffc
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
8aa1bf4
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
24187c7
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
c171ad8
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 28, 2026
5e299d5
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 29, 2026
c551a71
Resolve merge conflict in CompactTasksList test
tomsmith8 Apr 29, 2026
3e2c7d2
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 29, 2026
eea09a3
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 29, 2026
90ad371
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
gonzaloaune Apr 29, 2026
c4b7eb0
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 29, 2026
d7926e4
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 29, 2026
c7910c2
Merge branch 'master' into feature/cmo9y0xiq0001gz04flusxbxy-remove-a…
tomsmith8 Apr 30, 2026
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
2 changes: 1 addition & 1 deletion src/__tests__/integration/api/workspaces-stakgraph.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ const DEFAULT_DOCKERFILE =
"FROM ghcr.io/stakwork/staklink-js:v0.1.2\nRUN echo 'original'";
const UPDATED_DOCKERFILE = "FROM node:20-alpine\nRUN echo 'updated'";
const DEFAULT_DOCKER_COMPOSE =
"version: '3.8'\nservices:\n app:\n build: .";
"version: '3.8'\nnetworks:\n app_network:\n driver: bridge\nservices: {}";
const UPDATED_DOCKER_COMPOSE =
"version: '3.9'\nservices:\n app:\n build: .\n ports:\n - '3000:3000'";
const DEFAULT_DEVCONTAINER = JSON.stringify({
Expand Down
27 changes: 22 additions & 5 deletions src/app/api/orgs/[githubLogin]/canvas/[ref]/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,26 @@ function validateCanvasData(value: unknown): value is {
return true;
}

async function findOrg(githubLogin: string) {
return db.sourceControlOrg.findUnique({
where: { githubLogin },
/**
* Resolve the org by githubLogin while simultaneously verifying the caller
* has at least one workspace in it. Returns null when the org does not exist
* OR the user has no workspace there (both cases → 404 to avoid leaking
* whether the org exists at all).
*/
async function findOrgForUser(githubLogin: string, userId: string) {
return db.sourceControlOrg.findFirst({
where: {
githubLogin,
workspaces: {
some: {
deleted: false,
OR: [
{ ownerId: userId },
{ members: { some: { userId, leftAt: null } } },
],
},
},
},
select: { id: true },
});
}
Expand All @@ -48,7 +65,7 @@ export async function GET(
}

try {
const org = await findOrg(githubLogin);
const org = await findOrgForUser(githubLogin, userOrResponse.id);
if (!org) {
return NextResponse.json({ error: "Organization not found" }, { status: 404 });
}
Expand Down Expand Up @@ -88,7 +105,7 @@ export async function PUT(
return NextResponse.json({ error: "Invalid canvas data" }, { status: 400 });
}

const org = await findOrg(githubLogin);
const org = await findOrgForUser(githubLogin, userOrResponse.id);
if (!org) {
return NextResponse.json({ error: "Organization not found" }, { status: 404 });
}
Expand Down
27 changes: 22 additions & 5 deletions src/app/api/orgs/[githubLogin]/canvas/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,26 @@ function validateCanvasData(value: unknown): value is {
return true;
}

async function findOrg(githubLogin: string) {
return db.sourceControlOrg.findUnique({
where: { githubLogin },
/**
* Resolve the org by githubLogin while simultaneously verifying the caller
* has at least one workspace in it. Returns null when the org does not exist
* OR the user has no workspace there (both cases → 404 to avoid leaking
* whether the org exists at all).
*/
async function findOrgForUser(githubLogin: string, userId: string) {
return db.sourceControlOrg.findFirst({
where: {
githubLogin,
workspaces: {
some: {
deleted: false,
OR: [
{ ownerId: userId },
{ members: { some: { userId, leftAt: null } } },
],
},
},
},
select: { id: true },
});
}
Expand All @@ -45,7 +62,7 @@ export async function GET(
}

try {
const org = await findOrg(githubLogin);
const org = await findOrgForUser(githubLogin, userOrResponse.id);
if (!org) {
return NextResponse.json({ error: "Organization not found" }, { status: 404 });
}
Expand Down Expand Up @@ -85,7 +102,7 @@ export async function PUT(
return NextResponse.json({ error: "Invalid canvas data" }, { status: 400 });
}

const org = await findOrg(githubLogin);
const org = await findOrgForUser(githubLogin, userOrResponse.id);
if (!org) {
return NextResponse.json({ error: "Organization not found" }, { status: 404 });
}
Expand Down
14 changes: 1 addition & 13 deletions src/utils/devContainerUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -334,19 +334,7 @@ export function dockerComposeContent() {
networks:
app_network:
driver: bridge
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ../..:/workspaces:cached
command: sleep infinity
networks:
- app_network
extra_hosts:
- "localhost:172.17.0.1"
- "host.docker.internal:host-gateway"
services: {}
`;
}

Expand Down
Loading