tawa 0.7.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.
- package/README.md +159 -0
- package/dist/commands/backup.d.ts +11 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +112 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +297 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/deploy.d.ts +18 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +219 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/destroy.d.ts +12 -0
- package/dist/commands/destroy.d.ts.map +1 -0
- package/dist/commands/destroy.js +62 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/domains.d.ts +36 -0
- package/dist/commands/domains.d.ts.map +1 -0
- package/dist/commands/domains.js +323 -0
- package/dist/commands/domains.js.map +1 -0
- package/dist/commands/env.d.ts +7 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +42 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/git.d.ts +32 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +340 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/init-ai.d.ts +7 -0
- package/dist/commands/init-ai.d.ts.map +1 -0
- package/dist/commands/init-ai.js +257 -0
- package/dist/commands/init-ai.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +228 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/link.d.ts +10 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +193 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/login.d.ts +17 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +490 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +16 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +362 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/oauth.d.ts +33 -0
- package/dist/commands/oauth.d.ts.map +1 -0
- package/dist/commands/oauth.js +181 -0
- package/dist/commands/oauth.js.map +1 -0
- package/dist/commands/preflight.d.ts +20 -0
- package/dist/commands/preflight.d.ts.map +1 -0
- package/dist/commands/preflight.js +203 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/program.d.ts +7 -0
- package/dist/commands/program.d.ts.map +1 -0
- package/dist/commands/program.js +59 -0
- package/dist/commands/program.js.map +1 -0
- package/dist/commands/programs.d.ts +7 -0
- package/dist/commands/programs.d.ts.map +1 -0
- package/dist/commands/programs.js +42 -0
- package/dist/commands/programs.js.map +1 -0
- package/dist/commands/push.d.ts +12 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +166 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/register-scaffold.test.d.ts +2 -0
- package/dist/commands/register-scaffold.test.d.ts.map +1 -0
- package/dist/commands/register-scaffold.test.js +291 -0
- package/dist/commands/register-scaffold.test.js.map +1 -0
- package/dist/commands/register.d.ts +7 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +304 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/rollback.d.ts +11 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +147 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/sample.d.ts +15 -0
- package/dist/commands/sample.d.ts.map +1 -0
- package/dist/commands/sample.js +312 -0
- package/dist/commands/sample.js.map +1 -0
- package/dist/commands/scopes.d.ts +29 -0
- package/dist/commands/scopes.d.ts.map +1 -0
- package/dist/commands/scopes.js +203 -0
- package/dist/commands/scopes.js.map +1 -0
- package/dist/commands/services.d.ts +13 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +95 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/settings.d.ts +10 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +41 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/signup.d.ts +9 -0
- package/dist/commands/signup.d.ts.map +1 -0
- package/dist/commands/signup.js +192 -0
- package/dist/commands/signup.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +170 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/troubleshoot.d.ts +19 -0
- package/dist/commands/troubleshoot.d.ts.map +1 -0
- package/dist/commands/troubleshoot.js +465 -0
- package/dist/commands/troubleshoot.js.map +1 -0
- package/dist/commands/update.d.ts +6 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +64 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/user.d.ts +17 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +126 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/validate.d.ts +13 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +10 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/versions.d.ts +16 -0
- package/dist/commands/versions.d.ts.map +1 -0
- package/dist/commands/versions.js +116 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +573 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/__tests__/scaffold-integration.test.d.ts +2 -0
- package/dist/lib/__tests__/scaffold-integration.test.d.ts.map +1 -0
- package/dist/lib/__tests__/scaffold-integration.test.js +321 -0
- package/dist/lib/__tests__/scaffold-integration.test.js.map +1 -0
- package/dist/lib/ai/client.d.ts +39 -0
- package/dist/lib/ai/client.d.ts.map +1 -0
- package/dist/lib/ai/client.js +236 -0
- package/dist/lib/ai/client.js.map +1 -0
- package/dist/lib/ai/generator.d.ts +17 -0
- package/dist/lib/ai/generator.d.ts.map +1 -0
- package/dist/lib/ai/generator.js +338 -0
- package/dist/lib/ai/generator.js.map +1 -0
- package/dist/lib/ai/prompts.d.ts +47 -0
- package/dist/lib/ai/prompts.d.ts.map +1 -0
- package/dist/lib/ai/prompts.js +247 -0
- package/dist/lib/ai/prompts.js.map +1 -0
- package/dist/lib/ai/scanner.d.ts +50 -0
- package/dist/lib/ai/scanner.d.ts.map +1 -0
- package/dist/lib/ai/scanner.js +237 -0
- package/dist/lib/ai/scanner.js.map +1 -0
- package/dist/lib/api.d.ts +18 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +67 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auto-register.d.ts +12 -0
- package/dist/lib/auto-register.d.ts.map +1 -0
- package/dist/lib/auto-register.js +42 -0
- package/dist/lib/auto-register.js.map +1 -0
- package/dist/lib/bio.d.ts +91 -0
- package/dist/lib/bio.d.ts.map +1 -0
- package/dist/lib/bio.js +274 -0
- package/dist/lib/bio.js.map +1 -0
- package/dist/lib/builder.d.ts +67 -0
- package/dist/lib/builder.d.ts.map +1 -0
- package/dist/lib/builder.js +198 -0
- package/dist/lib/builder.js.map +1 -0
- package/dist/lib/catalog.d.ts +3 -0
- package/dist/lib/catalog.d.ts.map +1 -0
- package/dist/lib/catalog.js +17 -0
- package/dist/lib/catalog.js.map +1 -0
- package/dist/lib/config.d.ts +25 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +212 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/forgejo.d.ts +188 -0
- package/dist/lib/forgejo.d.ts.map +1 -0
- package/dist/lib/forgejo.js +305 -0
- package/dist/lib/forgejo.js.map +1 -0
- package/dist/lib/output.d.ts +12 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +39 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/scaffold.d.ts +30 -0
- package/dist/lib/scaffold.d.ts.map +1 -0
- package/dist/lib/scaffold.js +180 -0
- package/dist/lib/scaffold.js.map +1 -0
- package/dist/lib/scope-requests.d.ts +17 -0
- package/dist/lib/scope-requests.d.ts.map +1 -0
- package/dist/lib/scope-requests.js +78 -0
- package/dist/lib/scope-requests.js.map +1 -0
- package/dist/lib/scope-requests.test.d.ts +2 -0
- package/dist/lib/scope-requests.test.d.ts.map +1 -0
- package/dist/lib/scope-requests.test.js +239 -0
- package/dist/lib/scope-requests.test.js.map +1 -0
- package/dist/lib/troubleshoot/analyzer.d.ts +14 -0
- package/dist/lib/troubleshoot/analyzer.d.ts.map +1 -0
- package/dist/lib/troubleshoot/analyzer.js +541 -0
- package/dist/lib/troubleshoot/analyzer.js.map +1 -0
- package/dist/lib/troubleshoot/auto-fix.d.ts +29 -0
- package/dist/lib/troubleshoot/auto-fix.d.ts.map +1 -0
- package/dist/lib/troubleshoot/auto-fix.js +373 -0
- package/dist/lib/troubleshoot/auto-fix.js.map +1 -0
- package/dist/lib/troubleshoot/index.d.ts +5 -0
- package/dist/lib/troubleshoot/index.d.ts.map +1 -0
- package/dist/lib/troubleshoot/index.js +6 -0
- package/dist/lib/troubleshoot/index.js.map +1 -0
- package/dist/lib/troubleshoot/log-fetcher.d.ts +43 -0
- package/dist/lib/troubleshoot/log-fetcher.d.ts.map +1 -0
- package/dist/lib/troubleshoot/log-fetcher.js +431 -0
- package/dist/lib/troubleshoot/log-fetcher.js.map +1 -0
- package/dist/lib/troubleshoot/redactor.d.ts +35 -0
- package/dist/lib/troubleshoot/redactor.d.ts.map +1 -0
- package/dist/lib/troubleshoot/redactor.js +208 -0
- package/dist/lib/troubleshoot/redactor.js.map +1 -0
- package/dist/lib/validators/catalog-schemas.d.ts +75 -0
- package/dist/lib/validators/catalog-schemas.d.ts.map +1 -0
- package/dist/lib/validators/catalog-schemas.js +40 -0
- package/dist/lib/validators/catalog-schemas.js.map +1 -0
- package/dist/lib/validators/catalog-validator.d.ts +3 -0
- package/dist/lib/validators/catalog-validator.d.ts.map +1 -0
- package/dist/lib/validators/catalog-validator.js +266 -0
- package/dist/lib/validators/catalog-validator.js.map +1 -0
- package/dist/lib/validators/catalog-validator.test.d.ts +2 -0
- package/dist/lib/validators/catalog-validator.test.d.ts.map +1 -0
- package/dist/lib/validators/catalog-validator.test.js +480 -0
- package/dist/lib/validators/catalog-validator.test.js.map +1 -0
- package/dist/lib/validators/config-preflight-validator.d.ts +12 -0
- package/dist/lib/validators/config-preflight-validator.d.ts.map +1 -0
- package/dist/lib/validators/config-preflight-validator.js +123 -0
- package/dist/lib/validators/config-preflight-validator.js.map +1 -0
- package/dist/lib/validators/dockerfile-validator.d.ts +5 -0
- package/dist/lib/validators/dockerfile-validator.d.ts.map +1 -0
- package/dist/lib/validators/dockerfile-validator.js +295 -0
- package/dist/lib/validators/dockerfile-validator.js.map +1 -0
- package/dist/lib/validators/dockerfile-validator.test.d.ts +2 -0
- package/dist/lib/validators/dockerfile-validator.test.d.ts.map +1 -0
- package/dist/lib/validators/dockerfile-validator.test.js +161 -0
- package/dist/lib/validators/dockerfile-validator.test.js.map +1 -0
- package/dist/lib/validators/env-validator.d.ts +3 -0
- package/dist/lib/validators/env-validator.d.ts.map +1 -0
- package/dist/lib/validators/env-validator.js +268 -0
- package/dist/lib/validators/env-validator.js.map +1 -0
- package/dist/lib/validators/git-validator.d.ts +3 -0
- package/dist/lib/validators/git-validator.d.ts.map +1 -0
- package/dist/lib/validators/git-validator.js +236 -0
- package/dist/lib/validators/git-validator.js.map +1 -0
- package/dist/lib/validators/health-detector.d.ts +4 -0
- package/dist/lib/validators/health-detector.d.ts.map +1 -0
- package/dist/lib/validators/health-detector.js +172 -0
- package/dist/lib/validators/health-detector.js.map +1 -0
- package/dist/lib/validators/health-detector.test.d.ts +2 -0
- package/dist/lib/validators/health-detector.test.d.ts.map +1 -0
- package/dist/lib/validators/health-detector.test.js +118 -0
- package/dist/lib/validators/health-detector.test.js.map +1 -0
- package/dist/lib/validators/index.d.ts +10 -0
- package/dist/lib/validators/index.d.ts.map +1 -0
- package/dist/lib/validators/index.js +10 -0
- package/dist/lib/validators/index.js.map +1 -0
- package/dist/lib/validators/oauth-validator.d.ts +3 -0
- package/dist/lib/validators/oauth-validator.d.ts.map +1 -0
- package/dist/lib/validators/oauth-validator.js +325 -0
- package/dist/lib/validators/oauth-validator.js.map +1 -0
- package/dist/lib/validators/oauth-validator.test.d.ts +2 -0
- package/dist/lib/validators/oauth-validator.test.d.ts.map +1 -0
- package/dist/lib/validators/oauth-validator.test.js +322 -0
- package/dist/lib/validators/oauth-validator.test.js.map +1 -0
- package/dist/lib/validators/route-validator.d.ts +3 -0
- package/dist/lib/validators/route-validator.d.ts.map +1 -0
- package/dist/lib/validators/route-validator.js +238 -0
- package/dist/lib/validators/route-validator.js.map +1 -0
- package/dist/lib/validators/scope-validator.d.ts +3 -0
- package/dist/lib/validators/scope-validator.d.ts.map +1 -0
- package/dist/lib/validators/scope-validator.js +141 -0
- package/dist/lib/validators/scope-validator.js.map +1 -0
- package/dist/lib/watch.d.ts +35 -0
- package/dist/lib/watch.d.ts.map +1 -0
- package/dist/lib/watch.js +171 -0
- package/dist/lib/watch.js.map +1 -0
- package/dist/templates/api/.env.example +15 -0
- package/dist/templates/api/Dockerfile +45 -0
- package/dist/templates/api/README.md +85 -0
- package/dist/templates/api/catalog-info.yaml +22 -0
- package/dist/templates/api/gitignore +31 -0
- package/dist/templates/api/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/api/helm/{{name}}/templates/deployment.yaml +72 -0
- package/dist/templates/api/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/api/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/api/helm/{{name}}/values.yaml +64 -0
- package/dist/templates/api/package.json +33 -0
- package/dist/templates/api/src/index.ts +61 -0
- package/dist/templates/api/src/routes/example.ts +165 -0
- package/dist/templates/api/tsconfig.json +18 -0
- package/dist/templates/crosspod/README.md +87 -0
- package/dist/templates/crosspod/service-a/Dockerfile +27 -0
- package/dist/templates/crosspod/service-a/catalog-info.yaml +54 -0
- package/dist/templates/crosspod/service-a/gitignore +5 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/Chart.yaml +6 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/deployment.yaml +72 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/ingress.yaml +43 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/templates/service.yaml +17 -0
- package/dist/templates/crosspod/service-a/helm/{{name}}-service-a/values.yaml +44 -0
- package/dist/templates/crosspod/service-a/package.json +29 -0
- package/dist/templates/crosspod/service-a/src/index.ts +89 -0
- package/dist/templates/crosspod/service-a/tsconfig.json +14 -0
- package/dist/templates/crosspod/service-b/Dockerfile +27 -0
- package/dist/templates/crosspod/service-b/catalog-info.yaml +27 -0
- package/dist/templates/crosspod/service-b/gitignore +5 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/Chart.yaml +6 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/deployment.yaml +72 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/ingress.yaml +43 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/templates/service.yaml +17 -0
- package/dist/templates/crosspod/service-b/helm/{{name}}-service-b/values.yaml +47 -0
- package/dist/templates/crosspod/service-b/package.json +26 -0
- package/dist/templates/crosspod/service-b/src/index.ts +143 -0
- package/dist/templates/crosspod/service-b/tsconfig.json +14 -0
- package/dist/templates/mga/{{name}}-api/.env.example +5 -0
- package/dist/templates/mga/{{name}}-api/Dockerfile +45 -0
- package/dist/templates/mga/{{name}}-api/catalog-info.yaml +44 -0
- package/dist/templates/mga/{{name}}-api/gitignore +31 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/Chart.yaml +9 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/deployment.yaml +72 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/ingress.yaml +43 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/templates/service.yaml +17 -0
- package/dist/templates/mga/{{name}}-api/helm/{{name}}-api/values.yaml +65 -0
- package/dist/templates/mga/{{name}}-api/package.json +37 -0
- package/dist/templates/mga/{{name}}-api/src/index.ts +82 -0
- package/dist/templates/mga/{{name}}-api/src/lib/mongo.ts +19 -0
- package/dist/templates/mga/{{name}}-api/src/middleware/auth.ts +133 -0
- package/dist/templates/mga/{{name}}-api/src/models/agent.ts +45 -0
- package/dist/templates/mga/{{name}}-api/src/models/application.ts +58 -0
- package/dist/templates/mga/{{name}}-api/src/models/invite.ts +39 -0
- package/dist/templates/mga/{{name}}-api/src/models/policy.ts +59 -0
- package/dist/templates/mga/{{name}}-api/src/models/product.ts +51 -0
- package/dist/templates/mga/{{name}}-api/src/models/quote.ts +68 -0
- package/dist/templates/mga/{{name}}-api/src/routes/agents.ts +98 -0
- package/dist/templates/mga/{{name}}-api/src/routes/applications.ts +170 -0
- package/dist/templates/mga/{{name}}-api/src/routes/invites.ts +146 -0
- package/dist/templates/mga/{{name}}-api/src/routes/policies.ts +70 -0
- package/dist/templates/mga/{{name}}-api/src/routes/products.ts +154 -0
- package/dist/templates/mga/{{name}}-api/src/routes/quotes.ts +263 -0
- package/dist/templates/mga/{{name}}-api/src/routes/reports.ts +199 -0
- package/dist/templates/mga/{{name}}-api/tsconfig.json +18 -0
- package/dist/templates/mga/{{name}}-web/.dockerignore +6 -0
- package/dist/templates/mga/{{name}}-web/.env.example +6 -0
- package/dist/templates/mga/{{name}}-web/Dockerfile +51 -0
- package/dist/templates/mga/{{name}}-web/catalog-info.yaml +24 -0
- package/dist/templates/mga/{{name}}-web/dockerignore +6 -0
- package/dist/templates/mga/{{name}}-web/gitignore +36 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/Chart.yaml +9 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/_helpers.tpl +49 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/configmap.yaml +10 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/deployment.yaml +56 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/ingress.yaml +41 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/templates/service.yaml +15 -0
- package/dist/templates/mga/{{name}}-web/helm/{{name}}-web/values.yaml +70 -0
- package/dist/templates/mga/{{name}}-web/next.config.js +8 -0
- package/dist/templates/mga/{{name}}-web/package.json +30 -0
- package/dist/templates/mga/{{name}}-web/public/.gitkeep +0 -0
- package/dist/templates/mga/{{name}}-web/public/gitkeep +0 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/callback/route.ts +77 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/login/route.ts +16 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/logout/route.ts +7 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/auth/session/route.ts +42 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/health/route.ts +10 -0
- package/dist/templates/mga/{{name}}-web/src/app/api/proxy/applications/route.ts +47 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/layout.tsx +17 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/new/page.tsx +374 -0
- package/dist/templates/mga/{{name}}-web/src/app/applications/page.tsx +109 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/admin/page.tsx +179 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/agent/page.tsx +125 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/insured/page.tsx +145 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/layout.tsx +17 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/page.tsx +27 -0
- package/dist/templates/mga/{{name}}-web/src/app/dashboard/shell.tsx +89 -0
- package/dist/templates/mga/{{name}}-web/src/app/globals.css +477 -0
- package/dist/templates/mga/{{name}}-web/src/app/layout.tsx +19 -0
- package/dist/templates/mga/{{name}}-web/src/app/page.tsx +74 -0
- package/dist/templates/mga/{{name}}-web/src/app/reports/layout.tsx +21 -0
- package/dist/templates/mga/{{name}}-web/src/app/reports/page.tsx +231 -0
- package/dist/templates/mga/{{name}}-web/src/lib/api.ts +79 -0
- package/dist/templates/mga/{{name}}-web/src/lib/auth.ts +285 -0
- package/dist/templates/mga/{{name}}-web/src/middleware.ts +71 -0
- package/dist/templates/mga/{{name}}-web/tsconfig.json +26 -0
- package/dist/templates/nextjs/.env.example +11 -0
- package/dist/templates/nextjs/Dockerfile +51 -0
- package/dist/templates/nextjs/README.md +87 -0
- package/dist/templates/nextjs/catalog-info.yaml +16 -0
- package/dist/templates/nextjs/gitignore +36 -0
- package/dist/templates/nextjs/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/deployment.yaml +72 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/nextjs/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/nextjs/helm/{{name}}/values.yaml +60 -0
- package/dist/templates/nextjs/next.config.js +23 -0
- package/dist/templates/nextjs/package.json +29 -0
- package/dist/templates/nextjs/public/.gitkeep +0 -0
- package/dist/templates/nextjs/public/gitkeep +0 -0
- package/dist/templates/nextjs/src/app/api/example/route.ts +63 -0
- package/dist/templates/nextjs/src/app/api/health/route.ts +10 -0
- package/dist/templates/nextjs/src/app/layout.tsx +18 -0
- package/dist/templates/nextjs/src/app/page.tsx +49 -0
- package/dist/templates/nextjs/tsconfig.json +26 -0
- package/dist/templates/nextjs-oauth/.dockerignore +6 -0
- package/dist/templates/nextjs-oauth/.env.example +12 -0
- package/dist/templates/nextjs-oauth/Dockerfile +51 -0
- package/dist/templates/nextjs-oauth/README.md +115 -0
- package/dist/templates/nextjs-oauth/catalog-info.yaml +17 -0
- package/dist/templates/nextjs-oauth/dockerignore +6 -0
- package/dist/templates/nextjs-oauth/gitignore +36 -0
- package/dist/templates/nextjs-oauth/helm/Chart.yaml +6 -0
- package/dist/templates/nextjs-oauth/helm/templates/_helpers.tpl +49 -0
- package/dist/templates/nextjs-oauth/helm/templates/configmap.yaml +10 -0
- package/dist/templates/nextjs-oauth/helm/templates/deployment.yaml +56 -0
- package/dist/templates/nextjs-oauth/helm/templates/ingress.yaml +41 -0
- package/dist/templates/nextjs-oauth/helm/templates/service.yaml +15 -0
- package/dist/templates/nextjs-oauth/helm/values.yaml +69 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/templates/deployment.yaml +68 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/templates/service.yaml +17 -0
- package/dist/templates/nextjs-oauth/helm/{{name}}/values.yaml +51 -0
- package/dist/templates/nextjs-oauth/next.config.js +23 -0
- package/dist/templates/nextjs-oauth/package.json +30 -0
- package/dist/templates/nextjs-oauth/public/.gitkeep +0 -0
- package/dist/templates/nextjs-oauth/public/gitkeep +0 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/callback/route.ts +77 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/login/route.ts +16 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/logout/route.ts +7 -0
- package/dist/templates/nextjs-oauth/src/app/api/auth/session/route.ts +42 -0
- package/dist/templates/nextjs-oauth/src/app/api/example/route.ts +63 -0
- package/dist/templates/nextjs-oauth/src/app/api/health/route.ts +10 -0
- package/dist/templates/nextjs-oauth/src/app/dashboard/page.tsx +92 -0
- package/dist/templates/nextjs-oauth/src/app/layout.tsx +18 -0
- package/dist/templates/nextjs-oauth/src/app/page.tsx +110 -0
- package/dist/templates/nextjs-oauth/src/lib/auth.ts +285 -0
- package/dist/templates/nextjs-oauth/src/middleware.ts +71 -0
- package/dist/templates/nextjs-oauth/tsconfig.json +26 -0
- package/dist/templates/static/catalog-info.yaml +14 -0
- package/dist/templates/static/index.html +16 -0
- package/dist/templates/static/styles.css +39 -0
- package/dist/templates/worker/.env.example +13 -0
- package/dist/templates/worker/Dockerfile +26 -0
- package/dist/templates/worker/README.md +106 -0
- package/dist/templates/worker/catalog-info.yaml +19 -0
- package/dist/templates/worker/gitignore +5 -0
- package/dist/templates/worker/helm/{{name}}/Chart.yaml +9 -0
- package/dist/templates/worker/helm/{{name}}/templates/deployment.yaml +68 -0
- package/dist/templates/worker/helm/{{name}}/templates/ingress.yaml +43 -0
- package/dist/templates/worker/helm/{{name}}/values.yaml +64 -0
- package/dist/templates/worker/package.json +26 -0
- package/dist/templates/worker/src/index.ts +185 -0
- package/dist/templates/worker/tsconfig.json +14 -0
- package/dist/types/index.d.ts +625 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +46 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/platform.d.ts +191 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +17 -0
- package/dist/types/platform.js.map +1 -0
- package/package.json +63 -0
package/README.md
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# iec-cli
|
|
2
|
+
|
|
3
|
+
Developer CLI for the InsurEco Tawa platform. Deploy, manage, and monitor services with a single tool.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g iec-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or use without installing:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx iec-cli deploy
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Login to the platform
|
|
21
|
+
iec login
|
|
22
|
+
|
|
23
|
+
# Option 1: AI-powered setup (recommended)
|
|
24
|
+
iec init --ai
|
|
25
|
+
|
|
26
|
+
# Option 2: Use a starter template
|
|
27
|
+
iec sample --nextjs
|
|
28
|
+
cd my-service
|
|
29
|
+
|
|
30
|
+
# Check everything is configured correctly
|
|
31
|
+
iec preflight
|
|
32
|
+
|
|
33
|
+
# Deploy to sandbox
|
|
34
|
+
iec deploy
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Commands
|
|
38
|
+
|
|
39
|
+
### Setup & Configuration
|
|
40
|
+
|
|
41
|
+
| Command | Description |
|
|
42
|
+
|---------|-------------|
|
|
43
|
+
| `iec login` | Authenticate with the platform |
|
|
44
|
+
| `iec logout` | Sign out |
|
|
45
|
+
| `iec whoami` | Show current user |
|
|
46
|
+
| `iec config` | View/set CLI configuration |
|
|
47
|
+
| `iec init` | Scaffold new service |
|
|
48
|
+
| `iec init --ai` | AI-powered interactive setup |
|
|
49
|
+
| `iec sample --api` | Scaffold Express/Hono API starter |
|
|
50
|
+
| `iec sample --nextjs` | Scaffold Next.js starter |
|
|
51
|
+
| `iec sample --crosspod` | Scaffold two services with pod-to-pod auth demo |
|
|
52
|
+
|
|
53
|
+
### Deployment
|
|
54
|
+
|
|
55
|
+
| Command | Description |
|
|
56
|
+
|---------|-------------|
|
|
57
|
+
| `iec preflight` | Run pre-deployment checks |
|
|
58
|
+
| `iec register` | Register service with Koko |
|
|
59
|
+
| `iec link` | Connect repo to iec-builder |
|
|
60
|
+
| `iec deploy` | Build and deploy (via GitHub) |
|
|
61
|
+
| `iec push` | Push code directly to builder (no GitHub needed) |
|
|
62
|
+
| `iec rollback <version>` | Redeploy a previous version |
|
|
63
|
+
| `iec versions` | List deployable versions |
|
|
64
|
+
| `iec destroy` | Delete deployment |
|
|
65
|
+
|
|
66
|
+
### Monitoring
|
|
67
|
+
|
|
68
|
+
| Command | Description |
|
|
69
|
+
|---------|-------------|
|
|
70
|
+
| `iec status` | Show service and build status |
|
|
71
|
+
| `iec logs` | Stream container logs |
|
|
72
|
+
| `iec logs --build <id>` | View build logs |
|
|
73
|
+
| `iec builds` | List recent builds |
|
|
74
|
+
|
|
75
|
+
### Data Management
|
|
76
|
+
|
|
77
|
+
| Command | Description |
|
|
78
|
+
|---------|-------------|
|
|
79
|
+
| `iec env` | Manage environments |
|
|
80
|
+
| `iec program` | View programs |
|
|
81
|
+
| `iec backup` | Manage backups |
|
|
82
|
+
| `iec restore` | Restore from backup |
|
|
83
|
+
|
|
84
|
+
## Configuration
|
|
85
|
+
|
|
86
|
+
### Global Config (`~/.iec/config.yaml`)
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
koko_url: https://janus.tawa.insureco.io/koko
|
|
90
|
+
builder_url: https://builder.tawa.insureco.io
|
|
91
|
+
registry: registry.digitalocean.com/insureco
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Project Config (`catalog-info.yaml`)
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
apiVersion: backstage.io/v1alpha1
|
|
98
|
+
kind: Component
|
|
99
|
+
metadata:
|
|
100
|
+
name: my-service
|
|
101
|
+
description: My awesome service
|
|
102
|
+
annotations:
|
|
103
|
+
insureco.io/framework: nextjs
|
|
104
|
+
insureco.io/node-version: "20"
|
|
105
|
+
spec:
|
|
106
|
+
type: service
|
|
107
|
+
lifecycle: production
|
|
108
|
+
owner: my-team
|
|
109
|
+
routes:
|
|
110
|
+
- path: /api/users
|
|
111
|
+
methods: [GET, POST]
|
|
112
|
+
auth: required
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Environment Flags
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
iec deploy # Deploy to sandbox (default)
|
|
119
|
+
iec deploy --prod # Deploy to production
|
|
120
|
+
iec deploy --uat # Deploy to UAT
|
|
121
|
+
iec deploy --watch # Watch build progress
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Development
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Install dependencies
|
|
128
|
+
npm install
|
|
129
|
+
|
|
130
|
+
# Run in development
|
|
131
|
+
npm run dev
|
|
132
|
+
|
|
133
|
+
# Build
|
|
134
|
+
npm run build
|
|
135
|
+
|
|
136
|
+
# Run built CLI
|
|
137
|
+
npm start
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Publishing
|
|
141
|
+
|
|
142
|
+
To publish a new version:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npm version patch # or minor, major
|
|
146
|
+
npm publish # publish to npm
|
|
147
|
+
git push # push version bump to remote
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The `prepublishOnly` script runs `npm run build` automatically.
|
|
151
|
+
|
|
152
|
+
## Requirements
|
|
153
|
+
|
|
154
|
+
- Node.js 20+
|
|
155
|
+
- npm or pnpm
|
|
156
|
+
|
|
157
|
+
## License
|
|
158
|
+
|
|
159
|
+
MIT
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface BackupOptions {
|
|
2
|
+
type?: 'mongodb' | 'redis' | 'neo4j';
|
|
3
|
+
database?: string;
|
|
4
|
+
}
|
|
5
|
+
interface RestoreOptions {
|
|
6
|
+
confirm?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function backupCommand(options: BackupOptions): Promise<void>;
|
|
9
|
+
export declare function restoreCommand(backupId: string, options: RestoreOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAkBD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { log, formatTable, spinner } from '../lib/output.js';
|
|
2
|
+
const BACKUP_API_URL = 'http://jefferson.daryx.com:8090';
|
|
3
|
+
export async function backupCommand(options) {
|
|
4
|
+
if (options.type) {
|
|
5
|
+
// Trigger manual backup
|
|
6
|
+
await triggerBackup(options.type, options.database);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
// Show backup status
|
|
10
|
+
await showBackupStatus();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export async function restoreCommand(backupId, options) {
|
|
14
|
+
if (!options.confirm) {
|
|
15
|
+
log.error('Restore requires --confirm flag');
|
|
16
|
+
log.dim('This is a destructive operation that will overwrite existing data');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const sp = spinner(`Restoring backup ${backupId}`);
|
|
20
|
+
try {
|
|
21
|
+
const response = await fetch(`${BACKUP_API_URL}/api/restore`, {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
headers: { 'Content-Type': 'application/json' },
|
|
24
|
+
body: JSON.stringify({ backupId, confirm: true }),
|
|
25
|
+
});
|
|
26
|
+
const result = (await response.json());
|
|
27
|
+
if (!result.success) {
|
|
28
|
+
sp.stop(false);
|
|
29
|
+
log.error(`Restore failed: ${result.error?.message}`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
sp.stop(true);
|
|
33
|
+
log.success(`Restore started: job ${result.data?.jobId}`);
|
|
34
|
+
log.dim('Monitor progress with: iec backup --status');
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
sp.stop(false);
|
|
38
|
+
if (error instanceof Error) {
|
|
39
|
+
log.error(`Failed to start restore: ${error.message}`);
|
|
40
|
+
}
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function showBackupStatus() {
|
|
45
|
+
log.info('Backup status');
|
|
46
|
+
log.info('');
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetch(`${BACKUP_API_URL}/api/status`);
|
|
49
|
+
const result = (await response.json());
|
|
50
|
+
if (!result.success || !result.data) {
|
|
51
|
+
log.error(`Failed to get status: ${result.error?.message}`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const { lastRun, nextScheduled, storage } = result.data;
|
|
55
|
+
log.info('Last backups:');
|
|
56
|
+
const lastRunRows = Object.entries(lastRun).map(([type, info]) => {
|
|
57
|
+
const typed = info;
|
|
58
|
+
return [
|
|
59
|
+
type,
|
|
60
|
+
typed.status,
|
|
61
|
+
new Date(typed.timestamp).toLocaleString(),
|
|
62
|
+
`${typed.durationSec}s`,
|
|
63
|
+
];
|
|
64
|
+
});
|
|
65
|
+
console.log(formatTable(['TYPE', 'STATUS', 'TIMESTAMP', 'DURATION'], lastRunRows));
|
|
66
|
+
log.info('');
|
|
67
|
+
log.info('Next scheduled:');
|
|
68
|
+
for (const [type, timestamp] of Object.entries(nextScheduled)) {
|
|
69
|
+
log.dim(` ${type}: ${new Date(timestamp).toLocaleString()}`);
|
|
70
|
+
}
|
|
71
|
+
log.info('');
|
|
72
|
+
log.info('Storage:');
|
|
73
|
+
log.dim(` Provider: ${storage.provider}`);
|
|
74
|
+
log.dim(` Bucket: ${storage.bucket}`);
|
|
75
|
+
log.dim(` Used: ${(storage.usedBytes / 1024 / 1024 / 1024).toFixed(2)} GB`);
|
|
76
|
+
log.dim(` Backups: ${storage.backupCount}`);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error instanceof Error) {
|
|
80
|
+
log.error(`Failed to connect to backup service: ${error.message}`);
|
|
81
|
+
log.dim(`Backup service URL: ${BACKUP_API_URL}`);
|
|
82
|
+
}
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function triggerBackup(type, database) {
|
|
87
|
+
const sp = spinner(`Triggering ${type} backup`);
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(`${BACKUP_API_URL}/api/backups`, {
|
|
90
|
+
method: 'POST',
|
|
91
|
+
headers: { 'Content-Type': 'application/json' },
|
|
92
|
+
body: JSON.stringify({ type, database }),
|
|
93
|
+
});
|
|
94
|
+
const result = (await response.json());
|
|
95
|
+
if (!result.success) {
|
|
96
|
+
sp.stop(false);
|
|
97
|
+
log.error(`Backup failed: ${result.error?.message}`);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
sp.stop(true);
|
|
101
|
+
log.success(`Backup started: job ${result.data?.jobId}`);
|
|
102
|
+
log.dim('Monitor progress with: iec backup');
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
sp.stop(false);
|
|
106
|
+
if (error instanceof Error) {
|
|
107
|
+
log.error(`Failed to trigger backup: ${error.message}`);
|
|
108
|
+
}
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG5D,MAAM,cAAc,GAAG,iCAAiC,CAAA;AA2BxD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,wBAAwB;QACxB,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrD,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,MAAM,gBAAgB,EAAE,CAAA;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAC5C,GAAG,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,cAAc,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAClD,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAA;QAExE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACd,GAAG,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,GAAG,CAAC,OAAO,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,GAAG,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACd,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEZ,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,aAAa,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;QAEvD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAoB,EAAE,EAAE;YAClF,MAAM,KAAK,GAAG,IAAkE,CAAA;YAChF,OAAO;gBACL,IAAI;gBACJ,KAAK,CAAC,MAAM;gBACZ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;gBAC1C,GAAG,KAAK,CAAC,WAAW,GAAG;aACxB,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;QAElF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACZ,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,SAAmB,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACZ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpB,GAAG,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1C,GAAG,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACxC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAChF,GAAG,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAClE,GAAG,CAAC,GAAG,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAmC,EACnC,QAAiB;IAEjB,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,cAAc,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACzC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAA;QAExE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACd,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,GAAG,CAAC,OAAO,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACxD,GAAG,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACd,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tawa config set KEY=VALUE [KEY2=VALUE2 ...] [--secret]
|
|
3
|
+
*/
|
|
4
|
+
export declare function configSetCommand(pairs: string[], options: {
|
|
5
|
+
service?: string;
|
|
6
|
+
secret?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* tawa config list
|
|
10
|
+
*/
|
|
11
|
+
export declare function configListCommand(options: {
|
|
12
|
+
service?: string;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* tawa config unset KEY [KEY2 ...]
|
|
16
|
+
*/
|
|
17
|
+
export declare function configUnsetCommand(keys: string[], options: {
|
|
18
|
+
service?: string;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* tawa config pull
|
|
22
|
+
* Downloads all config + decrypted secrets to .env.local
|
|
23
|
+
*/
|
|
24
|
+
export declare function configPullCommand(options: {
|
|
25
|
+
service?: string;
|
|
26
|
+
output?: string;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* tawa config push [file]
|
|
30
|
+
* Push config from a .env file, classified against catalog declarations.
|
|
31
|
+
* Secrets are auto-detected from catalog-info.yaml declarations.
|
|
32
|
+
*/
|
|
33
|
+
export declare function configPushCommand(file: string | undefined, options: {
|
|
34
|
+
service?: string;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAyFA;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAgDf;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiFf"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { writeFile, readFile } from 'fs/promises';
|
|
2
|
+
import { existsSync } from 'fs';
|
|
3
|
+
import { join, resolve, relative } from 'path';
|
|
4
|
+
import { parse as parseYaml } from 'yaml';
|
|
5
|
+
import { BuilderClient } from '../lib/builder.js';
|
|
6
|
+
import { loadLinkedService } from '../lib/config.js';
|
|
7
|
+
import { log } from '../lib/output.js';
|
|
8
|
+
/**
|
|
9
|
+
* Parse a .env file into a key-value map.
|
|
10
|
+
* Supports: KEY=VALUE, KEY="VALUE", KEY='VALUE', blank lines, # comments.
|
|
11
|
+
*/
|
|
12
|
+
function parseEnvFile(content) {
|
|
13
|
+
const vars = {};
|
|
14
|
+
for (const rawLine of content.split('\n')) {
|
|
15
|
+
const line = rawLine.trim();
|
|
16
|
+
// Skip blank lines and comments
|
|
17
|
+
if (line === '' || line.startsWith('#'))
|
|
18
|
+
continue;
|
|
19
|
+
const eqIndex = line.indexOf('=');
|
|
20
|
+
if (eqIndex === -1)
|
|
21
|
+
continue;
|
|
22
|
+
const key = line.substring(0, eqIndex).trim();
|
|
23
|
+
if (!key)
|
|
24
|
+
continue;
|
|
25
|
+
let value = line.substring(eqIndex + 1).trim();
|
|
26
|
+
// Strip matching quotes
|
|
27
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
28
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
29
|
+
value = value.slice(1, -1);
|
|
30
|
+
}
|
|
31
|
+
// Unescape double-quoted values
|
|
32
|
+
if (rawLine.substring(eqIndex + 1).trim().startsWith('"')) {
|
|
33
|
+
value = value.replace(/\\n/g, '\n').replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
|
34
|
+
}
|
|
35
|
+
vars[key] = value;
|
|
36
|
+
}
|
|
37
|
+
return vars;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve service name from --service flag, .tawa.yaml, or catalog-info.yaml
|
|
41
|
+
*/
|
|
42
|
+
async function resolveServiceName(serviceFlag) {
|
|
43
|
+
if (serviceFlag) {
|
|
44
|
+
return serviceFlag;
|
|
45
|
+
}
|
|
46
|
+
const linked = await loadLinkedService();
|
|
47
|
+
if (linked?.serviceName) {
|
|
48
|
+
return linked.serviceName;
|
|
49
|
+
}
|
|
50
|
+
// Try catalog-info.yaml
|
|
51
|
+
try {
|
|
52
|
+
const content = await readFile(join(process.cwd(), 'catalog-info.yaml'), 'utf-8');
|
|
53
|
+
const catalog = parseYaml(content);
|
|
54
|
+
if (catalog?.metadata?.name) {
|
|
55
|
+
return catalog.metadata.name;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// catalog-info.yaml not found or invalid
|
|
60
|
+
}
|
|
61
|
+
log.error('Could not determine service name');
|
|
62
|
+
log.dim('Run from a project directory with .tawa.yaml or catalog-info.yaml,');
|
|
63
|
+
log.dim('or use --service <name> to specify the service.');
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Quote a value for .env file format if it contains special characters.
|
|
68
|
+
*/
|
|
69
|
+
function formatEnvValue(key, value) {
|
|
70
|
+
if (/[\s#"'\\]/.test(value) || value === '') {
|
|
71
|
+
const escaped = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
72
|
+
return `${key}="${escaped}"`;
|
|
73
|
+
}
|
|
74
|
+
return `${key}=${value}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* tawa config set KEY=VALUE [KEY2=VALUE2 ...] [--secret]
|
|
78
|
+
*/
|
|
79
|
+
export async function configSetCommand(pairs, options) {
|
|
80
|
+
if (pairs.length === 0) {
|
|
81
|
+
log.error('No KEY=VALUE pairs provided');
|
|
82
|
+
log.dim('Usage: tawa config set KEY=VALUE [KEY2=VALUE2 ...]');
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
// Parse KEY=VALUE pairs
|
|
86
|
+
const vars = {};
|
|
87
|
+
for (const pair of pairs) {
|
|
88
|
+
const eqIndex = pair.indexOf('=');
|
|
89
|
+
if (eqIndex === -1) {
|
|
90
|
+
log.error(`Invalid format: "${pair}" (expected KEY=VALUE)`);
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
const key = pair.substring(0, eqIndex);
|
|
94
|
+
const value = pair.substring(eqIndex + 1);
|
|
95
|
+
if (!key) {
|
|
96
|
+
log.error(`Invalid key in "${pair}"`);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
vars[key] = value;
|
|
100
|
+
}
|
|
101
|
+
const serviceName = await resolveServiceName(options.service);
|
|
102
|
+
const client = await BuilderClient.create();
|
|
103
|
+
log.info(`Setting ${options.secret ? 'secrets' : 'config'} for ${serviceName}...`);
|
|
104
|
+
const result = await client.setConfig(serviceName, vars, options.secret);
|
|
105
|
+
if (!result.success) {
|
|
106
|
+
log.error(`Failed to set config: ${result.error?.message}`);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
const data = result.data;
|
|
110
|
+
if (!data) {
|
|
111
|
+
log.error('Unexpected empty response');
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
log.success(`${Object.keys(vars).length} variable(s) ${options.secret ? 'encrypted and ' : ''}saved`);
|
|
115
|
+
// Show summary
|
|
116
|
+
const configCount = Object.keys(data.config).length;
|
|
117
|
+
const secretCount = data.secrets.length;
|
|
118
|
+
log.dim(` Config vars: ${configCount}`);
|
|
119
|
+
log.dim(` Secrets: ${secretCount}`);
|
|
120
|
+
log.info('');
|
|
121
|
+
log.warning('Deploy to apply changes: tawa deploy or tawa push --deploy');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* tawa config list
|
|
125
|
+
*/
|
|
126
|
+
export async function configListCommand(options) {
|
|
127
|
+
const serviceName = await resolveServiceName(options.service);
|
|
128
|
+
const client = await BuilderClient.create();
|
|
129
|
+
const result = await client.getConfig(serviceName);
|
|
130
|
+
if (!result.success) {
|
|
131
|
+
log.error(`Failed to get config: ${result.error?.message}`);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
const data = result.data;
|
|
135
|
+
if (!data) {
|
|
136
|
+
log.error('Unexpected empty response');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
log.info(`Config for ${serviceName}`);
|
|
140
|
+
if (data.updatedAt) {
|
|
141
|
+
log.dim(`Last updated: ${data.updatedAt}`);
|
|
142
|
+
}
|
|
143
|
+
log.info('');
|
|
144
|
+
const configEntries = Object.entries(data.config);
|
|
145
|
+
const secretKeys = data.secrets;
|
|
146
|
+
if (configEntries.length === 0 && secretKeys.length === 0) {
|
|
147
|
+
log.dim('No config vars set. Use "tawa config set KEY=VALUE" to add some.');
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// Show plain config vars
|
|
151
|
+
for (const [key, value] of configEntries) {
|
|
152
|
+
log.dim(` ${key}=${value}`);
|
|
153
|
+
}
|
|
154
|
+
// Show secret names (values hidden)
|
|
155
|
+
for (const key of secretKeys) {
|
|
156
|
+
log.dim(` ${key}=********`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* tawa config unset KEY [KEY2 ...]
|
|
161
|
+
*/
|
|
162
|
+
export async function configUnsetCommand(keys, options) {
|
|
163
|
+
if (keys.length === 0) {
|
|
164
|
+
log.error('No keys provided');
|
|
165
|
+
log.dim('Usage: tawa config unset KEY [KEY2 ...]');
|
|
166
|
+
process.exit(1);
|
|
167
|
+
}
|
|
168
|
+
const serviceName = await resolveServiceName(options.service);
|
|
169
|
+
const client = await BuilderClient.create();
|
|
170
|
+
log.info(`Removing config for ${serviceName}...`);
|
|
171
|
+
const result = await client.unsetConfig(serviceName, keys);
|
|
172
|
+
if (!result.success) {
|
|
173
|
+
log.error(`Failed to unset config: ${result.error?.message}`);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
log.success(`${keys.length} variable(s) removed`);
|
|
177
|
+
log.info('');
|
|
178
|
+
log.warning('Deploy to apply changes: tawa deploy or tawa push --deploy');
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* tawa config pull
|
|
182
|
+
* Downloads all config + decrypted secrets to .env.local
|
|
183
|
+
*/
|
|
184
|
+
export async function configPullCommand(options) {
|
|
185
|
+
const serviceName = await resolveServiceName(options.service);
|
|
186
|
+
const client = await BuilderClient.create();
|
|
187
|
+
log.info(`Pulling config for ${serviceName}...`);
|
|
188
|
+
const result = await client.pullConfig(serviceName);
|
|
189
|
+
if (!result.success) {
|
|
190
|
+
log.error(`Failed to pull config: ${result.error?.message}`);
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
const data = result.data;
|
|
194
|
+
if (!data) {
|
|
195
|
+
log.error('Unexpected empty response');
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
const vars = data.vars;
|
|
199
|
+
const entries = Object.entries(vars);
|
|
200
|
+
if (entries.length === 0) {
|
|
201
|
+
log.dim('No config vars to pull.');
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
// Resolve output path
|
|
205
|
+
const outputPath = options.output
|
|
206
|
+
? resolve(process.cwd(), options.output)
|
|
207
|
+
: join(process.cwd(), '.env.local');
|
|
208
|
+
// Warn if writing outside the current project directory
|
|
209
|
+
const rel = relative(process.cwd(), outputPath);
|
|
210
|
+
if (rel.startsWith('..')) {
|
|
211
|
+
log.warning(`Writing secrets outside project directory: ${outputPath}`);
|
|
212
|
+
}
|
|
213
|
+
// Format with proper quoting for special characters
|
|
214
|
+
const content = entries
|
|
215
|
+
.map(([key, value]) => formatEnvValue(key, value))
|
|
216
|
+
.join('\n') + '\n';
|
|
217
|
+
// Write with restricted permissions (owner-only read/write)
|
|
218
|
+
await writeFile(outputPath, content, { encoding: 'utf-8', mode: 0o600 });
|
|
219
|
+
log.success(`${entries.length} variable(s) written to ${outputPath}`);
|
|
220
|
+
log.warning('Do not commit .env.local to version control');
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* tawa config push [file]
|
|
224
|
+
* Push config from a .env file, classified against catalog declarations.
|
|
225
|
+
* Secrets are auto-detected from catalog-info.yaml declarations.
|
|
226
|
+
*/
|
|
227
|
+
export async function configPushCommand(file, options) {
|
|
228
|
+
// Resolve .env file path
|
|
229
|
+
const envPath = file
|
|
230
|
+
? resolve(process.cwd(), file)
|
|
231
|
+
: join(process.cwd(), '.env');
|
|
232
|
+
if (!existsSync(envPath)) {
|
|
233
|
+
log.error(`File not found: ${envPath}`);
|
|
234
|
+
log.dim(file
|
|
235
|
+
? 'Check the file path and try again.'
|
|
236
|
+
: 'Create a .env file or specify the path: tawa config push <file>');
|
|
237
|
+
process.exit(1);
|
|
238
|
+
}
|
|
239
|
+
const content = await readFile(envPath, 'utf-8');
|
|
240
|
+
const vars = parseEnvFile(content);
|
|
241
|
+
const keyCount = Object.keys(vars).length;
|
|
242
|
+
if (keyCount === 0) {
|
|
243
|
+
log.error('No variables found in file');
|
|
244
|
+
log.dim('Ensure the file has KEY=VALUE entries (one per line).');
|
|
245
|
+
process.exit(1);
|
|
246
|
+
}
|
|
247
|
+
const serviceName = await resolveServiceName(options.service);
|
|
248
|
+
const client = await BuilderClient.create();
|
|
249
|
+
log.info(`Pushing ${keyCount} variable(s) from ${envPath} to ${serviceName}...`);
|
|
250
|
+
const result = await client.pushConfig(serviceName, vars);
|
|
251
|
+
if (!result.success) {
|
|
252
|
+
const msg = result.error?.message || 'Unknown error';
|
|
253
|
+
if (result.error?.code === 'NO_DECLARATIONS') {
|
|
254
|
+
log.error('No config declarations found');
|
|
255
|
+
log.dim('Deploy once to sync catalog-info.yaml, or use "tawa config set" for direct configuration.');
|
|
256
|
+
}
|
|
257
|
+
else if (result.error?.code === 'ALL_REJECTED') {
|
|
258
|
+
log.error(msg);
|
|
259
|
+
log.dim('Ensure your .env keys match the spec.config declarations in catalog-info.yaml.');
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
log.error(`Failed to push config: ${msg}`);
|
|
263
|
+
}
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
const data = result.data;
|
|
267
|
+
if (!data) {
|
|
268
|
+
log.error('Unexpected empty response');
|
|
269
|
+
process.exit(1);
|
|
270
|
+
}
|
|
271
|
+
// Show results
|
|
272
|
+
const { pushed, rejected, warnings } = data;
|
|
273
|
+
if (pushed.config.length > 0) {
|
|
274
|
+
log.success(`${pushed.config.length} config var(s) saved`);
|
|
275
|
+
for (const key of pushed.config) {
|
|
276
|
+
log.dim(` ${key}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (pushed.secrets.length > 0) {
|
|
280
|
+
log.success(`${pushed.secrets.length} secret(s) encrypted and saved`);
|
|
281
|
+
for (const key of pushed.secrets) {
|
|
282
|
+
log.dim(` ${key}`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (rejected.length > 0) {
|
|
286
|
+
log.warning(`${rejected.length} key(s) rejected (not declared in catalog-info.yaml)`);
|
|
287
|
+
for (const key of rejected) {
|
|
288
|
+
log.dim(` ${key}`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
for (const warning of warnings) {
|
|
292
|
+
log.warning(warning);
|
|
293
|
+
}
|
|
294
|
+
log.info('');
|
|
295
|
+
log.warning('Deploy to apply changes: tawa deploy');
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Environment } from '../types/index.js';
|
|
2
|
+
interface DeployOptions {
|
|
3
|
+
branch?: string;
|
|
4
|
+
watch?: boolean;
|
|
5
|
+
env?: Environment;
|
|
6
|
+
prod?: boolean;
|
|
7
|
+
sandbox?: boolean;
|
|
8
|
+
uat?: boolean;
|
|
9
|
+
validate?: boolean;
|
|
10
|
+
skipValidate?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function deployCommand(options: DeployOptions): Promise<void>;
|
|
13
|
+
export declare function listBuildsCommand(options: {
|
|
14
|
+
service?: string;
|
|
15
|
+
limit?: number;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAIjE,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0KzE;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCpG"}
|