@soulbatical/tetra-core 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @soulbatical/tetra-core might be problematic. Click here for more details.

Files changed (77) hide show
  1. package/dist/generators/rls-auditor.d.ts +39 -0
  2. package/dist/generators/rls-auditor.d.ts.map +1 -0
  3. package/dist/generators/rls-auditor.js +505 -0
  4. package/dist/generators/rls-auditor.js.map +1 -0
  5. package/dist/generators/rls-checker.d.ts +94 -0
  6. package/dist/generators/rls-checker.d.ts.map +1 -0
  7. package/dist/generators/rls-checker.js +215 -0
  8. package/dist/generators/rls-checker.js.map +1 -0
  9. package/dist/generators/rls-generator.d.ts +77 -0
  10. package/dist/generators/rls-generator.d.ts.map +1 -0
  11. package/dist/generators/rls-generator.js +402 -0
  12. package/dist/generators/rls-generator.js.map +1 -0
  13. package/dist/generators/rpc/detail-rpc-generator.d.ts +58 -0
  14. package/dist/generators/rpc/detail-rpc-generator.d.ts.map +1 -0
  15. package/dist/generators/rpc/detail-rpc-generator.js +163 -0
  16. package/dist/generators/rpc/detail-rpc-generator.js.map +1 -0
  17. package/dist/generators/rpc/index.d.ts +24 -0
  18. package/dist/generators/rpc/index.d.ts.map +1 -0
  19. package/dist/generators/rpc/index.js +20 -0
  20. package/dist/generators/rpc/index.js.map +1 -0
  21. package/dist/generators/rpc/rpc-generator.d.ts +150 -0
  22. package/dist/generators/rpc/rpc-generator.d.ts.map +1 -0
  23. package/dist/generators/rpc/rpc-generator.js +743 -0
  24. package/dist/generators/rpc/rpc-generator.js.map +1 -0
  25. package/dist/generators/rpc/templates/array.d.ts +29 -0
  26. package/dist/generators/rpc/templates/array.d.ts.map +1 -0
  27. package/dist/generators/rpc/templates/array.js +40 -0
  28. package/dist/generators/rpc/templates/array.js.map +1 -0
  29. package/dist/generators/rpc/templates/auth.d.ts +85 -0
  30. package/dist/generators/rpc/templates/auth.d.ts.map +1 -0
  31. package/dist/generators/rpc/templates/auth.js +233 -0
  32. package/dist/generators/rpc/templates/auth.js.map +1 -0
  33. package/dist/generators/rpc/templates/column.d.ts +39 -0
  34. package/dist/generators/rpc/templates/column.d.ts.map +1 -0
  35. package/dist/generators/rpc/templates/column.js +97 -0
  36. package/dist/generators/rpc/templates/column.js.map +1 -0
  37. package/dist/generators/rpc/templates/enum.d.ts +33 -0
  38. package/dist/generators/rpc/templates/enum.d.ts.map +1 -0
  39. package/dist/generators/rpc/templates/enum.js +93 -0
  40. package/dist/generators/rpc/templates/enum.js.map +1 -0
  41. package/dist/generators/rpc/templates/nullable.d.ts +31 -0
  42. package/dist/generators/rpc/templates/nullable.d.ts.map +1 -0
  43. package/dist/generators/rpc/templates/nullable.js +50 -0
  44. package/dist/generators/rpc/templates/nullable.js.map +1 -0
  45. package/dist/generators/rpc/templates/related.d.ts +47 -0
  46. package/dist/generators/rpc/templates/related.d.ts.map +1 -0
  47. package/dist/generators/rpc/templates/related.js +182 -0
  48. package/dist/generators/rpc/templates/related.js.map +1 -0
  49. package/dist/generators/rpc/templates/search.d.ts +42 -0
  50. package/dist/generators/rpc/templates/search.d.ts.map +1 -0
  51. package/dist/generators/rpc/templates/search.js +81 -0
  52. package/dist/generators/rpc/templates/search.js.map +1 -0
  53. package/dist/generators/rpc/templates/time.d.ts +44 -0
  54. package/dist/generators/rpc/templates/time.d.ts.map +1 -0
  55. package/dist/generators/rpc/templates/time.js +143 -0
  56. package/dist/generators/rpc/templates/time.js.map +1 -0
  57. package/dist/generators/rpc/utils.d.ts +58 -0
  58. package/dist/generators/rpc/utils.d.ts.map +1 -0
  59. package/dist/generators/rpc/utils.js +92 -0
  60. package/dist/generators/rpc/utils.js.map +1 -0
  61. package/dist/generators/rpc/validator.d.ts +21 -0
  62. package/dist/generators/rpc/validator.d.ts.map +1 -0
  63. package/dist/generators/rpc/validator.js +398 -0
  64. package/dist/generators/rpc/validator.js.map +1 -0
  65. package/dist/index.d.ts +9 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +6 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/shared/auth/index.d.ts +1 -1
  70. package/dist/shared/auth/index.d.ts.map +1 -1
  71. package/dist/shared/auth/routes.d.ts +4 -1
  72. package/dist/shared/auth/routes.d.ts.map +1 -1
  73. package/dist/shared/auth/routes.js +83 -1
  74. package/dist/shared/auth/routes.js.map +1 -1
  75. package/dist/shared/auth/types.d.ts +24 -0
  76. package/dist/shared/auth/types.d.ts.map +1 -1
  77. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-generator.js","sourceRoot":"","sources":["../../../src/generators/rpc/rpc-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Array Filter Template
3
+ * For filters with array of UUIDs (e.g., ids filter for by-ids navigation)
4
+ *
5
+ * This enables filtering by multiple specific IDs:
6
+ * - WHERE id = ANY(p_ids)
7
+ * - No counts generated (IDs are specific, not countable categories)
8
+ */
9
+ import { FilterConfig } from '../../../shared/types/feature-config.js';
10
+ /**
11
+ * Generate WHERE clause for array filter
12
+ *
13
+ * @example
14
+ * // Input: { name: 'ids', type: 'array', dbField: 'id' }
15
+ * // Output: AND (p_ids IS NULL OR t.id = ANY(p_ids))
16
+ */
17
+ export declare function generateArrayWhere(filter: FilterConfig, tableName: string, aliasMap?: Record<string, string>): string;
18
+ /**
19
+ * Generate counts query for array filter
20
+ *
21
+ * Array filters (like 'ids') don't generate counts because:
22
+ * 1. They represent specific items, not categories
23
+ * 2. Counts would just be array.length (not useful)
24
+ * 3. Frontend already knows which items it requested
25
+ *
26
+ * Returns null to signal "no counts for this filter"
27
+ */
28
+ export declare function generateArrayCounts(_filter: FilterConfig): string | null;
29
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/array.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGvE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CASrH;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAGxE"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Array Filter Template
3
+ * For filters with array of UUIDs (e.g., ids filter for by-ids navigation)
4
+ *
5
+ * This enables filtering by multiple specific IDs:
6
+ * - WHERE id = ANY(p_ids)
7
+ * - No counts generated (IDs are specific, not countable categories)
8
+ */
9
+ import { escapeIdentifier, getTableAlias } from '../utils.js';
10
+ /**
11
+ * Generate WHERE clause for array filter
12
+ *
13
+ * @example
14
+ * // Input: { name: 'ids', type: 'array', dbField: 'id' }
15
+ * // Output: AND (p_ids IS NULL OR t.id = ANY(p_ids))
16
+ */
17
+ export function generateArrayWhere(filter, tableName, aliasMap) {
18
+ const paramName = `p_${filter.rpcParam || filter.name}`;
19
+ const column = escapeIdentifier(filter.dbField || filter.column || filter.name);
20
+ const alias = getTableAlias(tableName, aliasMap);
21
+ const arrayType = filter.sqlGeneration?.arrayType || 'uuid[]';
22
+ return `
23
+ -- ${filter.name} (array filter - ${arrayType.toUpperCase()})
24
+ AND (${paramName} IS NULL OR ${alias}.${column} = ANY(${paramName}))`;
25
+ }
26
+ /**
27
+ * Generate counts query for array filter
28
+ *
29
+ * Array filters (like 'ids') don't generate counts because:
30
+ * 1. They represent specific items, not categories
31
+ * 2. Counts would just be array.length (not useful)
32
+ * 3. Frontend already knows which items it requested
33
+ *
34
+ * Returns null to signal "no counts for this filter"
35
+ */
36
+ export function generateArrayCounts(_filter) {
37
+ // Array filters don't have counts - they're for specific item lookup
38
+ return null;
39
+ }
40
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/array.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB,EAAE,SAAiB,EAAE,QAAiC;IAC3G,MAAM,SAAS,GAAG,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,SAAS,IAAI,QAAQ,CAAC;IAE9D,OAAO;WACE,MAAM,CAAC,IAAI,oBAAoB,SAAS,CAAC,WAAW,EAAE;aACpD,SAAS,eAAe,KAAK,IAAI,MAAM,UAAU,SAAS,IAAI,CAAC;AAC5E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqB;IACvD,qEAAqE;IACrE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Auth Check Template
3
+ * Generates security checks for RPC functions
4
+ *
5
+ * Access Levels determine DATA visibility (not feature access):
6
+ * - admin: Can see ALL org data (admin/owner role)
7
+ * - user: Can see only OWN data (everyone else: creator, customer, etc.)
8
+ * - creator: Sandboxed creator - sees own content + system + shared/public
9
+ * - public: No auth required (anonymous endpoints)
10
+ * - system: Backend service role only (internal operations)
11
+ *
12
+ * SECURITY MODEL (v3.19):
13
+ * - service_role key (auth.role()='service_role'): Full access for backend cron jobs
14
+ * - authenticated user (admin): Access based on auth_admin_organizations()
15
+ * - authenticated user (user): Access based on auth_user_organizations() + own data only
16
+ * - anon key: BLOCKED from admin endpoints (must authenticate)
17
+ * - direct DB connections (psql, MCP, systemDB): Full access via session_user check
18
+ *
19
+ * ============================================================================
20
+ * VERSION HISTORY - DO NOT REMOVE (prevents repeating past mistakes)
21
+ * ============================================================================
22
+ *
23
+ * v3.19 (January 19, 2026) - CURRENT
24
+ * - FIX: User access level now uses auth_user_organizations() instead of auth_admin_organizations()
25
+ * - REASON: Regular users (customers) are NOT admins, so auth_admin_organizations() returned empty
26
+ * - IMPACT: accessLevel='user' features now work for non-admin users
27
+ * - TESTED: Bas Leget (customer) can now see his HD charts
28
+ *
29
+ * v3.16 (January 16, 2026)
30
+ * - FIX: Use auth.role() instead of JWT claim for service_role detection
31
+ * - REASON: The Supabase JS client with service_role_key does NOT set the
32
+ * 'request.jwt.claim.role' setting! Only auth.role() correctly returns 'service_role'.
33
+ * - auth.role() = 'service_role' for Supabase JS client with service_role_key
34
+ * - session_user = 'postgres' for direct connections (systemDB, psql, MCP)
35
+ * - TESTED: get_orders_results works with service_role_key after this fix
36
+ *
37
+ * v3.15 (January 15, 2026)
38
+ * - FIX: Use session_user instead of current_user for service_role detection
39
+ * - REASON: In SECURITY DEFINER functions, current_user is ALWAYS the function
40
+ * owner (postgres), not the caller. This made v3.14 bypass security for anon users!
41
+ * - session_user = 'authenticator' for ALL PostgREST calls (anon AND authenticated)
42
+ * - session_user = 'postgres' for direct connections (systemDB, psql, MCP)
43
+ * - BUG: JWT claim check doesn't work for service_role_key (discovered in v3.16)
44
+ *
45
+ * v3.14 (January 15, 2026) - BROKEN, DO NOT USE
46
+ * - Added: SET search_path = '' for SECURITY DEFINER functions
47
+ * - Added: current_user = 'postgres' check for direct connections
48
+ * - BUG: current_user = 'postgres' in SECURITY DEFINER functions ALWAYS returns
49
+ * true because SECURITY DEFINER runs as the function owner, not the caller!
50
+ * - IMPACT: Anon users could bypass all auth checks and read ALL data
51
+ * - TEST THAT EXPOSED BUG:
52
+ * curl "https://xxx.supabase.co/rest/v1/rpc/get_users_public_results" \
53
+ * -H "apikey: ANON_KEY" -d '{"p_org_id": "xxx"}' → returned ALL users!
54
+ *
55
+ * v3.13 (January 15, 2026)
56
+ * - Added: Service role detection using JWT claim
57
+ * - Added: Anon blocking (must have auth_admin_organizations)
58
+ * - WORKED for PostgREST but NOT for direct DB connections (systemDB returned
59
+ * "Access denied: authentication required")
60
+ *
61
+ * v3.11-3.12
62
+ * - Added: public. prefix for Postgres v17 compatibility
63
+ * - Added: RPC includes with LATERAL JOINs
64
+ *
65
+ * ============================================================================
66
+ */
67
+ export type AccessLevel = 'admin' | 'user' | 'creator' | 'public' | 'system';
68
+ export interface CreatorVisibilityConfig {
69
+ column: string;
70
+ publicValues: string[] | boolean;
71
+ }
72
+ /**
73
+ * Generate variable declarations for auth (v3.13)
74
+ * Must be called at start of DECLARE block
75
+ */
76
+ export declare function generateAuthDeclarations(accessLevel: AccessLevel): string;
77
+ /**
78
+ * Generate auth check SQL (runs at start of function body)
79
+ */
80
+ export declare function generateAuthCheck(accessLevel: AccessLevel): string;
81
+ /**
82
+ * Generate auth WHERE clause for data filtering
83
+ */
84
+ export declare function generateAuthWhereClause(accessLevel: AccessLevel, tableAlias?: string, creatorVisibility?: CreatorVisibilityConfig, organizationIdField?: string): string;
85
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;CAClC;AAkCD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAKzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CA6ElE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,MAAY,EACxB,iBAAiB,CAAC,EAAE,uBAAuB,EAC3C,mBAAmB,GAAE,MAA0B,GAC9C,MAAM,CAoDR"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Auth Check Template
3
+ * Generates security checks for RPC functions
4
+ *
5
+ * Access Levels determine DATA visibility (not feature access):
6
+ * - admin: Can see ALL org data (admin/owner role)
7
+ * - user: Can see only OWN data (everyone else: creator, customer, etc.)
8
+ * - creator: Sandboxed creator - sees own content + system + shared/public
9
+ * - public: No auth required (anonymous endpoints)
10
+ * - system: Backend service role only (internal operations)
11
+ *
12
+ * SECURITY MODEL (v3.19):
13
+ * - service_role key (auth.role()='service_role'): Full access for backend cron jobs
14
+ * - authenticated user (admin): Access based on auth_admin_organizations()
15
+ * - authenticated user (user): Access based on auth_user_organizations() + own data only
16
+ * - anon key: BLOCKED from admin endpoints (must authenticate)
17
+ * - direct DB connections (psql, MCP, systemDB): Full access via session_user check
18
+ *
19
+ * ============================================================================
20
+ * VERSION HISTORY - DO NOT REMOVE (prevents repeating past mistakes)
21
+ * ============================================================================
22
+ *
23
+ * v3.19 (January 19, 2026) - CURRENT
24
+ * - FIX: User access level now uses auth_user_organizations() instead of auth_admin_organizations()
25
+ * - REASON: Regular users (customers) are NOT admins, so auth_admin_organizations() returned empty
26
+ * - IMPACT: accessLevel='user' features now work for non-admin users
27
+ * - TESTED: Bas Leget (customer) can now see his HD charts
28
+ *
29
+ * v3.16 (January 16, 2026)
30
+ * - FIX: Use auth.role() instead of JWT claim for service_role detection
31
+ * - REASON: The Supabase JS client with service_role_key does NOT set the
32
+ * 'request.jwt.claim.role' setting! Only auth.role() correctly returns 'service_role'.
33
+ * - auth.role() = 'service_role' for Supabase JS client with service_role_key
34
+ * - session_user = 'postgres' for direct connections (systemDB, psql, MCP)
35
+ * - TESTED: get_orders_results works with service_role_key after this fix
36
+ *
37
+ * v3.15 (January 15, 2026)
38
+ * - FIX: Use session_user instead of current_user for service_role detection
39
+ * - REASON: In SECURITY DEFINER functions, current_user is ALWAYS the function
40
+ * owner (postgres), not the caller. This made v3.14 bypass security for anon users!
41
+ * - session_user = 'authenticator' for ALL PostgREST calls (anon AND authenticated)
42
+ * - session_user = 'postgres' for direct connections (systemDB, psql, MCP)
43
+ * - BUG: JWT claim check doesn't work for service_role_key (discovered in v3.16)
44
+ *
45
+ * v3.14 (January 15, 2026) - BROKEN, DO NOT USE
46
+ * - Added: SET search_path = '' for SECURITY DEFINER functions
47
+ * - Added: current_user = 'postgres' check for direct connections
48
+ * - BUG: current_user = 'postgres' in SECURITY DEFINER functions ALWAYS returns
49
+ * true because SECURITY DEFINER runs as the function owner, not the caller!
50
+ * - IMPACT: Anon users could bypass all auth checks and read ALL data
51
+ * - TEST THAT EXPOSED BUG:
52
+ * curl "https://xxx.supabase.co/rest/v1/rpc/get_users_public_results" \
53
+ * -H "apikey: ANON_KEY" -d '{"p_org_id": "xxx"}' → returned ALL users!
54
+ *
55
+ * v3.13 (January 15, 2026)
56
+ * - Added: Service role detection using JWT claim
57
+ * - Added: Anon blocking (must have auth_admin_organizations)
58
+ * - WORKED for PostgREST but NOT for direct DB connections (systemDB returned
59
+ * "Access denied: authentication required")
60
+ *
61
+ * v3.11-3.12
62
+ * - Added: public. prefix for Postgres v17 compatibility
63
+ * - Added: RPC includes with LATERAL JOINs
64
+ *
65
+ * ============================================================================
66
+ */
67
+ // v3.16: Service role detection - FIXED for Supabase JS client
68
+ //
69
+ // The problem with v3.15: The JWT claim check doesn't work for service_role_key!
70
+ // - current_setting('request.jwt.claim.role', true) returns EMPTY for service_role_key
71
+ // - But auth.role() correctly returns 'service_role'
72
+ //
73
+ // The fix: Use auth.role() instead of JWT claim check:
74
+ // - auth.role() = 'service_role' for Supabase JS client with service_role_key
75
+ // - session_user = 'postgres' for direct connections (systemDB, psql, MCP)
76
+ //
77
+ // Verified via test:
78
+ // - service_role_key: auth.role() = 'service_role' ✅, JWT claim = '' ❌
79
+ // - anon key: auth.role() = 'anon' (correctly blocked)
80
+ // - postgres direct: session_user = 'postgres' (allowed)
81
+ const SERVICE_ROLE_VAR = `v_is_service_role`;
82
+ const SERVICE_ROLE_DECLARATION = `
83
+ -- v3.16: Detect service_role for cron jobs, webhooks, and direct DB connections
84
+ -- CRITICAL: Use auth.role() (not JWT claim) because service_role_key doesn't set JWT claim!
85
+ -- auth.role() = 'service_role' for Supabase JS client with service_role_key
86
+ -- session_user = 'postgres' for direct connections (systemDB, psql, MCP - allowed)
87
+ ${SERVICE_ROLE_VAR} boolean := (
88
+ auth.role() = 'service_role'
89
+ OR session_user = 'postgres'
90
+ );`;
91
+ // Helper: builds the base auth WHERE (admin orgs + system content + service role)
92
+ // v3.13: Service role sees ALL, authenticated users see their admin orgs
93
+ const baseAuthWhere = (t, orgField) => `${SERVICE_ROLE_VAR}
94
+ OR ${t}.${orgField} IN (SELECT public.auth_admin_organizations())
95
+ OR ${t}.${orgField} IS NULL`;
96
+ /**
97
+ * Generate variable declarations for auth (v3.13)
98
+ * Must be called at start of DECLARE block
99
+ */
100
+ export function generateAuthDeclarations(accessLevel) {
101
+ if (accessLevel === 'public' || accessLevel === 'system') {
102
+ return '';
103
+ }
104
+ return SERVICE_ROLE_DECLARATION;
105
+ }
106
+ /**
107
+ * Generate auth check SQL (runs at start of function body)
108
+ */
109
+ export function generateAuthCheck(accessLevel) {
110
+ if (accessLevel === 'public' || accessLevel === 'system') {
111
+ return '';
112
+ }
113
+ // v3.13: All non-public access levels need service_role detection
114
+ // Service role bypasses all checks (for cron jobs, webhooks)
115
+ // Anon users (no auth_admin_organizations) are blocked
116
+ if (accessLevel === 'creator') {
117
+ return `
118
+ -- 🔐 SECURITY CHECK: Creator Sandbox (v3.13)
119
+ -- Service role bypasses all checks (cron jobs, webhooks)
120
+ IF NOT ${SERVICE_ROLE_VAR} THEN
121
+ -- Not service role - must have valid creator organizations
122
+ IF NOT EXISTS (SELECT 1 FROM public.auth_creator_organizations()) THEN
123
+ RAISE EXCEPTION 'Access denied: authentication required'
124
+ USING ERRCODE = '42501';
125
+ END IF;
126
+
127
+ -- Verify org access if specific org requested
128
+ IF p_org_id IS NOT NULL AND p_org_id NOT IN (SELECT public.auth_creator_organizations()) THEN
129
+ RAISE EXCEPTION 'Access denied: not authorized for organization %', p_org_id
130
+ USING ERRCODE = '42501';
131
+ END IF;
132
+ END IF;
133
+ `;
134
+ }
135
+ if (accessLevel === 'user') {
136
+ return `
137
+ -- 🔐 SECURITY CHECK: User own data ONLY (v3.18)
138
+ -- User endpoints MUST provide userid and it MUST match auth.uid()
139
+ -- This ensures admins via user endpoints also only see their own data
140
+ -- Service role bypasses all checks (cron jobs, webhooks)
141
+ IF NOT ${SERVICE_ROLE_VAR} THEN
142
+ IF p_org_id IS NULL THEN
143
+ RAISE EXCEPTION 'Organization context required' USING ERRCODE = '42501';
144
+ END IF;
145
+
146
+ -- userid is REQUIRED for user-level access
147
+ IF p_userid IS NULL THEN
148
+ RAISE EXCEPTION 'User ID required for this endpoint' USING ERRCODE = '42501';
149
+ END IF;
150
+
151
+ -- userid MUST match the authenticated user (no viewing other users' data)
152
+ IF p_userid::uuid != auth.uid() THEN
153
+ RAISE EXCEPTION 'Access denied: can only access your own data' USING ERRCODE = '42501';
154
+ END IF;
155
+
156
+ -- User must be a member of the organization
157
+ IF p_org_id NOT IN (SELECT public.auth_user_organizations()) THEN
158
+ RAISE EXCEPTION 'Access denied: not a member of organization %', p_org_id
159
+ USING ERRCODE = '42501';
160
+ END IF;
161
+ END IF;
162
+ `;
163
+ }
164
+ // admin (default)
165
+ return `
166
+ -- 🔐 SECURITY CHECK: Admin access to organization (v3.13)
167
+ -- Service role bypasses all checks (cron jobs, webhooks)
168
+ IF NOT ${SERVICE_ROLE_VAR} THEN
169
+ -- Not service role - must have valid admin organizations
170
+ IF NOT EXISTS (SELECT 1 FROM public.auth_admin_organizations()) THEN
171
+ RAISE EXCEPTION 'Access denied: authentication required'
172
+ USING ERRCODE = '42501';
173
+ END IF;
174
+
175
+ -- Verify org access if specific org requested
176
+ IF p_org_id IS NOT NULL AND p_org_id NOT IN (SELECT public.auth_admin_organizations()) THEN
177
+ RAISE EXCEPTION 'Access denied: not authorized for organization %', p_org_id
178
+ USING ERRCODE = '42501';
179
+ END IF;
180
+ END IF;
181
+ `;
182
+ }
183
+ /**
184
+ * Generate auth WHERE clause for data filtering
185
+ */
186
+ export function generateAuthWhereClause(accessLevel, tableAlias = 't', creatorVisibility, organizationIdField = 'organization_id') {
187
+ if (accessLevel === 'public' || accessLevel === 'system') {
188
+ return '';
189
+ }
190
+ const t = tableAlias;
191
+ const f = organizationIdField;
192
+ // admin: sees all org data via auth_admin_organizations()
193
+ if (accessLevel === 'admin') {
194
+ return `AND (
195
+ ${baseAuthWhere(t, f)}
196
+ )`;
197
+ }
198
+ // user: sees only their OWN data - auth check already validates userid=auth.uid()
199
+ // The WHERE clause filters by org membership (auth_user_organizations)
200
+ // The p_userid filter (added by the generator) ensures only own records are returned
201
+ if (accessLevel === 'user') {
202
+ return `AND (
203
+ ${SERVICE_ROLE_VAR}
204
+ OR ${t}.${f} IN (SELECT public.auth_user_organizations())
205
+ OR ${t}.${f} IS NULL
206
+ )`;
207
+ }
208
+ // creator: base + visibility filter for creator's org
209
+ // v3.13: Service role bypasses, authenticated sees admin/creator orgs + visibility
210
+ if (accessLevel === 'creator') {
211
+ let visibilityCondition = `${t}.visibility_level IN ('shared', 'public')`;
212
+ if (creatorVisibility) {
213
+ const { column, publicValues } = creatorVisibility;
214
+ if (typeof publicValues === 'boolean') {
215
+ visibilityCondition = `${t}.${column} = ${publicValues}`;
216
+ }
217
+ else if (Array.isArray(publicValues)) {
218
+ visibilityCondition = `${t}.${column} IN (${publicValues.map(v => `'${v}'`).join(', ')})`;
219
+ }
220
+ }
221
+ return `AND (
222
+ ${SERVICE_ROLE_VAR}
223
+ OR ${t}.${f} IN (SELECT public.auth_admin_organizations())
224
+ OR ${t}.${f} IS NULL
225
+ OR (${t}.${f} IN (SELECT public.auth_creator_organizations()) AND ${visibilityCondition})
226
+ )`;
227
+ }
228
+ // fallback
229
+ return `AND (
230
+ ${baseAuthWhere(t, f)}
231
+ )`;
232
+ }
233
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Column Filter Template
3
+ * For filters with dynamic values from database (payment_method, etc.)
4
+ */
5
+ import { FilterConfig } from '../../../shared/types/feature-config.js';
6
+ /**
7
+ * Generate WHERE clause for column filter
8
+ * Same as enum filter (values are dynamic, not predefined)
9
+ * Supports array columns with @> operator when isArrayColumn: true
10
+ *
11
+ * @example
12
+ * // Regular column:
13
+ * // Input: { name: 'payment_method', column: 'payment_method' }
14
+ * // Output: AND (p_payment_method IS NULL OR p_payment_method = 'all' OR payment_method = p_payment_method)
15
+ *
16
+ * // Array column:
17
+ * // Input: { name: 'delivery_type', column: 'delivery_type', sqlGeneration: { isArrayColumn: true } }
18
+ * // Output: AND (p_delivery_type IS NULL OR p_delivery_type = 'all' OR delivery_type @> ARRAY[p_delivery_type])
19
+ */
20
+ export declare function generateColumnWhere(filter: FilterConfig, tableName: string, aliasMap?: Record<string, string>): string;
21
+ /**
22
+ * Generate counts query for column filter
23
+ * Uses GROUP BY to get all unique values dynamically
24
+ *
25
+ * @example
26
+ * // Input: { name: 'payment_method', column: 'payment_method' }
27
+ * // Output:
28
+ * // 'byPaymentMethod', (
29
+ * // SELECT jsonb_object_agg(payment_method, cnt)
30
+ * // FROM (
31
+ * // SELECT payment_method, COUNT(*)::int as cnt
32
+ * // FROM filtered_items
33
+ * // WHERE payment_method IS NOT NULL
34
+ * // GROUP BY payment_method
35
+ * // )
36
+ * // )
37
+ */
38
+ export declare function generateColumnCounts(filter: FilterConfig): string;
39
+ //# sourceMappingURL=column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/column.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGvE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAqBtH;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0CjE"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Column Filter Template
3
+ * For filters with dynamic values from database (payment_method, etc.)
4
+ */
5
+ import { escapeIdentifier, getTableAlias } from '../utils.js';
6
+ /**
7
+ * Generate WHERE clause for column filter
8
+ * Same as enum filter (values are dynamic, not predefined)
9
+ * Supports array columns with @> operator when isArrayColumn: true
10
+ *
11
+ * @example
12
+ * // Regular column:
13
+ * // Input: { name: 'payment_method', column: 'payment_method' }
14
+ * // Output: AND (p_payment_method IS NULL OR p_payment_method = 'all' OR payment_method = p_payment_method)
15
+ *
16
+ * // Array column:
17
+ * // Input: { name: 'delivery_type', column: 'delivery_type', sqlGeneration: { isArrayColumn: true } }
18
+ * // Output: AND (p_delivery_type IS NULL OR p_delivery_type = 'all' OR delivery_type @> ARRAY[p_delivery_type])
19
+ */
20
+ export function generateColumnWhere(filter, tableName, aliasMap) {
21
+ const paramName = `p_${filter.rpcParam || filter.name}`;
22
+ const column = escapeIdentifier(filter.column);
23
+ const alias = getTableAlias(tableName, aliasMap);
24
+ // Check if this is an array column (use @> operator)
25
+ const isArrayColumn = filter.sqlGeneration?.isArrayColumn || false;
26
+ if (isArrayColumn) {
27
+ return `
28
+ -- ${filter.name} (column filter - array field, check if array contains value)
29
+ AND (${paramName} IS NULL OR ${paramName} = 'all' OR ${alias}.${column} @> ARRAY[${paramName}])`;
30
+ }
31
+ // Add ::text cast to avoid "column reference is ambiguous" errors
32
+ // when column and param have similar names (e.g., mime_type vs p_mime_type)
33
+ const columnRef = `${alias}.${column}::text`;
34
+ return `
35
+ -- ${filter.name} (column filter - dynamic values)
36
+ AND (${paramName} IS NULL OR ${paramName} = 'all' OR ${columnRef} = ${paramName})`;
37
+ }
38
+ /**
39
+ * Generate counts query for column filter
40
+ * Uses GROUP BY to get all unique values dynamically
41
+ *
42
+ * @example
43
+ * // Input: { name: 'payment_method', column: 'payment_method' }
44
+ * // Output:
45
+ * // 'byPaymentMethod', (
46
+ * // SELECT jsonb_object_agg(payment_method, cnt)
47
+ * // FROM (
48
+ * // SELECT payment_method, COUNT(*)::int as cnt
49
+ * // FROM filtered_items
50
+ * // WHERE payment_method IS NOT NULL
51
+ * // GROUP BY payment_method
52
+ * // )
53
+ * // )
54
+ */
55
+ export function generateColumnCounts(filter) {
56
+ const countsKey = filter.countsKey || `by${filter.name.charAt(0).toUpperCase()}${filter.name.slice(1)}`;
57
+ let column = filter.column;
58
+ const isArrayColumn = filter.sqlGeneration?.isArrayColumn || false;
59
+ // Map joined columns to CTE aliases
60
+ if (column === 'o.status') {
61
+ column = 'order_status';
62
+ }
63
+ else if (column === 'o.source') {
64
+ column = 'order_source';
65
+ }
66
+ else {
67
+ column = escapeIdentifier(column);
68
+ }
69
+ // Array columns need unnest() to expand values
70
+ if (isArrayColumn) {
71
+ const valueAlias = `${column.replace(/"/g, '')}_value`;
72
+ return `
73
+ '${countsKey}', (
74
+ SELECT jsonb_object_agg(${valueAlias}, cnt)
75
+ FROM (
76
+ SELECT unnest(${column}) as ${valueAlias}, COUNT(*)::int as cnt
77
+ FROM filtered_items
78
+ WHERE ${column} IS NOT NULL AND array_length(${column}, 1) > 0
79
+ GROUP BY ${valueAlias}
80
+ ORDER BY cnt DESC
81
+ ) subquery
82
+ )`;
83
+ }
84
+ // Regular column counts
85
+ return `
86
+ '${countsKey}', (
87
+ SELECT jsonb_object_agg(${column}, cnt)
88
+ FROM (
89
+ SELECT ${column}, COUNT(*)::int as cnt
90
+ FROM filtered_items
91
+ WHERE ${column} IS NOT NULL
92
+ GROUP BY ${column}
93
+ ORDER BY cnt DESC
94
+ ) subquery
95
+ )`;
96
+ }
97
+ //# sourceMappingURL=column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.js","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/column.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAE,SAAiB,EAAE,QAAiC;IAC5G,MAAM,SAAS,GAAG,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEjD,qDAAqD;IACrD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,CAAC;IAEnE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;WACA,MAAM,CAAC,IAAI;aACT,SAAS,eAAe,SAAS,eAAe,KAAK,IAAI,MAAM,aAAa,SAAS,IAAI,CAAC;IACrG,CAAC;IAED,kEAAkE;IAClE,4EAA4E;IAC5E,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,MAAM,QAAQ,CAAC;IAE7C,OAAO;WACE,MAAM,CAAC,IAAI;aACT,SAAS,eAAe,SAAS,eAAe,SAAS,MAAM,SAAS,GAAG,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,IAAI,MAAM,GAAG,MAAM,CAAC,MAAO,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,aAAa,IAAI,KAAK,CAAC;IAEnE,oCAAoC;IACpC,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,MAAM,GAAG,cAAc,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,cAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,+CAA+C;IAC/C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC;QACvD,OAAO;OACJ,SAAS;gCACgB,UAAU;;wBAElB,MAAM,QAAQ,UAAU;;gBAEhC,MAAM,iCAAiC,MAAM;mBAC1C,UAAU;;;MAGvB,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,OAAO;OACF,SAAS;gCACgB,MAAM;;iBAErB,MAAM;;gBAEP,MAAM;mBACH,MAAM;;;MAGnB,CAAC;AACP,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Enum Filter Template
3
+ * For filters with predefined values (status, phase, etc.)
4
+ */
5
+ import { FilterConfig } from '../../../shared/types/feature-config.js';
6
+ /**
7
+ * Generate WHERE clause for enum filter
8
+ *
9
+ * @example
10
+ * // Input: { name: 'status', column: 'status', values: ['paid', 'pending'] }
11
+ * // Output: AND (p_status IS NULL OR p_status = 'all' OR status = p_status)
12
+ */
13
+ export declare function generateEnumWhere(filter: FilterConfig, tableName: string, aliasMap?: Record<string, string>): string;
14
+ /**
15
+ * Generate counts query for enum filter
16
+ * Uses UNION ALL pattern to ensure all values are present (even with count 0)
17
+ *
18
+ * @example
19
+ * // Input: { name: 'status', values: ['paid', 'pending', 'cancelled'] }
20
+ * // Output:
21
+ * // 'byStatus', (
22
+ * // SELECT jsonb_object_agg(status_value, cnt)
23
+ * // FROM (
24
+ * // SELECT 'paid' as status_value, COUNT(*)::int as cnt FROM filtered_items WHERE status = 'paid'
25
+ * // UNION ALL
26
+ * // SELECT 'pending' as status_value, COUNT(*)::int as cnt FROM filtered_items WHERE status = 'pending'
27
+ * // UNION ALL
28
+ * // SELECT 'cancelled' as status_value, COUNT(*)::int as cnt FROM filtered_items WHERE status = 'cancelled'
29
+ * // )
30
+ * // )
31
+ */
32
+ export declare function generateEnumCounts(filter: FilterConfig): string;
33
+ //# sourceMappingURL=enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../src/generators/rpc/templates/enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGvE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CA0BpH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAyC/D"}