@sembix/cli 0.1.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 (61) hide show
  1. package/.env.example +6 -0
  2. package/LICENSE +15 -0
  3. package/README.md +698 -0
  4. package/config.example.yaml +118 -0
  5. package/dist/commands/hub-integration.d.ts +3 -0
  6. package/dist/commands/hub-integration.d.ts.map +1 -0
  7. package/dist/commands/hub-integration.js +107 -0
  8. package/dist/commands/hub-integration.js.map +1 -0
  9. package/dist/commands/setup.d.ts +3 -0
  10. package/dist/commands/setup.d.ts.map +1 -0
  11. package/dist/commands/setup.js +282 -0
  12. package/dist/commands/setup.js.map +1 -0
  13. package/dist/commands/update.d.ts +3 -0
  14. package/dist/commands/update.d.ts.map +1 -0
  15. package/dist/commands/update.js +498 -0
  16. package/dist/commands/update.js.map +1 -0
  17. package/dist/config-schema.d.ts +417 -0
  18. package/dist/config-schema.d.ts.map +1 -0
  19. package/dist/config-schema.js +152 -0
  20. package/dist/config-schema.js.map +1 -0
  21. package/dist/config.d.ts +6 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/config.js +17 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +260 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/prompts/environment-setup.d.ts +4 -0
  30. package/dist/prompts/environment-setup.d.ts.map +1 -0
  31. package/dist/prompts/environment-setup.js +689 -0
  32. package/dist/prompts/environment-setup.js.map +1 -0
  33. package/dist/prompts/hub-integration-step.d.ts +21 -0
  34. package/dist/prompts/hub-integration-step.d.ts.map +1 -0
  35. package/dist/prompts/hub-integration-step.js +104 -0
  36. package/dist/prompts/hub-integration-step.js.map +1 -0
  37. package/dist/prompts/hub-integration.d.ts +4 -0
  38. package/dist/prompts/hub-integration.d.ts.map +1 -0
  39. package/dist/prompts/hub-integration.js +141 -0
  40. package/dist/prompts/hub-integration.js.map +1 -0
  41. package/dist/prompts/prompt-helpers.d.ts +18 -0
  42. package/dist/prompts/prompt-helpers.d.ts.map +1 -0
  43. package/dist/prompts/prompt-helpers.js +50 -0
  44. package/dist/prompts/prompt-helpers.js.map +1 -0
  45. package/dist/types.d.ts +144 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +23 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/utils/config-loader.d.ts +34 -0
  50. package/dist/utils/config-loader.d.ts.map +1 -0
  51. package/dist/utils/config-loader.js +377 -0
  52. package/dist/utils/config-loader.js.map +1 -0
  53. package/dist/utils/github.d.ts +38 -0
  54. package/dist/utils/github.d.ts.map +1 -0
  55. package/dist/utils/github.js +188 -0
  56. package/dist/utils/github.js.map +1 -0
  57. package/dist/utils/ui.d.ts +18 -0
  58. package/dist/utils/ui.d.ts.map +1 -0
  59. package/dist/utils/ui.js +62 -0
  60. package/dist/utils/ui.js.map +1 -0
  61. package/package.json +80 -0
package/dist/index.js ADDED
@@ -0,0 +1,260 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { validateConfig, config } from './config.js';
4
+ import { setupEnvironment } from './commands/setup.js';
5
+ import { addHubIntegration } from './commands/hub-integration.js';
6
+ import * as ui from './utils/ui.js';
7
+ const program = new Command();
8
+ program
9
+ .name('sembix')
10
+ .description('CLI tool for managing Sembix deployments')
11
+ .version('0.1.0');
12
+ // ============================================================
13
+ // STUDIO COMMANDS
14
+ // ============================================================
15
+ const studio = program
16
+ .command('studio')
17
+ .description('Manage Sembix Studio deployments');
18
+ // sembix studio create [name]
19
+ studio
20
+ .command('create [name]')
21
+ .description('Create a new Sembix Studio environment')
22
+ // General options
23
+ .option('-t, --token <token>', 'GitHub personal access token')
24
+ .option('-c, --config <path>', 'Path to YAML configuration file')
25
+ .option('-r, --repo <repo>', 'Target repository (owner/repo format)')
26
+ .option('-e, --env <environment>', 'Environment name (alternative to positional argument)')
27
+ // Basic configuration
28
+ .option('--aws-account-id <id>', 'AWS Account ID (12 digits)')
29
+ .option('--aws-region <region>', 'AWS Region (e.g., us-east-1)')
30
+ .option('--customer-role-arn <arn>', 'GitHub Actions IAM role ARN')
31
+ .option('--terraform-state-bucket <bucket>', 'S3 bucket for Terraform state')
32
+ // Database configuration
33
+ .option('--database-name <name>', 'PostgreSQL database name')
34
+ .option('--database-user <user>', 'PostgreSQL database user')
35
+ // Networking configuration
36
+ .option('--enable-vpc-endpoints <boolean>', 'Enable VPC endpoints (true/false)', (val) => val === 'true')
37
+ .option('--use-custom-networking <boolean>', 'Use existing VPC (true/false)', (val) => val === 'true')
38
+ .option('--vpc-cidr <cidr>', 'VPC CIDR block (e.g., 10.0.0.0/16)')
39
+ .option('--public-subnet-cidrs <json>', 'Public subnet CIDRs (JSON array)')
40
+ .option('--private-subnet-cidrs <json>', 'Private subnet CIDRs (JSON array)')
41
+ .option('--az-count <count>', 'Number of availability zones (2 or 3)')
42
+ .option('--custom-vpc-id <id>', 'Existing VPC ID')
43
+ .option('--custom-public-subnet-ids <ids>', 'Existing public subnet IDs (comma-separated)')
44
+ .option('--custom-private-subnet-ids <ids>', 'Existing private subnet IDs (comma-separated)')
45
+ // Security configuration
46
+ .option('--workflow-runs-key-alias <alias>', 'KMS key alias for workflow runs')
47
+ .option('--use-custom-security-groups <boolean>', 'Use custom security groups (true/false)', (val) => val === 'true')
48
+ .option('--sg-workflow-engine <id>', 'Workflow Engine security group ID')
49
+ .option('--sg-aurora <id>', 'Aurora database security group ID')
50
+ .option('--sg-rds-proxy <id>', 'RDS Proxy security group ID')
51
+ .option('--sg-bff-ecs <id>', 'BFF ECS service security group ID')
52
+ .option('--sg-bastion <id>', 'Bastion host security group ID')
53
+ .option('--sg-bff-alb <id>', 'BFF ALB security group ID')
54
+ .option('--use-custom-iam-roles <boolean>', 'Use custom IAM roles (true/false)', (val) => val === 'true')
55
+ .option('--iam-workflow-engine-exec <arn>', 'Workflow Engine execution role ARN')
56
+ .option('--iam-workflow-engine-task <arn>', 'Workflow Engine task role ARN')
57
+ .option('--iam-bff-ecs-exec <arn>', 'BFF ECS task execution role ARN')
58
+ .option('--iam-bff-ecs-task <arn>', 'BFF ECS task role ARN')
59
+ .option('--iam-rds-proxy <arn>', 'RDS Proxy role ARN')
60
+ .option('--iam-studio-memory <arn>', 'Studio Memory role ARN')
61
+ .option('--iam-studio-notification <arn>', 'Studio Notification role ARN')
62
+ // TLS/DNS configuration
63
+ .option('--cloudfront-domain <domain>', 'CloudFront custom domain')
64
+ .option('--cloudfront-cert-arn <arn>', 'CloudFront SSL certificate ARN (must be in us-east-1)')
65
+ .option('--bff-alb-cert-arn <arn>', 'BFF ALB SSL certificate ARN')
66
+ .option('--hosted-zone-id <id>', 'Route53 hosted zone ID')
67
+ // Feature flags
68
+ .option('--deploy-studio-memory <boolean>', 'Deploy Studio Memory service (true/false)', (val) => val === 'true')
69
+ .option('--deploy-studio-notifications <boolean>', 'Deploy Studio Notifications service (true/false)', (val) => val === 'true')
70
+ .option('--enable-bff-waf <boolean>', 'Enable WAF for BFF (true/false)', (val) => val === 'true')
71
+ // Frontend configuration
72
+ .option('--github-app-client-id <id>', 'GitHub App OAuth client ID')
73
+ .option('--github-app-name <name>', 'GitHub App name')
74
+ .option('--jira-client-id <id>', 'Jira OAuth client ID')
75
+ // Hub integration (Step 9)
76
+ .option('--skip-hub', 'Skip Hub integration configuration')
77
+ .option('--hub-engine-execution-role <arn>', 'Hub Engine Execution Role ARN')
78
+ .option('--hub-consumer-role <arn>', 'Hub Consumer Role ARN')
79
+ .option('--hub-appconfig-role <arn>', 'Hub AppConfig Role ARN')
80
+ .option('--hub-appconfig-app-id <id>', 'Hub AppConfig Application ID')
81
+ .option('--hub-appconfig-env-id <id>', 'Hub AppConfig Environment ID')
82
+ .option('--hub-appconfig-profile-id <id>', 'Hub AppConfig Profile ID')
83
+ .action(async (name, options) => {
84
+ try {
85
+ if (!options.token) {
86
+ validateConfig();
87
+ }
88
+ // Use --env if provided, otherwise use positional argument
89
+ const environmentName = options.env || name;
90
+ await setupEnvironment(options.token || config.githubToken, environmentName, options);
91
+ }
92
+ catch (error) {
93
+ ui.error(error.message);
94
+ process.exit(1);
95
+ }
96
+ });
97
+ // sembix studio update [name]
98
+ studio
99
+ .command('update [name]')
100
+ .description('Update an existing Sembix Studio environment')
101
+ // General options
102
+ .option('-t, --token <token>', 'GitHub personal access token')
103
+ .option('-c, --config <path>', 'Path to YAML configuration file')
104
+ .option('-r, --repo <repo>', 'Target repository (owner/repo format)')
105
+ .option('-e, --env <environment>', 'Environment name (alternative to positional argument)')
106
+ // Same configuration options as create command
107
+ .option('--aws-account-id <id>', 'AWS Account ID (12 digits)')
108
+ .option('--aws-region <region>', 'AWS Region (e.g., us-east-1)')
109
+ .option('--customer-role-arn <arn>', 'GitHub Actions IAM role ARN')
110
+ .option('--terraform-state-bucket <bucket>', 'S3 bucket for Terraform state')
111
+ .option('--database-name <name>', 'PostgreSQL database name')
112
+ .option('--database-user <user>', 'PostgreSQL database user')
113
+ .option('--enable-vpc-endpoints <boolean>', 'Enable VPC endpoints (true/false)', (val) => val === 'true')
114
+ .option('--use-custom-networking <boolean>', 'Use existing VPC (true/false)', (val) => val === 'true')
115
+ .option('--vpc-cidr <cidr>', 'VPC CIDR block (e.g., 10.0.0.0/16)')
116
+ .option('--public-subnet-cidrs <json>', 'Public subnet CIDRs (JSON array)')
117
+ .option('--private-subnet-cidrs <json>', 'Private subnet CIDRs (JSON array)')
118
+ .option('--az-count <count>', 'Number of availability zones (2 or 3)')
119
+ .option('--custom-vpc-id <id>', 'Existing VPC ID')
120
+ .option('--custom-public-subnet-ids <ids>', 'Existing public subnet IDs (comma-separated)')
121
+ .option('--custom-private-subnet-ids <ids>', 'Existing private subnet IDs (comma-separated)')
122
+ .option('--workflow-runs-key-alias <alias>', 'KMS key alias for workflow runs')
123
+ .option('--use-custom-security-groups <boolean>', 'Use custom security groups (true/false)', (val) => val === 'true')
124
+ .option('--sg-workflow-engine <id>', 'Workflow Engine security group ID')
125
+ .option('--sg-aurora <id>', 'Aurora database security group ID')
126
+ .option('--sg-rds-proxy <id>', 'RDS Proxy security group ID')
127
+ .option('--sg-bff-ecs <id>', 'BFF ECS service security group ID')
128
+ .option('--sg-bastion <id>', 'Bastion host security group ID')
129
+ .option('--sg-bff-alb <id>', 'BFF ALB security group ID')
130
+ .option('--use-custom-iam-roles <boolean>', 'Use custom IAM roles (true/false)', (val) => val === 'true')
131
+ .option('--iam-workflow-engine-exec <arn>', 'Workflow Engine execution role ARN')
132
+ .option('--iam-workflow-engine-task <arn>', 'Workflow Engine task role ARN')
133
+ .option('--iam-bff-ecs-exec <arn>', 'BFF ECS task execution role ARN')
134
+ .option('--iam-bff-ecs-task <arn>', 'BFF ECS task role ARN')
135
+ .option('--iam-rds-proxy <arn>', 'RDS Proxy role ARN')
136
+ .option('--iam-studio-memory <arn>', 'Studio Memory role ARN')
137
+ .option('--iam-studio-notification <arn>', 'Studio Notification role ARN')
138
+ .option('--cloudfront-domain <domain>', 'CloudFront custom domain')
139
+ .option('--cloudfront-cert-arn <arn>', 'CloudFront SSL certificate ARN (must be in us-east-1)')
140
+ .option('--bff-alb-cert-arn <arn>', 'BFF ALB SSL certificate ARN')
141
+ .option('--hosted-zone-id <id>', 'Route53 hosted zone ID')
142
+ .option('--deploy-studio-memory <boolean>', 'Deploy Studio Memory service (true/false)', (val) => val === 'true')
143
+ .option('--deploy-studio-notifications <boolean>', 'Deploy Studio Notifications service (true/false)', (val) => val === 'true')
144
+ .option('--enable-bff-waf <boolean>', 'Enable WAF for BFF (true/false)', (val) => val === 'true')
145
+ .option('--github-app-client-id <id>', 'GitHub App OAuth client ID')
146
+ .option('--github-app-name <name>', 'GitHub App name')
147
+ .option('--jira-client-id <id>', 'Jira OAuth client ID')
148
+ .option('--hub-engine-execution-role <arn>', 'Hub Engine Execution Role ARN')
149
+ .option('--hub-consumer-role <arn>', 'Hub Consumer Role ARN')
150
+ .option('--hub-appconfig-role <arn>', 'Hub AppConfig Role ARN')
151
+ .option('--hub-appconfig-app-id <id>', 'Hub AppConfig Application ID')
152
+ .option('--hub-appconfig-env-id <id>', 'Hub AppConfig Environment ID')
153
+ .option('--hub-appconfig-profile-id <id>', 'Hub AppConfig Profile ID')
154
+ .action(async (name, options) => {
155
+ try {
156
+ if (!options.token) {
157
+ validateConfig();
158
+ }
159
+ const { updateEnvironment } = await import('./commands/update.js');
160
+ const environmentName = options.env || name;
161
+ await updateEnvironment(options.token || config.githubToken, environmentName, options);
162
+ }
163
+ catch (error) {
164
+ ui.error(error.message);
165
+ process.exit(1);
166
+ }
167
+ });
168
+ // sembix studio add-hub [name] (DEPRECATED - kept for backwards compatibility)
169
+ studio
170
+ .command('add-hub [name]')
171
+ .description('Add Sembix Hub integration to an existing environment')
172
+ .option('-t, --token <token>', 'GitHub personal access token')
173
+ .option('-r, --repo <repo>', 'Target repository (owner/repo format)')
174
+ .option('-e, --env <environment>', 'Environment name (alternative to positional argument)')
175
+ .option('--hub-engine-execution-role <arn>', 'Hub Engine Execution Role ARN')
176
+ .option('--hub-consumer-role <arn>', 'Hub Consumer Role ARN')
177
+ .option('--hub-appconfig-role <arn>', 'Hub AppConfig Role ARN')
178
+ .option('--hub-appconfig-app-id <id>', 'Hub AppConfig Application ID')
179
+ .option('--hub-appconfig-env-id <id>', 'Hub AppConfig Environment ID')
180
+ .option('--hub-appconfig-profile-id <id>', 'Hub AppConfig Profile ID')
181
+ .action(async (name, options) => {
182
+ try {
183
+ if (!options.token) {
184
+ validateConfig();
185
+ }
186
+ // Use --env if provided, otherwise use positional argument
187
+ const environmentName = options.env || name;
188
+ await addHubIntegration(options.token || config.githubToken, environmentName, options);
189
+ }
190
+ catch (error) {
191
+ ui.error(error.message);
192
+ process.exit(1);
193
+ }
194
+ });
195
+ // sembix studio list [repo]
196
+ studio
197
+ .command('list [repository]')
198
+ .description('List all Studio environments in a repository')
199
+ .option('-t, --token <token>', 'GitHub personal access token')
200
+ .action(async (repository, options) => {
201
+ try {
202
+ if (!options.token) {
203
+ validateConfig();
204
+ }
205
+ const { GitHubClient } = await import('./utils/github.js');
206
+ const githubClient = new GitHubClient(options.token || config.githubToken);
207
+ ui.banner();
208
+ // If no repository provided, list all repos
209
+ if (!repository) {
210
+ console.log(` ${ui.highlight('Sembix Studio')} - Environments`);
211
+ console.log();
212
+ console.log(ui.dim('💡 Tip: Specify a repository to see its environments'));
213
+ console.log(ui.dim(' Example: sembix studio list owner/repo'));
214
+ console.log();
215
+ const spinner = ui.spinner('Fetching your repositories...');
216
+ const repos = await githubClient.listRepositories();
217
+ spinner.stop();
218
+ if (repos.length === 0) {
219
+ ui.warning('No repositories found for your account.');
220
+ return;
221
+ }
222
+ ui.section('Your Repositories');
223
+ repos.forEach((repo, index) => {
224
+ console.log(` ${index + 1}. ${ui.highlight(repo.full_name)}`);
225
+ });
226
+ console.log();
227
+ console.log(ui.dim('Run: sembix studio list <repository> to see environments'));
228
+ return;
229
+ }
230
+ const [owner, repo] = repository.split('/');
231
+ if (!owner || !repo) {
232
+ throw new Error('Invalid repository format. Use: owner/repo');
233
+ }
234
+ console.log(` Environments in ${ui.highlight(repository)}`);
235
+ console.log();
236
+ const spinner = ui.spinner('Fetching environments...');
237
+ const environments = await githubClient.listEnvironments(owner, repo);
238
+ spinner.stop();
239
+ if (environments.length === 0) {
240
+ ui.warning(`No environments found in ${repository}`);
241
+ console.log();
242
+ console.log(ui.dim('💡 Create your first environment:'));
243
+ console.log(ui.dim(` sembix studio create`));
244
+ return;
245
+ }
246
+ ui.section('Environments');
247
+ environments.forEach((env, index) => {
248
+ console.log(` ${index + 1}. ${ui.highlight(env.name)}`);
249
+ console.log(` ${ui.dim(env.url)}`);
250
+ console.log();
251
+ });
252
+ }
253
+ catch (error) {
254
+ ui.error(error.message);
255
+ process.exit(1);
256
+ }
257
+ });
258
+ // Parse arguments
259
+ program.parse();
260
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { EnvironmentSetupConfig } from '../types.js';
2
+ import { GitHubClient } from '../utils/github.js';
3
+ export declare function promptEnvironmentSetup(githubClient: GitHubClient, providedEnvironmentName?: string, providedRepo?: string, partialConfig?: Partial<EnvironmentSetupConfig>, isUpdate?: boolean): Promise<EnvironmentSetupConfig>;
4
+ //# sourceMappingURL=environment-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-setup.d.ts","sourceRoot":"","sources":["../../src/prompts/environment-setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAa,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,uBAAuB,CAAC,EAAE,MAAM,EAChC,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,EAC/C,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAm3BjC"}