@@ -38,3 +38,3 @@ // `insta feedback` — report an InstaCloud-side hurdle to the InstaCloud team. | ||
| const FEEDBACK_ENDPOINT = process.env.INSTA_FEEDBACK_URL || | ||
| 'https://insta-main-api-cdad9b6c.compute.instacloud.com/v1/feedback'; | ||
| 'https://feedback.instacloud.com/v1/feedback'; | ||
| const FEEDBACK_INGEST_TOKEN = process.env.INSTA_FEEDBACK_TOKEN || 'insta-feedback-public-v1'; | ||
@@ -41,0 +41,0 @@ const FEEDBACK_TIMEOUT_MS = 10_000; |
@@ -1,5 +0,5 @@ | ||
| // `insta services` — manage a project's opt-in services (postgres | storage | compute). | ||
| // `insta services` — manage a project's opt-in services (postgres | storage | compute | redis). | ||
| import { ApiClient, requireProject } from '../api.js'; | ||
| import { info, printJson, handleApproval, renderNextActions } from '../util.js'; | ||
| export const SERVICE_TYPES = ['postgres', 'storage', 'compute']; | ||
| export const SERVICE_TYPES = ['postgres', 'storage', 'compute', 'redis']; | ||
| const SERVICE_NAME_RE = /^[a-z0-9][a-z0-9-]{0,38}$/; | ||
@@ -127,3 +127,4 @@ export function q(branch) { | ||
| ? ` x${s.machine_count}${s.volume_gib ? ` vol ${s.volume_gib}Gi` : ''}${s.image ? ` running ${s.image}${s.port ? `:${s.port}` : ''}` : ''}` | ||
| : s.type === 'storage' ? ` ${s.public ? 'public' : 'private'}` : ''; | ||
| : s.type === 'redis' ? ` tcp/${s.port ?? 6379}${s.volume_gib ? ` vol ${s.volume_gib}Gi` : ''}` | ||
| : s.type === 'storage' ? ` ${s.public ? 'public' : 'private'}` : ''; | ||
| return `${s.type}/${s.name} [${s.status}]${extra}${s.domain ? ` ${s.domain}` : ''} ${s.id}`; | ||
@@ -139,3 +140,3 @@ } | ||
| if (!services.length) | ||
| return info(`(no services on ${branch ?? 'default'} — add one with \`insta services add <postgres|storage|compute> <name>\`)`); | ||
| return info(`(no services on ${branch ?? 'default'} — add one with \`insta services add <postgres|storage|compute|redis> <name>\`)`); | ||
| for (const s of services) | ||
@@ -142,0 +143,0 @@ info(serviceListLine(s)); |
+3
-3
@@ -112,4 +112,4 @@ #!/usr/bin/env node | ||
| .option('--into <branch>', 'target branch (default: current)').action(guard((source, o) => branch.branchMerge(source, o))); | ||
| // ---- services (opt-in postgres/storage/compute) ---- | ||
| const svc = program.command('services').alias('svc').description('Manage project services (postgres|storage|compute)'); | ||
| // ---- services (opt-in postgres/storage/compute/redis) ---- | ||
| const svc = program.command('services').alias('svc').description('Manage project services (postgres|storage|compute|redis)'); | ||
| // [type] [name] are optional so the command can answer "what can I add?" — a terminal is walked | ||
@@ -120,3 +120,3 @@ // through the dashboard's Add Service kinds, anything else gets that list back as an error | ||
| .option('--branch <branch>', 'target branch (default: current)') | ||
| .option('--region <region>', 'region for postgres/compute, e.g. us-east (see `insta regions`)') | ||
| .option('--region <region>', 'region for postgres/compute/redis, e.g. us-east (see `insta regions`)') | ||
| .option('--public', 'storage only: serve the bucket with anonymous public-read (default private)') | ||
@@ -123,0 +123,0 @@ .option('--image <url>', 'compute only: run this container image at creation') |
| // `insta services add` with no type (or no name): the kinds are otherwise only discoverable by | ||
| // guessing wrong and reading `type must be postgres|storage|compute`, so missing arguments answer | ||
| // guessing wrong and reading `type must be postgres|storage|compute|redis`, so missing arguments answer | ||
| // "what can I add?" instead. The list mirrors the dashboard's Add Service menu (frontend | ||
@@ -14,2 +14,3 @@ // `add-service-button.tsx`) — Docker Image sits BESIDE Empty Service, not under it, because | ||
| { id: 'postgres', label: 'Postgres', type: 'postgres', hint: 'relational DB, usable as soon as it is added', defaultName: 'main-db' }, | ||
| { id: 'redis', label: 'Redis', type: 'redis', hint: 'private Redis-compatible cache', defaultName: 'cache' }, | ||
| { id: 'storage', label: 'Storage', type: 'storage', hint: 'S3-compatible bucket, private by default', defaultName: 'assets' }, | ||
@@ -16,0 +17,0 @@ { id: 'compute', label: 'Empty Service', type: 'compute', hint: 'an app to deploy code to (empty until `insta deploy`)', defaultName: 'compute' }, |
+1
-1
| { | ||
| "name": "insta", | ||
| "version": "0.0.34", | ||
| "version": "0.0.35", | ||
| "type": "module", | ||
@@ -5,0 +5,0 @@ "description": "InstaCloud CLI — a thin client of the platform control-plane API.", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
244757
0.1%4255
0.05%