mirror of
https://github.com/simstudioai/sim.git
synced 2026-09-24 15:45:35 +08:00
feat(tables): raise per-plan table limits (free 5/50k, pro 100/100k, max 1k/500k) (#5135)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f0b3550729
commit
c419a34317
@@ -38,7 +38,7 @@ const PRICING_TIERS: PricingTier[] = [
|
||||
features: [
|
||||
'1,000 credits (trial)',
|
||||
'5GB file storage',
|
||||
'3 tables · 1,000 rows each',
|
||||
'5 tables · 50,000 rows each',
|
||||
'1 personal workspace',
|
||||
'5 min execution limit',
|
||||
'7-day log retention',
|
||||
@@ -56,7 +56,7 @@ const PRICING_TIERS: PricingTier[] = [
|
||||
features: [
|
||||
'6,000 credits/mo · +50/day',
|
||||
'50GB file storage',
|
||||
'25 tables · 5,000 rows each',
|
||||
'100 tables · 100,000 rows each',
|
||||
'Up to 3 personal workspaces',
|
||||
'50 min execution · 150 runs/min',
|
||||
'Unlimited log retention',
|
||||
@@ -74,7 +74,7 @@ const PRICING_TIERS: PricingTier[] = [
|
||||
features: [
|
||||
'25,000 credits/mo · +200/day',
|
||||
'500GB file storage',
|
||||
'25 tables · 5,000 rows each',
|
||||
'1,000 tables · 500,000 rows each',
|
||||
'Up to 10 personal workspaces',
|
||||
'50 min execution · 300 runs/min',
|
||||
'Unlimited log retention',
|
||||
@@ -91,7 +91,7 @@ const PRICING_TIERS: PricingTier[] = [
|
||||
features: [
|
||||
'Custom credits & infra limits',
|
||||
'Custom file storage',
|
||||
'10,000 tables · 1M rows each',
|
||||
'Custom tables & rows',
|
||||
'Unlimited shared workspaces',
|
||||
'Custom execution limits',
|
||||
'Unlimited log retention',
|
||||
|
||||
@@ -75,12 +75,12 @@ export const env = createEnv({
|
||||
TABLE_SNAPSHOT_CACHE: z.boolean().optional(), // Mount tables into sandboxes by reference via a version-keyed CSV snapshot in object storage instead of draining the whole table into web-process heap
|
||||
|
||||
// Table feature limits (per plan). Apply when billing is disabled (free tier defaults) or for billed plans.
|
||||
FREE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on free tier (default: 3)
|
||||
FREE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on free tier (default: 1000)
|
||||
PRO_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on pro tier (default: 25)
|
||||
PRO_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on pro tier (default: 5000)
|
||||
TEAM_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on team tier (default: 100)
|
||||
TEAM_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on team tier (default: 10000)
|
||||
FREE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on free tier (default: 5)
|
||||
FREE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on free tier (default: 50000)
|
||||
PRO_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on pro tier (default: 100)
|
||||
PRO_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on pro tier (default: 100000)
|
||||
TEAM_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on team tier (default: 1000)
|
||||
TEAM_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on team tier (default: 500000)
|
||||
ENTERPRISE_TABLES_LIMIT: z.number().optional(), // Max user tables per workspace on enterprise tier (default: 10000)
|
||||
ENTERPRISE_TABLE_ROWS_LIMIT: z.number().optional(), // Max rows per table on enterprise tier (default: 1000000)
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ export const TABLE_LIMITS = {
|
||||
* keyset-select and cancel/ownership-check granularity. */
|
||||
DELETE_PAGE_SIZE: 10000,
|
||||
/** Row count above which an export runs as a background job instead of a synchronous stream.
|
||||
* Matches the default per-table row cap, so non-enterprise tables keep instant downloads. */
|
||||
* Tables at or under this stream instantly; larger ones fall back to an async export job. */
|
||||
EXPORT_ASYNC_THRESHOLD_ROWS: 10000,
|
||||
/** Cap on the exclusion set ("select all, minus these") sent to an async delete job. */
|
||||
MAX_EXCLUDE_ROW_IDS: 10000,
|
||||
@@ -44,16 +44,16 @@ export const TABLE_LIMITS = {
|
||||
*/
|
||||
export const DEFAULT_TABLE_PLAN_LIMITS = {
|
||||
free: {
|
||||
maxTables: 3,
|
||||
maxRowsPerTable: 1000,
|
||||
maxTables: 5,
|
||||
maxRowsPerTable: 50000,
|
||||
},
|
||||
pro: {
|
||||
maxTables: 25,
|
||||
maxRowsPerTable: 5000,
|
||||
maxTables: 100,
|
||||
maxRowsPerTable: 100000,
|
||||
},
|
||||
team: {
|
||||
maxTables: 100,
|
||||
maxRowsPerTable: 10000,
|
||||
maxTables: 1000,
|
||||
maxRowsPerTable: 500000,
|
||||
},
|
||||
enterprise: {
|
||||
maxTables: 10000,
|
||||
|
||||
Reference in New Issue
Block a user