@trokky/trokky 3.5.6 → 3.6.1
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/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +2 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js +23 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.js +7 -5
- package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -1
- package/dist/core/adapters/registry.d.ts +6 -0
- package/dist/core/adapters/registry.d.ts.map +1 -1
- package/dist/core/adapters/registry.js +39 -6
- package/dist/core/adapters/registry.js.map +1 -1
- package/dist/core/core/engine.d.ts +24 -1
- package/dist/core/core/engine.d.ts.map +1 -1
- package/dist/core/core/engine.js +67 -8
- package/dist/core/core/engine.js.map +1 -1
- package/dist/core/diagnostics/doctor.d.ts +50 -0
- package/dist/core/diagnostics/doctor.d.ts.map +1 -0
- package/dist/core/diagnostics/doctor.js +160 -0
- package/dist/core/diagnostics/doctor.js.map +1 -0
- package/dist/core/schema/registry.d.ts +12 -0
- package/dist/core/schema/registry.d.ts.map +1 -1
- package/dist/core/schema/registry.js +113 -0
- package/dist/core/schema/registry.js.map +1 -1
- package/dist/core/security/auth.d.ts +0 -4
- package/dist/core/security/auth.d.ts.map +1 -1
- package/dist/core/security/auth.js +0 -11
- package/dist/core/security/auth.js.map +1 -1
- package/dist/core/security/jwt-secret.d.ts +36 -0
- package/dist/core/security/jwt-secret.d.ts.map +1 -0
- package/dist/core/security/jwt-secret.js +93 -0
- package/dist/core/security/jwt-secret.js.map +1 -0
- package/dist/core/services/document-service.d.ts +11 -2
- package/dist/core/services/document-service.d.ts.map +1 -1
- package/dist/core/services/document-service.js +4 -2
- package/dist/core/services/document-service.js.map +1 -1
- package/dist/core/services/mfa-service.d.ts.map +1 -1
- package/dist/core/services/mfa-service.js +2 -7
- package/dist/core/services/mfa-service.js.map +1 -1
- package/dist/core/services/user-service.d.ts.map +1 -1
- package/dist/core/services/user-service.js +4 -1
- package/dist/core/services/user-service.js.map +1 -1
- package/dist/core/types/index.d.ts +11 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/storage-adapters.d.ts +6 -0
- package/dist/core/types/storage-adapters.d.ts.map +1 -1
- package/dist/core/validation/validator.d.ts +8 -1
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +33 -21
- package/dist/core/validation/validator.js.map +1 -1
- package/dist/i18n/config.d.ts +2 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/i18n/locales/en/studio.json +1 -0
- package/dist/i18n/locales/fr/studio.json +1 -0
- package/dist/integrations/express/config.d.ts +11 -0
- package/dist/integrations/express/config.d.ts.map +1 -1
- package/dist/integrations/express/config.js +4 -2
- package/dist/integrations/express/config.js.map +1 -1
- package/dist/integrations/express/integration.d.ts.map +1 -1
- package/dist/integrations/express/integration.js +96 -79
- package/dist/integrations/express/integration.js.map +1 -1
- package/dist/integrations/express/persistence.d.ts +38 -0
- package/dist/integrations/express/persistence.d.ts.map +1 -0
- package/dist/integrations/express/persistence.js +97 -0
- package/dist/integrations/express/persistence.js.map +1 -0
- package/dist/routes/handlers/documents.d.ts.map +1 -1
- package/dist/routes/handlers/documents.js +13 -4
- package/dist/routes/handlers/documents.js.map +1 -1
- package/dist/routes/handlers/index.d.ts +1 -0
- package/dist/routes/handlers/index.d.ts.map +1 -1
- package/dist/routes/handlers/index.js +1 -0
- package/dist/routes/handlers/index.js.map +1 -1
- package/dist/routes/handlers/media.d.ts +7 -0
- package/dist/routes/handlers/media.d.ts.map +1 -1
- package/dist/routes/handlers/media.js +30 -1
- package/dist/routes/handlers/media.js.map +1 -1
- package/dist/routes/handlers/system.d.ts +14 -0
- package/dist/routes/handlers/system.d.ts.map +1 -0
- package/dist/routes/handlers/system.js +24 -0
- package/dist/routes/handlers/system.js.map +1 -0
- package/dist/routes/routes.d.ts.map +1 -1
- package/dist/routes/routes.js +7 -2
- package/dist/routes/routes.js.map +1 -1
- package/dist/structure/validation/schemas.d.ts +50 -50
- package/dist/types/oauth2.d.ts +1 -1
- package/dist/types/oauth2.d.ts.map +1 -1
- package/dist/types/oauth2.js +2 -0
- package/dist/types/oauth2.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `trokky doctor`: the checks behind GET /system/doctor.
|
|
3
|
+
*
|
|
4
|
+
* Each one answers a question that otherwise only shows up in a startup log nobody reads, or
|
|
5
|
+
* at the worst moment: is the signing key real, do the schemas say what their authors meant,
|
|
6
|
+
* will the content survive a redeploy, and can every stored document still be saved under the
|
|
7
|
+
* current rules. The report carries no secrets and no field values, only names, counts and ids.
|
|
8
|
+
*/
|
|
9
|
+
import { MIN_JWT_SECRET_LENGTH } from '../security/jwt-secret.js';
|
|
10
|
+
/** The scan stops here and says so, rather than tie up the database */
|
|
11
|
+
export const MAX_SCANNED_DOCUMENTS = 50_000;
|
|
12
|
+
/** Ids named per collection in a finding; the count covers the rest */
|
|
13
|
+
const EXAMPLE_IDS = 5;
|
|
14
|
+
/** Fields named per collection in a finding */
|
|
15
|
+
const EXAMPLE_FIELDS = 10;
|
|
16
|
+
export async function runDoctor(input) {
|
|
17
|
+
const checks = [
|
|
18
|
+
signingKeyCheck(input),
|
|
19
|
+
schemaCheck(input.schemaProblems),
|
|
20
|
+
storageCheck(input.storage),
|
|
21
|
+
await contentCheck(input),
|
|
22
|
+
];
|
|
23
|
+
const status = checks.some((c) => c.status === 'fail')
|
|
24
|
+
? 'fail'
|
|
25
|
+
: checks.some((c) => c.status === 'warn')
|
|
26
|
+
? 'warn'
|
|
27
|
+
: 'ok';
|
|
28
|
+
return { environment: input.environment, status, checkedAt: new Date().toISOString(), checks };
|
|
29
|
+
}
|
|
30
|
+
function signingKeyCheck({ signingKey }) {
|
|
31
|
+
const title = 'Signing key (JWT secret)';
|
|
32
|
+
if (signingKey.source === 'generated') {
|
|
33
|
+
return {
|
|
34
|
+
id: 'signing-key',
|
|
35
|
+
title,
|
|
36
|
+
status: 'warn',
|
|
37
|
+
details: [
|
|
38
|
+
'No JWT secret is set: this process signs with a random key, so every sign-in ends when it restarts ' +
|
|
39
|
+
"and replicas reject each other's tokens. Set TROKKY_JWT_SECRET. (Production refuses to start like this.)",
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (signingKey.length < MIN_JWT_SECRET_LENGTH) {
|
|
44
|
+
return {
|
|
45
|
+
id: 'signing-key',
|
|
46
|
+
title,
|
|
47
|
+
status: 'warn',
|
|
48
|
+
details: [`The JWT secret is ${signingKey.length} characters long; use at least ${MIN_JWT_SECRET_LENGTH} random characters.`],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return { id: 'signing-key', title, status: 'ok', details: [`Set, ${signingKey.length} characters.`] };
|
|
52
|
+
}
|
|
53
|
+
function schemaCheck(problems) {
|
|
54
|
+
const details = Object.entries(problems).flatMap(([schema, list]) => list.map((p) => `${schema}: ${p}`));
|
|
55
|
+
return {
|
|
56
|
+
id: 'schemas',
|
|
57
|
+
title: 'Schemas',
|
|
58
|
+
status: details.length > 0 ? 'warn' : 'ok',
|
|
59
|
+
details: details.length > 0 ? details : ['No unknown keys or field types.'],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function storageCheck(storage) {
|
|
63
|
+
const title = 'Storage persistence';
|
|
64
|
+
if (!storage.checked) {
|
|
65
|
+
return { id: 'storage', title, status: 'ok', details: [`Not checked: ${storage.reason ?? 'the check did not run'}.`] };
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
id: 'storage',
|
|
69
|
+
title,
|
|
70
|
+
status: storage.warnings.length > 0 ? 'warn' : 'ok',
|
|
71
|
+
details: storage.warnings.length > 0 ? storage.warnings : ['Every filesystem storage directory is on a mounted volume.'],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Every stored document validated under the current schema rules. A document that fails cannot
|
|
76
|
+
* be edited, published or restored until it is fixed, so these are failures, not warnings. A
|
|
77
|
+
* document with no _status is shown as unpublished, and a singleton in that state reads as null.
|
|
78
|
+
*/
|
|
79
|
+
async function contentCheck(input) {
|
|
80
|
+
const details = [];
|
|
81
|
+
let failures = 0;
|
|
82
|
+
let warnings = 0;
|
|
83
|
+
let scanned = 0;
|
|
84
|
+
let truncated = false;
|
|
85
|
+
for (const collection of input.collections) {
|
|
86
|
+
if (truncated)
|
|
87
|
+
break;
|
|
88
|
+
const invalidIds = [];
|
|
89
|
+
const fieldCounts = new Map();
|
|
90
|
+
const statuslessIds = [];
|
|
91
|
+
try {
|
|
92
|
+
// Ask for everything left in the budget: an adapter that caps its pages (Postgres and D1
|
|
93
|
+
// return at most 1000) is paged until it returns nothing, and one that reads the whole
|
|
94
|
+
// collection on every call (filesystem) is read once instead of once per page
|
|
95
|
+
for (let offset = 0;;) {
|
|
96
|
+
const page = await input.listDocuments(collection, MAX_SCANNED_DOCUMENTS - scanned, offset);
|
|
97
|
+
offset += page.length;
|
|
98
|
+
for (const document of page) {
|
|
99
|
+
const id = String(document._id ?? document.id ?? '?');
|
|
100
|
+
const result = input.validate(collection, document);
|
|
101
|
+
if (!result.valid) {
|
|
102
|
+
invalidIds.push(id);
|
|
103
|
+
// tags.0, tags.1 ... are one field: count the field, not every item
|
|
104
|
+
for (const field of new Set(result.errors.map((e) => e.field.replace(/\.\d+(?=\.|$)/g, '[]')))) {
|
|
105
|
+
fieldCounts.set(field, (fieldCounts.get(field) ?? 0) + 1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (document._status !== 'draft' && document._status !== 'published') {
|
|
109
|
+
statuslessIds.push(id);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
scanned += page.length;
|
|
113
|
+
if (page.length === 0)
|
|
114
|
+
break;
|
|
115
|
+
if (scanned >= MAX_SCANNED_DOCUMENTS) {
|
|
116
|
+
// Out of budget: it was cut short if this collection has more, or collections remain
|
|
117
|
+
const more = (await input.listDocuments(collection, 1, offset)).length > 0;
|
|
118
|
+
truncated = more || collection !== input.collections[input.collections.length - 1];
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const unreadable = (await input.listUnreadable?.(collection)) ?? [];
|
|
123
|
+
if (unreadable.length > 0) {
|
|
124
|
+
failures += unreadable.length;
|
|
125
|
+
details.push(`${collection}: ${unreadable.length} stored document(s) cannot be read at all and are left out of every ` +
|
|
126
|
+
`listing. Files: ${examples(unreadable)}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
warnings++;
|
|
131
|
+
details.push(`${collection}: could not be listed, so it was not checked.`);
|
|
132
|
+
}
|
|
133
|
+
if (invalidIds.length > 0) {
|
|
134
|
+
failures += invalidIds.length;
|
|
135
|
+
const fields = examples([...fieldCounts].map(([field, count]) => `${field} (${count})`), EXAMPLE_FIELDS);
|
|
136
|
+
details.push(`${collection}: ${invalidIds.length} document(s) fail validation, by field: ${fields}. ` +
|
|
137
|
+
`They cannot be saved until fixed. Ids: ${examples(invalidIds)}`);
|
|
138
|
+
}
|
|
139
|
+
if (statuslessIds.length > 0) {
|
|
140
|
+
warnings++;
|
|
141
|
+
details.push(`${collection}: ${statuslessIds.length} document(s) have no draft/published status and read as unpublished. ` +
|
|
142
|
+
`Ids: ${examples(statuslessIds)}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (truncated) {
|
|
146
|
+
warnings++;
|
|
147
|
+
details.push(`The scan stopped after ${MAX_SCANNED_DOCUMENTS} documents; the rest were not checked.`);
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
id: 'content',
|
|
151
|
+
title: 'Stored content',
|
|
152
|
+
status: failures > 0 ? 'fail' : warnings > 0 ? 'warn' : 'ok',
|
|
153
|
+
details: details.length > 0 ? details : [`Every document in ${input.collections.length} collection(s) is valid.`],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function examples(items, max = EXAMPLE_IDS) {
|
|
157
|
+
const shown = items.slice(0, max).join(', ');
|
|
158
|
+
return items.length > max ? `${shown} and ${items.length - max} more` : shown;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/core/diagnostics/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ContentSchema, TrokkyConfig } from '../types/index.js';
|
|
2
|
+
/** The field types the Studio registers (packages/studio/src/fields/builtin.ts). */
|
|
3
|
+
export declare const BUILTIN_FIELD_TYPES: string[];
|
|
2
4
|
export declare class SchemaRegistry {
|
|
3
5
|
private schemas;
|
|
6
|
+
/** What findSchemaProblems reported for each schema at registration, for trokky doctor */
|
|
7
|
+
private problems;
|
|
4
8
|
private config;
|
|
5
9
|
constructor(schemas: ContentSchema[] | string, config?: TrokkyConfig['features']);
|
|
6
10
|
private loadSchemas;
|
|
@@ -31,6 +35,8 @@ export declare class SchemaRegistry {
|
|
|
31
35
|
getSchemaNames(): string[];
|
|
32
36
|
registerSchema(schema: ContentSchema): void;
|
|
33
37
|
unregisterSchema(name: string): boolean;
|
|
38
|
+
/** Schema problems found at registration, by schema name; schemas without any are left out */
|
|
39
|
+
getSchemaProblems(): Record<string, string[]>;
|
|
34
40
|
}
|
|
35
41
|
/**
|
|
36
42
|
* Accept the array form of `fields` ([{ name, type, ... }]) at the top level of
|
|
@@ -38,4 +44,10 @@ export declare class SchemaRegistry {
|
|
|
38
44
|
* engine, validator and route handlers iterate over. Record form passes through.
|
|
39
45
|
*/
|
|
40
46
|
export declare function normalizeSchemaFields(schema: ContentSchema): ContentSchema;
|
|
47
|
+
/**
|
|
48
|
+
* Mistakes the schema parser lets through without a word: a top-level key it drops, and a field
|
|
49
|
+
* type nothing on the server or in the Studio knows (no validation, no editor). Each entry is a
|
|
50
|
+
* sentence naming the key or field, with a suggestion when one is close.
|
|
51
|
+
*/
|
|
52
|
+
export declare function findSchemaProblems(schema: ContentSchema, customFieldTypes?: string[]): string[];
|
|
41
53
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/schema/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/schema/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAkBpF,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,UAI/B,CAAA;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwC;IACvD,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,MAAM,CAA0B;gBAE5B,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC;IAWhF,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,yBAAyB;IAwBjC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA0C3B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAmHhC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuBpB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAI7C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,aAAa,IAAI,aAAa,EAAE;IAIhC,cAAc,IAAI,MAAM,EAAE;IAI1B,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK9C,8FAA8F;IACvF,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAGrD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAiB1E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAyCnG"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import { ContentSchemaSchema } from '../types/index.js';
|
|
2
2
|
import { isSingletonSchema } from './singleton.js';
|
|
3
|
+
import { createLogger } from '../utils/logger.js';
|
|
4
|
+
const logger = createLogger('core', 'SchemaRegistry');
|
|
5
|
+
/** Top-level schema keys the server keeps. Anything else is dropped when the schema is parsed. */
|
|
6
|
+
const SCHEMA_KEYS = ['name', 'type', 'title', 'description', 'singleton', 'fields'];
|
|
7
|
+
/** Near misses worth naming outright, beyond what spelling distance finds. */
|
|
8
|
+
const SCHEMA_KEY_HINTS = {
|
|
9
|
+
issingleton: 'singleton',
|
|
10
|
+
label: 'title',
|
|
11
|
+
displayname: 'title',
|
|
12
|
+
field: 'fields',
|
|
13
|
+
properties: 'fields',
|
|
14
|
+
};
|
|
15
|
+
/** The field types the Studio registers (packages/studio/src/fields/builtin.ts). */
|
|
16
|
+
export const BUILTIN_FIELD_TYPES = [
|
|
17
|
+
'string', 'text', 'email', 'url', 'password', 'slug', 'number', 'boolean', 'date',
|
|
18
|
+
'richtext', 'portable', 'media', 'image', 'video', 'audio', 'document', 'reference',
|
|
19
|
+
'array', 'object', 'color', 'icon', 'geoCoordinate', 'info',
|
|
20
|
+
];
|
|
3
21
|
export class SchemaRegistry {
|
|
4
22
|
schemas = new Map();
|
|
23
|
+
/** What findSchemaProblems reported for each schema at registration, for trokky doctor */
|
|
24
|
+
problems = new Map();
|
|
5
25
|
config;
|
|
6
26
|
constructor(schemas, config) {
|
|
7
27
|
this.config = config || {};
|
|
@@ -19,6 +39,16 @@ export class SchemaRegistry {
|
|
|
19
39
|
}
|
|
20
40
|
}
|
|
21
41
|
validateAndRegisterSchema(schema) {
|
|
42
|
+
const problems = findSchemaProblems(schema, this.config?.customFieldTypes ?? []);
|
|
43
|
+
this.problems.set(schema.name, problems);
|
|
44
|
+
if (problems.length > 0) {
|
|
45
|
+
if (this.config?.strictSchemas) {
|
|
46
|
+
throw new Error(`Invalid schema "${schema.name}" (strictSchemas):\n- ${problems.join('\n- ')}`);
|
|
47
|
+
}
|
|
48
|
+
for (const problem of problems) {
|
|
49
|
+
logger.warn(`Schema "${schema.name}": ${problem}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
22
52
|
try {
|
|
23
53
|
// Automatically inject auto-fields for document schemas based on configuration
|
|
24
54
|
let processedSchema = this.injectAutoSlugField(normalizeSchemaFields(schema));
|
|
@@ -219,8 +249,13 @@ export class SchemaRegistry {
|
|
|
219
249
|
this.validateAndRegisterSchema(schema);
|
|
220
250
|
}
|
|
221
251
|
unregisterSchema(name) {
|
|
252
|
+
this.problems.delete(name);
|
|
222
253
|
return this.schemas.delete(name);
|
|
223
254
|
}
|
|
255
|
+
/** Schema problems found at registration, by schema name; schemas without any are left out */
|
|
256
|
+
getSchemaProblems() {
|
|
257
|
+
return Object.fromEntries([...this.problems].filter(([, problems]) => problems.length > 0));
|
|
258
|
+
}
|
|
224
259
|
}
|
|
225
260
|
/**
|
|
226
261
|
* Accept the array form of `fields` ([{ name, type, ... }]) at the top level of
|
|
@@ -245,4 +280,82 @@ export function normalizeSchemaFields(schema) {
|
|
|
245
280
|
}
|
|
246
281
|
return { ...schema, fields: record };
|
|
247
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Mistakes the schema parser lets through without a word: a top-level key it drops, and a field
|
|
285
|
+
* type nothing on the server or in the Studio knows (no validation, no editor). Each entry is a
|
|
286
|
+
* sentence naming the key or field, with a suggestion when one is close.
|
|
287
|
+
*/
|
|
288
|
+
export function findSchemaProblems(schema, customFieldTypes = []) {
|
|
289
|
+
const problems = [];
|
|
290
|
+
for (const key of Object.keys(schema)) {
|
|
291
|
+
if (SCHEMA_KEYS.includes(key))
|
|
292
|
+
continue;
|
|
293
|
+
const hint = SCHEMA_KEY_HINTS[key.toLowerCase()] ?? closest(key, SCHEMA_KEYS);
|
|
294
|
+
problems.push(`unknown key "${key}" is ignored${hint ? ` (did you mean "${hint}"?)` : ''}. ` +
|
|
295
|
+
`A schema keeps only ${SCHEMA_KEYS.join(', ')}.`);
|
|
296
|
+
}
|
|
297
|
+
const knownTypes = [...BUILTIN_FIELD_TYPES, ...customFieldTypes];
|
|
298
|
+
const visit = (fields, path) => {
|
|
299
|
+
const entries = Array.isArray(fields)
|
|
300
|
+
? fields.map((field) => [field?.name ?? '?', field])
|
|
301
|
+
: fields && typeof fields === 'object'
|
|
302
|
+
? Object.entries(fields)
|
|
303
|
+
: [];
|
|
304
|
+
for (const [name, field] of entries) {
|
|
305
|
+
if (!field || typeof field !== 'object')
|
|
306
|
+
continue;
|
|
307
|
+
const fieldPath = path ? `${path}.${name}` : name;
|
|
308
|
+
const type = field.type;
|
|
309
|
+
if (typeof type === 'string' && !knownTypes.includes(type)) {
|
|
310
|
+
const hint = closest(type, knownTypes);
|
|
311
|
+
problems.push(`field "${fieldPath}" has type "${type}", which is not a built-in field type` +
|
|
312
|
+
`${hint ? ` (did you mean "${hint}"?)` : ''}. The server does not validate it and the ` +
|
|
313
|
+
'Studio has no editor for it. If it is a custom Studio field, list it in features.customFieldTypes.');
|
|
314
|
+
}
|
|
315
|
+
visit(field.fields, fieldPath);
|
|
316
|
+
const of = field.of;
|
|
317
|
+
if (of && typeof of === 'object') {
|
|
318
|
+
visit(Array.isArray(of) ? of : { '[]': of }, fieldPath);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
visit(schema.fields, '');
|
|
323
|
+
return problems;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* The candidate within two edits of `value` (case-insensitive), when there is exactly one best
|
|
327
|
+
* and the edits are less than half the word: `file` is two edits from `date`, but not a typo of it.
|
|
328
|
+
*/
|
|
329
|
+
function closest(value, candidates) {
|
|
330
|
+
let best;
|
|
331
|
+
let bestDistance = Infinity;
|
|
332
|
+
let tied = false;
|
|
333
|
+
for (const candidate of candidates) {
|
|
334
|
+
const distance = editDistance(value.toLowerCase(), candidate.toLowerCase());
|
|
335
|
+
if (distance < bestDistance) {
|
|
336
|
+
best = candidate;
|
|
337
|
+
bestDistance = distance;
|
|
338
|
+
tied = false;
|
|
339
|
+
}
|
|
340
|
+
else if (distance === bestDistance) {
|
|
341
|
+
tied = true;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (tied || bestDistance > 2 || bestDistance * 2 >= value.length)
|
|
345
|
+
return undefined;
|
|
346
|
+
return best;
|
|
347
|
+
}
|
|
348
|
+
function editDistance(a, b) {
|
|
349
|
+
const row = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
350
|
+
for (let i = 1; i <= a.length; i++) {
|
|
351
|
+
let diagonal = row[0];
|
|
352
|
+
row[0] = i;
|
|
353
|
+
for (let j = 1; j <= b.length; j++) {
|
|
354
|
+
const above = row[j];
|
|
355
|
+
row[j] = Math.min(row[j] + 1, row[j - 1] + 1, diagonal + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
356
|
+
diagonal = above;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return row[b.length];
|
|
360
|
+
}
|
|
248
361
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/schema/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/schema/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/security/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/security/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -260,15 +260,4 @@ export class AuthenticationService {
|
|
|
260
260
|
return parseInt(value, 10) * units[unit];
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
|
-
/**
|
|
264
|
-
* Default authentication configuration
|
|
265
|
-
*/
|
|
266
|
-
export const DEFAULT_AUTH_CONFIG = {
|
|
267
|
-
jwtSecret: process.env.TROKKY_JWT_SECRET || 'your-super-secret-jwt-key-change-in-production',
|
|
268
|
-
jwtExpiresIn: '2h', // 2 hours for access tokens
|
|
269
|
-
refreshTokenExpiresIn: '7d', // 7 days for refresh tokens
|
|
270
|
-
bcryptRounds: 12,
|
|
271
|
-
rateLimitAttempts: 5,
|
|
272
|
-
rateLimitWindow: 15 * 60 * 1000 // 15 minutes
|
|
273
|
-
};
|
|
274
263
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/security/auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/security/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the JWT signing key comes from, and what happens when it is missing.
|
|
3
|
+
*
|
|
4
|
+
* The key signs every session and API token, so whoever knows it can mint an admin token.
|
|
5
|
+
* Two fallbacks used to hide its absence: a random key generated without a word (sessions
|
|
6
|
+
* then die at every restart and replicas reject each other's tokens), and on Express a
|
|
7
|
+
* fixed development key that was public. Production now refuses to start without a real
|
|
8
|
+
* key; development and tests still get a random one.
|
|
9
|
+
*/
|
|
10
|
+
export type JwtSecretEnvironment = 'development' | 'production' | 'test';
|
|
11
|
+
/** Below this many characters a production key is accepted with a warning. */
|
|
12
|
+
export declare const MIN_JWT_SECRET_LENGTH = 32;
|
|
13
|
+
export interface ResolveJwtSecretOptions {
|
|
14
|
+
/** The key from configuration (security.jwtSecret or the engine option). */
|
|
15
|
+
configured?: string;
|
|
16
|
+
/** TROKKY_JWT_SECRET, when the runtime has a process environment. */
|
|
17
|
+
fromEnv?: string;
|
|
18
|
+
environment: JwtSecretEnvironment;
|
|
19
|
+
generate: () => string;
|
|
20
|
+
warn: (message: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function isPlaceholderJwtSecret(secret: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Map an environment name to the three the secret rules know. Only names that clearly mean a
|
|
25
|
+
* developer's machine or a test run escape the production rules: `staging`, `prod` or a typo
|
|
26
|
+
* is a deployment, and a deployment must have a real key.
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeJwtSecretEnvironment(value: string | undefined): JwtSecretEnvironment | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* The environment the secret rules apply. Production if any source says so, so a config
|
|
31
|
+
* left on `env: 'development'` cannot switch the check off on a server running with
|
|
32
|
+
* NODE_ENV=production.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveJwtSecretEnvironment(...sources: Array<string | undefined>): JwtSecretEnvironment;
|
|
35
|
+
export declare function resolveJwtSecret(options: ResolveJwtSecretOptions): string;
|
|
36
|
+
//# sourceMappingURL=jwt-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-secret.d.ts","sourceRoot":"","sources":["../../../src/core/security/jwt-secret.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAA;AAoBxE,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,oBAAoB,CAAA;IACjC,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAMzG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,oBAAoB,CAIvG;AAMD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CA2CzE"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the JWT signing key comes from, and what happens when it is missing.
|
|
3
|
+
*
|
|
4
|
+
* The key signs every session and API token, so whoever knows it can mint an admin token.
|
|
5
|
+
* Two fallbacks used to hide its absence: a random key generated without a word (sessions
|
|
6
|
+
* then die at every restart and replicas reject each other's tokens), and on Express a
|
|
7
|
+
* fixed development key that was public. Production now refuses to start without a real
|
|
8
|
+
* key; development and tests still get a random one.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Placeholder values copied from examples and left in place. The unanchored patterns are
|
|
12
|
+
* long enough that a random key matching one by chance is not a realistic concern.
|
|
13
|
+
*/
|
|
14
|
+
const PLACEHOLDER_PATTERNS = [
|
|
15
|
+
/change[-_ ]?(me|this)/i,
|
|
16
|
+
/change[-_ ]?(it[-_ ]?)?in[-_ ]?prod/i,
|
|
17
|
+
/replace[-_ ]?(me|this)/i,
|
|
18
|
+
/do[-_ ]?not[-_ ]?use/i,
|
|
19
|
+
/not[-_ ]?for[-_ ]?prod/i,
|
|
20
|
+
/your[-_ ]?(jwt[-_ ]?|super[-_ ]?)?secret/i,
|
|
21
|
+
/dev[-_ ]?secret/i,
|
|
22
|
+
/insecure/i,
|
|
23
|
+
/^(my|super)?[-_ ]?secret([-_ ]?key)?\d*$/i,
|
|
24
|
+
/^jwt[-_ ]?secret([-_ ]?key)?\d*$/i,
|
|
25
|
+
/^(password|passw0rd|changeme|default|example|test|dev|admin)\d*$/i,
|
|
26
|
+
];
|
|
27
|
+
/** Below this many characters a production key is accepted with a warning. */
|
|
28
|
+
export const MIN_JWT_SECRET_LENGTH = 32;
|
|
29
|
+
export function isPlaceholderJwtSecret(secret) {
|
|
30
|
+
return PLACEHOLDER_PATTERNS.some((pattern) => pattern.test(secret.trim()));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Map an environment name to the three the secret rules know. Only names that clearly mean a
|
|
34
|
+
* developer's machine or a test run escape the production rules: `staging`, `prod` or a typo
|
|
35
|
+
* is a deployment, and a deployment must have a real key.
|
|
36
|
+
*/
|
|
37
|
+
export function normalizeJwtSecretEnvironment(value) {
|
|
38
|
+
const name = value?.trim().toLowerCase();
|
|
39
|
+
if (!name)
|
|
40
|
+
return undefined;
|
|
41
|
+
if (name === 'development' || name === 'dev' || name === 'local')
|
|
42
|
+
return 'development';
|
|
43
|
+
if (name === 'test' || name === 'testing')
|
|
44
|
+
return 'test';
|
|
45
|
+
return 'production';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The environment the secret rules apply. Production if any source says so, so a config
|
|
49
|
+
* left on `env: 'development'` cannot switch the check off on a server running with
|
|
50
|
+
* NODE_ENV=production.
|
|
51
|
+
*/
|
|
52
|
+
export function resolveJwtSecretEnvironment(...sources) {
|
|
53
|
+
const named = sources.map(normalizeJwtSecretEnvironment).filter((env) => env !== undefined);
|
|
54
|
+
if (named.includes('production'))
|
|
55
|
+
return 'production';
|
|
56
|
+
return named[0] ?? 'development';
|
|
57
|
+
}
|
|
58
|
+
const SET_IT = 'Set TROKKY_JWT_SECRET (or whichever variable your trokky.config.ts passes to security.jwtSecret) ' +
|
|
59
|
+
'to a random value, for example the output of `openssl rand -base64 48`.';
|
|
60
|
+
export function resolveJwtSecret(options) {
|
|
61
|
+
// Blank counts as unset, but a non-blank key is used byte for byte: trimming it would change
|
|
62
|
+
// the signing key on upgrade and invalidate every token already issued.
|
|
63
|
+
const configured = options.configured?.trim() ? options.configured : undefined;
|
|
64
|
+
const fromEnv = options.fromEnv?.trim() ? options.fromEnv : undefined;
|
|
65
|
+
// A config that falls back to an example value (`process.env.X || 'change-me'`) must not
|
|
66
|
+
// outrank a real TROKKY_JWT_SECRET: the operator who set it did what the error asked.
|
|
67
|
+
const secret = configured && isPlaceholderJwtSecret(configured) && fromEnv && !isPlaceholderJwtSecret(fromEnv)
|
|
68
|
+
? fromEnv
|
|
69
|
+
: configured || fromEnv;
|
|
70
|
+
if (options.environment === 'production') {
|
|
71
|
+
if (!secret) {
|
|
72
|
+
throw new Error(`No JWT secret. ${SET_IT} Trokky refuses to start in production without one: a generated key ` +
|
|
73
|
+
'would sign everyone out at every restart, and replicas would reject each other\'s tokens.');
|
|
74
|
+
}
|
|
75
|
+
if (isPlaceholderJwtSecret(secret)) {
|
|
76
|
+
throw new Error('The JWT secret is a placeholder value, and anyone who has read the example it came from can ' +
|
|
77
|
+
`sign tokens for this site. ${SET_IT}`);
|
|
78
|
+
}
|
|
79
|
+
if (secret.length < MIN_JWT_SECRET_LENGTH) {
|
|
80
|
+
options.warn(`The JWT secret is ${secret.length} characters long. Use at least ${MIN_JWT_SECRET_LENGTH} random ` +
|
|
81
|
+
'characters, for example the output of `openssl rand -base64 48`.');
|
|
82
|
+
}
|
|
83
|
+
return secret;
|
|
84
|
+
}
|
|
85
|
+
if (secret)
|
|
86
|
+
return secret;
|
|
87
|
+
if (options.environment === 'development') {
|
|
88
|
+
options.warn('No JWT secret set (TROKKY_JWT_SECRET): using a random key for this process, so Studio sign-ins ' +
|
|
89
|
+
'end whenever the server restarts. Set TROKKY_JWT_SECRET in .env (.dev.vars on Workers) to keep them.');
|
|
90
|
+
}
|
|
91
|
+
return options.generate();
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=jwt-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-secret.js","sourceRoot":"","sources":["../../../src/core/security/jwt-secret.ts"],"names":[],"mappings":"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"}
|