indraq_cli 1.9.0 → 1.9.2
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 +549 -1175
- package/cloud-api/dist/index.js +92 -17
- package/cloud-api/dist/index.js.map +1 -0
- package/cloud-api/node_modules/.package-lock.json +4 -4
- package/cloud-api/node_modules/@aws-sdk/client-iam/dist-cjs/index.js +1 -1
- package/cloud-api/node_modules/@aws-sdk/client-iam/package.json +1 -1
- package/cloud-api/package-lock.json +5 -5
- package/cloud-api/package.json +1 -1
- package/cloud-api/src/index.ts +77 -12
- package/dist/cli/help-content.d.ts.map +1 -1
- package/dist/cli/help-content.js +5 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/modules/cloud/config/cloud-config.d.ts +1 -1
- package/dist/modules/cloud/config/cloud-config.js +1 -1
- package/dist/modules/cloud/services/cloud-jenkins.service.d.ts +13 -1
- package/dist/modules/cloud/services/cloud-jenkins.service.d.ts.map +1 -1
- package/dist/modules/cloud/services/cloud-jenkins.service.js +102 -6
- package/dist/modules/cloud/services/cloud-jenkins.service.js.map +1 -1
- package/dist/modules/cloud/services/managed-aws-credential.service.d.ts.map +1 -1
- package/dist/modules/cloud/services/managed-aws-credential.service.js +11 -4
- package/dist/modules/cloud/services/managed-aws-credential.service.js.map +1 -1
- package/dist/modules/jenkins/commands/admin.command.d.ts +3 -0
- package/dist/modules/jenkins/commands/admin.command.d.ts.map +1 -1
- package/dist/modules/jenkins/commands/admin.command.js +91 -1
- package/dist/modules/jenkins/commands/admin.command.js.map +1 -1
- package/dist/modules/jenkins/index.d.ts.map +1 -1
- package/dist/modules/jenkins/index.js +3 -0
- package/dist/modules/jenkins/index.js.map +1 -1
- package/dist/modules/users/commands/user.command.d.ts.map +1 -1
- package/dist/modules/users/commands/user.command.js +179 -34
- package/dist/modules/users/commands/user.command.js.map +1 -1
- package/dist/modules/users/providers/aws-user.provider.d.ts.map +1 -1
- package/dist/modules/users/providers/aws-user.provider.js +9 -2
- package/dist/modules/users/providers/aws-user.provider.js.map +1 -1
- package/dist/modules/users/providers/jenkins-user.provider.d.ts +7 -3
- package/dist/modules/users/providers/jenkins-user.provider.d.ts.map +1 -1
- package/dist/modules/users/providers/jenkins-user.provider.js +60 -14
- package/dist/modules/users/providers/jenkins-user.provider.js.map +1 -1
- package/dist/modules/users/providers/npm-user.provider.d.ts.map +1 -1
- package/dist/modules/users/providers/npm-user.provider.js +3 -1
- package/dist/modules/users/providers/npm-user.provider.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,1517 +1,891 @@
|
|
|
1
1
|
# IndraQ CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**One CLI for project setup, shared infrastructure, access control, Jenkins, AWS Route53, Nginx Proxy Manager, GHCR, Docker and deployments.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> This guide matches **IndraQ CLI v1.9.1**.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Jump to:** [Quick start](#quick-start) · [Recommended workflow](#recommended-workflow-in-chronological-order) · [Command reference](#command-reference) · [Common flows](#common-real-world-flows) · [Security](#security-model) · [Troubleshooting](#troubleshooting)
|
|
8
8
|
|
|
9
|
-
IndraQ
|
|
9
|
+
IndraQ CLI is built to remove the repetitive DevOps work developers normally have to remember or perform manually. Instead of opening Jenkins, AWS, Nginx Proxy Manager and multiple configuration files for every project, you use one consistent CLI from your terminal.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
A developer can go from a project folder to a deployment with a workflow such as:
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
```text
|
|
14
|
+
login
|
|
15
|
+
↓
|
|
16
|
+
configure reusable credentials once
|
|
17
|
+
↓
|
|
18
|
+
init / register / link a project
|
|
19
|
+
↓
|
|
20
|
+
prebuild infrastructure
|
|
21
|
+
↓
|
|
22
|
+
deploy
|
|
23
|
+
```
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
The CLI keeps **user credentials** separate from **project infrastructure**, so the same AWS, Jenkins, NPM and GHCR credentials can be reused across every project the user is allowed to access.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
---
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
## Why use IndraQ?
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
| Problem without IndraQ | What IndraQ does |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| Developers remember IPs, ports, Jenkins jobs and registry paths | Uses named environments and stored project associations |
|
|
34
|
+
| Provider credentials are copied between projects | Stores reusable credentials once in IndraQ Cloud |
|
|
35
|
+
| New projects need repetitive folder, Docker and environment setup | `indraq init` scaffolds the project safely |
|
|
36
|
+
| DNS, proxy and Jenkins setup drift apart | `indraq prebuild` reconciles them as one workflow |
|
|
37
|
+
| User access has to be changed in several systems | Unified user create/update/delete synchronizes providers |
|
|
38
|
+
| Jenkins jobs require opening the browser and remembering parameters | CLI can discover, prompt for and run any visible pipeline |
|
|
39
|
+
| AWS keys are difficult to recover or rotate safely | IndraQ can store managed IAM credentials encrypted and rotate them |
|
|
40
|
+
| Nobody knows who changed infrastructure | Manager/admin operations are audited in IndraQ Cloud |
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
The result is not just fewer commands. The important benefit is **repeatability**: two developers following the same IndraQ workflow should reach the same infrastructure state without having to know every provider-specific detail.
|
|
39
43
|
|
|
40
44
|
---
|
|
41
45
|
|
|
42
|
-
|
|
46
|
+
## The mental model
|
|
43
47
|
|
|
44
|
-
IndraQ
|
|
48
|
+
IndraQ is easier to understand if you remember three things.
|
|
45
49
|
|
|
46
|
-
|
|
47
|
-
| --- | --- |
|
|
48
|
-
| `user` | View the organization project catalog, create projects, configure their own provider credentials, use shared environments, run prebuild/deploy only on projects where they have WRITE access, retrieve/rotate their own managed AWS IAM credential |
|
|
49
|
-
| `manager` | Everything a user can do, plus create/manage normal users, rotate managed users' AWS keys, update/delete Cloud projects with a reason, manage project membership/resource access, and view audit logs |
|
|
50
|
-
| `admin` | Full access, including create managers/admins, change roles, rotate any managed AWS key, manage projects/members/resource access, manage shared environments and Route53 health checks, configure AWS policy mappings, and view audit logs |
|
|
50
|
+
### 1. Your reusable provider credentials
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Each IndraQ user can store their own credentials for:
|
|
53
53
|
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
- Shared environments are visible to authenticated users, but only admins manage them.
|
|
60
|
-
- Route53 health checks can be listed/selected by users and managers, but only admins create/delete them.
|
|
61
|
-
- Organization projects are visible to every authenticated user; VIEW vs WRITE controls whether infrastructure can be changed.
|
|
54
|
+
- AWS
|
|
55
|
+
- Nginx Proxy Manager (NPM)
|
|
56
|
+
- Jenkins Development
|
|
57
|
+
- Jenkins Production
|
|
58
|
+
- GitHub Container Registry (GHCR)
|
|
62
59
|
|
|
63
|
-
|
|
60
|
+
They are stored in IndraQ Cloud and reused across projects. They are not copied into every repository.
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
### 2. Shared environments
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
Admins can define friendly environment names that point to server targets, for example:
|
|
68
65
|
|
|
69
66
|
```text
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
IndraQ Cloud API
|
|
75
|
-
|
|
|
76
|
-
+-- PostgreSQL
|
|
77
|
-
|
|
|
78
|
-
+-- user credentials
|
|
79
|
-
| +-- AWS
|
|
80
|
-
| +-- NPM
|
|
81
|
-
| +-- Jenkins DEV
|
|
82
|
-
| +-- Jenkins PROD
|
|
83
|
-
| +-- GHCR
|
|
84
|
-
|
|
|
85
|
-
+-- shared environments
|
|
86
|
-
|
|
|
87
|
-
+-- projects
|
|
88
|
-
+-- GHCR image
|
|
89
|
-
+-- Jenkins job
|
|
90
|
-
+-- Route53 record / health checks
|
|
91
|
-
+-- NPM proxy
|
|
67
|
+
production → 10.0.0.10
|
|
68
|
+
production-backup → 10.0.0.11
|
|
69
|
+
staging → 10.0.1.10
|
|
70
|
+
qa → 10.0.2.20
|
|
92
71
|
```
|
|
93
72
|
|
|
94
|
-
|
|
73
|
+
Developers select `production` or `staging` instead of remembering the IP address.
|
|
74
|
+
|
|
75
|
+
### 3. Project infrastructure
|
|
76
|
+
|
|
77
|
+
A Cloud project can remember associations such as:
|
|
95
78
|
|
|
96
79
|
```text
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
Project
|
|
81
|
+
├── GHCR image
|
|
82
|
+
├── Jenkins deployment job
|
|
83
|
+
├── Route53 record
|
|
84
|
+
├── Route53 routing / health checks
|
|
85
|
+
├── NPM proxy host
|
|
86
|
+
├── environment
|
|
87
|
+
└── ports / deployment metadata
|
|
102
88
|
```
|
|
103
89
|
|
|
104
|
-
|
|
90
|
+
The local project normally needs only its Cloud project reference in:
|
|
105
91
|
|
|
106
|
-
|
|
92
|
+
```text
|
|
93
|
+
.indraq/project.json
|
|
94
|
+
```
|
|
107
95
|
|
|
108
96
|
---
|
|
109
97
|
|
|
110
|
-
|
|
98
|
+
## Roles and permissions
|
|
111
99
|
|
|
112
|
-
|
|
100
|
+
| Role | Typical responsibility |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| `user` | Work on permitted projects, configure personal providers, prebuild/deploy, use shared environments and manage their own supported credentials |
|
|
103
|
+
| `manager` | Everything a user can do, plus manage normal users, project membership/resource access, managed user AWS keys and audit logs |
|
|
104
|
+
| `admin` | Full organization control, including managers/admins, role changes, shared environments and admin-only Route53 health-check operations |
|
|
113
105
|
|
|
114
|
-
|
|
106
|
+
Important role rules:
|
|
115
107
|
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
108
|
+
- Managers can create and manage normal `user` accounts.
|
|
109
|
+
- Only admins can create managers/admins or change an existing IndraQ role.
|
|
110
|
+
- The last active admin cannot be deleted or demoted.
|
|
111
|
+
- An admin cannot use the role endpoint to demote their own active session.
|
|
112
|
+
- Role promotion/demotion is synchronized across linked managed providers before the Cloud role is committed.
|
|
119
113
|
|
|
120
|
-
|
|
114
|
+
Provider role mapping is intentional. Nginx Proxy Manager only provides `user` and `admin`, so IndraQ maps `manager` and `admin` to NPM `admin`. AWS and Jenkins use their IndraQ-managed role/policy mappings.
|
|
121
115
|
|
|
122
|
-
|
|
123
|
-
- network access to IndraQ Cloud API
|
|
124
|
-
- network access to Jenkins/NPM/AWS/GitHub used by that user
|
|
116
|
+
---
|
|
125
117
|
|
|
126
|
-
|
|
118
|
+
# Quick start
|
|
127
119
|
|
|
128
|
-
|
|
120
|
+
## 1. Install
|
|
129
121
|
|
|
130
|
-
|
|
131
|
-
- PostgreSQL
|
|
132
|
-
- a persistent `MASTER_KEY`
|
|
133
|
-
- a strong `JWT_SECRET`
|
|
122
|
+
Requirements:
|
|
134
123
|
|
|
135
|
-
|
|
124
|
+
- Node.js **22+**
|
|
125
|
+
- npm
|
|
126
|
+
- Git
|
|
127
|
+
- Docker when building/pushing Docker images
|
|
128
|
+
- network access to the IndraQ Cloud and providers you use
|
|
136
129
|
|
|
137
|
-
|
|
130
|
+
Install the published CLI:
|
|
138
131
|
|
|
139
|
-
|
|
132
|
+
```powershell
|
|
133
|
+
npm install -g indraq_cli
|
|
134
|
+
```
|
|
140
135
|
|
|
141
|
-
|
|
142
|
-
|
|
136
|
+
Check it:
|
|
137
|
+
|
|
138
|
+
```powershell
|
|
139
|
+
indraq --version
|
|
140
|
+
indraq doctor
|
|
141
|
+
indraq --help
|
|
143
142
|
```
|
|
144
143
|
|
|
145
|
-
|
|
144
|
+
When developing the CLI itself:
|
|
146
145
|
|
|
147
|
-
|
|
146
|
+
```powershell
|
|
147
|
+
npm install
|
|
148
|
+
npm run build
|
|
149
|
+
npm test
|
|
150
|
+
npm link
|
|
151
|
+
```
|
|
148
152
|
|
|
149
153
|
---
|
|
150
154
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
Open the Cloud API folder:
|
|
155
|
+
## 2. Login
|
|
154
156
|
|
|
155
157
|
```powershell
|
|
156
|
-
|
|
157
|
-
npm install
|
|
158
|
+
indraq login
|
|
158
159
|
```
|
|
159
160
|
|
|
160
|
-
|
|
161
|
+
Check the current identity:
|
|
161
162
|
|
|
162
163
|
```powershell
|
|
163
|
-
|
|
164
|
+
indraq whoami
|
|
164
165
|
```
|
|
165
166
|
|
|
166
|
-
|
|
167
|
+
The normal CLI uses the official IndraQ Cloud endpoint built into the package. Users do not need to configure an API URL manually.
|
|
167
168
|
|
|
168
|
-
|
|
169
|
-
PORT=4010
|
|
170
|
-
DATABASE_URL=postgresql://indraq:change-me@127.0.0.1:5432/indraq_cloud
|
|
171
|
-
JWT_SECRET=replace-with-at-least-32-random-characters
|
|
172
|
-
MASTER_KEY=replace-with-exactly-64-hex-characters
|
|
173
|
-
BOOTSTRAP_ADMIN_EMAIL=admin@example.com
|
|
174
|
-
BOOTSTRAP_ADMIN_PASSWORD=use-a-strong-password
|
|
175
|
-
```
|
|
169
|
+
If the account was created with a temporary password, the first login requires a new password before normal Cloud operations continue.
|
|
176
170
|
|
|
177
|
-
|
|
171
|
+
---
|
|
178
172
|
|
|
179
|
-
|
|
180
|
-
- `MASTER_KEY`: exactly 64 hexadecimal characters (32 bytes)
|
|
181
|
-
- `BOOTSTRAP_ADMIN_PASSWORD`: at least 12 characters
|
|
173
|
+
## 3. Configure your providers once
|
|
182
174
|
|
|
183
|
-
|
|
175
|
+
The easiest entry point is:
|
|
184
176
|
|
|
185
177
|
```powershell
|
|
186
|
-
|
|
178
|
+
indraq configure
|
|
187
179
|
```
|
|
188
180
|
|
|
189
|
-
|
|
181
|
+
It provides one menu for:
|
|
190
182
|
|
|
191
|
-
```
|
|
192
|
-
|
|
183
|
+
```text
|
|
184
|
+
Reusable provider credentials
|
|
185
|
+
Current project infrastructure / prebuild
|
|
186
|
+
Mobile settings
|
|
187
|
+
Provider status
|
|
193
188
|
```
|
|
194
189
|
|
|
195
|
-
|
|
190
|
+
You can also configure a provider directly:
|
|
196
191
|
|
|
197
192
|
```powershell
|
|
198
|
-
|
|
199
|
-
|
|
193
|
+
indraq provider configure aws
|
|
194
|
+
indraq provider configure npm
|
|
195
|
+
indraq provider configure jenkins-dev
|
|
196
|
+
indraq provider configure jenkins-prod
|
|
197
|
+
indraq provider configure ghcr
|
|
200
198
|
```
|
|
201
199
|
|
|
202
|
-
|
|
200
|
+
Review what is configured without exposing secrets:
|
|
203
201
|
|
|
204
202
|
```powershell
|
|
205
|
-
|
|
206
|
-
npm start
|
|
203
|
+
indraq provider list
|
|
207
204
|
```
|
|
208
205
|
|
|
209
|
-
|
|
206
|
+
---
|
|
210
207
|
|
|
211
|
-
|
|
212
|
-
IndraQ Cloud API listening on 4010
|
|
213
|
-
```
|
|
208
|
+
## 4. Create or connect a project
|
|
214
209
|
|
|
215
|
-
|
|
210
|
+
For a brand-new application:
|
|
216
211
|
|
|
217
|
-
|
|
212
|
+
```powershell
|
|
213
|
+
indraq init
|
|
214
|
+
```
|
|
218
215
|
|
|
219
|
-
|
|
216
|
+
For an existing codebase that should become a new Cloud project without scaffolding it:
|
|
220
217
|
|
|
221
|
-
|
|
218
|
+
```powershell
|
|
219
|
+
indraq project create
|
|
220
|
+
```
|
|
222
221
|
|
|
223
|
-
|
|
222
|
+
For a folder that belongs to an existing Cloud project:
|
|
224
223
|
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
BOOTSTRAP_ADMIN_PASSWORD=...
|
|
224
|
+
```powershell
|
|
225
|
+
indraq project link
|
|
228
226
|
```
|
|
229
227
|
|
|
230
|
-
|
|
228
|
+
Check the current association:
|
|
231
229
|
|
|
232
|
-
|
|
230
|
+
```powershell
|
|
231
|
+
indraq project status
|
|
232
|
+
```
|
|
233
233
|
|
|
234
234
|
---
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
From the repository root:
|
|
236
|
+
## 5. Prepare infrastructure
|
|
239
237
|
|
|
240
238
|
```powershell
|
|
241
|
-
|
|
242
|
-
npm run build
|
|
243
|
-
npm test
|
|
244
|
-
npm link
|
|
239
|
+
indraq prebuild
|
|
245
240
|
```
|
|
246
241
|
|
|
247
|
-
|
|
242
|
+
For web projects, prebuild is the main infrastructure reconciliation command. Depending on the project and selected options, it can prepare/reconcile:
|
|
248
243
|
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
|
|
244
|
+
```text
|
|
245
|
+
GHCR image association
|
|
246
|
+
Route53 DNS
|
|
247
|
+
Route53 routing / health checks
|
|
248
|
+
NPM reverse proxy / SSL
|
|
249
|
+
Jenkins deployment
|
|
250
|
+
project resource associations
|
|
252
251
|
```
|
|
253
252
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
```powershell
|
|
257
|
-
indraq doctor
|
|
258
|
-
```
|
|
253
|
+
Use it when creating a deployment for the first time **and** when infrastructure settings need to be reconciled later.
|
|
259
254
|
|
|
260
255
|
---
|
|
261
256
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
The official IndraQ Cloud API URL is built into the CLI (`https://api.indraq.com`). Users do not configure a backend URL.
|
|
257
|
+
## 6. Deploy
|
|
265
258
|
|
|
266
|
-
|
|
259
|
+
Deploy with a named shared environment:
|
|
267
260
|
|
|
268
261
|
```powershell
|
|
269
|
-
indraq
|
|
262
|
+
indraq deploy build --env staging
|
|
270
263
|
```
|
|
271
264
|
|
|
272
|
-
|
|
265
|
+
Common shortcuts:
|
|
273
266
|
|
|
274
267
|
```powershell
|
|
275
|
-
indraq
|
|
268
|
+
indraq deploy:dev
|
|
269
|
+
indraq deploy:prod
|
|
276
270
|
```
|
|
277
271
|
|
|
278
|
-
|
|
272
|
+
The deployment flow builds the Docker image, pushes it to the configured registry and runs the configured Jenkins deployment.
|
|
279
273
|
|
|
280
|
-
|
|
281
|
-
indraq logout
|
|
282
|
-
```
|
|
274
|
+
---
|
|
283
275
|
|
|
284
|
-
|
|
276
|
+
# Recommended workflow in chronological order
|
|
285
277
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
indraq
|
|
289
|
-
indraq
|
|
290
|
-
|
|
278
|
+
| Step | Command | Why it matters |
|
|
279
|
+
| ---: | --- | --- |
|
|
280
|
+
| 1 | `indraq doctor` | Verify the machine and CLI command resolution before debugging anything else |
|
|
281
|
+
| 2 | `indraq login` | Authenticate to the organization control plane |
|
|
282
|
+
| 3 | `indraq configure` | Store reusable provider credentials once |
|
|
283
|
+
| 4 | `indraq environment list` | See which admin-managed server targets are available |
|
|
284
|
+
| 5 | `indraq init` / `project create` / `project link` | Establish the project correctly before infrastructure work |
|
|
285
|
+
| 6 | `indraq project status` | Confirm which Cloud project and resources the folder is using |
|
|
286
|
+
| 7 | `indraq prebuild` | Reconcile DNS, proxy, image and Jenkins infrastructure |
|
|
287
|
+
| 8 | `indraq deploy build --env <name>` | Build, push and deploy the application |
|
|
288
|
+
| 9 | `indraq logs` | Audit administrative/infrastructure activity when investigating changes |
|
|
289
|
+
|
|
290
|
+
For normal daily work after initial setup, developers usually spend most of their time around `project status`, `prebuild`, deployment commands and Jenkins pipeline commands.
|
|
291
291
|
|
|
292
292
|
---
|
|
293
293
|
|
|
294
|
-
#
|
|
294
|
+
# Command reference
|
|
295
295
|
|
|
296
|
-
|
|
296
|
+
`indraq --help` and `<command> --help` are the authoritative source for flags. The tables below explain **when to use each command and why it exists**.
|
|
297
297
|
|
|
298
|
-
|
|
298
|
+
Most list/select commands support some combination of:
|
|
299
299
|
|
|
300
300
|
```text
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
qa
|
|
305
|
-
client-a
|
|
306
|
-
mumbai-app-01
|
|
301
|
+
--search <text> filter results
|
|
302
|
+
--limit <number> control the number loaded
|
|
303
|
+
--all load all results
|
|
307
304
|
```
|
|
308
305
|
|
|
309
|
-
|
|
306
|
+
## A. Help, diagnostics and authentication
|
|
310
307
|
|
|
311
|
-
|
|
308
|
+
| Command | Usage / importance |
|
|
309
|
+
| --- | --- |
|
|
310
|
+
| `indraq --help` | Show the complete live CLI command tree. Start here when you do not remember a command. |
|
|
311
|
+
| `indraq <command> --help` | Show flags and subcommands for one command. Best source for exact current syntax. |
|
|
312
|
+
| `indraq help [topic]` | Focused help for supported topics such as `configure`, `docker`, `mobile`, `aws` and `doctor`. |
|
|
313
|
+
| `indraq doctor` | Diagnose Node.js and command-resolution problems. Run this before deeper troubleshooting. |
|
|
314
|
+
| `indraq login` | Authenticate to IndraQ Cloud. Supports `--email` and `--password` for scripted use. |
|
|
315
|
+
| `indraq logout` | Remove the current Cloud session from the machine. |
|
|
316
|
+
| `indraq whoami` | Show the authenticated IndraQ identity. Useful before admin or production actions. |
|
|
317
|
+
| `indraq password reset` | Email-OTP password recovery for Cloud, NPM, Jenkins or all password-based accounts. AWS keys are intentionally separate. |
|
|
318
|
+
| `indraq cloud login` | Namespaced alias of `indraq login`. |
|
|
319
|
+
| `indraq cloud logout` | Namespaced alias of `indraq logout`. |
|
|
320
|
+
| `indraq cloud whoami` | Namespaced alias of `indraq whoami`. |
|
|
312
321
|
|
|
313
|
-
|
|
322
|
+
Examples:
|
|
314
323
|
|
|
315
324
|
```powershell
|
|
316
|
-
indraq
|
|
325
|
+
indraq help aws
|
|
326
|
+
indraq whoami
|
|
327
|
+
indraq password reset --email user@example.com --all
|
|
317
328
|
```
|
|
318
329
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
- environment name
|
|
322
|
-
- description
|
|
323
|
-
- server IPv4 address
|
|
324
|
-
- region (optional/useful for latency routing)
|
|
325
|
-
- audit reason
|
|
326
|
-
|
|
327
|
-
## List environments
|
|
330
|
+
---
|
|
328
331
|
|
|
329
|
-
|
|
330
|
-
indraq environment list
|
|
331
|
-
```
|
|
332
|
+
## B. Reusable providers and shared environments
|
|
332
333
|
|
|
333
|
-
|
|
334
|
+
Configure these before expecting project automation to work.
|
|
334
335
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
336
|
+
| Command | Usage / importance |
|
|
337
|
+
| --- | --- |
|
|
338
|
+
| `indraq configure` | Main configuration home. Recommended interactive entry point for providers, current-project prebuild and mobile settings. |
|
|
339
|
+
| `indraq provider configure [provider]` | Configure `aws`, `npm`, `jenkins-dev`, `jenkins-prod` or `ghcr` directly in Cloud. |
|
|
340
|
+
| `indraq provider list` | Show configured providers without exposing secrets. Useful before `prebuild`, user provisioning or Jenkins operations. |
|
|
341
|
+
| `indraq environment create` | **Admin:** create a reusable named server environment. Prevents users from memorizing IPs. |
|
|
342
|
+
| `indraq environment list` | List shared environments and targets. |
|
|
343
|
+
| `indraq environment update [name]` | **Admin:** update an environment target. Projects can keep using the friendly environment name. |
|
|
344
|
+
| `indraq environment delete [name]` | **Admin:** remove an environment. Use `--yes` only when intentionally bypassing confirmation. |
|
|
345
|
+
| `indraq credentials configure [provider]` | Compatibility namespace for provider configuration. Prefer `provider configure`. |
|
|
346
|
+
| `indraq credentials list` | Compatibility namespace for provider listing. Prefer `provider list`. |
|
|
347
|
+
| `indraq credentials sync` | Legacy credential synchronization command retained for compatibility. |
|
|
348
|
+
| `indraq credentials restore` | Legacy credential restore workflow retained for compatibility. |
|
|
349
|
+
| `indraq server create` | Deprecated alias that creates a shared environment. Prefer `environment create`. |
|
|
350
|
+
| `indraq server list` | Deprecated alias that lists shared environments. Prefer `environment list`. |
|
|
338
351
|
|
|
339
|
-
|
|
352
|
+
Example:
|
|
340
353
|
|
|
341
354
|
```powershell
|
|
342
|
-
indraq environment
|
|
355
|
+
indraq environment create
|
|
356
|
+
indraq environment list --all
|
|
357
|
+
indraq provider configure jenkins-prod
|
|
358
|
+
indraq provider list
|
|
343
359
|
```
|
|
344
360
|
|
|
345
|
-
Environments are shared infrastructure shortcuts. Provider credentials are still private per IndraQ user.
|
|
346
|
-
|
|
347
361
|
---
|
|
348
362
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
The easiest entry point is:
|
|
352
|
-
|
|
353
|
-
```powershell
|
|
354
|
-
indraq configure
|
|
355
|
-
```
|
|
363
|
+
## C. Organization users and roles
|
|
356
364
|
|
|
357
|
-
|
|
365
|
+
Unified user commands coordinate identities across IndraQ Cloud and selected configured providers.
|
|
358
366
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
indraq
|
|
362
|
-
indraq
|
|
363
|
-
indraq
|
|
364
|
-
indraq
|
|
365
|
-
```
|
|
367
|
+
| Command | Usage / importance |
|
|
368
|
+
| --- | --- |
|
|
369
|
+
| `indraq user list` | **Manager/admin:** list organization users. Use it before updates/deletion when you do not remember exact usernames. |
|
|
370
|
+
| `indraq user create [username]` | **Manager/admin:** create a Cloud user and selected AWS/NPM/Jenkins identities in one workflow. |
|
|
371
|
+
| `indraq user update [username]` | Update selected providers. **Admin role changes are synchronized across linked managed providers.** |
|
|
372
|
+
| `indraq user delete [username]` | Permanently delete the selected user's managed identities. External providers are handled before the Cloud row. |
|
|
366
373
|
|
|
367
|
-
|
|
374
|
+
Useful examples:
|
|
368
375
|
|
|
369
376
|
```powershell
|
|
370
|
-
indraq
|
|
377
|
+
indraq user create nitin --providers cloud,aws,npm,jenkins --role user
|
|
378
|
+
indraq user update nitin --role manager
|
|
379
|
+
indraq user update nitin --role user
|
|
380
|
+
indraq user delete nitin
|
|
371
381
|
```
|
|
372
382
|
|
|
373
|
-
|
|
383
|
+
### Role synchronization
|
|
374
384
|
|
|
375
|
-
|
|
385
|
+
When an admin changes a role, for example:
|
|
376
386
|
|
|
377
387
|
```powershell
|
|
378
|
-
indraq
|
|
388
|
+
indraq user update nitin --role manager
|
|
379
389
|
```
|
|
380
390
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
- AWS region
|
|
384
|
-
- access key ID
|
|
385
|
-
- secret access key
|
|
386
|
-
- optional session token
|
|
387
|
-
- default hosted zone
|
|
388
|
-
- default managed IAM policies by IndraQ role
|
|
389
|
-
|
|
390
|
-
### AWS policy mapping
|
|
391
|
-
|
|
392
|
-
Admins can define managed policy ARNs for:
|
|
391
|
+
IndraQ reconciles linked providers in this direction:
|
|
393
392
|
|
|
394
393
|
```text
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
394
|
+
AWS role/policies
|
|
395
|
+
NPM role
|
|
396
|
+
Jenkins managed roles (DEV/PROD when linked)
|
|
397
|
+
↓
|
|
398
|
+
IndraQ Cloud role LAST
|
|
398
399
|
```
|
|
399
400
|
|
|
400
|
-
|
|
401
|
+
If an external role update fails, the Cloud role is not committed and already-changed external providers are rolled back on a best-effort basis.
|
|
401
402
|
|
|
402
|
-
|
|
403
|
+
### Permanent deletion
|
|
403
404
|
|
|
404
|
-
|
|
405
|
+
`indraq user delete` is a **real delete**, not a soft-disable command.
|
|
405
406
|
|
|
406
|
-
|
|
407
|
+
The unified flow deletes external identities first. Cloud deletion is intentionally last. If an external provider genuinely fails, the Cloud identity is retained so an administrator can repair the problem and retry.
|
|
407
408
|
|
|
408
|
-
|
|
409
|
-
indraq provider configure npm
|
|
410
|
-
```
|
|
409
|
+
When Cloud deletion runs, shared organization resources owned by the target user are preserved/reassigned rather than blindly destroyed, while user-scoped rows are removed according to their database relationships. The final Cloud user row is deleted.
|
|
411
410
|
|
|
412
|
-
|
|
411
|
+
A missing external account during deletion is considered an already-achieved final state where supported; deletion should be safe to retry.
|
|
413
412
|
|
|
414
|
-
|
|
415
|
-
- NPM administrator email
|
|
416
|
-
- NPM administrator password
|
|
413
|
+
---
|
|
417
414
|
|
|
418
|
-
|
|
415
|
+
## D. Project membership and resource access
|
|
419
416
|
|
|
420
|
-
|
|
417
|
+
Project membership and provider-native resource access are related but not identical.
|
|
421
418
|
|
|
422
|
-
|
|
419
|
+
| Command | Usage / importance |
|
|
420
|
+
| --- | --- |
|
|
421
|
+
| `indraq project add user` | **Manager/admin:** give a user access to a Cloud project. |
|
|
422
|
+
| `indraq project delete user` | **Manager/admin:** remove a user's Cloud project access. |
|
|
423
|
+
| `indraq access add user` | Grant a project user access to selected native AWS/NPM/Jenkins resources with audited synchronization. |
|
|
424
|
+
| `indraq access delete user` | Revoke selected native resource access without deleting the organization user. |
|
|
423
425
|
|
|
424
|
-
|
|
425
|
-
indraq provider configure jenkins-dev
|
|
426
|
-
```
|
|
426
|
+
Use user deletion only when the person should be removed. Use access commands when the person remains in the organization but should gain/lose a project or resource.
|
|
427
427
|
|
|
428
|
-
|
|
428
|
+
---
|
|
429
429
|
|
|
430
|
-
|
|
431
|
-
indraq provider configure jenkins-prod
|
|
432
|
-
```
|
|
430
|
+
## E. Project lifecycle
|
|
433
431
|
|
|
434
|
-
|
|
432
|
+
| Command | Usage / importance |
|
|
433
|
+
| --- | --- |
|
|
434
|
+
| `indraq init [directory]` | Safely create a new application and IndraQ project setup. Use `--skip-install` when you want files generated without dependency installation. |
|
|
435
|
+
| `indraq project create [name]` | Register an **existing current folder** as a new Cloud project without scaffolding or infrastructure changes. |
|
|
436
|
+
| `indraq project list` | List organization projects and your VIEW/WRITE access. |
|
|
437
|
+
| `indraq project link` | Link/re-link the current folder to an existing accessible Cloud project. |
|
|
438
|
+
| `indraq project sync` | Migrate older local IndraQ metadata to the Cloud model and keep the local project reference minimal. |
|
|
439
|
+
| `indraq project status` | Show the current Cloud project and infrastructure associations, optionally for an environment. |
|
|
440
|
+
| `indraq dockerfile create` | Generate Docker support for an existing project without running the full `init` workflow. |
|
|
435
441
|
|
|
436
|
-
|
|
437
|
-
- Jenkins username
|
|
438
|
-
- Jenkins API token/password
|
|
442
|
+
### `indraq init`
|
|
439
443
|
|
|
440
|
-
|
|
444
|
+
Use this for a **new project**, not to overwrite a populated application accidentally.
|
|
441
445
|
|
|
442
|
-
|
|
446
|
+
The wizard can create supported frontend, backend, full-stack and mobile structures, environment files, ignore files and Docker support. Framework/version choices are collected interactively. Dependency installation can be skipped:
|
|
443
447
|
|
|
444
448
|
```powershell
|
|
445
|
-
indraq
|
|
449
|
+
indraq init my-service --skip-install
|
|
446
450
|
```
|
|
447
451
|
|
|
448
|
-
|
|
452
|
+
### `indraq project create`
|
|
449
453
|
|
|
450
|
-
|
|
451
|
-
- GitHub token with the package permissions needed by your workflow
|
|
454
|
+
Use this when code already exists and only Cloud registration is needed:
|
|
452
455
|
|
|
453
|
-
|
|
456
|
+
```powershell
|
|
457
|
+
indraq project create order-service --kind backend --framework express --port 5000 --health /health
|
|
458
|
+
```
|
|
454
459
|
|
|
455
|
-
|
|
456
|
-
- organizations visible to that token
|
|
460
|
+
It does not scaffold the application and does not automatically create DNS/proxy/Jenkins infrastructure.
|
|
457
461
|
|
|
458
|
-
|
|
462
|
+
### `indraq dockerfile create`
|
|
459
463
|
|
|
460
|
-
|
|
464
|
+
Common flags include:
|
|
461
465
|
|
|
462
466
|
```text
|
|
463
|
-
|
|
467
|
+
--framework <framework>
|
|
468
|
+
--node-version <version>
|
|
469
|
+
--output <directory>
|
|
470
|
+
--port <port>
|
|
471
|
+
--health <endpoint>
|
|
472
|
+
--compose
|
|
473
|
+
--force
|
|
464
474
|
```
|
|
465
475
|
|
|
466
|
-
No organization name is hardcoded into IndraQ.
|
|
467
|
-
|
|
468
|
-
If GitHub cannot enumerate the required organization for the supplied token, manual owner entry remains available as a fallback.
|
|
469
|
-
|
|
470
476
|
---
|
|
471
477
|
|
|
472
|
-
|
|
478
|
+
## F. Infrastructure reconciliation and deployment
|
|
473
479
|
|
|
474
|
-
|
|
480
|
+
| Command | Usage / importance |
|
|
481
|
+
| --- | --- |
|
|
482
|
+
| `indraq prebuild` | Main web-infrastructure reconciliation command for GHCR, Route53, NPM and Jenkins. Run before first deployment and after infrastructure changes. |
|
|
483
|
+
| `indraq deployment create` | Deployment-oriented entry point to the prebuild/reconciliation flow. |
|
|
484
|
+
| `indraq deployment run --env <name>` | Run the configured deployment for a shared environment. |
|
|
485
|
+
| `indraq deploy build --env <name>` | Build Docker image, push it and run the Jenkins deployment. Primary explicit deploy command. |
|
|
486
|
+
| `indraq deploy configure` | Open the main configuration home from the deploy namespace. |
|
|
487
|
+
| `indraq deploy:configure` | Legacy/top-level alias for configuration. |
|
|
488
|
+
| `indraq deploy:dev` | Shortcut for deployment using the `dev`/development shared environment. |
|
|
489
|
+
| `indraq deploy:prod` | Shortcut for deployment using the `prod`/production shared environment. |
|
|
475
490
|
|
|
476
|
-
|
|
491
|
+
Useful prebuild flags:
|
|
477
492
|
|
|
478
|
-
```
|
|
479
|
-
|
|
493
|
+
```text
|
|
494
|
+
--env <environment>
|
|
495
|
+
--secondary-env <environment>
|
|
496
|
+
--routing SIMPLE|FAILOVER|WEIGHTED|LATENCY
|
|
497
|
+
--host-port <port>
|
|
498
|
+
--networks <list>
|
|
499
|
+
--volumes <list>
|
|
500
|
+
--flags <flags>
|
|
501
|
+
--yes
|
|
480
502
|
```
|
|
481
503
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
- username
|
|
485
|
-
- providers to create/manage
|
|
486
|
-
- Cloud role (`user`, `manager`, `admin`) when permitted
|
|
487
|
-
- email
|
|
488
|
-
- temporary first-login password generated by IndraQ (shown once to the operator)
|
|
489
|
-
- provider-specific settings where required
|
|
490
|
-
|
|
491
|
-
You can also use flags:
|
|
504
|
+
Example failover preparation:
|
|
492
505
|
|
|
493
506
|
```powershell
|
|
494
|
-
indraq
|
|
507
|
+
indraq prebuild --env production --secondary-env production-backup --routing FAILOVER
|
|
495
508
|
```
|
|
496
509
|
|
|
497
|
-
|
|
510
|
+
The purpose of prebuild is **reconciliation**, not blind creation. It should discover what already exists and create/update what the project requires.
|
|
498
511
|
|
|
499
|
-
|
|
500
|
-
--cloud
|
|
501
|
-
--aws
|
|
502
|
-
--npm
|
|
503
|
-
--jenkins
|
|
504
|
-
```
|
|
512
|
+
---
|
|
505
513
|
|
|
506
|
-
|
|
514
|
+
## G. Jenkins: pipelines, deployments and users
|
|
507
515
|
|
|
508
|
-
|
|
516
|
+
Jenkins commands use the Jenkins credentials stored in the authenticated user's IndraQ Cloud profile.
|
|
509
517
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
518
|
+
| Command | Usage / importance |
|
|
519
|
+
| --- | --- |
|
|
520
|
+
| `indraq jenkins pipelines` | List all buildable jobs/pipelines visible to the Jenkins account, including jobs in folders. No default 10-job cap when `--limit` is omitted. |
|
|
521
|
+
| `indraq jenkins run [job]` | Select/run any visible pipeline. IndraQ discovers its Jenkins parameters and prompts for values. |
|
|
522
|
+
| `indraq jenkins pipeline:run [job]` | Long-form alias of `jenkins run`. |
|
|
523
|
+
| `indraq jenkins create-deployment` | Trigger only the Jenkins `CREATE-DEPLOYMENT` workflow for a component; it does not create Route53/NPM resources. |
|
|
524
|
+
| `indraq jenkins deployments` | List Jenkins deployment jobs. |
|
|
525
|
+
| `indraq jenkins deployment:update [job]` | Reconcile a deployment through `CREATE-DEPLOYMENT`. |
|
|
526
|
+
| `indraq jenkins deployment:delete [job]` | Delete a Jenkins deployment job after confirmation. |
|
|
527
|
+
| `indraq jenkins users` | List Jenkins users visible to the configured admin-capable identity. |
|
|
528
|
+
| `indraq jenkins user:update [username]` | Update a Jenkins user's password/roles directly. Unified organization role changes should normally use `indraq user update`. |
|
|
529
|
+
| `indraq jenkins user:delete [username]` | Delete a Jenkins user directly. Unified organization deletion should normally use `indraq user delete`. |
|
|
513
530
|
|
|
514
|
-
|
|
531
|
+
Choose Jenkins environment explicitly when useful:
|
|
515
532
|
|
|
516
|
-
```
|
|
517
|
-
|
|
533
|
+
```powershell
|
|
534
|
+
indraq jenkins pipelines --stage dev
|
|
535
|
+
indraq jenkins pipelines --stage prod
|
|
518
536
|
```
|
|
519
537
|
|
|
520
|
-
###
|
|
521
|
-
|
|
522
|
-
Before creating accounts in multiple providers, IndraQ preflights Jenkins administration when Jenkins is selected.
|
|
538
|
+
### Run any Jenkins pipeline
|
|
523
539
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
Always review the provider result summary after a failed operation.
|
|
527
|
-
|
|
528
|
-
## Update a user
|
|
540
|
+
Interactive selection:
|
|
529
541
|
|
|
530
542
|
```powershell
|
|
531
|
-
indraq
|
|
543
|
+
indraq jenkins run
|
|
532
544
|
```
|
|
533
545
|
|
|
534
|
-
|
|
546
|
+
Direct job name:
|
|
535
547
|
|
|
536
548
|
```powershell
|
|
537
|
-
indraq
|
|
538
|
-
indraq user update hk --providers cloud,aws
|
|
549
|
+
indraq jenkins run api-admin-service --stage dev
|
|
539
550
|
```
|
|
540
551
|
|
|
541
|
-
|
|
552
|
+
Folder jobs are supported using their full job path when visible.
|
|
553
|
+
|
|
554
|
+
IndraQ inspects the job's parameter definitions. Parameters with a usable Jenkins default are shown as **optional**; parameters without one are treated as **required**. Boolean, choice, password, text and string parameters get appropriate prompts.
|
|
542
555
|
|
|
543
|
-
|
|
556
|
+
By default the CLI waits for completion. To queue and return immediately:
|
|
544
557
|
|
|
545
558
|
```powershell
|
|
546
|
-
indraq
|
|
559
|
+
indraq jenkins run api-admin-service --stage dev --no-wait
|
|
547
560
|
```
|
|
548
561
|
|
|
549
|
-
|
|
562
|
+
### Create only a Jenkins deployment
|
|
563
|
+
|
|
564
|
+
Use this when DNS and proxy already exist or you intentionally want Jenkins only:
|
|
550
565
|
|
|
551
566
|
```powershell
|
|
552
|
-
indraq
|
|
567
|
+
indraq jenkins create-deployment --stage dev --component backend --image-name api-service --host-port 5010
|
|
553
568
|
```
|
|
554
569
|
|
|
570
|
+
Common optional deployment fields include networks, volumes and Docker flags.
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
## H. AWS IAM and managed access keys
|
|
555
575
|
|
|
556
|
-
|
|
576
|
+
IndraQ IAM users are designed for CLI/API access. Console login is intentionally not part of the IAM-user flow.
|
|
557
577
|
|
|
558
|
-
|
|
578
|
+
| Command | Usage / importance |
|
|
579
|
+
| --- | --- |
|
|
580
|
+
| `indraq iam users` | List AWS IAM users. |
|
|
581
|
+
| `indraq iam user:create [username]` | Create an IAM user and normally an access key; optional managed policy ARNs can be attached. |
|
|
582
|
+
| `indraq iam user:update [username]` | Update attached managed policies for an IAM user. |
|
|
583
|
+
| `indraq iam user:delete [username]` | Delete an IAM user and removable dependencies after confirmation. |
|
|
584
|
+
| `indraq iam credentials [username]` | Reveal the authenticated user's own IndraQ-managed AWS access key/secret stored encrypted in Cloud. |
|
|
585
|
+
| `indraq iam access-key rotate [username]` | Rotate an IndraQ-managed IAM access key safely; manager/admin can select managed organization users when authorized. |
|
|
559
586
|
|
|
560
|
-
|
|
587
|
+
Examples:
|
|
561
588
|
|
|
562
589
|
```powershell
|
|
563
|
-
indraq
|
|
564
|
-
indraq
|
|
565
|
-
indraq
|
|
566
|
-
indraq
|
|
567
|
-
indraq password reset --email user@example.com --all
|
|
590
|
+
indraq iam users --all
|
|
591
|
+
indraq iam user:create nitin
|
|
592
|
+
indraq iam credentials nitin
|
|
593
|
+
indraq iam access-key rotate nitin --reason "Quarterly credential rotation"
|
|
568
594
|
```
|
|
569
595
|
|
|
570
|
-
|
|
596
|
+
AWS does not reveal an old secret access key again after creation. For AWS identities created through the managed IndraQ workflow, the generated secret can be stored encrypted in IndraQ Cloud so the owner can retrieve it later through the authorized CLI command.
|
|
571
597
|
|
|
572
|
-
|
|
598
|
+
During rotation, IndraQ creates/stores the replacement managed key before removing the previous managed key so the recovery record does not point to a key that was never successfully created.
|
|
573
599
|
|
|
574
600
|
---
|
|
575
601
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
AWS does not provide the original secret access key again after access-key creation.
|
|
602
|
+
## I. Route53 DNS and health checks
|
|
579
603
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
604
|
+
| Command | Usage / importance |
|
|
605
|
+
| --- | --- |
|
|
606
|
+
| `indraq dns zones` | List Route53 hosted zones available to the configured AWS identity. |
|
|
607
|
+
| `indraq dns records` | List records in a hosted zone. Use `--zone` when scripting. |
|
|
608
|
+
| `indraq dns create [record]` | Create a Route53 record interactively or with flags. |
|
|
609
|
+
| `indraq dns update [record]` | UPSERT/reconcile a Route53 record. |
|
|
610
|
+
| `indraq dns delete [record]` | Select/delete Route53 record set(s). |
|
|
611
|
+
| `indraq healthcheck list` | List/select Route53 health checks. |
|
|
612
|
+
| `indraq healthcheck create` | **Admin:** create a Route53 health check. |
|
|
613
|
+
| `indraq healthcheck delete [id]` | **Admin:** delete a Route53 health check. |
|
|
585
614
|
|
|
586
|
-
|
|
615
|
+
Supported record types exposed by the command include:
|
|
587
616
|
|
|
588
|
-
```
|
|
589
|
-
|
|
617
|
+
```text
|
|
618
|
+
A
|
|
619
|
+
CNAME
|
|
620
|
+
TXT
|
|
621
|
+
MX
|
|
590
622
|
```
|
|
591
623
|
|
|
592
|
-
|
|
624
|
+
Supported routing choices include:
|
|
593
625
|
|
|
594
|
-
```
|
|
595
|
-
|
|
626
|
+
```text
|
|
627
|
+
SIMPLE
|
|
628
|
+
FAILOVER
|
|
629
|
+
WEIGHTED
|
|
630
|
+
LATENCY
|
|
596
631
|
```
|
|
597
632
|
|
|
598
|
-
|
|
633
|
+
Example:
|
|
599
634
|
|
|
600
635
|
```powershell
|
|
601
|
-
indraq
|
|
636
|
+
indraq dns create api.example.com --type A --environment production --routing SIMPLE
|
|
602
637
|
```
|
|
603
638
|
|
|
604
|
-
|
|
639
|
+
Failover example:
|
|
605
640
|
|
|
606
641
|
```powershell
|
|
607
|
-
indraq
|
|
642
|
+
indraq dns create api.example.com `
|
|
643
|
+
--type A `
|
|
644
|
+
--environment production `
|
|
645
|
+
--secondary-environment production-backup `
|
|
646
|
+
--routing FAILOVER
|
|
608
647
|
```
|
|
609
648
|
|
|
610
|
-
|
|
649
|
+
Health checks are especially important for failover designs because Route53 needs a reliable signal to decide whether a primary target is healthy.
|
|
611
650
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
- the target Cloud user can retrieve their own stored AWS secret
|
|
615
|
-
- normal users cannot resolve another user's provider credentials
|
|
616
|
-
- retrieval is audited
|
|
617
|
-
- provider-resolution responses use `Cache-Control: no-store`
|
|
618
|
-
- AWS console login profiles are intentionally not created by these IAM CLI-user flows
|
|
651
|
+
---
|
|
619
652
|
|
|
620
|
-
|
|
653
|
+
## J. Nginx Proxy Manager: proxy hosts and users
|
|
621
654
|
|
|
622
|
-
|
|
655
|
+
### Proxy hosts
|
|
623
656
|
|
|
624
|
-
|
|
657
|
+
| Command | Usage / importance |
|
|
658
|
+
| --- | --- |
|
|
659
|
+
| `indraq proxy list` | List NPM proxy hosts. |
|
|
660
|
+
| `indraq proxy create [domain]` | Create a reverse proxy, with optional certificate/SSL/WebSocket settings. |
|
|
661
|
+
| `indraq proxy update [domain]` | Update an existing proxy host. |
|
|
662
|
+
| `indraq proxy delete [domain]` | Delete a proxy host after confirmation. |
|
|
625
663
|
|
|
626
|
-
|
|
664
|
+
Common proxy options include:
|
|
627
665
|
|
|
628
|
-
```
|
|
629
|
-
|
|
666
|
+
```text
|
|
667
|
+
--forward-host <host>
|
|
668
|
+
--environment <name>
|
|
669
|
+
--forward-port <port>
|
|
670
|
+
--scheme http|https
|
|
671
|
+
--certificate-id <id>
|
|
672
|
+
--request-ssl
|
|
673
|
+
--email <email>
|
|
674
|
+
--force-ssl
|
|
675
|
+
--http2
|
|
676
|
+
--websocket / --no-websocket
|
|
630
677
|
```
|
|
631
678
|
|
|
632
|
-
|
|
679
|
+
Example:
|
|
633
680
|
|
|
634
681
|
```powershell
|
|
635
|
-
indraq
|
|
682
|
+
indraq proxy create api.example.com --environment production --forward-port 5000 --request-ssl --force-ssl --http2
|
|
636
683
|
```
|
|
637
684
|
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
`init` verifies that the user is connected and authenticated to IndraQ Cloud. If required, it guides the user through Cloud configuration/login.
|
|
641
|
-
|
|
642
|
-
## New project
|
|
643
|
-
|
|
644
|
-
The wizard supports:
|
|
645
|
-
|
|
646
|
-
- Frontend
|
|
647
|
-
- Backend
|
|
648
|
-
- Frontend + Backend
|
|
649
|
-
- Mobile App
|
|
685
|
+
### NPM users
|
|
650
686
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
687
|
+
| Command | Usage / importance |
|
|
688
|
+
| --- | --- |
|
|
689
|
+
| `indraq npm-user list` | List Nginx Proxy Manager users. |
|
|
690
|
+
| `indraq npm-user create` | Create an NPM user directly. |
|
|
691
|
+
| `indraq npm-user update [identity]` | Update name, nickname, email, password, role or disabled state. |
|
|
692
|
+
| `indraq npm-user delete [identity]` | Delete an NPM user directly. |
|
|
654
693
|
|
|
655
|
-
|
|
694
|
+
For organization-wide lifecycle changes, prefer `indraq user create/update/delete` so Cloud, AWS, NPM and Jenkins stay synchronized.
|
|
656
695
|
|
|
657
|
-
|
|
696
|
+
---
|
|
658
697
|
|
|
659
|
-
|
|
698
|
+
## K. Mobile builds
|
|
660
699
|
|
|
661
|
-
|
|
700
|
+
Mobile build shortcuts are grouped under `indraq build`.
|
|
662
701
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
702
|
+
| Command | Usage / importance |
|
|
703
|
+
| --- | --- |
|
|
704
|
+
| `indraq build mobile:dev` | Build the mobile development environment. |
|
|
705
|
+
| `indraq build mobile:development` | Alias of `mobile:dev`. |
|
|
706
|
+
| `indraq build mobile:staging` | Build the mobile staging environment. |
|
|
707
|
+
| `indraq build mobile:prod` | Build the mobile production environment. |
|
|
708
|
+
| `indraq build mobile:production` | Alias of `mobile:prod`. |
|
|
669
709
|
|
|
670
|
-
|
|
710
|
+
Useful per-build overrides:
|
|
671
711
|
|
|
672
|
-
```
|
|
673
|
-
|
|
712
|
+
```text
|
|
713
|
+
--output dev-client|debug-apk|apk|aab
|
|
714
|
+
--profile fast|clean|full-reset
|
|
715
|
+
--verbose
|
|
716
|
+
--dry-run
|
|
717
|
+
--yes
|
|
674
718
|
```
|
|
675
719
|
|
|
676
|
-
|
|
720
|
+
Before a real upload/build, validate the plan when useful:
|
|
677
721
|
|
|
678
722
|
```powershell
|
|
679
|
-
indraq
|
|
723
|
+
indraq build mobile:staging --dry-run
|
|
680
724
|
```
|
|
681
725
|
|
|
682
|
-
|
|
726
|
+
Use `indraq configure` → **Mobile App settings** for the persistent mobile configuration.
|
|
683
727
|
|
|
684
|
-
|
|
728
|
+
---
|
|
685
729
|
|
|
686
|
-
|
|
730
|
+
## L. Audit logs
|
|
687
731
|
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
732
|
+
| Command | Usage / importance |
|
|
733
|
+
| --- | --- |
|
|
734
|
+
| `indraq logs` | **Manager/admin:** view IndraQ audit activity. Supports search/limit/all filtering. |
|
|
691
735
|
|
|
692
|
-
|
|
736
|
+
Example:
|
|
693
737
|
|
|
694
|
-
```
|
|
695
|
-
|
|
738
|
+
```powershell
|
|
739
|
+
indraq logs --search user.role --all
|
|
696
740
|
```
|
|
697
741
|
|
|
698
|
-
|
|
742
|
+
Audit logs are important when diagnosing who changed user roles, project access or infrastructure and why.
|
|
699
743
|
|
|
700
|
-
|
|
744
|
+
---
|
|
701
745
|
|
|
702
|
-
|
|
703
|
-
indraq prebuild
|
|
704
|
-
```
|
|
746
|
+
# Common real-world flows
|
|
705
747
|
|
|
706
|
-
|
|
748
|
+
| Goal | Recommended commands |
|
|
749
|
+
| --- | --- |
|
|
750
|
+
| Add a developer | `user create` → `project add user` → `access add user` |
|
|
751
|
+
| Promote/demote a person | `user update <name> --role manager|user` |
|
|
752
|
+
| Remove a person permanently | `user delete <name>` |
|
|
753
|
+
| Register an existing app | `project create` → `configure` → `prebuild` |
|
|
754
|
+
| Connect a checked-out repo | `project link` → `project status` |
|
|
755
|
+
| First web deployment | `prebuild --env <name>` → `deploy build --env <name>` |
|
|
756
|
+
| Later web deployment | `deploy build --env <name>` |
|
|
757
|
+
| Run an arbitrary Jenkins job | `jenkins pipelines` → `jenkins run` |
|
|
758
|
+
| Remove only project/resource access | `project delete user` / `access delete user` |
|
|
759
|
+
|
|
760
|
+
Use unified user commands for organization lifecycle changes. Direct AWS/NPM/Jenkins user commands are useful for provider-specific administration, but changing only one provider can intentionally create a state that differs from the IndraQ organization identity.
|
|
707
761
|
|
|
708
|
-
|
|
762
|
+
---
|
|
709
763
|
|
|
710
|
-
|
|
764
|
+
# Security model
|
|
711
765
|
|
|
712
|
-
|
|
713
|
-
- Jenkins
|
|
714
|
-
- Route53
|
|
715
|
-
- NPM
|
|
766
|
+
IndraQ automates privileged systems, so convenience must not come at the cost of uncontrolled credentials.
|
|
716
767
|
|
|
717
|
-
|
|
768
|
+
| Area | Design |
|
|
769
|
+
| --- | --- |
|
|
770
|
+
| Cloud login | Authenticated session stored for the CLI rather than re-entering passwords for every command |
|
|
771
|
+
| Provider credentials | Stored per IndraQ user in Cloud rather than in each project repository |
|
|
772
|
+
| Encryption | Sensitive reusable provider secrets use the Cloud `MASTER_KEY` for encrypted-at-rest storage |
|
|
773
|
+
| AWS managed keys | Secret access keys created through the managed workflow can be retained encrypted for authorized recovery/rotation |
|
|
774
|
+
| Project access | VIEW/WRITE and resource grants control who can change project infrastructure |
|
|
775
|
+
| Role updates | External linked providers are reconciled before the Cloud role is finalized |
|
|
776
|
+
| User deletion | External cleanup happens before permanent Cloud identity deletion |
|
|
777
|
+
| Auditing | Sensitive manager/admin actions require/record reasons where the API enforces them |
|
|
718
778
|
|
|
719
|
-
|
|
779
|
+
Never commit `.env` files containing real secrets, AWS credentials, Jenkins tokens, NPM passwords or GHCR tokens to Git.
|
|
720
780
|
|
|
721
|
-
|
|
781
|
+
Keep the Cloud `MASTER_KEY` stable. Changing or losing it after encrypted credentials are stored makes those existing encrypted values unreadable.
|
|
722
782
|
|
|
723
|
-
|
|
783
|
+
---
|
|
724
784
|
|
|
725
|
-
|
|
726
|
-
OVERWRITE
|
|
727
|
-
```
|
|
785
|
+
# Troubleshooting
|
|
728
786
|
|
|
729
|
-
|
|
787
|
+
| Symptom | First checks |
|
|
788
|
+
| --- | --- |
|
|
789
|
+
| `indraq` is not found | Run `npm run build`, `npm link` (development), open a new terminal, then `indraq doctor` |
|
|
790
|
+
| Provider credentials are missing | `indraq provider list`, then `indraq provider configure <provider>` |
|
|
791
|
+
| Jenkins crumb/authorization error | Confirm the correct `--stage` and that the stored Jenkins account has enough permission for that operation |
|
|
792
|
+
| Jenkins host port is busy | Choose another validated/suggested free host port before deployment creation |
|
|
793
|
+
| `prebuild` cannot reconcile resources | Check `whoami` → `project status` → `provider list` → `environment list`, then rerun |
|
|
794
|
+
| Unified deletion stops on a provider | Repair the genuine provider failure and retry; Cloud deletion is retained until external cleanup can complete |
|
|
795
|
+
|
|
796
|
+
For command syntax, use `indraq <command> --help` rather than guessing flags.
|
|
730
797
|
|
|
731
798
|
---
|
|
732
799
|
|
|
733
|
-
#
|
|
800
|
+
# Platform operator: IndraQ Cloud API
|
|
734
801
|
|
|
735
|
-
|
|
802
|
+
Most CLI users can skip this section. The team operating `api.indraq.com` should use `cloud-api/README.md` as the detailed server guide.
|
|
736
803
|
|
|
737
|
-
|
|
804
|
+
The Cloud API requires Node.js 22+, PostgreSQL, a strong `JWT_SECRET`, a persistent 64-hex-character `MASTER_KEY`, bootstrap-admin credentials for first startup, and SMTP when email password reset is enabled.
|
|
738
805
|
|
|
739
806
|
```powershell
|
|
740
|
-
|
|
807
|
+
cd cloud-api
|
|
808
|
+
npm install
|
|
809
|
+
Copy-Item .env.example .env
|
|
810
|
+
npm run build
|
|
811
|
+
npm start
|
|
741
812
|
```
|
|
742
813
|
|
|
743
|
-
|
|
814
|
+
Numbered SQL migrations in `cloud-api/sql/` run automatically at API startup. Do not casually replace `MASTER_KEY`; existing encrypted provider secrets depend on it.
|
|
744
815
|
|
|
745
|
-
|
|
746
|
-
- detects sensible defaults from `package.json` when possible
|
|
747
|
-
- asks for project type/framework/port metadata where needed
|
|
748
|
-
- creates the Cloud project
|
|
749
|
-
- creates only `.indraq/project.json` locally
|
|
816
|
+
More implementation detail:
|
|
750
817
|
|
|
751
|
-
|
|
818
|
+
```text
|
|
819
|
+
cloud-api/README.md
|
|
820
|
+
docs/ARCHITECTURE.md
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
---
|
|
752
824
|
|
|
753
|
-
|
|
825
|
+
# Before publishing a CLI release
|
|
826
|
+
|
|
827
|
+
Run the complete verification sequence:
|
|
754
828
|
|
|
755
829
|
```powershell
|
|
756
|
-
|
|
757
|
-
|
|
830
|
+
npm install
|
|
831
|
+
npm run build
|
|
832
|
+
npm test
|
|
833
|
+
npm pack --dry-run
|
|
758
834
|
```
|
|
759
835
|
|
|
760
|
-
|
|
836
|
+
Inspect `npm pack --dry-run` before publishing. The package should contain the files required at runtime and must not contain private `.env` files, tokens, credentials or unrelated development artifacts.
|
|
837
|
+
|
|
838
|
+
Test the actual tarball when making a significant release:
|
|
761
839
|
|
|
762
840
|
```powershell
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
indraq
|
|
766
|
-
indraq
|
|
767
|
-
indraq
|
|
768
|
-
|
|
769
|
-
indraq dns create
|
|
770
|
-
indraq proxy create
|
|
841
|
+
npm pack
|
|
842
|
+
npm install -g .\indraq_cli-<version>.tgz
|
|
843
|
+
indraq --version
|
|
844
|
+
indraq doctor
|
|
845
|
+
indraq --help
|
|
771
846
|
```
|
|
772
847
|
|
|
773
|
-
|
|
848
|
+
Then publish only after the packaged build behaves correctly:
|
|
774
849
|
|
|
775
850
|
```powershell
|
|
776
|
-
|
|
851
|
+
npm publish --dry-run
|
|
852
|
+
npm publish
|
|
777
853
|
```
|
|
778
854
|
|
|
779
|
-
|
|
855
|
+
---
|
|
780
856
|
|
|
781
|
-
|
|
857
|
+
# Where to go next
|
|
782
858
|
|
|
783
|
-
For
|
|
859
|
+
For day-to-day usage, these four commands cover most questions:
|
|
784
860
|
|
|
785
861
|
```powershell
|
|
786
|
-
indraq
|
|
787
|
-
```
|
|
788
|
-
|
|
789
|
-
Check infrastructure associations:
|
|
790
|
-
|
|
791
|
-
```powershell
|
|
792
|
-
indraq project status
|
|
793
|
-
```
|
|
794
|
-
|
|
795
|
-
The local project file becomes Cloud-oriented and primarily stores the project ID.
|
|
796
|
-
|
|
797
|
-
Example:
|
|
798
|
-
|
|
799
|
-
```json
|
|
800
|
-
{
|
|
801
|
-
"schemaVersion": 3,
|
|
802
|
-
"projectId": "..."
|
|
803
|
-
}
|
|
804
|
-
```
|
|
805
|
-
|
|
806
|
-
Provider passwords/tokens are not supposed to live in that file.
|
|
807
|
-
|
|
808
|
-
## Re-link a folder when `.indraq/project.json` is missing
|
|
809
|
-
|
|
810
|
-
If the local project reference is deleted accidentally, do **not** recreate the project. Run:
|
|
811
|
-
|
|
812
|
-
```powershell
|
|
813
|
-
indraq project link
|
|
814
|
-
```
|
|
815
|
-
|
|
816
|
-
IndraQ lists the Cloud projects the logged-in user is allowed to access. Selecting one recreates only `.indraq/project.json`; application files are not modified.
|
|
817
|
-
|
|
818
|
-
Every authenticated organization user can discover and view the project catalog. `indraq project list` shows whether the current account has `VIEW` or `WRITE` access. Managers/admins can manage project membership with audited reasons:
|
|
819
|
-
|
|
820
|
-
```powershell
|
|
821
|
-
indraq project add user
|
|
822
|
-
indraq project delete user
|
|
823
|
-
```
|
|
824
|
-
|
|
825
|
-
VIEW access allows discovery/linking/inspection. WRITE access is required for infrastructure-changing commands such as prebuild. Cloud project update/delete remains manager/admin controlled and audited.
|
|
826
|
-
|
|
827
|
-
## Project resource access
|
|
828
|
-
|
|
829
|
-
Project membership and provider-resource access are separate. Managers/admins can grant or revoke access to AWS, NPM, Jenkins, or all supported project resources:
|
|
830
|
-
|
|
831
|
-
```powershell
|
|
832
|
-
indraq access add user
|
|
833
|
-
indraq access delete user
|
|
834
|
-
```
|
|
835
|
-
|
|
836
|
-
For AWS, IndraQ generates record-name/record-type/action conditions for granted Route53 records and exact health-check ARN permissions. AWS cannot safely hide individual records if `ListResourceRecordSets` is granted, so normal-user workflows rely on the IndraQ project inventory rather than broad hosted-zone listing.
|
|
837
|
-
|
|
838
|
-
For Jenkins, IndraQ synchronizes Role Strategy item roles for the selected deployment jobs.
|
|
839
|
-
|
|
840
|
-
For NPM, normal users retain NPM's creator-owned `visibility=user` model. IndraQ records project/resource grants but does not switch accounts to `visibility=all`, because that would expose proxy hosts created by other users.
|
|
841
|
-
|
|
842
|
-
---
|
|
843
|
-
|
|
844
|
-
# 13. Prebuild: reconcile the complete web deployment
|
|
845
|
-
|
|
846
|
-
For a Cloud-linked web project, run:
|
|
847
|
-
|
|
848
|
-
```powershell
|
|
849
|
-
indraq prebuild
|
|
850
|
-
```
|
|
851
|
-
|
|
852
|
-
Prebuild is an infrastructure reconciler. It checks what already exists, creates missing resources, and repairs supported stale associations instead of assuming every run starts from zero.
|
|
853
|
-
|
|
854
|
-
Typical order:
|
|
855
|
-
|
|
856
|
-
```text
|
|
857
|
-
User provider credentials
|
|
858
|
-
|
|
|
859
|
-
v
|
|
860
|
-
GHCR project image
|
|
861
|
-
|
|
|
862
|
-
v
|
|
863
|
-
Jenkins host-port validation
|
|
864
|
-
|
|
|
865
|
-
v
|
|
866
|
-
Jenkins deployment job
|
|
867
|
-
|
|
|
868
|
-
v
|
|
869
|
-
Route53 record + selected existing health checks
|
|
870
|
-
|
|
|
871
|
-
v
|
|
872
|
-
Verify Route53 prerequisite
|
|
873
|
-
|
|
|
874
|
-
v
|
|
875
|
-
NPM proxy + SSL
|
|
876
|
-
```
|
|
877
|
-
|
|
878
|
-
## Missing provider configuration
|
|
879
|
-
|
|
880
|
-
If required reusable credentials are missing, IndraQ warns and offers to configure them instead of immediately failing with an unexplained configuration error.
|
|
881
|
-
|
|
882
|
-
## Shared environment or custom target
|
|
883
|
-
|
|
884
|
-
For infrastructure targets, users can select an admin-created shared environment.
|
|
885
|
-
|
|
886
|
-
Where supported, a custom IP/hostname option remains available for exceptional cases.
|
|
887
|
-
|
|
888
|
-
---
|
|
889
|
-
|
|
890
|
-
# 14. Route53 DNS
|
|
891
|
-
|
|
892
|
-
Standalone DNS wizard:
|
|
893
|
-
|
|
894
|
-
```powershell
|
|
895
|
-
indraq dns create
|
|
896
|
-
```
|
|
897
|
-
|
|
898
|
-
Other useful commands:
|
|
899
|
-
|
|
900
|
-
```powershell
|
|
901
|
-
indraq dns zones
|
|
902
|
-
indraq dns records
|
|
903
|
-
indraq dns update
|
|
904
|
-
indraq dns delete
|
|
905
|
-
```
|
|
906
|
-
|
|
907
|
-
Supported routing choices for managed A-record flows:
|
|
908
|
-
|
|
909
|
-
```text
|
|
910
|
-
SIMPLE
|
|
911
|
-
FAILOVER
|
|
912
|
-
WEIGHTED
|
|
913
|
-
LATENCY
|
|
914
|
-
```
|
|
915
|
-
|
|
916
|
-
## FAILOVER
|
|
917
|
-
|
|
918
|
-
For FAILOVER, the user chooses any two environments:
|
|
919
|
-
|
|
920
|
-
```text
|
|
921
|
-
PRIMARY target -> production
|
|
922
|
-
SECONDARY target -> production-backup
|
|
923
|
-
```
|
|
924
|
-
|
|
925
|
-
The environments themselves are not permanently primary/secondary.
|
|
926
|
-
|
|
927
|
-
The same environment can play a different role for another DNS record.
|
|
928
|
-
|
|
929
|
-
## Route53 health checks
|
|
930
|
-
|
|
931
|
-
DNS creation does **not** create health checks automatically. Users and managers select from health checks that already exist in Route53. Only an IndraQ admin can create or delete health checks:
|
|
932
|
-
|
|
933
|
-
```powershell
|
|
934
|
-
indraq healthcheck list
|
|
935
|
-
indraq healthcheck create
|
|
936
|
-
indraq healthcheck delete
|
|
937
|
-
```
|
|
938
|
-
|
|
939
|
-
`healthcheck list` is available for selection/search. `healthcheck create` asks for the real AWS endpoint settings (IP/FQDN, protocol, port, path where applicable, request interval, failure threshold, and latency measurement).
|
|
940
|
-
|
|
941
|
-
Routing behavior is enforced:
|
|
942
|
-
|
|
943
|
-
- `SIMPLE`: no health check is attached.
|
|
944
|
-
- `FAILOVER`: select existing PRIMARY and SECONDARY health checks.
|
|
945
|
-
- `WEIGHTED` / `LATENCY`: attaching an existing health check is optional.
|
|
946
|
-
|
|
947
|
-
## WEIGHTED
|
|
948
|
-
|
|
949
|
-
IndraQ asks for primary/secondary weights.
|
|
950
|
-
|
|
951
|
-
## LATENCY
|
|
952
|
-
|
|
953
|
-
IndraQ asks for the AWS regions associated with the selected targets when required.
|
|
954
|
-
|
|
955
|
-
## SIMPLE
|
|
956
|
-
|
|
957
|
-
Only one target is required.
|
|
958
|
-
|
|
959
|
-
---
|
|
960
|
-
|
|
961
|
-
# 15. Nginx Proxy Manager proxy and SSL
|
|
962
|
-
|
|
963
|
-
Standalone proxy creation:
|
|
964
|
-
|
|
965
|
-
```powershell
|
|
966
|
-
indraq proxy create api.example.com
|
|
967
|
-
```
|
|
968
|
-
|
|
969
|
-
Update/delete:
|
|
970
|
-
|
|
971
|
-
```powershell
|
|
972
|
-
indraq proxy update api.example.com
|
|
973
|
-
indraq proxy delete api.example.com
|
|
974
|
-
```
|
|
975
|
-
|
|
976
|
-
## Route53 prerequisite
|
|
977
|
-
|
|
978
|
-
IndraQ verifies that the exact Route53 record exists before creating a new NPM proxy host.
|
|
979
|
-
|
|
980
|
-
If the DNS record is missing, proxy creation stops before NPM creation. This avoids creating a proxy/certificate flow for a domain that has not been routed yet.
|
|
981
|
-
|
|
982
|
-
## Forward target
|
|
983
|
-
|
|
984
|
-
The user can select a shared environment, for example:
|
|
985
|
-
|
|
986
|
-
```text
|
|
987
|
-
production — 10.0.0.10
|
|
988
|
-
staging — 10.0.1.10
|
|
989
|
-
```
|
|
990
|
-
|
|
991
|
-
or choose a custom IP/hostname.
|
|
992
|
-
|
|
993
|
-
## SSL choices
|
|
994
|
-
|
|
995
|
-
NPM creation includes explicit SSL selection:
|
|
996
|
-
|
|
997
|
-
```text
|
|
998
|
-
Request Let's Encrypt certificate
|
|
999
|
-
Use an existing NPM certificate
|
|
1000
|
-
No SSL
|
|
1001
|
-
```
|
|
1002
|
-
|
|
1003
|
-
For Let's Encrypt, IndraQ asks for the required email and certificate options.
|
|
1004
|
-
|
|
1005
|
-
For an existing certificate, IndraQ lists available NPM certificates when possible so users do not have to remember a certificate ID.
|
|
1006
|
-
|
|
1007
|
-
---
|
|
1008
|
-
|
|
1009
|
-
# 16. Jenkins deployment and port validation
|
|
1010
|
-
|
|
1011
|
-
IndraQ checks the requested host port before final deployment creation.
|
|
1012
|
-
|
|
1013
|
-
If the port is busy, the CLI reports it immediately and suggests available alternatives instead of waiting for a pipeline failure.
|
|
1014
|
-
|
|
1015
|
-
Conceptually:
|
|
1016
|
-
|
|
1017
|
-
```text
|
|
1018
|
-
Requested port: 6200
|
|
1019
|
-
|
|
|
1020
|
-
+-- free -> continue
|
|
1021
|
-
|
|
|
1022
|
-
+-- busy -> show suggested free ports -> ask again
|
|
1023
|
-
```
|
|
1024
|
-
|
|
1025
|
-
Jenkins remains the final authority and should still validate the port during the pipeline/deployment itself.
|
|
1026
|
-
|
|
1027
|
-
## Create only the Jenkins deployment
|
|
1028
|
-
|
|
1029
|
-
If DNS/NPM setup is not wanted yet, trigger only the Jenkins seed job:
|
|
1030
|
-
|
|
1031
|
-
```powershell
|
|
1032
|
-
indraq jenkins create-deployment
|
|
1033
|
-
```
|
|
1034
|
-
|
|
1035
|
-
This performs the aggressive host-port check, uses the selected user's GHCR owner/image, invokes `CREATE-DEPLOYMENT`, records the Jenkins project resource, and does **not** modify Route53 or NPM.
|
|
1036
|
-
|
|
1037
|
-
Create/reconcile deployment infrastructure:
|
|
1038
|
-
|
|
1039
|
-
```powershell
|
|
1040
|
-
indraq deployment create
|
|
1041
|
-
```
|
|
1042
|
-
|
|
1043
|
-
This is backed by the same prebuild reconciliation flow.
|
|
1044
|
-
|
|
1045
|
-
Run an existing configured deployment:
|
|
1046
|
-
|
|
1047
|
-
```powershell
|
|
1048
|
-
indraq deployment run --env production
|
|
1049
|
-
```
|
|
1050
|
-
|
|
1051
|
-
Build/push/deploy:
|
|
1052
|
-
|
|
1053
|
-
```powershell
|
|
1054
|
-
indraq deploy build --env production
|
|
1055
|
-
```
|
|
1056
|
-
|
|
1057
|
-
The shared environment name is not restricted to `dev` or `prod`.
|
|
1058
|
-
|
|
1059
|
-
---
|
|
1060
|
-
|
|
1061
|
-
# 17. GHCR image naming
|
|
1062
|
-
|
|
1063
|
-
The image path is built from the authenticated user's selected registry owner.
|
|
1064
|
-
|
|
1065
|
-
Example provider configuration:
|
|
1066
|
-
|
|
1067
|
-
```text
|
|
1068
|
-
Registry: ghcr.io
|
|
1069
|
-
Owner: acme-platform
|
|
1070
|
-
```
|
|
1071
|
-
|
|
1072
|
-
Project:
|
|
1073
|
-
|
|
1074
|
-
```text
|
|
1075
|
-
order-service
|
|
1076
|
-
```
|
|
1077
|
-
|
|
1078
|
-
Generated repository:
|
|
1079
|
-
|
|
1080
|
-
```text
|
|
1081
|
-
ghcr.io/acme-platform/order-service
|
|
1082
|
-
```
|
|
1083
|
-
|
|
1084
|
-
For full-stack projects, components can use separate image names, for example:
|
|
1085
|
-
|
|
1086
|
-
```text
|
|
1087
|
-
ghcr.io/acme-platform/order-service-frontend
|
|
1088
|
-
ghcr.io/acme-platform/order-service-backend
|
|
1089
|
-
```
|
|
1090
|
-
|
|
1091
|
-
---
|
|
1092
|
-
|
|
1093
|
-
# 18. NPM user management
|
|
1094
|
-
|
|
1095
|
-
Create:
|
|
1096
|
-
|
|
1097
|
-
```powershell
|
|
1098
|
-
indraq npm-user create
|
|
1099
|
-
```
|
|
1100
|
-
|
|
1101
|
-
Update:
|
|
1102
|
-
|
|
1103
|
-
```powershell
|
|
1104
|
-
indraq npm-user update user@example.com
|
|
1105
|
-
```
|
|
1106
|
-
|
|
1107
|
-
Delete:
|
|
1108
|
-
|
|
1109
|
-
```powershell
|
|
1110
|
-
indraq npm-user delete user@example.com
|
|
1111
|
-
```
|
|
1112
|
-
|
|
1113
|
-
These commands use the current logged-in user's reusable NPM provider credential.
|
|
1114
|
-
|
|
1115
|
-
---
|
|
1116
|
-
|
|
1117
|
-
# 19. Dockerfile generation
|
|
1118
|
-
|
|
1119
|
-
For an existing project:
|
|
1120
|
-
|
|
1121
|
-
```powershell
|
|
1122
|
-
indraq dockerfile create
|
|
1123
|
-
```
|
|
1124
|
-
|
|
1125
|
-
IndraQ does not try to guess which source/configuration files your application needs. Generated Dockerfiles copy the complete Docker build context with `COPY . .`; `.dockerignore` is the source of truth for files that must stay out of the image.
|
|
1126
|
-
|
|
1127
|
-
Generated Alpine runtime images install `curl`, and Docker health checks use `curl -fsS`. This keeps container health validation available for Node and Nginx images without relying on whichever BusyBox utilities happen to be present.
|
|
1128
|
-
|
|
1129
|
-
The generated `.dockerignore` excludes local dependencies, Git/IndraQ metadata, logs, coverage, caches, and previous build output. IndraQ intentionally does **not** ignore `.env` or `.env.*` files, so environment files present in the project directory are included in the Docker build context and baked into the resulting image according to the company's deployment policy.
|
|
1130
|
-
|
|
1131
|
-
For Node backends and Next.js applications, the runtime stage copies the complete filtered build tree from the build stage, including generated output and production dependencies. For Vite/React static frontends, the build stage receives the complete filtered project context and Nginx serves only the compiled output directory.
|
|
1132
|
-
|
|
1133
|
-
Dependency installation also works whether the project has a `package-lock.json` or not: IndraQ uses `npm ci` when a lockfile exists and falls back to `npm install` otherwise.
|
|
1134
|
-
|
|
1135
|
-
Optional flags include framework, Node version, port, health endpoint, Compose generation, output directory, and force overwrite.
|
|
1136
|
-
|
|
1137
|
-
Use command help for the current options:
|
|
1138
|
-
|
|
1139
|
-
```powershell
|
|
1140
|
-
indraq dockerfile create --help
|
|
1141
|
-
```
|
|
1142
|
-
|
|
1143
|
-
---
|
|
1144
|
-
|
|
1145
|
-
# 20. Mobile projects
|
|
1146
|
-
|
|
1147
|
-
IndraQ also includes mobile project configuration/build commands.
|
|
1148
|
-
|
|
1149
|
-
See:
|
|
1150
|
-
|
|
1151
|
-
```powershell
|
|
1152
|
-
indraq help mobile
|
|
1153
|
-
```
|
|
1154
|
-
|
|
1155
|
-
or:
|
|
1156
|
-
|
|
1157
|
-
```powershell
|
|
1158
|
-
indraq build --help
|
|
1159
|
-
```
|
|
1160
|
-
|
|
1161
|
-
Web deployment reconciliation through Route53/NPM is intended for web frontend/backend components. Mobile build behavior is separate.
|
|
1162
|
-
|
|
1163
|
-
---
|
|
1164
|
-
|
|
1165
|
-
# 21. Audit logs
|
|
1166
|
-
|
|
1167
|
-
Managers and admins can view audit logs:
|
|
1168
|
-
|
|
1169
|
-
```powershell
|
|
1170
|
-
indraq logs
|
|
1171
|
-
```
|
|
1172
|
-
|
|
1173
|
-
Sensitive Cloud/provider actions use audit reasons so administrative changes can be traced.
|
|
1174
|
-
|
|
1175
|
-
Examples include:
|
|
1176
|
-
|
|
1177
|
-
- user creation/deletion
|
|
1178
|
-
- provider credential changes
|
|
1179
|
-
- AWS credential storage/resolution
|
|
1180
|
-
- environment changes
|
|
1181
|
-
- project resource reconciliation
|
|
1182
|
-
|
|
1183
|
-
---
|
|
1184
|
-
|
|
1185
|
-
# 22. Doctor
|
|
1186
|
-
|
|
1187
|
-
Run:
|
|
1188
|
-
|
|
1189
|
-
```powershell
|
|
1190
|
-
indraq doctor
|
|
1191
|
-
```
|
|
1192
|
-
|
|
1193
|
-
Doctor checks the local IndraQ/Node environment and useful project/provider conditions.
|
|
1194
|
-
|
|
1195
|
-
Use it when setup feels inconsistent before manually editing local configuration files.
|
|
1196
|
-
|
|
1197
|
-
---
|
|
1198
|
-
|
|
1199
|
-
# 23. Recommended first-time setup
|
|
1200
|
-
|
|
1201
|
-
## Administrator
|
|
1202
|
-
|
|
1203
|
-
1. Start IndraQ Cloud API.
|
|
1204
|
-
2. Login as bootstrap admin.
|
|
1205
|
-
3. Create shared environments.
|
|
1206
|
-
4. Configure your own provider credentials.
|
|
1207
|
-
5. Configure AWS role-policy mappings if unified AWS user creation will be used.
|
|
1208
|
-
6. Create managers/users as required.
|
|
1209
|
-
|
|
1210
|
-
Example:
|
|
1211
|
-
|
|
1212
|
-
```powershell
|
|
1213
|
-
indraq login
|
|
1214
|
-
indraq environment create
|
|
1215
|
-
indraq environment create
|
|
1216
|
-
indraq provider configure aws
|
|
1217
|
-
indraq provider configure npm
|
|
1218
|
-
indraq provider configure jenkins-dev
|
|
1219
|
-
indraq provider configure jenkins-prod
|
|
1220
|
-
indraq provider configure ghcr
|
|
1221
|
-
indraq user create
|
|
1222
|
-
```
|
|
1223
|
-
|
|
1224
|
-
## Developer
|
|
1225
|
-
|
|
1226
|
-
1. Login to IndraQ Cloud.
|
|
1227
|
-
2. Configure the provider credentials that belong to you.
|
|
1228
|
-
3. Run `indraq init`.
|
|
1229
|
-
4. Select full infrastructure setup, or skip it and run `indraq prebuild` later.
|
|
1230
|
-
5. Start coding.
|
|
1231
|
-
|
|
1232
|
-
Example:
|
|
1233
|
-
|
|
1234
|
-
```powershell
|
|
1235
|
-
indraq login
|
|
1236
|
-
indraq configure
|
|
1237
|
-
indraq init my-service
|
|
1238
|
-
```
|
|
1239
|
-
|
|
1240
|
-
---
|
|
1241
|
-
|
|
1242
|
-
# 24. Recommended daily workflow
|
|
1243
|
-
|
|
1244
|
-
Inside an existing project:
|
|
1245
|
-
|
|
1246
|
-
```powershell
|
|
1247
|
-
indraq whoami
|
|
1248
|
-
indraq project status
|
|
1249
|
-
indraq prebuild
|
|
1250
|
-
indraq deploy build --env production
|
|
1251
|
-
```
|
|
1252
|
-
|
|
1253
|
-
You do not need to re-enter AWS/NPM/Jenkins/GHCR credentials for every project.
|
|
1254
|
-
|
|
1255
|
-
---
|
|
1256
|
-
|
|
1257
|
-
# 25. Common troubleshooting
|
|
1258
|
-
|
|
1259
|
-
## `npm install` fails during `indraq init`
|
|
1260
|
-
|
|
1261
|
-
IndraQ links the Cloud project before dependency installation and should preserve setup even when installation fails.
|
|
1262
|
-
|
|
1263
|
-
Look for the component paths printed by the CLI, then run:
|
|
1264
|
-
|
|
1265
|
-
```powershell
|
|
1266
|
-
cd <component-folder>
|
|
1267
|
-
npm install
|
|
1268
|
-
```
|
|
1269
|
-
|
|
1270
|
-
Also verify:
|
|
1271
|
-
|
|
1272
|
-
```powershell
|
|
1273
|
-
node --version
|
|
1274
|
-
npm --version
|
|
1275
|
-
npm config get registry
|
|
1276
|
-
```
|
|
1277
|
-
|
|
1278
|
-
Use Node.js 22 or newer.
|
|
1279
|
-
|
|
1280
|
-
## Jenkins returns `403 No valid crumb was included`
|
|
1281
|
-
|
|
1282
|
-
The current Jenkins administration client fetches the Jenkins crumb together with its session cookies and sends them together to `/scriptText`.
|
|
1283
|
-
|
|
1284
|
-
If a 403 continues:
|
|
1285
|
-
|
|
1286
|
-
- verify the configured Jenkins account can access the required administration endpoint
|
|
1287
|
-
- verify reverse proxies are not stripping session cookies/headers
|
|
1288
|
-
- verify Jenkins security settings/plugins expected by your setup
|
|
1289
|
-
- prefer a Jenkins API token where appropriate
|
|
1290
|
-
|
|
1291
|
-
Run the provider configuration again if credentials changed:
|
|
1292
|
-
|
|
1293
|
-
```powershell
|
|
1294
|
-
indraq provider configure jenkins-dev
|
|
1295
|
-
```
|
|
1296
|
-
|
|
1297
|
-
or:
|
|
1298
|
-
|
|
1299
|
-
```powershell
|
|
1300
|
-
indraq provider configure jenkins-prod
|
|
1301
|
-
```
|
|
1302
|
-
|
|
1303
|
-
## Port is already in use
|
|
1304
|
-
|
|
1305
|
-
IndraQ should detect the busy Jenkins host port before creating the deployment and offer suggested alternatives.
|
|
1306
|
-
|
|
1307
|
-
Choose another suggested port and continue.
|
|
1308
|
-
|
|
1309
|
-
## NPM proxy creation says Route53 is missing
|
|
1310
|
-
|
|
1311
|
-
Create/reconcile DNS first:
|
|
1312
|
-
|
|
1313
|
-
```powershell
|
|
1314
|
-
indraq dns create
|
|
1315
|
-
```
|
|
1316
|
-
|
|
1317
|
-
or run:
|
|
1318
|
-
|
|
1319
|
-
```powershell
|
|
1320
|
-
indraq prebuild
|
|
1321
|
-
```
|
|
1322
|
-
|
|
1323
|
-
Then retry the proxy.
|
|
1324
|
-
|
|
1325
|
-
## GHCR organization is missing from the selection
|
|
1326
|
-
|
|
1327
|
-
The organization list is based on what the GitHub token can see.
|
|
1328
|
-
|
|
1329
|
-
Check token access. If the required owner still cannot be enumerated, use the manual-owner fallback in the GHCR provider wizard.
|
|
1330
|
-
|
|
1331
|
-
## AWS secret is not visible in AWS anymore
|
|
1332
|
-
|
|
1333
|
-
AWS does not re-display an existing secret access key.
|
|
1334
|
-
|
|
1335
|
-
If the AWS user was created through IndraQ's unified user workflow and the encrypted credential was stored successfully, the logged-in target user can run:
|
|
1336
|
-
|
|
1337
|
-
```powershell
|
|
1338
|
-
indraq iam credentials <aws-username>
|
|
1339
|
-
```
|
|
1340
|
-
|
|
1341
|
-
Otherwise rotate/create a new AWS access key rather than attempting to recover an unavailable secret from AWS.
|
|
1342
|
-
|
|
1343
|
-
## Cloud API refuses to start because of `MASTER_KEY`
|
|
1344
|
-
|
|
1345
|
-
`MASTER_KEY` must be exactly 64 hexadecimal characters.
|
|
1346
|
-
|
|
1347
|
-
Generate one with:
|
|
1348
|
-
|
|
1349
|
-
```powershell
|
|
1350
|
-
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
1351
|
-
```
|
|
1352
|
-
|
|
1353
|
-
Do not replace an existing production master key if encrypted credentials already exist.
|
|
1354
|
-
|
|
1355
|
-
---
|
|
1356
|
-
|
|
1357
|
-
# 26. Security model
|
|
1358
|
-
|
|
1359
|
-
## Passwords
|
|
1360
|
-
|
|
1361
|
-
IndraQ Cloud account passwords are hashed with bcrypt.
|
|
1362
|
-
|
|
1363
|
-
## Reusable provider secrets
|
|
1364
|
-
|
|
1365
|
-
Provider secrets must be usable again for AWS/Jenkins/NPM/GHCR API calls, so they cannot be stored as one-way password hashes.
|
|
1366
|
-
|
|
1367
|
-
They are encrypted at rest using AES-256-GCM with the Cloud API `MASTER_KEY`.
|
|
1368
|
-
|
|
1369
|
-
## Project files
|
|
1370
|
-
|
|
1371
|
-
Project folders should not contain reusable provider secrets.
|
|
1372
|
-
|
|
1373
|
-
The normal design is:
|
|
1374
|
-
|
|
1375
|
-
```text
|
|
1376
|
-
local project -> project ID
|
|
1377
|
-
Cloud user -> reusable encrypted provider credentials
|
|
1378
|
-
Cloud project -> infrastructure associations
|
|
1379
|
-
```
|
|
1380
|
-
|
|
1381
|
-
## AWS IAM users
|
|
1382
|
-
|
|
1383
|
-
IndraQ's IAM-user flow is intended for CLI/API users. AWS console login profiles are intentionally not created.
|
|
1384
|
-
|
|
1385
|
-
## Exposed credentials
|
|
1386
|
-
|
|
1387
|
-
If any AWS key, GitHub token, Jenkins token, NPM password, or other credential is pasted into logs/chat/tickets or otherwise exposed, rotate it immediately. Encryption in IndraQ Cloud does not make a publicly exposed credential safe.
|
|
1388
|
-
|
|
1389
|
-
---
|
|
1390
|
-
|
|
1391
|
-
# 27. Main command reference
|
|
1392
|
-
|
|
1393
|
-
Use `--help` on any command for the authoritative current flags.
|
|
1394
|
-
|
|
1395
|
-
```text
|
|
862
|
+
indraq --help
|
|
1396
863
|
indraq configure
|
|
1397
|
-
indraq doctor
|
|
1398
|
-
|
|
1399
|
-
indraq login
|
|
1400
|
-
indraq logout
|
|
1401
|
-
indraq whoami
|
|
1402
|
-
|
|
1403
|
-
indraq environment create
|
|
1404
|
-
indraq environment list
|
|
1405
|
-
indraq environment update
|
|
1406
|
-
indraq environment delete
|
|
1407
|
-
|
|
1408
|
-
indraq provider configure
|
|
1409
|
-
indraq provider list
|
|
1410
|
-
|
|
1411
|
-
indraq user list
|
|
1412
|
-
indraq user create
|
|
1413
|
-
indraq user update
|
|
1414
|
-
indraq user delete
|
|
1415
|
-
indraq password reset
|
|
1416
|
-
|
|
1417
|
-
indraq iam user:create
|
|
1418
|
-
indraq iam user:delete
|
|
1419
|
-
indraq iam credentials
|
|
1420
|
-
|
|
1421
|
-
indraq dns zones
|
|
1422
|
-
indraq dns records
|
|
1423
|
-
indraq dns create
|
|
1424
|
-
indraq dns update
|
|
1425
|
-
indraq dns delete
|
|
1426
|
-
|
|
1427
|
-
indraq proxy create
|
|
1428
|
-
indraq proxy update
|
|
1429
|
-
indraq proxy delete
|
|
1430
|
-
|
|
1431
|
-
indraq npm-user create
|
|
1432
|
-
indraq npm-user update
|
|
1433
|
-
indraq npm-user delete
|
|
1434
|
-
|
|
1435
|
-
indraq init
|
|
1436
|
-
indraq project create
|
|
1437
|
-
indraq project link
|
|
1438
|
-
indraq project sync
|
|
1439
864
|
indraq project status
|
|
1440
865
|
indraq prebuild
|
|
1441
|
-
|
|
1442
|
-
indraq deployment create
|
|
1443
|
-
indraq deployment run
|
|
1444
|
-
indraq deploy build
|
|
1445
|
-
|
|
1446
|
-
indraq dockerfile create
|
|
1447
|
-
indraq logs
|
|
1448
|
-
```
|
|
1449
|
-
|
|
1450
|
-
For the complete live command reference:
|
|
1451
|
-
|
|
1452
|
-
```powershell
|
|
1453
|
-
indraq --help
|
|
1454
866
|
```
|
|
1455
867
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
# 28. Legacy compatibility commands
|
|
1459
|
-
|
|
1460
|
-
Provider credentials now live directly in IndraQ Cloud.
|
|
1461
|
-
|
|
1462
|
-
The old-style credential commands remain only for compatibility:
|
|
868
|
+
For deployments:
|
|
1463
869
|
|
|
1464
870
|
```powershell
|
|
1465
|
-
indraq
|
|
1466
|
-
indraq credentials restore
|
|
871
|
+
indraq deploy build --env <environment>
|
|
1467
872
|
```
|
|
1468
873
|
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
Use instead:
|
|
874
|
+
For Jenkins automation:
|
|
1472
875
|
|
|
1473
876
|
```powershell
|
|
1474
|
-
indraq
|
|
1475
|
-
indraq
|
|
877
|
+
indraq jenkins pipelines
|
|
878
|
+
indraq jenkins run
|
|
1476
879
|
```
|
|
1477
880
|
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
# 29. Release verification
|
|
1481
|
-
|
|
1482
|
-
Before deploying or distributing the CLI, run:
|
|
881
|
+
For exact flags on anything:
|
|
1483
882
|
|
|
1484
883
|
```powershell
|
|
1485
|
-
|
|
1486
|
-
npm run build
|
|
1487
|
-
npm test
|
|
1488
|
-
```
|
|
1489
|
-
|
|
1490
|
-
Cloud API:
|
|
1491
|
-
|
|
1492
|
-
```powershell
|
|
1493
|
-
cd cloud-api
|
|
1494
|
-
npm install
|
|
1495
|
-
npm run build
|
|
884
|
+
indraq <command> --help
|
|
1496
885
|
```
|
|
1497
886
|
|
|
1498
|
-
Then perform a real integration test in your own environment because mocked regression tests cannot verify private AWS, Jenkins, NPM, GHCR, DNS, firewall, or server configuration.
|
|
1499
|
-
|
|
1500
|
-
A useful end-to-end test is:
|
|
1501
|
-
|
|
1502
|
-
1. login
|
|
1503
|
-
2. create/list environments
|
|
1504
|
-
3. configure provider credentials
|
|
1505
|
-
4. create a disposable project with `indraq init`
|
|
1506
|
-
5. choose full setup
|
|
1507
|
-
6. verify Jenkins port validation
|
|
1508
|
-
7. verify Route53 routing and AWS health checks
|
|
1509
|
-
8. verify NPM SSL/proxy
|
|
1510
|
-
9. verify GHCR image owner/path
|
|
1511
|
-
10. rerun `indraq prebuild` and confirm resources are reconciled rather than duplicated
|
|
1512
|
-
|
|
1513
887
|
---
|
|
1514
888
|
|
|
1515
889
|
# License
|
|
1516
890
|
|
|
1517
|
-
MIT
|
|
891
|
+
MIT © IndraQ Innovations
|