@rulebricks/cli 1.9.0

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.
Files changed (93) hide show
  1. package/README.md +62 -0
  2. package/dist/commands/clone.d.ts +6 -0
  3. package/dist/commands/clone.js +60 -0
  4. package/dist/commands/deploy.d.ts +8 -0
  5. package/dist/commands/deploy.js +409 -0
  6. package/dist/commands/destroy.d.ts +8 -0
  7. package/dist/commands/destroy.js +298 -0
  8. package/dist/commands/init.d.ts +7 -0
  9. package/dist/commands/init.js +201 -0
  10. package/dist/commands/logs.d.ts +9 -0
  11. package/dist/commands/logs.js +222 -0
  12. package/dist/commands/open.d.ts +7 -0
  13. package/dist/commands/open.js +139 -0
  14. package/dist/commands/status.d.ts +5 -0
  15. package/dist/commands/status.js +125 -0
  16. package/dist/commands/upgrade.d.ts +7 -0
  17. package/dist/commands/upgrade.js +239 -0
  18. package/dist/components/DNSWaitScreen.d.ts +9 -0
  19. package/dist/components/DNSWaitScreen.js +73 -0
  20. package/dist/components/Wizard/WizardContext.d.ts +176 -0
  21. package/dist/components/Wizard/WizardContext.js +346 -0
  22. package/dist/components/Wizard/index.d.ts +2 -0
  23. package/dist/components/Wizard/index.js +2 -0
  24. package/dist/components/Wizard/steps/CloudProviderStep.d.ts +6 -0
  25. package/dist/components/Wizard/steps/CloudProviderStep.js +210 -0
  26. package/dist/components/Wizard/steps/CredentialsStep.d.ts +6 -0
  27. package/dist/components/Wizard/steps/CredentialsStep.js +22 -0
  28. package/dist/components/Wizard/steps/DatabaseStep.d.ts +6 -0
  29. package/dist/components/Wizard/steps/DatabaseStep.js +80 -0
  30. package/dist/components/Wizard/steps/DeploymentModeStep.d.ts +5 -0
  31. package/dist/components/Wizard/steps/DeploymentModeStep.js +26 -0
  32. package/dist/components/Wizard/steps/DomainStep.d.ts +6 -0
  33. package/dist/components/Wizard/steps/DomainStep.js +126 -0
  34. package/dist/components/Wizard/steps/FeatureConfigStep.d.ts +6 -0
  35. package/dist/components/Wizard/steps/FeatureConfigStep.js +765 -0
  36. package/dist/components/Wizard/steps/FeaturesStep.d.ts +6 -0
  37. package/dist/components/Wizard/steps/FeaturesStep.js +119 -0
  38. package/dist/components/Wizard/steps/ReviewStep.d.ts +6 -0
  39. package/dist/components/Wizard/steps/ReviewStep.js +56 -0
  40. package/dist/components/Wizard/steps/SMTPStep.d.ts +6 -0
  41. package/dist/components/Wizard/steps/SMTPStep.js +191 -0
  42. package/dist/components/Wizard/steps/SupabaseCredentialsStep.d.ts +6 -0
  43. package/dist/components/Wizard/steps/SupabaseCredentialsStep.js +76 -0
  44. package/dist/components/Wizard/steps/TierStep.d.ts +6 -0
  45. package/dist/components/Wizard/steps/TierStep.js +29 -0
  46. package/dist/components/Wizard/steps/VersionStep.d.ts +6 -0
  47. package/dist/components/Wizard/steps/VersionStep.js +113 -0
  48. package/dist/components/Wizard/steps/index.d.ts +12 -0
  49. package/dist/components/Wizard/steps/index.js +12 -0
  50. package/dist/components/common/AppShell.d.ts +31 -0
  51. package/dist/components/common/AppShell.js +31 -0
  52. package/dist/components/common/Box.d.ts +20 -0
  53. package/dist/components/common/Box.js +20 -0
  54. package/dist/components/common/Logo.d.ts +7 -0
  55. package/dist/components/common/Logo.js +22 -0
  56. package/dist/components/common/Spinner.d.ts +12 -0
  57. package/dist/components/common/Spinner.js +28 -0
  58. package/dist/components/common/index.d.ts +6 -0
  59. package/dist/components/common/index.js +5 -0
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.js +202 -0
  62. package/dist/lib/cloudCli.d.ts +156 -0
  63. package/dist/lib/cloudCli.js +691 -0
  64. package/dist/lib/config.d.ts +91 -0
  65. package/dist/lib/config.js +278 -0
  66. package/dist/lib/dns.d.ts +41 -0
  67. package/dist/lib/dns.js +235 -0
  68. package/dist/lib/dockerHub.d.ts +57 -0
  69. package/dist/lib/dockerHub.js +128 -0
  70. package/dist/lib/helm.d.ts +53 -0
  71. package/dist/lib/helm.js +209 -0
  72. package/dist/lib/helmValues.d.ts +17 -0
  73. package/dist/lib/helmValues.js +693 -0
  74. package/dist/lib/kubernetes.d.ts +161 -0
  75. package/dist/lib/kubernetes.js +755 -0
  76. package/dist/lib/terraform.d.ts +44 -0
  77. package/dist/lib/terraform.js +230 -0
  78. package/dist/lib/theme.d.ts +81 -0
  79. package/dist/lib/theme.js +115 -0
  80. package/dist/lib/validation.d.ts +47 -0
  81. package/dist/lib/validation.js +164 -0
  82. package/dist/lib/versions.d.ts +69 -0
  83. package/dist/lib/versions.js +139 -0
  84. package/dist/types/index.d.ts +718 -0
  85. package/dist/types/index.js +556 -0
  86. package/email-templates/email_change.html +325 -0
  87. package/email-templates/invite.html +383 -0
  88. package/email-templates/password_change.html +414 -0
  89. package/email-templates/verify.html +396 -0
  90. package/package.json +78 -0
  91. package/terraform/aws/main.tf +327 -0
  92. package/terraform/azure/main.tf +326 -0
  93. package/terraform/gcp/main.tf +369 -0
@@ -0,0 +1,718 @@
1
+ import { z } from "zod";
2
+ export type CloudProvider = "aws" | "gcp" | "azure";
3
+ export type DatabaseType = "self-hosted" | "supabase-cloud";
4
+ export type PerformanceTier = "small" | "medium" | "large";
5
+ export type SSOProvider = "azure" | "google" | "okta" | "keycloak" | "ory" | "other";
6
+ export type DnsProvider = "route53" | "cloudflare" | "google" | "azure" | "other";
7
+ export declare const SUPPORTED_DNS_PROVIDERS: DnsProvider[];
8
+ export type LoggingSink = "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
9
+ export type LoggingSinkCategory = "cloud-storage" | "logging-platform";
10
+ export declare const LOGGING_SINK_CATEGORIES: Record<Exclude<LoggingSink, "console" | "pending">, LoggingSinkCategory>;
11
+ export declare const CLOUD_REGIONS: Record<CloudProvider, string[]>;
12
+ export declare const TIER_CONFIGS: Record<PerformanceTier, TierConfig>;
13
+ export interface ResourceSpec {
14
+ requests: {
15
+ cpu: string;
16
+ memory: string;
17
+ };
18
+ limits: {
19
+ cpu: string;
20
+ memory: string;
21
+ };
22
+ }
23
+ export interface TierConfig {
24
+ description: string;
25
+ throughput: string;
26
+ nodes: {
27
+ min: number;
28
+ max: number;
29
+ };
30
+ resources: string;
31
+ hpsReplicas: number;
32
+ hpsWorkerReplicas: {
33
+ min: number;
34
+ max: number;
35
+ };
36
+ hpsResources: ResourceSpec;
37
+ hpsWorkerResources: ResourceSpec;
38
+ kafkaStorage: string;
39
+ kafkaReplication: number;
40
+ kafkaResources: ResourceSpec;
41
+ kafkaHeapOpts: string;
42
+ redisResources: ResourceSpec;
43
+ redisPersistenceSize: string;
44
+ vectorReplicas: number;
45
+ vectorResources: ResourceSpec;
46
+ dbResources: ResourceSpec;
47
+ dbPersistenceSize: string;
48
+ appReplicas: number;
49
+ appResources: ResourceSpec;
50
+ }
51
+ export interface SMTPConfig {
52
+ host: string;
53
+ port: number;
54
+ user: string;
55
+ pass: string;
56
+ from: string;
57
+ fromName: string;
58
+ }
59
+ export declare const SMTP_PROVIDERS: {
60
+ "aws-ses": {
61
+ host: string;
62
+ port: number;
63
+ user: string;
64
+ };
65
+ sendgrid: {
66
+ host: string;
67
+ port: number;
68
+ user: string;
69
+ };
70
+ resend: {
71
+ host: string;
72
+ port: number;
73
+ user: string;
74
+ };
75
+ mailgun: {
76
+ host: string;
77
+ port: number;
78
+ user: string;
79
+ };
80
+ postmark: {
81
+ host: string;
82
+ port: number;
83
+ user: string;
84
+ };
85
+ mailtrap: {
86
+ host: string;
87
+ port: number;
88
+ user: string;
89
+ };
90
+ custom: {
91
+ host: string;
92
+ port: number;
93
+ user: string;
94
+ };
95
+ };
96
+ export interface EmailSubjects {
97
+ invite: string;
98
+ confirmation: string;
99
+ recovery: string;
100
+ emailChange: string;
101
+ }
102
+ export interface EmailTemplates {
103
+ invite: string;
104
+ confirmation: string;
105
+ recovery: string;
106
+ emailChange: string;
107
+ }
108
+ export interface CustomEmailConfig {
109
+ subjects: EmailSubjects;
110
+ templates: EmailTemplates;
111
+ }
112
+ export declare const DEFAULT_EMAIL_SUBJECTS: EmailSubjects;
113
+ export declare const DNS_PROVIDER_NAMES: Record<DnsProvider, string>;
114
+ export declare const LOGGING_SINK_INFO: Record<LoggingSink, {
115
+ name: string;
116
+ description: string;
117
+ }>;
118
+ export declare const LOGGING_DESTINATION_LABELS: Record<LoggingSink, string>;
119
+ export declare function getLoggingDestinationLabel(sink: LoggingSink): string;
120
+ export declare const DeploymentConfigSchema: z.ZodObject<{
121
+ name: z.ZodString;
122
+ infrastructure: z.ZodObject<{
123
+ mode: z.ZodEnum<["existing", "provision"]>;
124
+ provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>;
125
+ region: z.ZodOptional<z.ZodString>;
126
+ clusterName: z.ZodOptional<z.ZodString>;
127
+ gcpProjectId: z.ZodOptional<z.ZodString>;
128
+ azureResourceGroup: z.ZodOptional<z.ZodString>;
129
+ }, "strip", z.ZodTypeAny, {
130
+ mode: "existing" | "provision";
131
+ provider?: "aws" | "gcp" | "azure" | undefined;
132
+ region?: string | undefined;
133
+ clusterName?: string | undefined;
134
+ gcpProjectId?: string | undefined;
135
+ azureResourceGroup?: string | undefined;
136
+ }, {
137
+ mode: "existing" | "provision";
138
+ provider?: "aws" | "gcp" | "azure" | undefined;
139
+ region?: string | undefined;
140
+ clusterName?: string | undefined;
141
+ gcpProjectId?: string | undefined;
142
+ azureResourceGroup?: string | undefined;
143
+ }>;
144
+ domain: z.ZodString;
145
+ adminEmail: z.ZodString;
146
+ tlsEmail: z.ZodString;
147
+ dns: z.ZodObject<{
148
+ provider: z.ZodEnum<["route53", "cloudflare", "google", "azure", "other"]>;
149
+ autoManage: z.ZodBoolean;
150
+ existingExternalDns: z.ZodOptional<z.ZodBoolean>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ provider: "azure" | "google" | "other" | "route53" | "cloudflare";
153
+ autoManage: boolean;
154
+ existingExternalDns?: boolean | undefined;
155
+ }, {
156
+ provider: "azure" | "google" | "other" | "route53" | "cloudflare";
157
+ autoManage: boolean;
158
+ existingExternalDns?: boolean | undefined;
159
+ }>;
160
+ smtp: z.ZodObject<{
161
+ host: z.ZodString;
162
+ port: z.ZodNumber;
163
+ user: z.ZodString;
164
+ pass: z.ZodString;
165
+ from: z.ZodString;
166
+ fromName: z.ZodString;
167
+ }, "strip", z.ZodTypeAny, {
168
+ host: string;
169
+ port: number;
170
+ user: string;
171
+ pass: string;
172
+ from: string;
173
+ fromName: string;
174
+ }, {
175
+ host: string;
176
+ port: number;
177
+ user: string;
178
+ pass: string;
179
+ from: string;
180
+ fromName: string;
181
+ }>;
182
+ database: z.ZodObject<{
183
+ type: z.ZodEnum<["self-hosted", "supabase-cloud"]>;
184
+ supabaseUrl: z.ZodOptional<z.ZodString>;
185
+ supabaseAnonKey: z.ZodOptional<z.ZodString>;
186
+ supabaseServiceKey: z.ZodOptional<z.ZodString>;
187
+ supabaseAccessToken: z.ZodOptional<z.ZodString>;
188
+ supabaseProjectRef: z.ZodOptional<z.ZodString>;
189
+ supabaseJwtSecret: z.ZodOptional<z.ZodString>;
190
+ supabaseDbPassword: z.ZodOptional<z.ZodString>;
191
+ supabaseDashboardUser: z.ZodOptional<z.ZodString>;
192
+ supabaseDashboardPass: z.ZodOptional<z.ZodString>;
193
+ }, "strip", z.ZodTypeAny, {
194
+ type: "self-hosted" | "supabase-cloud";
195
+ supabaseUrl?: string | undefined;
196
+ supabaseAnonKey?: string | undefined;
197
+ supabaseServiceKey?: string | undefined;
198
+ supabaseAccessToken?: string | undefined;
199
+ supabaseProjectRef?: string | undefined;
200
+ supabaseJwtSecret?: string | undefined;
201
+ supabaseDbPassword?: string | undefined;
202
+ supabaseDashboardUser?: string | undefined;
203
+ supabaseDashboardPass?: string | undefined;
204
+ }, {
205
+ type: "self-hosted" | "supabase-cloud";
206
+ supabaseUrl?: string | undefined;
207
+ supabaseAnonKey?: string | undefined;
208
+ supabaseServiceKey?: string | undefined;
209
+ supabaseAccessToken?: string | undefined;
210
+ supabaseProjectRef?: string | undefined;
211
+ supabaseJwtSecret?: string | undefined;
212
+ supabaseDbPassword?: string | undefined;
213
+ supabaseDashboardUser?: string | undefined;
214
+ supabaseDashboardPass?: string | undefined;
215
+ }>;
216
+ tier: z.ZodEnum<["small", "medium", "large"]>;
217
+ features: z.ZodObject<{
218
+ ai: z.ZodObject<{
219
+ enabled: z.ZodBoolean;
220
+ openaiApiKey: z.ZodOptional<z.ZodString>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ enabled: boolean;
223
+ openaiApiKey?: string | undefined;
224
+ }, {
225
+ enabled: boolean;
226
+ openaiApiKey?: string | undefined;
227
+ }>;
228
+ sso: z.ZodObject<{
229
+ enabled: z.ZodBoolean;
230
+ provider: z.ZodOptional<z.ZodEnum<["azure", "google", "okta", "keycloak", "ory", "other"]>>;
231
+ url: z.ZodOptional<z.ZodString>;
232
+ clientId: z.ZodOptional<z.ZodString>;
233
+ clientSecret: z.ZodOptional<z.ZodString>;
234
+ }, "strip", z.ZodTypeAny, {
235
+ enabled: boolean;
236
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
237
+ url?: string | undefined;
238
+ clientId?: string | undefined;
239
+ clientSecret?: string | undefined;
240
+ }, {
241
+ enabled: boolean;
242
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
243
+ url?: string | undefined;
244
+ clientId?: string | undefined;
245
+ clientSecret?: string | undefined;
246
+ }>;
247
+ monitoring: z.ZodObject<{
248
+ enabled: z.ZodBoolean;
249
+ remoteWriteUrl: z.ZodOptional<z.ZodString>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ enabled: boolean;
252
+ remoteWriteUrl?: string | undefined;
253
+ }, {
254
+ enabled: boolean;
255
+ remoteWriteUrl?: string | undefined;
256
+ }>;
257
+ logging: z.ZodObject<{
258
+ sink: z.ZodEnum<["console", "pending", "s3", "azure-blob", "gcs", "datadog", "splunk", "elasticsearch", "loki", "newrelic", "axiom"]>;
259
+ bucket: z.ZodOptional<z.ZodString>;
260
+ region: z.ZodOptional<z.ZodString>;
261
+ }, "strip", z.ZodTypeAny, {
262
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
263
+ region?: string | undefined;
264
+ bucket?: string | undefined;
265
+ }, {
266
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
267
+ region?: string | undefined;
268
+ bucket?: string | undefined;
269
+ }>;
270
+ customEmails: z.ZodOptional<z.ZodObject<{
271
+ enabled: z.ZodBoolean;
272
+ subjects: z.ZodOptional<z.ZodObject<{
273
+ invite: z.ZodString;
274
+ confirmation: z.ZodString;
275
+ recovery: z.ZodString;
276
+ emailChange: z.ZodString;
277
+ }, "strip", z.ZodTypeAny, {
278
+ invite: string;
279
+ confirmation: string;
280
+ recovery: string;
281
+ emailChange: string;
282
+ }, {
283
+ invite: string;
284
+ confirmation: string;
285
+ recovery: string;
286
+ emailChange: string;
287
+ }>>;
288
+ templates: z.ZodOptional<z.ZodObject<{
289
+ invite: z.ZodString;
290
+ confirmation: z.ZodString;
291
+ recovery: z.ZodString;
292
+ emailChange: z.ZodString;
293
+ }, "strip", z.ZodTypeAny, {
294
+ invite: string;
295
+ confirmation: string;
296
+ recovery: string;
297
+ emailChange: string;
298
+ }, {
299
+ invite: string;
300
+ confirmation: string;
301
+ recovery: string;
302
+ emailChange: string;
303
+ }>>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ enabled: boolean;
306
+ subjects?: {
307
+ invite: string;
308
+ confirmation: string;
309
+ recovery: string;
310
+ emailChange: string;
311
+ } | undefined;
312
+ templates?: {
313
+ invite: string;
314
+ confirmation: string;
315
+ recovery: string;
316
+ emailChange: string;
317
+ } | undefined;
318
+ }, {
319
+ enabled: boolean;
320
+ subjects?: {
321
+ invite: string;
322
+ confirmation: string;
323
+ recovery: string;
324
+ emailChange: string;
325
+ } | undefined;
326
+ templates?: {
327
+ invite: string;
328
+ confirmation: string;
329
+ recovery: string;
330
+ emailChange: string;
331
+ } | undefined;
332
+ }>>;
333
+ }, "strip", z.ZodTypeAny, {
334
+ ai: {
335
+ enabled: boolean;
336
+ openaiApiKey?: string | undefined;
337
+ };
338
+ sso: {
339
+ enabled: boolean;
340
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
341
+ url?: string | undefined;
342
+ clientId?: string | undefined;
343
+ clientSecret?: string | undefined;
344
+ };
345
+ monitoring: {
346
+ enabled: boolean;
347
+ remoteWriteUrl?: string | undefined;
348
+ };
349
+ logging: {
350
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
351
+ region?: string | undefined;
352
+ bucket?: string | undefined;
353
+ };
354
+ customEmails?: {
355
+ enabled: boolean;
356
+ subjects?: {
357
+ invite: string;
358
+ confirmation: string;
359
+ recovery: string;
360
+ emailChange: string;
361
+ } | undefined;
362
+ templates?: {
363
+ invite: string;
364
+ confirmation: string;
365
+ recovery: string;
366
+ emailChange: string;
367
+ } | undefined;
368
+ } | undefined;
369
+ }, {
370
+ ai: {
371
+ enabled: boolean;
372
+ openaiApiKey?: string | undefined;
373
+ };
374
+ sso: {
375
+ enabled: boolean;
376
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
377
+ url?: string | undefined;
378
+ clientId?: string | undefined;
379
+ clientSecret?: string | undefined;
380
+ };
381
+ monitoring: {
382
+ enabled: boolean;
383
+ remoteWriteUrl?: string | undefined;
384
+ };
385
+ logging: {
386
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
387
+ region?: string | undefined;
388
+ bucket?: string | undefined;
389
+ };
390
+ customEmails?: {
391
+ enabled: boolean;
392
+ subjects?: {
393
+ invite: string;
394
+ confirmation: string;
395
+ recovery: string;
396
+ emailChange: string;
397
+ } | undefined;
398
+ templates?: {
399
+ invite: string;
400
+ confirmation: string;
401
+ recovery: string;
402
+ emailChange: string;
403
+ } | undefined;
404
+ } | undefined;
405
+ }>;
406
+ licenseKey: z.ZodString;
407
+ appVersion: z.ZodOptional<z.ZodString>;
408
+ hpsVersion: z.ZodOptional<z.ZodString>;
409
+ chartVersion: z.ZodOptional<z.ZodString>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ name: string;
412
+ infrastructure: {
413
+ mode: "existing" | "provision";
414
+ provider?: "aws" | "gcp" | "azure" | undefined;
415
+ region?: string | undefined;
416
+ clusterName?: string | undefined;
417
+ gcpProjectId?: string | undefined;
418
+ azureResourceGroup?: string | undefined;
419
+ };
420
+ domain: string;
421
+ adminEmail: string;
422
+ tlsEmail: string;
423
+ dns: {
424
+ provider: "azure" | "google" | "other" | "route53" | "cloudflare";
425
+ autoManage: boolean;
426
+ existingExternalDns?: boolean | undefined;
427
+ };
428
+ smtp: {
429
+ host: string;
430
+ port: number;
431
+ user: string;
432
+ pass: string;
433
+ from: string;
434
+ fromName: string;
435
+ };
436
+ database: {
437
+ type: "self-hosted" | "supabase-cloud";
438
+ supabaseUrl?: string | undefined;
439
+ supabaseAnonKey?: string | undefined;
440
+ supabaseServiceKey?: string | undefined;
441
+ supabaseAccessToken?: string | undefined;
442
+ supabaseProjectRef?: string | undefined;
443
+ supabaseJwtSecret?: string | undefined;
444
+ supabaseDbPassword?: string | undefined;
445
+ supabaseDashboardUser?: string | undefined;
446
+ supabaseDashboardPass?: string | undefined;
447
+ };
448
+ tier: "small" | "medium" | "large";
449
+ features: {
450
+ ai: {
451
+ enabled: boolean;
452
+ openaiApiKey?: string | undefined;
453
+ };
454
+ sso: {
455
+ enabled: boolean;
456
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
457
+ url?: string | undefined;
458
+ clientId?: string | undefined;
459
+ clientSecret?: string | undefined;
460
+ };
461
+ monitoring: {
462
+ enabled: boolean;
463
+ remoteWriteUrl?: string | undefined;
464
+ };
465
+ logging: {
466
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
467
+ region?: string | undefined;
468
+ bucket?: string | undefined;
469
+ };
470
+ customEmails?: {
471
+ enabled: boolean;
472
+ subjects?: {
473
+ invite: string;
474
+ confirmation: string;
475
+ recovery: string;
476
+ emailChange: string;
477
+ } | undefined;
478
+ templates?: {
479
+ invite: string;
480
+ confirmation: string;
481
+ recovery: string;
482
+ emailChange: string;
483
+ } | undefined;
484
+ } | undefined;
485
+ };
486
+ licenseKey: string;
487
+ appVersion?: string | undefined;
488
+ hpsVersion?: string | undefined;
489
+ chartVersion?: string | undefined;
490
+ }, {
491
+ name: string;
492
+ infrastructure: {
493
+ mode: "existing" | "provision";
494
+ provider?: "aws" | "gcp" | "azure" | undefined;
495
+ region?: string | undefined;
496
+ clusterName?: string | undefined;
497
+ gcpProjectId?: string | undefined;
498
+ azureResourceGroup?: string | undefined;
499
+ };
500
+ domain: string;
501
+ adminEmail: string;
502
+ tlsEmail: string;
503
+ dns: {
504
+ provider: "azure" | "google" | "other" | "route53" | "cloudflare";
505
+ autoManage: boolean;
506
+ existingExternalDns?: boolean | undefined;
507
+ };
508
+ smtp: {
509
+ host: string;
510
+ port: number;
511
+ user: string;
512
+ pass: string;
513
+ from: string;
514
+ fromName: string;
515
+ };
516
+ database: {
517
+ type: "self-hosted" | "supabase-cloud";
518
+ supabaseUrl?: string | undefined;
519
+ supabaseAnonKey?: string | undefined;
520
+ supabaseServiceKey?: string | undefined;
521
+ supabaseAccessToken?: string | undefined;
522
+ supabaseProjectRef?: string | undefined;
523
+ supabaseJwtSecret?: string | undefined;
524
+ supabaseDbPassword?: string | undefined;
525
+ supabaseDashboardUser?: string | undefined;
526
+ supabaseDashboardPass?: string | undefined;
527
+ };
528
+ tier: "small" | "medium" | "large";
529
+ features: {
530
+ ai: {
531
+ enabled: boolean;
532
+ openaiApiKey?: string | undefined;
533
+ };
534
+ sso: {
535
+ enabled: boolean;
536
+ provider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
537
+ url?: string | undefined;
538
+ clientId?: string | undefined;
539
+ clientSecret?: string | undefined;
540
+ };
541
+ monitoring: {
542
+ enabled: boolean;
543
+ remoteWriteUrl?: string | undefined;
544
+ };
545
+ logging: {
546
+ sink: "console" | "pending" | "s3" | "azure-blob" | "gcs" | "datadog" | "splunk" | "elasticsearch" | "loki" | "newrelic" | "axiom";
547
+ region?: string | undefined;
548
+ bucket?: string | undefined;
549
+ };
550
+ customEmails?: {
551
+ enabled: boolean;
552
+ subjects?: {
553
+ invite: string;
554
+ confirmation: string;
555
+ recovery: string;
556
+ emailChange: string;
557
+ } | undefined;
558
+ templates?: {
559
+ invite: string;
560
+ confirmation: string;
561
+ recovery: string;
562
+ emailChange: string;
563
+ } | undefined;
564
+ } | undefined;
565
+ };
566
+ licenseKey: string;
567
+ appVersion?: string | undefined;
568
+ hpsVersion?: string | undefined;
569
+ chartVersion?: string | undefined;
570
+ }>;
571
+ export type DeploymentConfig = z.infer<typeof DeploymentConfigSchema>;
572
+ export interface DeploymentState {
573
+ name: string;
574
+ version: string;
575
+ createdAt: string;
576
+ updatedAt: string;
577
+ status: "pending" | "deploying" | "waiting-dns" | "running" | "failed" | "destroyed";
578
+ infrastructure?: {
579
+ provider: CloudProvider;
580
+ region: string;
581
+ clusterName: string;
582
+ clusterEndpoint?: string;
583
+ };
584
+ application?: {
585
+ /** App image version */
586
+ appVersion: string;
587
+ /** HPS image version */
588
+ hpsVersion: string;
589
+ /** Legacy chart version (deprecated) */
590
+ chartVersion?: string;
591
+ namespace: string;
592
+ url: string;
593
+ loadBalancerAddress?: string;
594
+ };
595
+ dnsRecords?: {
596
+ hostname: string;
597
+ type: "A" | "CNAME";
598
+ target: string;
599
+ verified: boolean;
600
+ }[];
601
+ }
602
+ export interface ChartVersion {
603
+ version: string;
604
+ appVersion: string;
605
+ created: string;
606
+ digest: string;
607
+ }
608
+ export interface AppVersion {
609
+ /** App image version (e.g., "1.5.0") */
610
+ version: string;
611
+ /** Release date ISO string */
612
+ releaseDate: string;
613
+ /** Matched HPS version (latest HPS released on or before app release) */
614
+ hpsVersion: string | null;
615
+ /** Image digest */
616
+ digest: string;
617
+ }
618
+ export interface WizardStep {
619
+ id: string;
620
+ title: string;
621
+ description: string;
622
+ }
623
+ export declare const WIZARD_STEPS: WizardStep[];
624
+ export interface DNSRecord {
625
+ hostname: string;
626
+ type: "A" | "CNAME";
627
+ target: string;
628
+ verified: boolean;
629
+ required: boolean;
630
+ }
631
+ export declare function isSupportedDnsProvider(provider: DnsProvider): boolean;
632
+ export declare const ProfileConfigSchema: z.ZodObject<{
633
+ provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>;
634
+ region: z.ZodOptional<z.ZodString>;
635
+ clusterName: z.ZodOptional<z.ZodString>;
636
+ domainSuffix: z.ZodOptional<z.ZodString>;
637
+ adminEmail: z.ZodOptional<z.ZodString>;
638
+ tlsEmail: z.ZodOptional<z.ZodString>;
639
+ dnsProvider: z.ZodOptional<z.ZodEnum<["route53", "cloudflare", "google", "azure", "other"]>>;
640
+ smtpHost: z.ZodOptional<z.ZodString>;
641
+ smtpPort: z.ZodOptional<z.ZodNumber>;
642
+ smtpUser: z.ZodOptional<z.ZodString>;
643
+ smtpPass: z.ZodOptional<z.ZodString>;
644
+ smtpFrom: z.ZodOptional<z.ZodString>;
645
+ smtpFromName: z.ZodOptional<z.ZodString>;
646
+ openaiApiKey: z.ZodOptional<z.ZodString>;
647
+ licenseKey: z.ZodOptional<z.ZodString>;
648
+ tier: z.ZodOptional<z.ZodEnum<["small", "medium", "large"]>>;
649
+ databaseType: z.ZodOptional<z.ZodEnum<["self-hosted", "supabase-cloud"]>>;
650
+ infrastructureMode: z.ZodOptional<z.ZodEnum<["existing", "provision"]>>;
651
+ ssoProvider: z.ZodOptional<z.ZodEnum<["azure", "google", "okta", "keycloak", "ory", "other"]>>;
652
+ ssoUrl: z.ZodOptional<z.ZodString>;
653
+ ssoClientId: z.ZodOptional<z.ZodString>;
654
+ ssoClientSecret: z.ZodOptional<z.ZodString>;
655
+ }, "strip", z.ZodTypeAny, {
656
+ provider?: "aws" | "gcp" | "azure" | undefined;
657
+ region?: string | undefined;
658
+ clusterName?: string | undefined;
659
+ adminEmail?: string | undefined;
660
+ tlsEmail?: string | undefined;
661
+ tier?: "small" | "medium" | "large" | undefined;
662
+ openaiApiKey?: string | undefined;
663
+ licenseKey?: string | undefined;
664
+ domainSuffix?: string | undefined;
665
+ dnsProvider?: "azure" | "google" | "other" | "route53" | "cloudflare" | undefined;
666
+ smtpHost?: string | undefined;
667
+ smtpPort?: number | undefined;
668
+ smtpUser?: string | undefined;
669
+ smtpPass?: string | undefined;
670
+ smtpFrom?: string | undefined;
671
+ smtpFromName?: string | undefined;
672
+ databaseType?: "self-hosted" | "supabase-cloud" | undefined;
673
+ infrastructureMode?: "existing" | "provision" | undefined;
674
+ ssoProvider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
675
+ ssoUrl?: string | undefined;
676
+ ssoClientId?: string | undefined;
677
+ ssoClientSecret?: string | undefined;
678
+ }, {
679
+ provider?: "aws" | "gcp" | "azure" | undefined;
680
+ region?: string | undefined;
681
+ clusterName?: string | undefined;
682
+ adminEmail?: string | undefined;
683
+ tlsEmail?: string | undefined;
684
+ tier?: "small" | "medium" | "large" | undefined;
685
+ openaiApiKey?: string | undefined;
686
+ licenseKey?: string | undefined;
687
+ domainSuffix?: string | undefined;
688
+ dnsProvider?: "azure" | "google" | "other" | "route53" | "cloudflare" | undefined;
689
+ smtpHost?: string | undefined;
690
+ smtpPort?: number | undefined;
691
+ smtpUser?: string | undefined;
692
+ smtpPass?: string | undefined;
693
+ smtpFrom?: string | undefined;
694
+ smtpFromName?: string | undefined;
695
+ databaseType?: "self-hosted" | "supabase-cloud" | undefined;
696
+ infrastructureMode?: "existing" | "provision" | undefined;
697
+ ssoProvider?: "azure" | "google" | "okta" | "keycloak" | "ory" | "other" | undefined;
698
+ ssoUrl?: string | undefined;
699
+ ssoClientId?: string | undefined;
700
+ ssoClientSecret?: string | undefined;
701
+ }>;
702
+ export type ProfileConfig = z.infer<typeof ProfileConfigSchema>;
703
+ export declare const CHANGELOG_URL = "https://rulebricks.com/docs/changelog";
704
+ export declare const HELM_CHART_OCI = "oci://ghcr.io/rulebricks/charts/stack";
705
+ export declare const DEFAULT_NAMESPACE = "rulebricks";
706
+ export declare const LEGACY_RELEASE_NAME = "rulebricks";
707
+ /**
708
+ * Generates a deployment-specific Kubernetes namespace.
709
+ * Format: rulebricks-<deployment-name>
710
+ * Example: rulebricks-prod, rulebricks-staging
711
+ */
712
+ export declare function getNamespace(deploymentName: string): string;
713
+ /**
714
+ * Generates a deployment-specific Helm release name.
715
+ * Format: rulebricks-<deployment-name>
716
+ * Example: rulebricks-prod, rulebricks-staging
717
+ */
718
+ export declare function getReleaseName(deploymentName: string): string;