@trokky/trokky 3.2.0 → 3.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/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.d.ts +8 -0
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.d.ts.map +1 -1
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.js +47 -5
- package/dist/adapters/cloudflare-d1/cloudflare-d1-adapter.js.map +1 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +9 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -1
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js +28 -0
- package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts +9 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -1
- package/dist/adapters/postgres-data/postgres-data-adapter.js +59 -0
- package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -1
- package/dist/core/core/engine.d.ts +10 -0
- package/dist/core/core/engine.d.ts.map +1 -1
- package/dist/core/core/engine.js +16 -2
- package/dist/core/core/engine.js.map +1 -1
- package/dist/core/media/image-processor.d.ts.map +1 -1
- package/dist/core/media/image-processor.js +4 -3
- package/dist/core/media/image-processor.js.map +1 -1
- package/dist/core/media/processors/cloudflare-images.d.ts +67 -0
- package/dist/core/media/processors/cloudflare-images.d.ts.map +1 -0
- package/dist/core/media/processors/cloudflare-images.js +95 -0
- package/dist/core/media/processors/cloudflare-images.js.map +1 -0
- package/dist/core/security/rate-limiter.d.ts +9 -0
- package/dist/core/security/rate-limiter.d.ts.map +1 -1
- package/dist/core/security/rate-limiter.js +4 -3
- package/dist/core/security/rate-limiter.js.map +1 -1
- package/dist/core/services/user-service.d.ts +42 -0
- package/dist/core/services/user-service.d.ts.map +1 -1
- package/dist/core/services/user-service.js +114 -1
- package/dist/core/services/user-service.js.map +1 -1
- package/dist/core/types/storage-adapters.d.ts +18 -0
- package/dist/core/types/storage-adapters.d.ts.map +1 -1
- package/dist/i18n/config.d.ts +32 -0
- package/dist/i18n/config.d.ts.map +1 -1
- package/dist/i18n/locales/en/auth.json +16 -0
- package/dist/i18n/locales/fr/auth.json +16 -0
- package/dist/routes/handlers/auth.d.ts +14 -0
- package/dist/routes/handlers/auth.d.ts.map +1 -1
- package/dist/routes/handlers/auth.js +55 -0
- package/dist/routes/handlers/auth.js.map +1 -1
- package/package.json +1 -1
|
@@ -37,8 +37,9 @@ export async function createImageProcessor(config) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
case 'cloudflare-images': {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
// Loaded on demand so a Node deployment never pulls it in.
|
|
41
|
+
const { CloudflareImagesProcessor } = await import('./processors/cloudflare-images.js');
|
|
42
|
+
return new CloudflareImagesProcessor(config);
|
|
42
43
|
}
|
|
43
44
|
case 'imagekit': {
|
|
44
45
|
throw new Error('ImageKit processor is not yet implemented.\n' +
|
|
@@ -53,7 +54,7 @@ export async function createImageProcessor(config) {
|
|
|
53
54
|
`Available processors:\n` +
|
|
54
55
|
`- "none": Store originals only (recommended for edge environments)\n` +
|
|
55
56
|
`- "sharp": Local processing with Sharp (Node.js only)\n` +
|
|
56
|
-
`- "cloudflare-images": Cloudflare Images binding (
|
|
57
|
+
`- "cloudflare-images": Cloudflare Images binding (Workers)\n` +
|
|
57
58
|
`- "imagekit": ImageKit API (coming soon)\n` +
|
|
58
59
|
`- "imgix": Imgix API (coming soon)`);
|
|
59
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../../../src/core/media/image-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EACL,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA4B;IACrE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,yEAAyE;YACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;YACnE,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,mEAAmE;YACnE,IAAI,CAAC;gBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;gBACrE,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC/F,8DAA8D;oBAC9D,yFAAyF,CAC1F,CAAA;YACH,CAAC;QACH,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../../../src/core/media/image-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EACL,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAA4B;IACrE,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,yEAAyE;YACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;YACnE,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,mEAAmE;YACnE,IAAI,CAAC;gBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;gBACrE,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC/F,8DAA8D;oBAC9D,yFAAyF,CAC1F,CAAA;YACH,CAAC;QACH,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,2DAA2D;YAC3D,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;YACvF,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAA;QAC9C,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,8CAA8C;gBAC9C,kFAAkF,CACnF,CAAA;QACH,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,KAAK,CACb,2CAA2C;gBAC3C,kFAAkF,CACnF,CAAA;QACH,CAAC;QAED;YACE,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,IAAI,MAAM;gBAClD,yBAAyB;gBACzB,sEAAsE;gBACtE,yDAAyD;gBACzD,8DAA8D;gBAC9D,4CAA4C;gBAC5C,oCAAoC,CACrC,CAAA;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Images processor — variants made by the Images binding at upload time.
|
|
3
|
+
*
|
|
4
|
+
* Why this shape and not the URL API or `fetch(cf.image)`: the binding takes raw bytes, so the
|
|
5
|
+
* R2 bucket behind Trokky never has to be public; and a binding call bills every time while a
|
|
6
|
+
* URL transformation bills once per unique transformation per calendar month — so calling it
|
|
7
|
+
* once per variant at upload and storing the output is a one-time cost, and it slots straight
|
|
8
|
+
* into MediaService's existing `saveVariantFile` pipeline with no architectural change.
|
|
9
|
+
*
|
|
10
|
+
* Measured against the real service, roughly one call in fifteen of a 6MB JPEG fails
|
|
11
|
+
* transiently ("Network connection lost", "internal error; reference = …"), so every variant
|
|
12
|
+
* is retried here. MediaService retries the whole `processImage` too, as a second net.
|
|
13
|
+
*
|
|
14
|
+
* `env.IMAGES` is passed through `media.imageProcessorOptions.images` — it is an object from
|
|
15
|
+
* the Worker's environment, and TrokkyConfig is plain data, so the options bag is where a
|
|
16
|
+
* binding can travel.
|
|
17
|
+
*/
|
|
18
|
+
import { ImageProcessor, type ImageProcessorConfig, type ProcessedImage } from './types.js';
|
|
19
|
+
/**
|
|
20
|
+
* The slice of Cloudflare's `ImagesBinding` this processor uses, declared structurally.
|
|
21
|
+
*
|
|
22
|
+
* Declared rather than imported on purpose: `@cloudflare/workers-types` ships its own
|
|
23
|
+
* `ReadableStream` type, and mixing it with the DOM lib's produces "not assignable" errors
|
|
24
|
+
* that come and go with the types package version. `env.IMAGES` satisfies this shape as-is.
|
|
25
|
+
*/
|
|
26
|
+
export interface ImagesBindingLike {
|
|
27
|
+
info(stream: ReadableStream<Uint8Array>): Promise<{
|
|
28
|
+
width?: number;
|
|
29
|
+
height?: number;
|
|
30
|
+
format?: string;
|
|
31
|
+
}>;
|
|
32
|
+
input(stream: ReadableStream<Uint8Array>): ImageTransformerLike;
|
|
33
|
+
}
|
|
34
|
+
export interface ImageTransformerLike {
|
|
35
|
+
transform(transform: {
|
|
36
|
+
width?: number;
|
|
37
|
+
height?: number;
|
|
38
|
+
fit?: string;
|
|
39
|
+
}): ImageTransformerLike;
|
|
40
|
+
output(options: {
|
|
41
|
+
format: string;
|
|
42
|
+
quality?: number;
|
|
43
|
+
}): Promise<{
|
|
44
|
+
image(): ReadableStream<Uint8Array>;
|
|
45
|
+
contentType(): string;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
export interface CloudflareImagesOptions {
|
|
49
|
+
/** The Images binding from the Worker environment, e.g. `env.IMAGES`. */
|
|
50
|
+
images: ImagesBindingLike;
|
|
51
|
+
/** Attempts per variant before giving up on it. @default 3 */
|
|
52
|
+
attempts?: number;
|
|
53
|
+
}
|
|
54
|
+
export declare class CloudflareImagesProcessor extends ImageProcessor {
|
|
55
|
+
private readonly images;
|
|
56
|
+
private readonly attempts;
|
|
57
|
+
constructor(config: ImageProcessorConfig);
|
|
58
|
+
processImage(file: File, metadata: {
|
|
59
|
+
id: string;
|
|
60
|
+
filename: string;
|
|
61
|
+
path: string;
|
|
62
|
+
}): Promise<ProcessedImage>;
|
|
63
|
+
getImageUrl(imageId: string, variantName?: string): string;
|
|
64
|
+
deleteImage(): Promise<void>;
|
|
65
|
+
healthCheck(): Promise<boolean>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=cloudflare-images.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-images.d.ts","sourceRoot":"","sources":["../../../../src/core/media/processors/cloudflare-images.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EACL,cAAc,EAEd,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAA;CAChE;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,SAAS,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,CAAA;IAC7F,MAAM,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC7D,KAAK,IAAI,cAAc,CAAC,UAAU,CAAC,CAAA;QACnC,WAAW,IAAI,MAAM,CAAA;KACtB,CAAC,CAAA;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,MAAM,EAAE,iBAAiB,CAAA;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAoBD,qBAAa,yBAA0B,SAAQ,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,EAAE,oBAAoB;IAalC,YAAY,CAChB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,cAAc,CAAC;IAwC1B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAMpD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAGtC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Images processor — variants made by the Images binding at upload time.
|
|
3
|
+
*
|
|
4
|
+
* Why this shape and not the URL API or `fetch(cf.image)`: the binding takes raw bytes, so the
|
|
5
|
+
* R2 bucket behind Trokky never has to be public; and a binding call bills every time while a
|
|
6
|
+
* URL transformation bills once per unique transformation per calendar month — so calling it
|
|
7
|
+
* once per variant at upload and storing the output is a one-time cost, and it slots straight
|
|
8
|
+
* into MediaService's existing `saveVariantFile` pipeline with no architectural change.
|
|
9
|
+
*
|
|
10
|
+
* Measured against the real service, roughly one call in fifteen of a 6MB JPEG fails
|
|
11
|
+
* transiently ("Network connection lost", "internal error; reference = …"), so every variant
|
|
12
|
+
* is retried here. MediaService retries the whole `processImage` too, as a second net.
|
|
13
|
+
*
|
|
14
|
+
* `env.IMAGES` is passed through `media.imageProcessorOptions.images` — it is an object from
|
|
15
|
+
* the Worker's environment, and TrokkyConfig is plain data, so the options bag is where a
|
|
16
|
+
* binding can travel.
|
|
17
|
+
*/
|
|
18
|
+
import { InvalidInputError } from '../../errors/index.js';
|
|
19
|
+
import { withRetry } from '../../utils/retry.js';
|
|
20
|
+
import { ImageProcessor, DEFAULT_IMAGE_VARIANTS } from './types.js';
|
|
21
|
+
/** Cloudflare has no stretch; `fill` and `outside` fall back to the nearest crop behaviour. */
|
|
22
|
+
const FIT = {
|
|
23
|
+
cover: 'cover',
|
|
24
|
+
contain: 'contain',
|
|
25
|
+
inside: 'scale-down',
|
|
26
|
+
outside: 'cover',
|
|
27
|
+
fill: 'cover'
|
|
28
|
+
};
|
|
29
|
+
/** A fresh stream over the same bytes; the binding consumes each one it is given. */
|
|
30
|
+
const streamOf = (bytes) =>
|
|
31
|
+
// A copy, so the Blob owns a plain ArrayBuffer rather than a view into a shared one.
|
|
32
|
+
new Blob([bytes.slice().buffer]).stream();
|
|
33
|
+
async function collect(stream) {
|
|
34
|
+
return Buffer.from(await new Response(stream).arrayBuffer());
|
|
35
|
+
}
|
|
36
|
+
export class CloudflareImagesProcessor extends ImageProcessor {
|
|
37
|
+
images;
|
|
38
|
+
attempts;
|
|
39
|
+
constructor(config) {
|
|
40
|
+
super(config);
|
|
41
|
+
const options = (config.options ?? {});
|
|
42
|
+
if (!options.images || typeof options.images.input !== 'function') {
|
|
43
|
+
throw new InvalidInputError('The cloudflare-images processor needs the Images binding: media.imageProcessorOptions.images = env.IMAGES', 'images');
|
|
44
|
+
}
|
|
45
|
+
this.images = options.images;
|
|
46
|
+
this.attempts = options.attempts ?? 3;
|
|
47
|
+
}
|
|
48
|
+
async processImage(file, metadata) {
|
|
49
|
+
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
50
|
+
// Metadata only; not a transformation.
|
|
51
|
+
const info = await withRetry(() => this.images.info(streamOf(bytes)), { attempts: this.attempts });
|
|
52
|
+
const original = {
|
|
53
|
+
url: this.getImageUrl(metadata.id, 'original'),
|
|
54
|
+
width: info.width ?? 0,
|
|
55
|
+
height: info.height ?? 0,
|
|
56
|
+
format: file.type,
|
|
57
|
+
size: bytes.byteLength
|
|
58
|
+
};
|
|
59
|
+
const variants = {};
|
|
60
|
+
for (const variant of this.config.variants?.length ? this.config.variants : DEFAULT_IMAGE_VARIANTS) {
|
|
61
|
+
const format = variant.format ?? 'webp';
|
|
62
|
+
const produced = await withRetry(async () => {
|
|
63
|
+
const result = await this.images
|
|
64
|
+
.input(streamOf(bytes))
|
|
65
|
+
.transform({ width: variant.width, height: variant.height, fit: FIT[variant.fit ?? 'inside'] })
|
|
66
|
+
.output({ format: `image/${format}`, quality: variant.quality });
|
|
67
|
+
const buffer = await collect(result.image());
|
|
68
|
+
// The service reports output dimensions only through info(); metadata, not billed work.
|
|
69
|
+
const dims = await this.images.info(streamOf(new Uint8Array(buffer)));
|
|
70
|
+
return { buffer, dims };
|
|
71
|
+
}, { attempts: this.attempts });
|
|
72
|
+
variants[variant.name] = {
|
|
73
|
+
url: this.getImageUrl(metadata.id, variant.name),
|
|
74
|
+
width: produced.dims.width ?? 0,
|
|
75
|
+
height: produced.dims.height ?? 0,
|
|
76
|
+
format,
|
|
77
|
+
size: produced.buffer.length,
|
|
78
|
+
buffer: produced.buffer
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { original, variants };
|
|
82
|
+
}
|
|
83
|
+
getImageUrl(imageId, variantName) {
|
|
84
|
+
// The frontend builds real URLs from the media record; this is the same placeholder the
|
|
85
|
+
// other processors return.
|
|
86
|
+
return variantName && variantName !== 'original' ? `/media/${imageId}/${variantName}` : `/media/${imageId}`;
|
|
87
|
+
}
|
|
88
|
+
async deleteImage() {
|
|
89
|
+
// Variants live in the media storage adapter, which deletes them with the original.
|
|
90
|
+
}
|
|
91
|
+
async healthCheck() {
|
|
92
|
+
return typeof this.images?.input === 'function';
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=cloudflare-images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-images.js","sourceRoot":"","sources":["../../../../src/core/media/processors/cloudflare-images.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,15 @@ export interface RateLimitConfig {
|
|
|
16
16
|
* is what makes a shared store affordable on hot paths. See rate-limit-store.ts.
|
|
17
17
|
*/
|
|
18
18
|
leaseSize?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Tighter limits for specific operations, keyed by operation name. An unauthenticated
|
|
21
|
+
* endpoint that accepts a secret must not share the general 1000/min budget: that is a
|
|
22
|
+
* guessing rate, not a request rate.
|
|
23
|
+
*/
|
|
24
|
+
limits?: Record<string, {
|
|
25
|
+
windowMs: number;
|
|
26
|
+
maxRequests: number;
|
|
27
|
+
}>;
|
|
19
28
|
}
|
|
20
29
|
export declare class RateLimiter {
|
|
21
30
|
private readonly defaultConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/core/security/rate-limiter.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;IAC/E;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../../src/core/security/rate-limiter.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;IAC/E;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACnE;AAQD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG7B;IAED,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAUpC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhG;;;OAGG;IACI,OAAO,IAAI,IAAI;IAYtB;;;;OAIG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAevD;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -20,8 +20,9 @@ export class RateLimiter {
|
|
|
20
20
|
}
|
|
21
21
|
async checkRateLimit(operation, context) {
|
|
22
22
|
const key = this.config.keyGenerator ? this.config.keyGenerator(operation, context) : operation;
|
|
23
|
+
const { windowMs, maxRequests } = this.config.limits?.[operation] ?? this.config;
|
|
23
24
|
const now = Date.now();
|
|
24
|
-
const windowStart = Math.floor(now /
|
|
25
|
+
const windowStart = Math.floor(now / windowMs) * windowMs;
|
|
25
26
|
const lease = this.leases.get(key);
|
|
26
27
|
if (lease && lease.windowStart === windowStart && lease.remaining > 0) {
|
|
27
28
|
lease.remaining -= 1;
|
|
@@ -30,9 +31,9 @@ export class RateLimiter {
|
|
|
30
31
|
const granted = await this.store.reserve({
|
|
31
32
|
key,
|
|
32
33
|
windowStart,
|
|
33
|
-
windowMs
|
|
34
|
+
windowMs,
|
|
34
35
|
want: this.leaseSize,
|
|
35
|
-
max:
|
|
36
|
+
max: maxRequests
|
|
36
37
|
});
|
|
37
38
|
if (granted <= 0) {
|
|
38
39
|
// A spent lease from this window must not be resurrected by a later call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../src/core/security/rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../src/core/security/rate-limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,26 @@ export interface UserServiceDependencies {
|
|
|
18
18
|
};
|
|
19
19
|
logAuditEvent: (event: AuditEvent) => void;
|
|
20
20
|
getUserCreatedWithPasswordCallback: () => ((user: User, temporaryPassword: string) => Promise<void>) | undefined;
|
|
21
|
+
/** The configured claim secret, if any. Read lazily so a Worker can supply it per request. */
|
|
22
|
+
claimSecret?: () => string | undefined;
|
|
23
|
+
}
|
|
24
|
+
/** Whether an instance can still be claimed, and what a claim would have to present. */
|
|
25
|
+
export interface ClaimStatus {
|
|
26
|
+
claimable: boolean;
|
|
27
|
+
/** Why not, when it cannot be claimed. */
|
|
28
|
+
reason?: 'already-claimed' | 'unsupported';
|
|
29
|
+
/** True when a claim secret is configured and must be presented. */
|
|
30
|
+
secretRequired: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** The first administrator, as supplied by whoever is claiming the instance. */
|
|
33
|
+
export interface ClaimInput {
|
|
34
|
+
username: string;
|
|
35
|
+
email: string;
|
|
36
|
+
password: string;
|
|
37
|
+
firstName?: string;
|
|
38
|
+
lastName?: string;
|
|
39
|
+
/** Required when the instance was deployed with a claim secret. */
|
|
40
|
+
secret?: string;
|
|
21
41
|
}
|
|
22
42
|
/**
|
|
23
43
|
* User management operations (system entities) and env-based admin bootstrap.
|
|
@@ -33,6 +53,28 @@ export declare class UserService {
|
|
|
33
53
|
listUsers(options?: UserListOptions): Promise<User[]>;
|
|
34
54
|
deleteUser(id: string): Promise<void>;
|
|
35
55
|
getDefaultPermissions(role: string): Permission[];
|
|
56
|
+
/**
|
|
57
|
+
* Whether this instance still has no owner, and what it would take to claim it.
|
|
58
|
+
*
|
|
59
|
+
* An instance with zero users has no way in: there is nobody to sign in as. The claim flow is
|
|
60
|
+
* how the first administrator is created without baking a password into the deployment — which
|
|
61
|
+
* is what a one-click deploy would otherwise force, and would mean every Trokky on the internet
|
|
62
|
+
* sharing one default credential.
|
|
63
|
+
*/
|
|
64
|
+
getClaimStatus(): Promise<ClaimStatus>;
|
|
65
|
+
/**
|
|
66
|
+
* Create the first administrator, claiming an instance that has none.
|
|
67
|
+
*
|
|
68
|
+
* Exactly-once is the adapter's promise, not this method's: `createFirstUser` is an atomic
|
|
69
|
+
* check-and-insert, so of any number of concurrent claims precisely one creates a user and the
|
|
70
|
+
* rest get null. This method only decides who is allowed to try.
|
|
71
|
+
*
|
|
72
|
+
* When a claim secret is configured the caller must present it, which is what makes an instance
|
|
73
|
+
* safe to leave on a public URL before anyone has claimed it. Without one the claim is open to
|
|
74
|
+
* whoever reaches it first — the model of every comparable self-hosted CMS, and only safe
|
|
75
|
+
* because the window is meant to be the minute between deploying and opening the link.
|
|
76
|
+
*/
|
|
77
|
+
claimInstance(input: ClaimInput): Promise<User>;
|
|
36
78
|
setupAdminFromEnv(): Promise<User | null>;
|
|
37
79
|
}
|
|
38
80
|
//# sourceMappingURL=user-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/user-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/user-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import { createHash, timingSafeEqual } from 'crypto';
|
|
1
2
|
import { SecurityValidator } from '../security/validation.js';
|
|
2
|
-
import { DocumentNotFoundError } from '../errors/index.js';
|
|
3
|
+
import { DocumentNotFoundError, InvalidInputError } from '../errors/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Constant-time comparison of two secrets. Both sides are hashed first so lengths always match
|
|
6
|
+
* and `timingSafeEqual` never throws — and never reveals the length, either.
|
|
7
|
+
*/
|
|
8
|
+
function secretsMatch(provided, expected) {
|
|
9
|
+
const a = createHash('sha256').update(provided).digest();
|
|
10
|
+
const b = createHash('sha256').update(expected).digest();
|
|
11
|
+
return timingSafeEqual(a, b);
|
|
12
|
+
}
|
|
3
13
|
/**
|
|
4
14
|
* User management operations (system entities) and env-based admin bootstrap.
|
|
5
15
|
*/
|
|
@@ -194,6 +204,109 @@ export class UserService {
|
|
|
194
204
|
return ['content:read', 'studio:access'];
|
|
195
205
|
}
|
|
196
206
|
}
|
|
207
|
+
// ==========================================================================
|
|
208
|
+
// FIRST-BOOT CLAIM
|
|
209
|
+
// ==========================================================================
|
|
210
|
+
/**
|
|
211
|
+
* Whether this instance still has no owner, and what it would take to claim it.
|
|
212
|
+
*
|
|
213
|
+
* An instance with zero users has no way in: there is nobody to sign in as. The claim flow is
|
|
214
|
+
* how the first administrator is created without baking a password into the deployment — which
|
|
215
|
+
* is what a one-click deploy would otherwise force, and would mean every Trokky on the internet
|
|
216
|
+
* sharing one default credential.
|
|
217
|
+
*/
|
|
218
|
+
async getClaimStatus() {
|
|
219
|
+
// Without an atomic create there is no exactly-once, and a racy claim is worse than none.
|
|
220
|
+
if (!this.deps.dataStorage.createFirstUser) {
|
|
221
|
+
return { claimable: false, reason: 'unsupported', secretRequired: false };
|
|
222
|
+
}
|
|
223
|
+
let userCount;
|
|
224
|
+
try {
|
|
225
|
+
userCount = (await this.listUsers({ limit: 1 })).length;
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
if (error instanceof Error && error.message.includes('not supported by storage adapter')) {
|
|
229
|
+
return { claimable: false, reason: 'unsupported', secretRequired: false };
|
|
230
|
+
}
|
|
231
|
+
throw error;
|
|
232
|
+
}
|
|
233
|
+
if (userCount > 0) {
|
|
234
|
+
return { claimable: false, reason: 'already-claimed', secretRequired: false };
|
|
235
|
+
}
|
|
236
|
+
return { claimable: true, secretRequired: Boolean(this.deps.claimSecret?.()) };
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Create the first administrator, claiming an instance that has none.
|
|
240
|
+
*
|
|
241
|
+
* Exactly-once is the adapter's promise, not this method's: `createFirstUser` is an atomic
|
|
242
|
+
* check-and-insert, so of any number of concurrent claims precisely one creates a user and the
|
|
243
|
+
* rest get null. This method only decides who is allowed to try.
|
|
244
|
+
*
|
|
245
|
+
* When a claim secret is configured the caller must present it, which is what makes an instance
|
|
246
|
+
* safe to leave on a public URL before anyone has claimed it. Without one the claim is open to
|
|
247
|
+
* whoever reaches it first — the model of every comparable self-hosted CMS, and only safe
|
|
248
|
+
* because the window is meant to be the minute between deploying and opening the link.
|
|
249
|
+
*/
|
|
250
|
+
async claimInstance(input) {
|
|
251
|
+
if (this.deps.rateLimiter) {
|
|
252
|
+
await this.deps.rateLimiter.checkRateLimit('claimInstance');
|
|
253
|
+
}
|
|
254
|
+
const status = await this.getClaimStatus();
|
|
255
|
+
if (!status.claimable) {
|
|
256
|
+
throw new InvalidInputError(status.reason === 'unsupported'
|
|
257
|
+
? 'This storage adapter cannot be claimed: it has no atomic first-user create.'
|
|
258
|
+
: 'This instance has already been claimed.', 'claim');
|
|
259
|
+
}
|
|
260
|
+
const expectedSecret = this.deps.claimSecret?.();
|
|
261
|
+
if (expectedSecret && !secretsMatch(input.secret ?? '', expectedSecret)) {
|
|
262
|
+
this.deps.logger.warn('Rejected a claim with an incorrect secret');
|
|
263
|
+
throw new InvalidInputError('Incorrect claim secret.', 'secret');
|
|
264
|
+
}
|
|
265
|
+
if (this.deps.securityEnabled) {
|
|
266
|
+
SecurityValidator.validateEmail(input.email);
|
|
267
|
+
SecurityValidator.validateUsername(input.username);
|
|
268
|
+
}
|
|
269
|
+
// This account owns the instance and the endpoint creating it is unauthenticated. The env
|
|
270
|
+
// bootstrap only warns about a weak password; here it is refused.
|
|
271
|
+
const weak = this.deps.checkWeakPassword(input.password);
|
|
272
|
+
if (weak.isWeak) {
|
|
273
|
+
throw new InvalidInputError(`Password too weak: ${weak.reason ?? 'choose a longer, less predictable one'}`, 'password');
|
|
274
|
+
}
|
|
275
|
+
const passwordHash = await this.deps.hashPassword(input.password);
|
|
276
|
+
const userId = this.deps.idGenerator.generate({ prefix: 'user' });
|
|
277
|
+
const now = new Date().toISOString();
|
|
278
|
+
const created = await this.deps.dataStorage.createFirstUser(userId, {
|
|
279
|
+
username: input.username,
|
|
280
|
+
email: input.email,
|
|
281
|
+
passwordHash,
|
|
282
|
+
firstName: input.firstName,
|
|
283
|
+
lastName: input.lastName,
|
|
284
|
+
role: 'admin',
|
|
285
|
+
permissions: [
|
|
286
|
+
'content:read', 'content:write', 'content:delete',
|
|
287
|
+
'users:read', 'users:write',
|
|
288
|
+
'settings:read', 'settings:write',
|
|
289
|
+
'media:upload', 'media:delete',
|
|
290
|
+
'studio:access'
|
|
291
|
+
],
|
|
292
|
+
isActive: true,
|
|
293
|
+
preferences: {},
|
|
294
|
+
createdAt: now,
|
|
295
|
+
updatedAt: now
|
|
296
|
+
});
|
|
297
|
+
if (!created) {
|
|
298
|
+
// Someone else's claim landed between our check and our write. Theirs stands.
|
|
299
|
+
throw new InvalidInputError('This instance has already been claimed.', 'claim');
|
|
300
|
+
}
|
|
301
|
+
this.deps.logAuditEvent({
|
|
302
|
+
type: 'user_created',
|
|
303
|
+
targetUserId: created.id,
|
|
304
|
+
username: created.username,
|
|
305
|
+
action: 'Instance claimed: first administrator created'
|
|
306
|
+
});
|
|
307
|
+
this.deps.logger.info('Instance claimed', { userId: created.id, username: created.username });
|
|
308
|
+
return created;
|
|
309
|
+
}
|
|
197
310
|
// Development utility: Setup admin user from environment variables
|
|
198
311
|
async setupAdminFromEnv() {
|
|
199
312
|
const adminEmail = (typeof process !== 'undefined' ? process.env?.TROKKY_ADMIN_EMAIL : undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-service.js","sourceRoot":"","sources":["../../../src/core/services/user-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"user-service.js","sourceRoot":"","sources":["../../../src/core/services/user-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -195,6 +195,24 @@ export interface DataStorageAdapter {
|
|
|
195
195
|
saveUserIf?(id: string, userData: Partial<UpdateUserData>, condition: {
|
|
196
196
|
passwordHash: string;
|
|
197
197
|
}): Promise<User | null>;
|
|
198
|
+
/**
|
|
199
|
+
* Create a user only if the store holds no users at all, atomically.
|
|
200
|
+
*
|
|
201
|
+
* This is what makes a first-boot claim exactly-once. The check and the write must be one
|
|
202
|
+
* atomic operation: two concurrent callers must not both see an empty store and both create a
|
|
203
|
+
* user. A read followed by a separate write cannot guarantee that; the store's own
|
|
204
|
+
* serialisation can (a single `INSERT ... WHERE NOT EXISTS` under SQLite's write lock, an
|
|
205
|
+
* advisory lock in Postgres, the write lock in a file backend).
|
|
206
|
+
*
|
|
207
|
+
* Optional so adapters written before it existed keep compiling. An adapter without it cannot
|
|
208
|
+
* be claimed, and reports so; it is not silently downgraded to a racy check.
|
|
209
|
+
*
|
|
210
|
+
* @param id - The user ID
|
|
211
|
+
* @param userData - The user to create, password already hashed
|
|
212
|
+
* @returns The created user, or null if any user already existed (nothing written)
|
|
213
|
+
* @throws Error if storage fails
|
|
214
|
+
*/
|
|
215
|
+
createFirstUser?(id: string, userData: CreateUserData): Promise<User | null>;
|
|
198
216
|
/**
|
|
199
217
|
* List users with filtering and pagination
|
|
200
218
|
* @param options - Query options (role, isActive, limit, offset)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-adapters.d.ts","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage-adapters.d.ts","sourceRoot":"","sources":["../../../src/core/types/storage-adapters.ts"],"names":[],"mappings":"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"}
|