Add a utility subnet

This commit is contained in:
Owen
2025-11-30 17:38:12 -05:00
parent dd6b1d88d3
commit 096da391e5
3 changed files with 16 additions and 6 deletions

View File

@@ -18,6 +18,7 @@ import { defaultRoleAllowedActions } from "@server/routers/role";
import { FeatureId, limitsService, sandboxLimitSet } from "@server/lib/billing"; import { FeatureId, limitsService, sandboxLimitSet } from "@server/lib/billing";
import { createCustomer } from "#dynamic/lib/billing"; import { createCustomer } from "#dynamic/lib/billing";
import { usageService } from "@server/lib/billing/usageService"; import { usageService } from "@server/lib/billing/usageService";
import config from "@server/lib/config";
export async function createUserAccountOrg( export async function createUserAccountOrg(
userId: string, userId: string,
@@ -76,6 +77,8 @@ export async function createUserAccountOrg(
.from(domains) .from(domains)
.where(eq(domains.configManaged, true)); .where(eq(domains.configManaged, true));
const utilitySubnet = config.getRawConfig().orgs.utility_subnet_group;
const newOrg = await trx const newOrg = await trx
.insert(orgs) .insert(orgs)
.values({ .values({
@@ -83,6 +86,7 @@ export async function createUserAccountOrg(
name, name,
// subnet // subnet
subnet: "100.90.128.0/24", // TODO: this should not be hardcoded - or can it be the same in all orgs? subnet: "100.90.128.0/24", // TODO: this should not be hardcoded - or can it be the same in all orgs?
utilitySubnet: utilitySubnet,
createdAt: new Date().toISOString() createdAt: new Date().toISOString()
}) })
.returning(); .returning();

View File

@@ -249,12 +249,14 @@ export const configSchema = z
orgs: z orgs: z
.object({ .object({
block_size: z.number().positive().gt(0).optional().default(24), block_size: z.number().positive().gt(0).optional().default(24),
subnet_group: z.string().optional().default("100.90.128.0/24") subnet_group: z.string().optional().default("100.90.128.0/24"),
utility_subnet_group: z.string().optional().default("100.96.128.0/24") //just hardcode this for now as well
}) })
.optional() .optional()
.default({ .default({
block_size: 24, block_size: 24,
subnet_group: "100.90.128.0/24" subnet_group: "100.90.128.0/24",
utility_subnet_group: "100.96.128.0/24"
}), }),
rate_limits: z rate_limits: z
.object({ .object({

View File

@@ -28,10 +28,10 @@ import { FeatureId } from "@server/lib/billing";
import { build } from "@server/build"; import { build } from "@server/build";
const createOrgSchema = z.strictObject({ const createOrgSchema = z.strictObject({
orgId: z.string(), orgId: z.string(),
name: z.string().min(1).max(255), name: z.string().min(1).max(255),
subnet: z.string() subnet: z.string()
}); });
registry.registerPath({ registry.registerPath({
method: "put", method: "put",
@@ -131,12 +131,16 @@ export async function createOrg(
.from(domains) .from(domains)
.where(eq(domains.configManaged, true)); .where(eq(domains.configManaged, true));
const utilitySubnet =
config.getRawConfig().orgs.utility_subnet_group;
const newOrg = await trx const newOrg = await trx
.insert(orgs) .insert(orgs)
.values({ .values({
orgId, orgId,
name, name,
subnet, subnet,
utilitySubnet,
createdAt: new Date().toISOString() createdAt: new Date().toISOString()
}) })
.returning(); .returning();