@abgov/nx-adsp 13.1.1 → 13.1.3
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 +3 -4
- package/package.json +1 -1
- package/src/generators/express-service/files/AGENTS.md__tmpl__ +175 -37
- package/src/utils/agent.d.ts +1 -0
- package/src/utils/agent.js +29 -0
- package/src/utils/agent.js.map +1 -1
- package/src/utils/agent.spec.ts +63 -1
- package/src/utils/keycloak-admin.js +23 -9
- package/src/utils/keycloak-admin.js.map +1 -1
- package/src/utils/quality.js +5 -1
- package/src/utils/quality.js.map +1 -1
- package/src/utils/quality.spec.ts +67 -0
package/README.md
CHANGED
|
@@ -44,9 +44,8 @@ npx nx g @abgov/nx-adsp:express-service my-service --env dev --tenant my-tenant
|
|
|
44
44
|
## Full-stack quickstart (PEVN → sandbox)
|
|
45
45
|
|
|
46
46
|
This is the end-to-end path a coding agent can follow from an empty folder to a
|
|
47
|
-
running full-stack app in an OpenShift sandbox.
|
|
48
|
-
|
|
49
|
-
`latest`.
|
|
47
|
+
running full-stack app in an OpenShift sandbox. The plugins require **Nx 23**,
|
|
48
|
+
which `create-nx-workspace@latest` produces by default.
|
|
50
49
|
|
|
51
50
|
Prerequisites for the sandbox deploy (steps 4–5): `podman` (machine started on
|
|
52
51
|
macOS), `oc` logged in to the sandbox cluster, and the GitHub CLI (`gh`)
|
|
@@ -66,7 +65,7 @@ cd my-solution
|
|
|
66
65
|
|
|
67
66
|
# 2. Install the plugins + stack peers (match @nx/* to the workspace nx version)
|
|
68
67
|
NXV=$(node -p "require('./node_modules/nx/package.json').version")
|
|
69
|
-
npm i -D @abgov/nx-oc
|
|
68
|
+
npm i -D @abgov/nx-oc @abgov/nx-adsp "@nx/express@$NXV" "@nx/vue@$NXV" "@nx/node@$NXV" "@nx/js@$NXV" "@nx/eslint@$NXV"
|
|
70
69
|
|
|
71
70
|
# 3. Scaffold a Postgres + Express + Vue + Node solution (opens a browser for the ADSP tenant login)
|
|
72
71
|
npx nx g @abgov/nx-adsp:pevn acme --env=dev --tenant=my-tenant --no-interactive
|
package/package.json
CHANGED
|
@@ -69,45 +69,163 @@ To call another service with an access token:
|
|
|
69
69
|
const token = await tokenProvider.getAccessToken();
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
##
|
|
72
|
+
## Project structure & code factoring
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
`main.ts` is the **composition root** — it initializes the SDK, wires middleware,
|
|
75
|
+
mounts routers, starts the server, and mounts the error handler last. Keep feature
|
|
76
|
+
code out of it. Conventional layout:
|
|
77
77
|
|
|
78
|
-
**Public route:**
|
|
79
|
-
```typescript
|
|
80
|
-
app.get('/<%= projectName %>/v1/my-resource', (req, res) => {
|
|
81
|
-
res.json({ ... });
|
|
82
|
-
});
|
|
83
78
|
```
|
|
79
|
+
src/
|
|
80
|
+
main.ts # composition root — no business logic
|
|
81
|
+
routes/<resource>.ts # one express.Router() per resource; thin HTTP handlers
|
|
82
|
+
services/<resource>.ts # business logic — no req/res, unit-testable
|
|
83
|
+
<% if (database === 'postgres') { %> db/schema.ts # Drizzle tables
|
|
84
|
+
database.ts # shared `db` instance
|
|
85
|
+
<% } else if (database === 'mongo') { %> models/<resource>.ts # Mongoose models
|
|
86
|
+
database.ts # connection helpers
|
|
87
|
+
<% } %> events.ts # domain event definitions
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Rules of thumb:
|
|
91
|
+
|
|
92
|
+
- **Do not inline route handlers in `main.ts`.** Add an `express.Router()` per
|
|
93
|
+
resource under `routes/` and mount it. The example routes in `main.ts` are
|
|
94
|
+
starters — replace them with mounted routers as you build real features.
|
|
95
|
+
- **Keep handlers thin** — validate input, call a service, shape the response.
|
|
96
|
+
Put non-trivial logic in `services/` so it can be tested without HTTP.
|
|
97
|
+
- **One responsibility per module** — routers do HTTP, services do logic, the db
|
|
98
|
+
layer does persistence.
|
|
99
|
+
- **Pass runtime capabilities in; don't import them.** `logger` and `eventService`
|
|
100
|
+
come from `initializeService()` in `main.ts`, so pass them into a router/service
|
|
101
|
+
as arguments (e.g. `itemsRouter(eventService)`). Only module-level singletons —
|
|
102
|
+
the `db` instance, Mongoose models — are imported directly.
|
|
103
|
+
|
|
104
|
+
## Adding routes
|
|
105
|
+
|
|
106
|
+
Factor each resource into its own router module and mount it in `main.ts`.
|
|
84
107
|
|
|
85
|
-
**Protected route** (requires a role, validates input, publishes an event):
|
|
86
108
|
```typescript
|
|
109
|
+
// src/routes/items.ts
|
|
110
|
+
import { Router } from 'express';
|
|
87
111
|
import { authorize, createValidationHandler } from '@abgov/adsp-service-sdk';
|
|
88
112
|
import { z } from 'zod';
|
|
113
|
+
import * as items from '../services/items';
|
|
89
114
|
|
|
90
|
-
const
|
|
115
|
+
const CreateItem = z.object({ name: z.string().min(1) });
|
|
91
116
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
async (
|
|
117
|
+
export function itemsRouter(): Router {
|
|
118
|
+
const router = Router();
|
|
119
|
+
|
|
120
|
+
// Anonymous is allowed on the /v1 prefix, so req.user may be null here.
|
|
121
|
+
router.get('/', async (_req, res, next) => {
|
|
97
122
|
try {
|
|
98
|
-
|
|
99
|
-
eventService.send(createMyEvent(name));
|
|
100
|
-
res.json({ name });
|
|
123
|
+
res.json(await items.list());
|
|
101
124
|
} catch (err) {
|
|
102
|
-
next(err);
|
|
125
|
+
next(err);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// Protected: require a role, validate the body, then delegate to the service.
|
|
130
|
+
router.post(
|
|
131
|
+
'/',
|
|
132
|
+
authorize('item-writer'),
|
|
133
|
+
createValidationHandler(CreateItem),
|
|
134
|
+
async (req, res, next) => {
|
|
135
|
+
try {
|
|
136
|
+
const { name } = req.body as z.infer<typeof CreateItem>;
|
|
137
|
+
res.status(201).json(await items.create(name));
|
|
138
|
+
} catch (err) {
|
|
139
|
+
next(err);
|
|
140
|
+
}
|
|
103
141
|
}
|
|
104
|
-
|
|
105
|
-
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
return router;
|
|
145
|
+
}
|
|
106
146
|
```
|
|
107
147
|
|
|
108
|
-
|
|
109
|
-
`createErrorHandler
|
|
110
|
-
|
|
148
|
+
Mount it in `main.ts` — after the passport/configuration middleware, before
|
|
149
|
+
`createErrorHandler`:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
import { itemsRouter } from './routes/items';
|
|
153
|
+
// ...
|
|
154
|
+
app.use('/<%= projectName %>/v1/items', itemsRouter());
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
`authorize(role)` → 403 if the user lacks the role; `createValidationHandler(schema)`
|
|
158
|
+
→ 400 on a bad body. Both forward errors to `next()`, which `createErrorHandler`
|
|
159
|
+
(mounted last in `main.ts`) turns into structured HTTP responses.
|
|
160
|
+
|
|
161
|
+
## Recipe: add a resource end to end
|
|
162
|
+
|
|
163
|
+
Build a feature the conventional way — persistence, a service, a router, wiring,
|
|
164
|
+
and a test. (Replace the inline example routes in `main.ts` with resources built
|
|
165
|
+
like this.)
|
|
166
|
+
|
|
167
|
+
<% if (database === 'postgres') { %>1. **Table** — add it to `src/db/schema.ts`, then `nx db:generate <%= projectName %>` and `nx db:migrate <%= projectName %>` (see "Adding a table").
|
|
168
|
+
<% } else if (database === 'mongo') { %>1. **Model** — add a Mongoose model (see "Adding a Mongoose model").
|
|
169
|
+
<% } else { %>1. **Data source** — back the resource with your store (this service has no database configured).
|
|
170
|
+
<% } %>
|
|
171
|
+
2. **Service** — put the logic in `src/services/items.ts`, with no `req`/`res` so
|
|
172
|
+
it is unit-testable in isolation:
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
// src/services/items.ts
|
|
176
|
+
<% if (database === 'postgres') { %>import { db } from '../database';
|
|
177
|
+
import { items } from '../db/schema';
|
|
178
|
+
|
|
179
|
+
export const list = () => db.select().from(items);
|
|
180
|
+
export const create = async (name: string) => {
|
|
181
|
+
const [row] = await db.insert(items).values({ name }).returning();
|
|
182
|
+
return row;
|
|
183
|
+
};<% } else if (database === 'mongo') { %>import { ItemModel } from '../models/item';
|
|
184
|
+
|
|
185
|
+
export const list = () => ItemModel.find().lean();
|
|
186
|
+
export const create = (name: string) => ItemModel.create({ name });<% } else { %>const store: { id: number; name: string }[] = [];
|
|
187
|
+
|
|
188
|
+
export const list = async () => store;
|
|
189
|
+
export const create = async (name: string) => {
|
|
190
|
+
const row = { id: store.length + 1, name };
|
|
191
|
+
store.push(row);
|
|
192
|
+
return row;
|
|
193
|
+
};<% } %>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
3. **Event** (optional) — define it in `src/events.ts` and register it in
|
|
197
|
+
`initializeService({ events })`. To emit it, have the router factory accept
|
|
198
|
+
`eventService` — `itemsRouter(eventService)` — and call `eventService.send(...)`
|
|
199
|
+
in the handler after a successful write (see "Domain events").
|
|
200
|
+
|
|
201
|
+
4. **Router** — create `src/routes/items.ts` as in "Adding routes" above: thin
|
|
202
|
+
handlers that validate, call the service, and shape the response.
|
|
203
|
+
|
|
204
|
+
5. **Mount** — in `main.ts`: `app.use('/<%= projectName %>/v1/items', itemsRouter());`
|
|
205
|
+
|
|
206
|
+
6. **Test** — mount the router with supertest and mock the service (no DB, no
|
|
207
|
+
server needed):
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
import request from 'supertest';
|
|
211
|
+
import express from 'express';
|
|
212
|
+
import { itemsRouter } from './items';
|
|
213
|
+
|
|
214
|
+
jest.mock('../services/items', () => ({
|
|
215
|
+
list: async () => [{ id: 1, name: 'first' }],
|
|
216
|
+
create: jest.fn(),
|
|
217
|
+
}));
|
|
218
|
+
|
|
219
|
+
describe('items router', () => {
|
|
220
|
+
it('GET / returns items', async () => {
|
|
221
|
+
const app = express().use(express.json());
|
|
222
|
+
app.use('/items', itemsRouter());
|
|
223
|
+
const res = await request(app).get('/items');
|
|
224
|
+
expect(res.status).toBe(200);
|
|
225
|
+
expect(res.body).toEqual([{ id: 1, name: 'first' }]);
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
```
|
|
111
229
|
|
|
112
230
|
## Adding an environment variable
|
|
113
231
|
|
|
@@ -186,17 +304,34 @@ app.get('/<%= projectName %>/v1/items', async (_req, res) => {
|
|
|
186
304
|
by `migrate.js` (bundled from `src/migrate.ts`), which uses only `drizzle-orm` +
|
|
187
305
|
`pg` — no CLI and no native engine — so it runs under OpenShift's arbitrary UID.
|
|
188
306
|
|
|
189
|
-
## OpenShift
|
|
307
|
+
## Database in OpenShift — migrations run automatically
|
|
308
|
+
|
|
309
|
+
Migrations are applied at deploy time by an **init container** named
|
|
310
|
+
`<%= projectName %>-migrate`, which runs `node migrate.js` (everything in
|
|
311
|
+
`drizzle/`) against the database **before the app container starts** — so a
|
|
312
|
+
deploy always brings the schema up to date, and the app never starts against a
|
|
313
|
+
stale DB. `migrate.js` is bundled from `src/migrate.ts` using only `drizzle-orm`
|
|
314
|
+
+ `pg` (no `drizzle-kit` CLI, no native engine), so it runs under OpenShift's
|
|
315
|
+
arbitrary UID; it logs `No migrations to apply.` and exits 0 when `drizzle/` is
|
|
316
|
+
empty. The `drizzle/` folder is shipped into the build output as a build asset.
|
|
317
|
+
|
|
318
|
+
**Sandbox** (`nx run <%= projectName %>:sandbox`) — nothing to set up. The
|
|
319
|
+
sandbox target provisions a shared `sandbox-postgres` instance, creates this
|
|
320
|
+
service's `<%= projectName %>_sandbox` database, and injects `DATABASE_URL`
|
|
321
|
+
(sourced from the `sandbox-postgres-creds` secret) into both the init container
|
|
322
|
+
and the app. If a deploy fails on migrations, read the init container's logs:
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
oc logs -n <namespace> <pod> -c <%= projectName %>-migrate
|
|
326
|
+
```
|
|
190
327
|
|
|
191
|
-
|
|
192
|
-
`DATABASE_URL` value, and runs `node migrate.js` as an init container before the
|
|
193
|
-
application starts. The generated SQL migrations in `drizzle/` are shipped into
|
|
194
|
-
the build output as assets so the init container can apply them.
|
|
328
|
+
See `.openshift/<%= projectName %>/SANDBOX.md` for the full sandbox runbook.
|
|
195
329
|
|
|
196
|
-
|
|
330
|
+
**dev / test / prod** — the deployment reads `DATABASE_URL` from a Secret named
|
|
331
|
+
`<%= projectName %>-database`. Create it once per namespace before the first deploy:
|
|
197
332
|
|
|
198
333
|
```bash
|
|
199
|
-
oc create secret generic
|
|
334
|
+
oc create secret generic <%= projectName %>-database \
|
|
200
335
|
--from-literal=DATABASE_URL=postgresql://user:password@host:5432/dbname \
|
|
201
336
|
-n <namespace>
|
|
202
337
|
```
|
|
@@ -265,15 +400,18 @@ app.get('/<%= projectName %>/v1/items', async (_req, res) => {
|
|
|
265
400
|
});
|
|
266
401
|
```
|
|
267
402
|
|
|
268
|
-
##
|
|
403
|
+
## Database in OpenShift
|
|
269
404
|
|
|
270
|
-
|
|
271
|
-
`
|
|
405
|
+
**Sandbox** (`nx run <%= projectName %>:sandbox`) — nothing to set up. The
|
|
406
|
+
sandbox target provisions a shared `sandbox-mongodb` instance and injects
|
|
407
|
+
`MONGODB_URI` (sourced from the `sandbox-mongodb-creds` secret) into the app.
|
|
408
|
+
See `.openshift/<%= projectName %>/SANDBOX.md` for the full sandbox runbook.
|
|
272
409
|
|
|
273
|
-
|
|
410
|
+
**dev / test / prod** — the deployment reads `MONGODB_URI` from a Secret named
|
|
411
|
+
`<%= projectName %>-database`. Create it once per namespace before the first deploy:
|
|
274
412
|
|
|
275
413
|
```bash
|
|
276
|
-
oc create secret generic
|
|
414
|
+
oc create secret generic <%= projectName %>-database \
|
|
277
415
|
--from-literal=MONGODB_URI=mongodb://user:password@host:27017/dbname \
|
|
278
416
|
-n <namespace>
|
|
279
417
|
```
|
package/src/utils/agent.d.ts
CHANGED
package/src/utils/agent.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isNonInteractive = isNonInteractive;
|
|
3
4
|
exports.confirmAfterAgentInterrupt = confirmAfterAgentInterrupt;
|
|
4
5
|
exports.consultAgent = consultAgent;
|
|
5
6
|
const tslib_1 = require("tslib");
|
|
@@ -8,6 +9,30 @@ const socket_io_client_1 = require("socket.io-client");
|
|
|
8
9
|
const nx_oc_1 = require("@abgov/nx-oc");
|
|
9
10
|
const AGENT_SERVICE_URN = 'urn:ads:platform:agent-service:v1';
|
|
10
11
|
const AGENT_ID = 'nxAdspAgent';
|
|
12
|
+
// The agent consultation is an interactive, stdin-driven conversation, so it must
|
|
13
|
+
// not run unattended (a coding agent, CI, or a piped shell) — it would hang or
|
|
14
|
+
// corrupt stdin.
|
|
15
|
+
//
|
|
16
|
+
// NOTE: this relies on Nx *internal* behavior (not a public API), so re-verify it
|
|
17
|
+
// on Nx upgrades — the two `argv` clauses below are the fragile part:
|
|
18
|
+
// 1. Nx deletes `--interactive` from the generator's options before invoking it
|
|
19
|
+
// (`delete generatorOptions.interactive` in nx's command-line/generate/generate.js),
|
|
20
|
+
// so we can't read it from `options`.
|
|
21
|
+
// 2. Nx runs generators in-process, so the CLI args are still on `process.argv`.
|
|
22
|
+
// If Nx ever runs generators out-of-process, or stops stripping the option, the
|
|
23
|
+
// argv detection may go stale. The TTY/CI fallback is the resilient part — it
|
|
24
|
+
// mirrors Nx's own prompt gate (`isTTY()` in command-line utils/params.js:
|
|
25
|
+
// `process.stdout.isTTY && CI !== 'true'`) and still catches unattended runs even
|
|
26
|
+
// if the flag detection breaks. Worst case if all detection fails: the generator
|
|
27
|
+
// prompts and the caller can still pass `--skipAgent`.
|
|
28
|
+
function isNonInteractive() {
|
|
29
|
+
const argv = process.argv;
|
|
30
|
+
const interactiveIdx = argv.indexOf('--interactive');
|
|
31
|
+
const flagged = argv.includes('--no-interactive') ||
|
|
32
|
+
argv.includes('--interactive=false') ||
|
|
33
|
+
(interactiveIdx !== -1 && argv[interactiveIdx + 1] === 'false');
|
|
34
|
+
return flagged || !process.stdout.isTTY || process.env.CI === 'true';
|
|
35
|
+
}
|
|
11
36
|
/**
|
|
12
37
|
* After a consultAgent call, check whether the user interrupted before any
|
|
13
38
|
* files were generated and confirm they still want to proceed with the base
|
|
@@ -46,6 +71,10 @@ function confirmAfterAgentInterrupt(result) {
|
|
|
46
71
|
function consultAgent(directoryServiceUrl, accessToken, projectContext, host, projectRoot, options) {
|
|
47
72
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
73
|
var _a, _b, _c;
|
|
74
|
+
if (isNonInteractive()) {
|
|
75
|
+
process.stdout.write('\n[nx-adsp] Non-interactive run (--no-interactive / no TTY / CI) — skipping the agent consultation; base scaffolding only.\n');
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
49
78
|
if (!accessToken) {
|
|
50
79
|
process.stdout.write('\n[nx-adsp] No access token — skipping agent interaction.\n');
|
|
51
80
|
return null;
|
package/src/utils/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/agent.ts"],"names":[],"mappings":"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"}
|
package/src/utils/agent.spec.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { consultAgent } from './agent';
|
|
1
|
+
import { consultAgent, isNonInteractive } from './agent';
|
|
2
2
|
|
|
3
3
|
jest.mock('readline', () => ({
|
|
4
4
|
createInterface: jest.fn(() => ({
|
|
@@ -61,9 +61,23 @@ function makeMockSocket() {
|
|
|
61
61
|
const flushPromises = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
62
62
|
|
|
63
63
|
describe('consultAgent', () => {
|
|
64
|
+
const ORIGINAL_ARGV = process.argv;
|
|
65
|
+
const ORIGINAL_TTY = process.stdout.isTTY;
|
|
66
|
+
const ORIGINAL_CI = process.env.CI;
|
|
64
67
|
beforeEach(() => {
|
|
65
68
|
jest.clearAllMocks();
|
|
66
69
|
jest.spyOn(process.stdout, 'write').mockImplementation(() => true);
|
|
70
|
+
// consultAgent short-circuits when non-interactive; force an interactive
|
|
71
|
+
// TTY (no flag, no CI) so these tests exercise the interactive flow.
|
|
72
|
+
process.argv = ['node', 'nx'];
|
|
73
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: true, configurable: true });
|
|
74
|
+
delete process.env.CI;
|
|
75
|
+
});
|
|
76
|
+
afterAll(() => {
|
|
77
|
+
process.argv = ORIGINAL_ARGV;
|
|
78
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: ORIGINAL_TTY, configurable: true });
|
|
79
|
+
if (ORIGINAL_CI === undefined) delete process.env.CI;
|
|
80
|
+
else process.env.CI = ORIGINAL_CI;
|
|
67
81
|
});
|
|
68
82
|
|
|
69
83
|
it('returns null when agent-service is not in directory', async () => {
|
|
@@ -148,3 +162,51 @@ describe('consultAgent', () => {
|
|
|
148
162
|
);
|
|
149
163
|
});
|
|
150
164
|
});
|
|
165
|
+
|
|
166
|
+
describe('isNonInteractive', () => {
|
|
167
|
+
const ORIGINAL_ARGV = process.argv;
|
|
168
|
+
const ORIGINAL_TTY = process.stdout.isTTY;
|
|
169
|
+
const ORIGINAL_CI = process.env.CI;
|
|
170
|
+
const setTTY = (v: boolean | undefined) =>
|
|
171
|
+
Object.defineProperty(process.stdout, 'isTTY', { value: v, configurable: true });
|
|
172
|
+
|
|
173
|
+
afterEach(() => {
|
|
174
|
+
process.argv = ORIGINAL_ARGV;
|
|
175
|
+
setTTY(ORIGINAL_TTY);
|
|
176
|
+
if (ORIGINAL_CI === undefined) delete process.env.CI;
|
|
177
|
+
else process.env.CI = ORIGINAL_CI;
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('is true when --no-interactive is passed, even in an interactive TTY', () => {
|
|
181
|
+
setTTY(true);
|
|
182
|
+
delete process.env.CI;
|
|
183
|
+
process.argv = ['node', 'nx', 'g', 'x', '--no-interactive'];
|
|
184
|
+
expect(isNonInteractive()).toBe(true);
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it('honors --interactive=false and --interactive false', () => {
|
|
188
|
+
setTTY(true);
|
|
189
|
+
delete process.env.CI;
|
|
190
|
+
process.argv = ['node', 'nx', 'g', 'x', '--interactive=false'];
|
|
191
|
+
expect(isNonInteractive()).toBe(true);
|
|
192
|
+
process.argv = ['node', 'nx', 'g', 'x', '--interactive', 'false'];
|
|
193
|
+
expect(isNonInteractive()).toBe(true);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
it('is true without a TTY or on CI', () => {
|
|
197
|
+
setTTY(false);
|
|
198
|
+
delete process.env.CI;
|
|
199
|
+
process.argv = ['node', 'nx'];
|
|
200
|
+
expect(isNonInteractive()).toBe(true);
|
|
201
|
+
setTTY(true);
|
|
202
|
+
process.env.CI = 'true';
|
|
203
|
+
expect(isNonInteractive()).toBe(true);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('is false in an interactive TTY with no flag and no CI', () => {
|
|
207
|
+
setTTY(true);
|
|
208
|
+
delete process.env.CI;
|
|
209
|
+
process.argv = ['node', 'nx', 'g', 'x'];
|
|
210
|
+
expect(isNonInteractive()).toBe(false);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
@@ -40,13 +40,20 @@ function ensureClientRole(accessServiceUrl, realm, clientUuid, roleName, descrip
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
catch (err) {
|
|
43
|
+
// Best-effort, like the other ensure* helpers: a role we can't read/create
|
|
44
|
+
// must not abort provisioning or cause the client secret to be dropped.
|
|
43
45
|
if (((_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.status) === 404) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
try {
|
|
47
|
+
yield axios.post(baseUrl, { name: roleName, description }, {
|
|
48
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
catch (createErr) {
|
|
52
|
+
logAdminError(clientUuid, createErr);
|
|
53
|
+
}
|
|
47
54
|
}
|
|
48
55
|
else {
|
|
49
|
-
|
|
56
|
+
logAdminError(clientUuid, err);
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
59
|
});
|
|
@@ -80,11 +87,18 @@ function assignRoleToServiceAccount(accessServiceUrl, realm, userId, platformCli
|
|
|
80
87
|
function ensureServiceAccountRoles(accessServiceUrl, realm, serviceClientUuid, roles, accessToken) {
|
|
81
88
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
82
89
|
const { default: axios } = yield Promise.resolve().then(() => require('axios'));
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
// Best-effort, like the other ensure* helpers: don't abort provisioning or
|
|
91
|
+
// drop the client secret if a platform service-account role can't be assigned.
|
|
92
|
+
try {
|
|
93
|
+
const userUrl = new URL(`/auth/admin/realms/${realm}/clients/${serviceClientUuid}/service-account-user`, accessServiceUrl).href;
|
|
94
|
+
const { data: user } = yield axios.get(userUrl, {
|
|
95
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
96
|
+
});
|
|
97
|
+
yield Promise.all(roles.map(({ platformClientId, roleName }) => assignRoleToServiceAccount(accessServiceUrl, realm, user.id, platformClientId, roleName, accessToken)));
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
logAdminError(serviceClientUuid, err);
|
|
101
|
+
}
|
|
88
102
|
});
|
|
89
103
|
}
|
|
90
104
|
function getClientSecret(accessServiceUrl, realm, clientUuid, accessToken) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloak-admin.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/keycloak-admin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keycloak-admin.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/keycloak-admin.ts"],"names":[],"mappings":"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"}
|
package/src/utils/quality.js
CHANGED
|
@@ -57,7 +57,11 @@ function addJestCoverageConfig(host, projectRoot) {
|
|
|
57
57
|
if (!host.exists(jestPath))
|
|
58
58
|
return;
|
|
59
59
|
const existing = host.read(jestPath).toString();
|
|
60
|
-
|
|
60
|
+
// Capture the coverageDirectory line WITHOUT its trailing comma, then re-emit
|
|
61
|
+
// it with one before the inserted properties. @nx/jest may leave
|
|
62
|
+
// coverageDirectory as the last property (no trailing comma), so appending
|
|
63
|
+
// properties after it verbatim would produce an invalid object literal.
|
|
64
|
+
const modified = existing.replace(/([ \t]*coverageDirectory:[^\n]*?),?\n/, `$1,\n collectCoverage: true,\n coverageThreshold: {\n global: {\n lines: 60,\n },\n },\n`);
|
|
61
65
|
if (modified !== existing) {
|
|
62
66
|
host.write(jestPath, modified);
|
|
63
67
|
}
|
package/src/utils/quality.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/quality.ts"],"names":[],"mappings":";;AAUA,sDAoCC;AAOD,
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../../../../../packages/nx-adsp/src/utils/quality.ts"],"names":[],"mappings":";;AAUA,sDAoCC;AAOD,sDAgBC;AAOD,4CAeC;AAED,8CAeC;AA5GD,uCAA+G;AAE/G;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,IAAU,EAAE,WAAmB,EAAE,aAAuB;;IAC5F,MAAM,UAAU,GAAG,GAAG,WAAW,oBAAoB,CAAC;IACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,CAAC,CAAC,mCAAI,yBAAyB,CAAC;IACzE,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,CAAC,KAAK,CACR,UAAU,EACV,2BAA2B,cAAc;;;;;;;;;;;;;;;cAe/B,YAAY;;;;;;;;CAQzB,CACE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IAAU,EAAE,WAAmB;IACnE,MAAM,QAAQ,GAAG,GAAG,WAAW,kBAAkB,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO;IAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,8EAA8E;IAC9E,iEAAiE;IACjE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAC/B,uCAAuC,EACvC,wGAAwG,CACzG,CAAC;IACF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAU,EAAE,WAAmB;IAC9D,MAAM,MAAM,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,mCACT,MAAM,CAAC,OAAO,KACjB,OAAO,EAAE;YACP,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACP,OAAO,EAAE,iDAAiD;gBAC1D,GAAG,EAAE,eAAe;aACrB;SACF,GACF,CAAC;IACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,MAAM,YAAY,GAAG,uBAAuB,CAAC;IAC7C,MAAM,QAAQ,GAAG;QACf,qBAAqB,EAAE,IAAI;QAC3B,yBAAyB,EAAE,wBAAwB;QACnD,0BAA0B,EAAE;YAC1B,sBAAsB,EAAE,UAAU;SACnC;KACF,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,IAAA,mBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,iCAAM,QAAQ,GAAK,QAAQ,EAAG,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,IAAA,kBAAS,EAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
3
|
+
import { addJestCoverageConfig } from './quality';
|
|
4
|
+
|
|
5
|
+
function makeConfig(coverageDirectoryLine: string): string {
|
|
6
|
+
return [
|
|
7
|
+
'module.exports = {',
|
|
8
|
+
" displayName: 'svc',",
|
|
9
|
+
" preset: '../../jest.preset.js',",
|
|
10
|
+
` ${coverageDirectoryLine}`,
|
|
11
|
+
'};',
|
|
12
|
+
'',
|
|
13
|
+
].join('\n');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Parse the exported object literal; throws SyntaxError if the config is invalid
|
|
17
|
+
// (e.g. a property with no separating comma).
|
|
18
|
+
function evalConfigObject(src: string): Record<string, unknown> {
|
|
19
|
+
const body = src.slice(src.indexOf('{'), src.lastIndexOf('}') + 1);
|
|
20
|
+
return new Function(`return (${body})`)() as Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
describe('addJestCoverageConfig', () => {
|
|
24
|
+
let tree: Tree;
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('inserts a comma when coverageDirectory is the last property (no trailing comma)', () => {
|
|
30
|
+
// The @nx/jest (Nx 23) template leaves coverageDirectory without a trailing comma.
|
|
31
|
+
tree.write(
|
|
32
|
+
'apps/svc/jest.config.cts',
|
|
33
|
+
makeConfig("coverageDirectory: 'test-output/jest/coverage'")
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
addJestCoverageConfig(tree, 'apps/svc');
|
|
37
|
+
const out = tree.read('apps/svc/jest.config.cts').toString();
|
|
38
|
+
|
|
39
|
+
expect(out).toContain("coverageDirectory: 'test-output/jest/coverage',");
|
|
40
|
+
expect(out).toContain('collectCoverage: true,');
|
|
41
|
+
expect(out).toContain('lines: 60,');
|
|
42
|
+
expect(out).not.toContain(',,');
|
|
43
|
+
// The result must be a valid object literal.
|
|
44
|
+
const cfg = evalConfigObject(out);
|
|
45
|
+
expect(cfg.collectCoverage).toBe(true);
|
|
46
|
+
expect((cfg.coverageThreshold as { global: { lines: number } }).global.lines).toBe(60);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('does not double the comma when coverageDirectory already has one', () => {
|
|
50
|
+
tree.write(
|
|
51
|
+
'apps/svc/jest.config.cts',
|
|
52
|
+
makeConfig("coverageDirectory: '../../coverage/svc',")
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
addJestCoverageConfig(tree, 'apps/svc');
|
|
56
|
+
const out = tree.read('apps/svc/jest.config.cts').toString();
|
|
57
|
+
|
|
58
|
+
expect(out).toContain("coverageDirectory: '../../coverage/svc',");
|
|
59
|
+
expect(out).not.toContain(',,');
|
|
60
|
+
expect(() => evalConfigObject(out)).not.toThrow();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('is a no-op when there is no jest config', () => {
|
|
64
|
+
expect(() => addJestCoverageConfig(tree, 'apps/none')).not.toThrow();
|
|
65
|
+
expect(tree.exists('apps/none/jest.config.cts')).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
});
|