@lenne.tech/nest-server 12.3.1 → 12.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/configurable-features.md +2 -1
- package/.claude/rules/testing.md +4 -4
- package/FRAMEWORK-API.md +2 -2
- package/dist/core/common/helpers/swagger.helper.js +6 -0
- package/dist/core/common/helpers/swagger.helper.js.map +1 -1
- package/dist/core/common/interfaces/server-options.interface.d.ts +6 -0
- package/dist/core/common/services/email.service.d.ts +3 -0
- package/dist/core/common/services/email.service.js +20 -0
- package/dist/core/common/services/email.service.js.map +1 -1
- package/dist/core/modules/error-code/error-codes.d.ts +18 -0
- package/dist/core/modules/error-code/error-codes.js +16 -0
- package/dist/core/modules/error-code/error-codes.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.controller.d.ts +2 -2
- package/dist/core/modules/system-setup/core-system-setup.controller.js +17 -7
- package/dist/core/modules/system-setup/core-system-setup.controller.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.service.d.ts +18 -0
- package/dist/core/modules/system-setup/core-system-setup.service.js +118 -15
- package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
- package/dist/core/modules/system-setup/system-setup-http-init.helper.d.ts +11 -0
- package/dist/core/modules/system-setup/system-setup-http-init.helper.js +45 -0
- package/dist/core/modules/system-setup/system-setup-http-init.helper.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server/modules/error-code/error-codes.d.ts +2 -0
- package/migration-guides/11.13.x-to-11.14.0.md +5 -5
- package/migration-guides/12.3.1-to-12.3.2.md +52 -0
- package/migration-guides/12.3.x-to-12.4.x.md +169 -0
- package/package.json +1 -1
- package/src/core/common/helpers/swagger.helper.ts +7 -0
- package/src/core/common/interfaces/server-options.interface.ts +70 -5
- package/src/core/common/services/email.service.ts +33 -1
- package/src/core/modules/error-code/error-codes.ts +27 -0
- package/src/core/modules/system-setup/INTEGRATION-CHECKLIST.md +51 -16
- package/src/core/modules/system-setup/README.md +144 -28
- package/src/core/modules/system-setup/core-system-setup.controller.ts +30 -8
- package/src/core/modules/system-setup/core-system-setup.service.ts +246 -23
- package/src/core/modules/system-setup/system-setup-http-init.helper.ts +130 -0
- package/src/index.ts +1 -0
|
@@ -17,6 +17,7 @@ import { ForbiddenException, Injectable, Logger } from '@nestjs/common';
|
|
|
17
17
|
import { InjectConnection } from '../../common/persistence/mongo/mongoose-compat.js';
|
|
18
18
|
import { isEmail } from 'class-validator';
|
|
19
19
|
import { defaultSqlLockStore, SYSTEM_SETUP_CLAIM_STALE_AFTER_MS, SYSTEM_SETUP_LOCK_COLLECTION, SYSTEM_SETUP_LOCK_KEY, systemSetupMongoLocks, } from '../../common/persistence/infrastructure-locks.js';
|
|
20
|
+
import { isLocalEnv } from '../../common/helpers/cookies.helper.js';
|
|
20
21
|
import { ConfigService } from '../../common/services/config.service.js';
|
|
21
22
|
import { legacyCredentialAccountIssuer } from '../better-auth/core-better-auth-account-issuer.helper.js';
|
|
22
23
|
import { CoreBetterAuthUserMapper } from '../better-auth/core-better-auth-user.mapper.js';
|
|
@@ -24,6 +25,7 @@ import { CoreBetterAuthService } from '../better-auth/core-better-auth.service.j
|
|
|
24
25
|
import { ErrorCode } from '../error-code/error-codes.js';
|
|
25
26
|
import { getPersistenceRuntime } from '../../common/persistence/persistence-runtime.registry.js';
|
|
26
27
|
import { getBetterAuthSqlStore } from '../better-auth/core-better-auth-sql.registry.js';
|
|
28
|
+
import { isSystemSetupTokenValid, resolveSystemSetupHttpInit, SYSTEM_SETUP_TOKEN_HEADER, } from './system-setup-http-init.helper.js';
|
|
27
29
|
const SETUP_LOCK_COLLECTION = SYSTEM_SETUP_LOCK_COLLECTION;
|
|
28
30
|
const INITIAL_ADMIN_CLAIM_STALE_AFTER_MS = SYSTEM_SETUP_CLAIM_STALE_AFTER_MS;
|
|
29
31
|
let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupService {
|
|
@@ -40,23 +42,14 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
40
42
|
this.configService = configService;
|
|
41
43
|
}
|
|
42
44
|
async onApplicationBootstrap() {
|
|
43
|
-
|
|
45
|
+
await this.createInitialAdminFromConfig();
|
|
46
|
+
await this.reportSetupReachability();
|
|
47
|
+
}
|
|
48
|
+
async createInitialAdminFromConfig() {
|
|
49
|
+
const initialAdmin = this.usableInitialAdmin({ warn: true });
|
|
44
50
|
if (!initialAdmin) {
|
|
45
51
|
return;
|
|
46
52
|
}
|
|
47
|
-
if (!initialAdmin.email || !initialAdmin.password) {
|
|
48
|
-
const missing = [!initialAdmin.email && 'email', !initialAdmin.password && 'password'].filter(Boolean).join(', ');
|
|
49
|
-
this.logger.warn(`Incomplete initialAdmin config - missing: ${missing}. Auto-creation skipped.`);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if (!isEmail(initialAdmin.email)) {
|
|
53
|
-
this.logger.warn(`Invalid initialAdmin email format: "${initialAdmin.email}". Auto-creation skipped.`);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (!initialAdmin.password.trim()) {
|
|
57
|
-
this.logger.warn('Empty initialAdmin password. Auto-creation skipped.');
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
53
|
const status = await this.getSetupStatus();
|
|
61
54
|
if (!status.needsSetup) {
|
|
62
55
|
return;
|
|
@@ -82,6 +75,96 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
82
75
|
}
|
|
83
76
|
}
|
|
84
77
|
}
|
|
78
|
+
usableInitialAdmin(options) {
|
|
79
|
+
const initialAdmin = this.configService.configFastButReadOnly?.systemSetup?.initialAdmin;
|
|
80
|
+
const skip = (message) => {
|
|
81
|
+
if (options?.warn) {
|
|
82
|
+
this.logger.warn(message);
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
};
|
|
86
|
+
if (!initialAdmin) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
if (!initialAdmin.email || !initialAdmin.password) {
|
|
90
|
+
const missing = [!initialAdmin.email && 'email', !initialAdmin.password && 'password'].filter(Boolean).join(', ');
|
|
91
|
+
return skip(`Incomplete initialAdmin config - missing: ${missing}. Auto-creation skipped.`);
|
|
92
|
+
}
|
|
93
|
+
if (!isEmail(initialAdmin.email)) {
|
|
94
|
+
return skip(`Invalid initialAdmin email format: "${initialAdmin.email}". Auto-creation skipped.`);
|
|
95
|
+
}
|
|
96
|
+
if (typeof initialAdmin.password !== 'string') {
|
|
97
|
+
return skip(`initialAdmin password is a ${typeof initialAdmin.password}, not a string (an all-digit ENV value is ` +
|
|
98
|
+
'converted to a number). Auto-creation skipped.');
|
|
99
|
+
}
|
|
100
|
+
if (!initialAdmin.password.trim()) {
|
|
101
|
+
return skip('Empty initialAdmin password. Auto-creation skipped.');
|
|
102
|
+
}
|
|
103
|
+
return initialAdmin;
|
|
104
|
+
}
|
|
105
|
+
currentEnv() {
|
|
106
|
+
return this.configService.configFastButReadOnly?.env ?? process.env.NODE_ENV;
|
|
107
|
+
}
|
|
108
|
+
getHttpInitPolicy() {
|
|
109
|
+
return resolveSystemSetupHttpInit(this.configService.configFastButReadOnly?.systemSetup?.httpInit, this.currentEnv());
|
|
110
|
+
}
|
|
111
|
+
assertHttpInitAllowed(token) {
|
|
112
|
+
const policy = this.getHttpInitPolicy();
|
|
113
|
+
if (!policy.enabled) {
|
|
114
|
+
throw new ForbiddenException(ErrorCode.SYSTEM_SETUP_HTTP_INIT_DISABLED);
|
|
115
|
+
}
|
|
116
|
+
if (policy.tokenRequired && !isSystemSetupTokenValid(policy.token, token)) {
|
|
117
|
+
throw new ForbiddenException(ErrorCode.SYSTEM_SETUP_TOKEN_INVALID);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async reportSetupReachability() {
|
|
121
|
+
const policy = this.getHttpInitPolicy();
|
|
122
|
+
if (policy.problem) {
|
|
123
|
+
this.logger.error(`POST /system-setup/init stays closed: ${policy.problem}. Set a token of at least 16 characters ` +
|
|
124
|
+
'(NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN), or systemSetup.httpInit: true to open it without one.');
|
|
125
|
+
}
|
|
126
|
+
this.warnAboutIgnoredEnvironmentNames();
|
|
127
|
+
if (isLocalEnv(this.currentEnv()) || this.usableInitialAdmin() || (policy.enabled && policy.tokenRequired)) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
let needsSetup;
|
|
131
|
+
try {
|
|
132
|
+
needsSetup = (await this.getSetupStatus()).needsSetup;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
this.logger.warn(`Could not check whether initial setup is needed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (!needsSetup) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const env = this.currentEnv() ?? '(not set)';
|
|
142
|
+
if (!policy.enabled) {
|
|
143
|
+
this.logger.error(`No users exist and this instance cannot be set up: environment "${env}" closes POST /system-setup/init, ` +
|
|
144
|
+
'and no initialAdmin is configured. Set NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL and ' +
|
|
145
|
+
'NSC__SYSTEM_SETUP__INITIAL_ADMIN__PASSWORD (created on the next start), or open the HTTP init explicitly ' +
|
|
146
|
+
'with NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN=<secret of at least 16 characters> ' +
|
|
147
|
+
`(sent as the "${SYSTEM_SETUP_TOKEN_HEADER}" header).`);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.logger.warn(`No users exist and POST /system-setup/init is open without a token in environment "${env}": whoever reaches ` +
|
|
151
|
+
'the API first becomes the administrator. Prefer NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL / __PASSWORD, or ' +
|
|
152
|
+
'protect the init with NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN.');
|
|
153
|
+
}
|
|
154
|
+
warnAboutIgnoredEnvironmentNames() {
|
|
155
|
+
for (const key of Object.keys(process.env)) {
|
|
156
|
+
if (!key.startsWith('NSC__')) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const segments = key.slice('NSC__'.length).split('__');
|
|
160
|
+
if (segments[0]?.replace(/_/g, '').toLowerCase() !== 'systemsetup' ||
|
|
161
|
+
!segments.some((s) => /[a-z][A-Z]/.test(s))) {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
const corrected = `NSC__${segments.map((s) => s.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toUpperCase()).join('__')}`;
|
|
165
|
+
this.logger.warn(`Environment variable ${key} is not read (camelCase segment). Use ${corrected} instead.`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
85
168
|
async claimInitialAdminSetup() {
|
|
86
169
|
const locks = await this.setupLocks();
|
|
87
170
|
return locks.tryAcquire(SYSTEM_SETUP_LOCK_KEY, this.claimOwner, INITIAL_ADMIN_CLAIM_STALE_AFTER_MS / 1000);
|
|
@@ -94,6 +177,17 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
94
177
|
this.logger.warn(`Failed to release initial admin setup claim: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
95
178
|
}
|
|
96
179
|
}
|
|
180
|
+
async rollbackInitialAdmin(context, iamUserId, email) {
|
|
181
|
+
try {
|
|
182
|
+
await context.internalAdapter.deleteUser(iamUserId);
|
|
183
|
+
this.logger.warn(`Initial admin creation failed; the partially created user ${email} was removed again`);
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
this.logger.error(`Initial admin creation failed and the partially created user ${email} could not be removed ` +
|
|
187
|
+
`(${error instanceof Error ? error.message : 'Unknown error'}). Remove that user and its accounts from ` +
|
|
188
|
+
'"users" and "account", otherwise initial setup stays refused because a user exists.');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
97
191
|
async setupLocks() {
|
|
98
192
|
return ((await defaultSqlLockStore('system-setup')) ??
|
|
99
193
|
systemSetupMongoLocks(this.connection.collection(SETUP_LOCK_COLLECTION)));
|
|
@@ -111,8 +205,11 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
111
205
|
}
|
|
112
206
|
async getSetupStatus() {
|
|
113
207
|
const userCount = await this.countUsers();
|
|
208
|
+
const httpInit = this.getHttpInitPolicy();
|
|
114
209
|
return {
|
|
115
210
|
betterAuthEnabled: this.betterAuthService.isEnabled(),
|
|
211
|
+
httpInitEnabled: httpInit.enabled,
|
|
212
|
+
httpInitTokenRequired: httpInit.enabled && httpInit.tokenRequired,
|
|
116
213
|
needsSetup: userCount === 0,
|
|
117
214
|
};
|
|
118
215
|
}
|
|
@@ -138,8 +235,10 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
138
235
|
`${INITIAL_ADMIN_CLAIM_STALE_AFTER_MS / 60_000} minutes.`);
|
|
139
236
|
throw new ForbiddenException(ErrorCode.SYSTEM_SETUP_NOT_AVAILABLE);
|
|
140
237
|
}
|
|
238
|
+
let createdIamUserId;
|
|
239
|
+
let context;
|
|
141
240
|
try {
|
|
142
|
-
|
|
241
|
+
context = await authInstance.$context;
|
|
143
242
|
const normalizedPassword = this.userMapper.normalizePasswordForIam(input.password);
|
|
144
243
|
const iamUser = await context.internalAdapter.createUser({
|
|
145
244
|
email: input.email,
|
|
@@ -149,6 +248,7 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
149
248
|
if (!iamUser) {
|
|
150
249
|
throw new Error('Failed to create IAM user');
|
|
151
250
|
}
|
|
251
|
+
createdIamUserId = iamUser.id;
|
|
152
252
|
const hashedPassword = await context.password.hash(normalizedPassword);
|
|
153
253
|
const credentialIssuer = legacyCredentialAccountIssuer();
|
|
154
254
|
await context.internalAdapter.linkAccount({
|
|
@@ -185,6 +285,9 @@ let CoreSystemSetupService = CoreSystemSetupService_1 = class CoreSystemSetupSer
|
|
|
185
285
|
};
|
|
186
286
|
}
|
|
187
287
|
catch (error) {
|
|
288
|
+
if (createdIamUserId && context) {
|
|
289
|
+
await this.rollbackInitialAdmin(context, createdIamUserId, input.email);
|
|
290
|
+
}
|
|
188
291
|
await this.releaseInitialAdminSetupClaim();
|
|
189
292
|
if (error instanceof Error && (error.message?.includes('duplicate key') || error.message?.includes('E11000'))) {
|
|
190
293
|
throw new ForbiddenException(ErrorCode.SYSTEM_SETUP_NOT_AVAILABLE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-system-setup.service.js","sourceRoot":"","sources":["../../../../src/core/modules/system-setup/core-system-setup.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-system-setup.service.js","sourceRoot":"","sources":["../../../../src/core/modules/system-setup/core-system-setup.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const SYSTEM_SETUP_TOKEN_HEADER = "x-system-setup-token";
|
|
2
|
+
export declare const SYSTEM_SETUP_TOKEN_MIN_LENGTH = 16;
|
|
3
|
+
export interface ISystemSetupHttpInitPolicy {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
problem?: string;
|
|
6
|
+
source: 'config' | 'default';
|
|
7
|
+
token?: string;
|
|
8
|
+
tokenRequired: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveSystemSetupHttpInit(httpInit: unknown, env: string | undefined): ISystemSetupHttpInitPolicy;
|
|
11
|
+
export declare function isSystemSetupTokenValid(expected: string | undefined, provided: unknown): boolean;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from 'node:crypto';
|
|
2
|
+
import { isLocalEnv } from '../../common/helpers/cookies.helper.js';
|
|
3
|
+
export const SYSTEM_SETUP_TOKEN_HEADER = 'x-system-setup-token';
|
|
4
|
+
export const SYSTEM_SETUP_TOKEN_MIN_LENGTH = 16;
|
|
5
|
+
export function resolveSystemSetupHttpInit(httpInit, env) {
|
|
6
|
+
if (httpInit === true) {
|
|
7
|
+
return { enabled: true, source: 'config', tokenRequired: false };
|
|
8
|
+
}
|
|
9
|
+
if (httpInit === false) {
|
|
10
|
+
return { enabled: false, source: 'config', tokenRequired: false };
|
|
11
|
+
}
|
|
12
|
+
if (httpInit && typeof httpInit === 'object' && !Array.isArray(httpInit)) {
|
|
13
|
+
const { enabled, token } = httpInit;
|
|
14
|
+
if (enabled === false) {
|
|
15
|
+
return { enabled: false, source: 'config', tokenRequired: false };
|
|
16
|
+
}
|
|
17
|
+
const problem = tokenProblem(token);
|
|
18
|
+
if (problem) {
|
|
19
|
+
return { enabled: false, problem, source: 'config', tokenRequired: false };
|
|
20
|
+
}
|
|
21
|
+
return { enabled: true, source: 'config', token: token, tokenRequired: true };
|
|
22
|
+
}
|
|
23
|
+
return { enabled: isLocalEnv(env), source: 'default', tokenRequired: false };
|
|
24
|
+
}
|
|
25
|
+
export function isSystemSetupTokenValid(expected, provided) {
|
|
26
|
+
if (typeof expected !== 'string' || !expected || typeof provided !== 'string' || !provided) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const digest = (value) => createHash('sha256').update(value, 'utf8').digest();
|
|
30
|
+
return timingSafeEqual(digest(expected), digest(provided));
|
|
31
|
+
}
|
|
32
|
+
function tokenProblem(token) {
|
|
33
|
+
if (token === undefined || token === null) {
|
|
34
|
+
return 'systemSetup.httpInit is an object without a token';
|
|
35
|
+
}
|
|
36
|
+
if (typeof token !== 'string') {
|
|
37
|
+
return (`systemSetup.httpInit.token is a ${typeof token}, not a string — an empty or all-digit ` +
|
|
38
|
+
'NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN is converted to a number; use a token with letters');
|
|
39
|
+
}
|
|
40
|
+
if (token.trim().length < SYSTEM_SETUP_TOKEN_MIN_LENGTH) {
|
|
41
|
+
return `systemSetup.httpInit.token is shorter than ${SYSTEM_SETUP_TOKEN_MIN_LENGTH} characters`;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=system-setup-http-init.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-setup-http-init.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/system-setup/system-setup-http-init.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAUpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAWhE,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAsDhD,MAAM,UAAU,0BAA0B,CAAC,QAAiB,EAAE,GAAuB;IACnF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAkD,CAAC;QAC9E,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAC7E,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAe,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC;AAUD,MAAM,UAAU,uBAAuB,CAAC,QAA4B,EAAE,QAAiB;IACrF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IACtF,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC;AAGD,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,mDAAmD,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CACL,mCAAmC,OAAO,KAAK,yCAAyC;YACxF,wFAAwF,CACzF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;QACxD,OAAO,8CAA8C,6BAA6B,aAAa,CAAC;IAClG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -215,6 +215,7 @@ export * from './core/modules/permissions/permissions-scanner.js';
|
|
|
215
215
|
export * from './core/modules/system-setup/core-system-setup.controller.js';
|
|
216
216
|
export * from './core/modules/system-setup/core-system-setup.module.js';
|
|
217
217
|
export * from './core/modules/system-setup/core-system-setup.service.js';
|
|
218
|
+
export * from './core/modules/system-setup/system-setup-http-init.helper.js';
|
|
218
219
|
export * from './core/modules/sync/core-sync-base.controller.js';
|
|
219
220
|
export * from './core/modules/sync/core-sync.constants.js';
|
|
220
221
|
export * from './core/modules/sync/core-sync.controller.js';
|
package/dist/index.js
CHANGED
|
@@ -214,6 +214,7 @@ export * from './core/modules/permissions/permissions-scanner.js';
|
|
|
214
214
|
export * from './core/modules/system-setup/core-system-setup.controller.js';
|
|
215
215
|
export * from './core/modules/system-setup/core-system-setup.module.js';
|
|
216
216
|
export * from './core/modules/system-setup/core-system-setup.service.js';
|
|
217
|
+
export * from './core/modules/system-setup/system-setup-http-init.helper.js';
|
|
217
218
|
export * from './core/modules/sync/core-sync-base.controller.js';
|
|
218
219
|
export * from './core/modules/sync/core-sync.constants.js';
|
|
219
220
|
export * from './core/modules/sync/core-sync.controller.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,8 @@ export declare const ErrorCode: {
|
|
|
71
71
|
SYSTEM_SETUP_NOT_AVAILABLE: string;
|
|
72
72
|
SYSTEM_SETUP_DISABLED: string;
|
|
73
73
|
SYSTEM_SETUP_BETTERAUTH_REQUIRED: string;
|
|
74
|
+
SYSTEM_SETUP_HTTP_INIT_DISABLED: string;
|
|
75
|
+
SYSTEM_SETUP_TOKEN_INVALID: string;
|
|
74
76
|
AI_NO_CONNECTION: string;
|
|
75
77
|
AI_CONNECTION_DISABLED: string;
|
|
76
78
|
AI_CONNECTION_NOT_AVAILABLE: string;
|
|
@@ -49,9 +49,9 @@ New module for creating the first admin user on fresh deployments, especially us
|
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
# .env or Docker environment
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL=admin@example.com
|
|
53
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__PASSWORD=YourSecurePassword123!
|
|
54
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__NAME=Admin # optional
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Or in `config.env.ts`:
|
|
@@ -190,8 +190,8 @@ betterAuth: {
|
|
|
190
190
|
|
|
191
191
|
```bash
|
|
192
192
|
# .env
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL=admin@example.com
|
|
194
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__PASSWORD=YourSecurePassword123!
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
### Step 4: Build and Test
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Migration Guide: 12.3.1 → 12.3.2
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
| Category | Details |
|
|
6
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
7
|
+
| **New Features** | Optional Reply-To for outgoing mail: `email.defaultReplyTo` and a per-call `replyTo` (§1) |
|
|
8
|
+
| **Breaking Changes** | None |
|
|
9
|
+
| **Migration Effort** | None. Set `email.defaultReplyTo` only if answers to your mail should go to another address (§1) |
|
|
10
|
+
|
|
11
|
+
## Quick Migration
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pnpm add @lenne.tech/nest-server@12.3.2
|
|
15
|
+
pnpm run update # nest-server-starter based projects
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Vendor-mode projects pick it up with the core update (`/lt-dev:backend:update-nest-server-core`).
|
|
19
|
+
|
|
20
|
+
## 1. Reply-To for outgoing mail
|
|
21
|
+
|
|
22
|
+
`EmailService.sendMail()` can set a `Reply-To` header, so a recipient's answer goes to another address than the
|
|
23
|
+
sender, e.g. a shared support mailbox while mail goes out from `noreply@…`. Nothing changes until you set it.
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
// config.env.ts
|
|
27
|
+
email: {
|
|
28
|
+
defaultSender: { email: 'noreply@example.com', name: 'Example' },
|
|
29
|
+
defaultReplyTo: 'support@example.com', // or '"Example Support" <support@example.com>'
|
|
30
|
+
},
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
As an environment variable:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
NSC__EMAIL__DEFAULT_REPLY_TO=support@example.com
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
A call can override it, or send one mail without it:
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
await this.emailService.sendMail(to, subject, { replyTo: 'sales@example.com', htmlTemplate, templateData });
|
|
43
|
+
await this.emailService.sendMail(to, subject, { replyTo: false, htmlTemplate, templateData });
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The default applies to every mail the service sends over SMTP, Better-Auth's verification and password-reset mail
|
|
47
|
+
included. Mail sent through Brevo (`brevo.apiKey`) or Mailjet is not affected: their templates carry their own
|
|
48
|
+
reply-to. A value that is not a string is ignored with one warning rather than stopping the mail.
|
|
49
|
+
|
|
50
|
+
## Module Documentation
|
|
51
|
+
|
|
52
|
+
- Configuration reference: `email.defaultReplyTo` in `FRAMEWORK-API.md` (`IServerOptions.email`)
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Migration Guide: 12.3.x → 12.4.x
|
|
2
|
+
|
|
3
|
+
## 12.4.0 contains breaking changes
|
|
4
|
+
|
|
5
|
+
The version number moves only the MINOR digit (the MAJOR follows NestJS). Read §1 before you update: a deployed
|
|
6
|
+
instance that creates its first administrator through `POST /system-setup/init` (a setup page in the frontend) is
|
|
7
|
+
refused from now on until it is configured.
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
| Category | Details |
|
|
12
|
+
|---|---|
|
|
13
|
+
| **Breaking Changes** | `POST /system-setup/init` is closed outside `local`, `ci` and `e2e` unless `systemSetup.httpInit` opens it (§1) |
|
|
14
|
+
| **New Features** | `systemSetup.httpInit` (`true` or `{ token }`), the `X-System-Setup-Token` header, `httpInitEnabled` / `httpInitTokenRequired` in `GET /system-setup/status`, error codes `LTNS_0053` / `LTNS_0054`, a boot report for a deployment that cannot be set up (§1) |
|
|
15
|
+
| **Bugfixes** | A deployed instance without `initialAdmin` could be taken over through the anonymous init (§1). A creation that failed after the user was written left a user without the admin role behind and locked the setup for good (§2). The documented ENV names for `initialAdmin` were never read (§3) |
|
|
16
|
+
| **Migration Effort** | None for a deployment that provisions its first admin through `initialAdmin`, and none locally. A deployed stage set up through the UI: one ENV variable (§1). A project using the camelCase ENV names: rename them (§3) |
|
|
17
|
+
|
|
18
|
+
## Quick Migration
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pnpm add @lenne.tech/nest-server@12.4.0
|
|
22
|
+
pnpm run update # nest-server-starter based projects: aligns the pins the framework raised
|
|
23
|
+
pnpm run build
|
|
24
|
+
pnpm test
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Vendor mode**: run `/lt-dev:backend:update-nest-server-core` as usual.
|
|
28
|
+
|
|
29
|
+
Local development and the e2e suites of a starter-based project keep working without a change: `local`, `ci` and
|
|
30
|
+
`e2e` keep the init open.
|
|
31
|
+
|
|
32
|
+
## 1. The HTTP init is fail-closed outside the local environments
|
|
33
|
+
|
|
34
|
+
`POST /system-setup/init` is anonymous (`S_EVERYONE`). Until 12.4.0 its only guard was "no user exists yet", in every
|
|
35
|
+
environment, so every deployed instance that went live without `systemSetup.initialAdmin` could be taken over by
|
|
36
|
+
whoever called the route before the first person signed up — an administrator account for anybody who found the API.
|
|
37
|
+
|
|
38
|
+
**What changes:** outside `local`, `ci` and `e2e` the init answers **403 `LTNS_0053`** unless `systemSetup.httpInit`
|
|
39
|
+
opens it. The environment is the configured `env` (else `NODE_ENV`); the deployed `develop` and `test` stages of a
|
|
40
|
+
starter-based project, `production`, `staging` and any unknown or missing name count as deployed.
|
|
41
|
+
|
|
42
|
+
| `systemSetup.httpInit` | `local` / `ci` / `e2e` | every other environment |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| not set | open | **closed** — 403 `LTNS_0053` |
|
|
45
|
+
| `true` | open | open, without a token |
|
|
46
|
+
| `{ token: '<at least 16 characters>' }` | open, token required | open, token required — 403 `LTNS_0054` without it |
|
|
47
|
+
| `false` / `{ enabled: false }` | closed | closed |
|
|
48
|
+
|
|
49
|
+
`systemSetup.initialAdmin` is not affected: the configured admin is still created at boot in every environment.
|
|
50
|
+
|
|
51
|
+
**What to do on a deployed stage**, preferred first:
|
|
52
|
+
|
|
53
|
+
1. **Provision the admin via ENV** — created on the next start, no setup page needed:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL=admin@example.com
|
|
57
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__PASSWORD=<strong password>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
2. **Open the init with a token** when the setup must happen through the UI:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN=<secret of at least 16 characters, with letters>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The frontend sends it in the `X-System-Setup-Token` header. Remove the variable once the admin exists.
|
|
67
|
+
|
|
68
|
+
3. **Open the init without a token** (`NSC__SYSTEM_SETUP__HTTP_INIT=true`) only where nobody else can reach the API
|
|
69
|
+
before you do: whoever calls it first becomes the administrator. The boot warns about it while no user exists.
|
|
70
|
+
|
|
71
|
+
**A misconfiguration closes, it never opens.** `httpInit: { token: process.env.SETUP_TOKEN }` with the variable unset,
|
|
72
|
+
an empty or short token, or an empty / all-digit `NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN` (the environment reader turns
|
|
73
|
+
it into a number) keep the init closed and log an error at boot naming the problem. A string `"true"` from
|
|
74
|
+
`NEST_SERVER_CONFIG` counts as not set.
|
|
75
|
+
|
|
76
|
+
**Frontend:** `GET /system-setup/status` additionally returns `httpInitEnabled` and `httpInitTokenRequired`, always,
|
|
77
|
+
whatever `needsSetup` says. Show the setup form only when `needsSetup && httpInitEnabled`, with a token field when
|
|
78
|
+
`httpInitTokenRequired`. A backend older than 12.4.0 sends neither field; treat that as "available" (as before).
|
|
79
|
+
`@lenne.tech/nuxt-extensions` handles this from its next release on.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
const { needsSetup, httpInitEnabled = true, httpInitTokenRequired = false } = await status.json();
|
|
83
|
+
if (needsSetup && httpInitEnabled) {
|
|
84
|
+
await fetch('/system-setup/init', {
|
|
85
|
+
body: JSON.stringify({ email, name, password }),
|
|
86
|
+
headers: {
|
|
87
|
+
'Content-Type': 'application/json',
|
|
88
|
+
...(httpInitTokenRequired ? { 'X-System-Setup-Token': setupToken } : {}),
|
|
89
|
+
},
|
|
90
|
+
method: 'POST',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Boot report.** A deployed instance that starts with zero users, no usable `initialAdmin` and a closed init now logs
|
|
96
|
+
an error that names both ways in — before, it stayed silent until somebody tried to sign in.
|
|
97
|
+
|
|
98
|
+
**Swagger:** while the init is closed, `POST /system-setup/init` is left out of the document `setupSwagger()` builds.
|
|
99
|
+
|
|
100
|
+
**A project controller** that extends `CoreSystemSetupController` and overrides `createInitialAdmin()` must call
|
|
101
|
+
`this.systemSetupService.assertHttpInitAllowed(token)` first (the token read with
|
|
102
|
+
`@Headers(SYSTEM_SETUP_TOKEN_HEADER)`); otherwise the override keeps the init open in every environment. A project's
|
|
103
|
+
own endpoint that calls `CoreSystemSetupService.createInitialAdmin()` directly does the same.
|
|
104
|
+
|
|
105
|
+
## 2. A failed creation no longer leaves a user behind
|
|
106
|
+
|
|
107
|
+
When a step after creating the user failed (linking the credential account, the user sync, the role update, the legacy
|
|
108
|
+
password), only the setup claim was released. The user stayed — without the admin role — so `needsSetup` turned
|
|
109
|
+
`false` and the init was refused for good: a deployment with a user and no administrator, recoverable only by editing
|
|
110
|
+
the database.
|
|
111
|
+
|
|
112
|
+
**What changes:** the partially created user is removed again (`internalAdapter.deleteUser()`: sessions, accounts and
|
|
113
|
+
the `users` row), `needsSetup` stays `true`, and the setup can be retried. The caller still gets 403 `LTNS_0050`, and
|
|
114
|
+
the server log names the original failure. If the removal itself fails, the log says which user to delete by hand.
|
|
115
|
+
|
|
116
|
+
**What to check on an instance that hit this before 12.4.0:** a `users` row without the admin role and no
|
|
117
|
+
administrator anywhere. Delete that row and its `account` rows, then provision the admin as in §1.
|
|
118
|
+
|
|
119
|
+
## 3. The ENV names for `initialAdmin`
|
|
120
|
+
|
|
121
|
+
The README, the integration checklist, the interface documentation and the 11.14.0 migration guide named the
|
|
122
|
+
variables `NSC__systemSetup__initialAdmin__email` / `__password` / `__name`. The environment reader lowercases every
|
|
123
|
+
segment it does not split at `_`, so those land under `systemsetup.initialadmin` — a key nothing reads — and no admin
|
|
124
|
+
was ever created from them.
|
|
125
|
+
|
|
126
|
+
**The names that work:**
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__EMAIL=admin@example.com
|
|
130
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__PASSWORD=<strong password>
|
|
131
|
+
NSC__SYSTEM_SETUP__INITIAL_ADMIN__NAME=Admin # optional
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Since 12.4.0 the boot warns about a `NSC__systemSetup__…` variable and names its correct spelling (names only, never
|
|
135
|
+
values). The environment reader itself is unchanged: it applies to every setting of every project.
|
|
136
|
+
|
|
137
|
+
## Compatibility Notes
|
|
138
|
+
|
|
139
|
+
| Pattern | Status |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `systemSetup.initialAdmin` via config or (SCREAMING_SNAKE) ENV | Unchanged |
|
|
142
|
+
| Setup page used locally / in e2e suites (`local`, `ci`, `e2e`) | Unchanged |
|
|
143
|
+
| Setup page used on a deployed stage without configuration | **403 `LTNS_0053`** — see §1 |
|
|
144
|
+
| `systemSetup: { enabled: false }` | Unchanged (no endpoints at all) |
|
|
145
|
+
| `CoreSystemSetupService.createInitialAdmin()` called by project code | Not gated — call `assertHttpInitAllowed()` first on an HTTP path |
|
|
146
|
+
| A frontend reading `GET /system-setup/status` | Two additional fields; existing fields unchanged |
|
|
147
|
+
|
|
148
|
+
## Troubleshooting
|
|
149
|
+
|
|
150
|
+
| Symptom | Cause | Fix |
|
|
151
|
+
|---|---|---|
|
|
152
|
+
| 403 `LTNS_0053` on a deployed stage | The init is closed there by default | `initialAdmin` via ENV, or `NSC__SYSTEM_SETUP__HTTP_INIT__TOKEN` (§1) |
|
|
153
|
+
| 403 `LTNS_0054` | Token missing or different | Send the configured value in `X-System-Setup-Token` |
|
|
154
|
+
| Boot error "POST /system-setup/init stays closed" | The token configuration is unusable (missing, empty, short, a number) | Set a token of at least 16 characters with letters |
|
|
155
|
+
| Boot error "No users exist and this instance cannot be set up" | Deployed, no users, no usable `initialAdmin`, init closed | One of the ways in §1 |
|
|
156
|
+
| Boot warning "Environment variable NSC__systemSetup__… is not read" | camelCase ENV names | Rename as in §3 |
|
|
157
|
+
|
|
158
|
+
## Module Documentation
|
|
159
|
+
|
|
160
|
+
### System Setup
|
|
161
|
+
|
|
162
|
+
- [README](../src/core/modules/system-setup/README.md) — "HTTP init (`systemSetup.httpInit`)"
|
|
163
|
+
- [Integration Checklist](../src/core/modules/system-setup/INTEGRATION-CHECKLIST.md) — Steps 1 and 1b
|
|
164
|
+
|
|
165
|
+
## References
|
|
166
|
+
|
|
167
|
+
- `src/core/modules/system-setup/system-setup-http-init.helper.ts` — `resolveSystemSetupHttpInit()`, `isSystemSetupTokenValid()`
|
|
168
|
+
- `src/core/modules/system-setup/core-system-setup.service.ts` — `assertHttpInitAllowed()`, `reportSetupReachability()`, `rollbackInitialAdmin()`
|
|
169
|
+
- `.claude/rules/configurable-features.md` — "System Setup" row
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lenne.tech/nest-server",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Server framework in TypeScript on top of NestJS: GraphQL and REST APIs on MongoDB, PostgreSQL, MySQL or MariaDB, with authentication, field-level permissions, multi-tenancy, offline sync and an AI assistant.",
|
|
6
6
|
"keywords": [
|