@constructorfleet/sketchforge-engine 1.16.0 → 1.18.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/README.md +25 -3
- package/dist/domain/sketchforge.d.ts +4 -0
- package/dist/domain/sketchforge.d.ts.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +68 -14
- package/dist/engine.js.map +1 -1
- package/dist/parametricRecompute.d.ts +15 -0
- package/dist/parametricRecompute.d.ts.map +1 -0
- package/dist/parametricRecompute.js +68 -0
- package/dist/parametricRecompute.js.map +1 -0
- package/dist/revolveRequests.d.ts.map +1 -1
- package/dist/serverShapeGroups.d.ts +4 -1
- package/dist/serverShapeGroups.d.ts.map +1 -1
- package/dist/serverShapeGroups.js +3 -3
- package/dist/serverShapeGroups.js.map +1 -1
- package/dist/serverStepExplode.d.ts.map +1 -1
- package/dist/serverStepExplode.js +51 -2
- package/dist/serverStepExplode.js.map +1 -1
- package/dist/skfProject.d.ts.map +1 -1
- package/dist/skfProject.js +5 -0
- package/dist/skfProject.js.map +1 -1
- package/dist/stepAssemblyHierarchy.d.ts +15 -0
- package/dist/stepAssemblyHierarchy.d.ts.map +1 -1
- package/dist/stepAssemblyHierarchy.js +89 -3
- package/dist/stepAssemblyHierarchy.js.map +1 -1
- package/dist/stepComponentMetadata.d.ts +1 -0
- package/dist/stepComponentMetadata.d.ts.map +1 -1
- package/dist/stepComponentMetadata.js +33 -1
- package/dist/stepComponentMetadata.js.map +1 -1
- package/dist/stepGlbDocument.d.ts +25 -0
- package/dist/stepGlbDocument.d.ts.map +1 -1
- package/dist/stepGlbDocument.js +11 -3
- package/dist/stepGlbDocument.js.map +1 -1
- package/dist/support/cadModifierTypes.d.ts +1 -1
- package/dist/support/cadModifierTypes.d.ts.map +1 -1
- package/dist/support/lib/operator-configuration.json +45 -15
- package/dist/support/lib/operatorConfiguration.d.ts +2 -0
- package/dist/support/lib/operatorConfiguration.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { componentColorsFromGlb } from "./stepGlbColors.js";
|
|
2
|
-
import { stepAssemblyHierarchyFromGlb } from "./stepAssemblyHierarchy.js";
|
|
2
|
+
import { stepAssemblyHierarchyFromGlb, stepOccurrenceGeometryFromGlb } from "./stepAssemblyHierarchy.js";
|
|
3
3
|
export function stepShapeKey(cad, shape) {
|
|
4
4
|
const bounds = cad.getBoundingBox(shape, false);
|
|
5
5
|
return [cad.getVolume(shape), bounds.xmin, bounds.ymin, bounds.zmin, bounds.xmax, bounds.ymax, bounds.zmax]
|
|
@@ -14,12 +14,21 @@ export function stepComponentMetadata(cad, step) {
|
|
|
14
14
|
const metadataBySolid = new Map();
|
|
15
15
|
const document = cad.importXCAFFromSTEP(step);
|
|
16
16
|
let assembly;
|
|
17
|
+
const occurrenceGeometry = new Map();
|
|
17
18
|
try {
|
|
18
19
|
let colorsByName = new Map();
|
|
19
20
|
try {
|
|
20
21
|
const glb = document.exportGLTF();
|
|
21
22
|
colorsByName = componentColorsFromGlb(glb);
|
|
22
23
|
assembly = stepAssemblyHierarchyFromGlb(glb, step);
|
|
24
|
+
for (const occurrence of stepOccurrenceGeometryFromGlb(glb, step)) {
|
|
25
|
+
const key = [occurrence.bounds.xmin, occurrence.bounds.ymin, occurrence.bounds.zmin,
|
|
26
|
+
occurrence.bounds.xmax, occurrence.bounds.ymax, occurrence.bounds.zmax]
|
|
27
|
+
.map((value) => value.toFixed(2)).join(":");
|
|
28
|
+
const matches = occurrenceGeometry.get(key) ?? [];
|
|
29
|
+
matches.push(occurrence);
|
|
30
|
+
occurrenceGeometry.set(key, matches);
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
33
|
catch {
|
|
25
34
|
// XCAF label data remains usable when the optional color view cannot be exported.
|
|
@@ -68,6 +77,29 @@ export function stepComponentMetadata(cad, step) {
|
|
|
68
77
|
metadataBySolid.set(key, metadata);
|
|
69
78
|
}
|
|
70
79
|
}
|
|
80
|
+
// Some OCCT builds flatten XCAF leaf labels to the assembly root. Recover
|
|
81
|
+
// product identity only when GLB world-space bounds uniquely identify one
|
|
82
|
+
// source solid and one occurrence. Ambiguous coincident geometry stays flat.
|
|
83
|
+
const solids = cad.getSubShapes(cad.importStep(step), "solid");
|
|
84
|
+
const solidByBounds = new Map();
|
|
85
|
+
const boundsKey = (bounds) => [bounds.xmin, bounds.ymin, bounds.zmin, bounds.xmax, bounds.ymax, bounds.zmax]
|
|
86
|
+
.map((value) => value.toFixed(2)).join(":");
|
|
87
|
+
for (const solid of solids) {
|
|
88
|
+
const key = boundsKey(cad.getBoundingBox(solid, false));
|
|
89
|
+
const matches = solidByBounds.get(key) ?? [];
|
|
90
|
+
matches.push(solid);
|
|
91
|
+
solidByBounds.set(key, matches);
|
|
92
|
+
}
|
|
93
|
+
for (const [key, candidates] of occurrenceGeometry) {
|
|
94
|
+
const solidsAtBounds = solidByBounds.get(key);
|
|
95
|
+
if (candidates.length !== 1 || solidsAtBounds?.length !== 1)
|
|
96
|
+
continue;
|
|
97
|
+
const solid = solidsAtBounds[0];
|
|
98
|
+
const solidKey = stepShapeKey(cad, solid);
|
|
99
|
+
const existing = metadataBySolid.get(solidKey) ?? [];
|
|
100
|
+
const color = existing.length === 1 ? existing[0]?.color : undefined;
|
|
101
|
+
metadataBySolid.set(solidKey, [{ name: candidates[0].name, occurrenceId: candidates[0].occurrenceId, ...(color ? { color } : {}) }]);
|
|
102
|
+
}
|
|
71
103
|
}
|
|
72
104
|
finally {
|
|
73
105
|
document.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepComponentMetadata.js","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAyB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"stepComponentMetadata.js","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,18 +8,43 @@ export type GlbSceneDocument = {
|
|
|
8
8
|
name?: string;
|
|
9
9
|
mesh?: number;
|
|
10
10
|
children?: number[];
|
|
11
|
+
matrix?: number[];
|
|
12
|
+
translation?: number[];
|
|
13
|
+
rotation?: number[];
|
|
14
|
+
scale?: number[];
|
|
11
15
|
}>;
|
|
12
16
|
meshes?: Array<{
|
|
13
17
|
name?: string;
|
|
14
18
|
primitives?: Array<{
|
|
15
19
|
material?: number;
|
|
20
|
+
attributes?: Record<string, number>;
|
|
16
21
|
}>;
|
|
17
22
|
}>;
|
|
23
|
+
accessors?: Array<{
|
|
24
|
+
bufferView?: number;
|
|
25
|
+
byteOffset?: number;
|
|
26
|
+
count?: number;
|
|
27
|
+
componentType?: number;
|
|
28
|
+
type?: string;
|
|
29
|
+
min?: number[];
|
|
30
|
+
max?: number[];
|
|
31
|
+
}>;
|
|
32
|
+
bufferViews?: Array<{
|
|
33
|
+
buffer?: number;
|
|
34
|
+
byteLength?: number;
|
|
35
|
+
byteOffset?: number;
|
|
36
|
+
byteStride?: number;
|
|
37
|
+
}>;
|
|
18
38
|
materials?: Array<{
|
|
19
39
|
pbrMetallicRoughness?: {
|
|
20
40
|
baseColorFactor?: number[];
|
|
21
41
|
};
|
|
22
42
|
}>;
|
|
23
43
|
};
|
|
44
|
+
export type GlbScene = {
|
|
45
|
+
document: GlbSceneDocument;
|
|
46
|
+
binary?: Uint8Array;
|
|
47
|
+
};
|
|
48
|
+
export declare function readGlbScene(glb: Uint8Array): GlbScene | null;
|
|
24
49
|
export declare function readGlbSceneDocument(glb: Uint8Array): GlbSceneDocument | null;
|
|
25
50
|
//# sourceMappingURL=stepGlbDocument.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepGlbDocument.d.ts","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"stepGlbDocument.d.ts","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAClH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACvJ,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxG,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,oBAAoB,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3E,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA0B7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE7E"}
|
package/dist/stepGlbDocument.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function readGlbScene(glb) {
|
|
2
2
|
if (glb.byteLength < 20)
|
|
3
3
|
return null;
|
|
4
4
|
const view = new DataView(glb.buffer, glb.byteOffset, glb.byteLength);
|
|
5
5
|
if (view.getUint32(0, true) !== 0x46546c67 || view.getUint32(4, true) !== 2)
|
|
6
6
|
return null;
|
|
7
7
|
let offset = 12;
|
|
8
|
+
let document = null;
|
|
9
|
+
let binary;
|
|
8
10
|
while (offset + 8 <= glb.byteLength) {
|
|
9
11
|
const length = view.getUint32(offset, true);
|
|
10
12
|
const type = view.getUint32(offset + 4, true);
|
|
@@ -14,14 +16,20 @@ export function readGlbSceneDocument(glb) {
|
|
|
14
16
|
return null;
|
|
15
17
|
if (type === 0x4e4f534a) {
|
|
16
18
|
try {
|
|
17
|
-
|
|
19
|
+
document = JSON.parse(new TextDecoder().decode(glb.subarray(start, end)).trim());
|
|
18
20
|
}
|
|
19
21
|
catch {
|
|
20
22
|
return null;
|
|
21
23
|
}
|
|
22
24
|
}
|
|
25
|
+
else if (type === 0x004e4942) {
|
|
26
|
+
binary = glb.subarray(start, end);
|
|
27
|
+
}
|
|
23
28
|
offset = end;
|
|
24
29
|
}
|
|
25
|
-
return null;
|
|
30
|
+
return document ? { document, ...(binary ? { binary } : {}) } : null;
|
|
31
|
+
}
|
|
32
|
+
export function readGlbSceneDocument(glb) {
|
|
33
|
+
return readGlbScene(glb)?.document ?? null;
|
|
26
34
|
}
|
|
27
35
|
//# sourceMappingURL=stepGlbDocument.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepGlbDocument.js","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stepGlbDocument.js","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,YAAY,CAAC,GAAe;IAC1C,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAA4B,IAAI,CAAC;IAC7C,IAAI,MAA8B,CAAC;IACnC,OAAO,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;QAC3B,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAqB,CAAC;YACvG,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAe;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cadModifierTypes.d.ts","sourceRoot":"","sources":["../../src/support/cadModifierTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cadModifierTypes.d.ts","sourceRoot":"","sources":["../../src/support/cadModifierTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
"required": false,
|
|
7
7
|
"validation": "Compose host port published to container port 3000; configure this when host port 3000 is already occupied.",
|
|
8
8
|
"sensitive": false,
|
|
9
|
-
"subsystem": "Docker port publishing"
|
|
9
|
+
"subsystem": "Docker port publishing",
|
|
10
|
+
"source": "../deploy/docker/compose.yaml",
|
|
11
|
+
"ownerPage": "guides/deployment.md#docker-listener"
|
|
10
12
|
},
|
|
11
13
|
{
|
|
12
14
|
"name": "SKETCHFORGE_SHARED_PROJECTS_VOLUME",
|
|
@@ -14,7 +16,9 @@
|
|
|
14
16
|
"required": false,
|
|
15
17
|
"validation": "Docker named volume or bind mount source for /data/projects, where shared project files are stored.",
|
|
16
18
|
"sensitive": false,
|
|
17
|
-
"subsystem": "Docker shared project persistence"
|
|
19
|
+
"subsystem": "Docker shared project persistence",
|
|
20
|
+
"source": "../deploy/docker/compose.yaml",
|
|
21
|
+
"ownerPage": "guides/deployment.md#shared-projects"
|
|
18
22
|
},
|
|
19
23
|
{
|
|
20
24
|
"name": "SKETCHFORGE_PROJECTS_VOLUME",
|
|
@@ -22,7 +26,9 @@
|
|
|
22
26
|
"required": false,
|
|
23
27
|
"validation": "Docker named volume or bind mount source for /data/my-projects. Used when SKETCHFORGE_PROJECTS_DIR points to that path.",
|
|
24
28
|
"sensitive": false,
|
|
25
|
-
"subsystem": "Docker server project persistence"
|
|
29
|
+
"subsystem": "Docker server project persistence",
|
|
30
|
+
"source": "../deploy/docker/compose.yaml",
|
|
31
|
+
"ownerPage": "guides/deployment.md#server-backed-projects"
|
|
26
32
|
},
|
|
27
33
|
{
|
|
28
34
|
"name": "PORT",
|
|
@@ -30,7 +36,9 @@
|
|
|
30
36
|
"required": false,
|
|
31
37
|
"validation": "Integer from 1 through 65535; invalid values fall back to 3000.",
|
|
32
38
|
"sensitive": false,
|
|
33
|
-
"subsystem": "Docker server listener"
|
|
39
|
+
"subsystem": "Docker server listener",
|
|
40
|
+
"source": "../deploy/docker/start-server.mjs",
|
|
41
|
+
"ownerPage": "guides/deployment.md#docker-listener"
|
|
34
42
|
},
|
|
35
43
|
{
|
|
36
44
|
"name": "HOSTNAME",
|
|
@@ -38,7 +46,9 @@
|
|
|
38
46
|
"required": false,
|
|
39
47
|
"validation": "Passed to the Next.js server as its bind host.",
|
|
40
48
|
"sensitive": false,
|
|
41
|
-
"subsystem": "Docker server listener"
|
|
49
|
+
"subsystem": "Docker server listener",
|
|
50
|
+
"source": "../deploy/docker/start-server.mjs",
|
|
51
|
+
"ownerPage": "guides/deployment.md#docker-listener"
|
|
42
52
|
},
|
|
43
53
|
{
|
|
44
54
|
"name": "SKETCHFORGE_LEGACY_PORT",
|
|
@@ -46,7 +56,9 @@
|
|
|
46
56
|
"required": false,
|
|
47
57
|
"validation": "Integer from 1 through 65535; invalid values fall back to 80. Set equal to PORT to disable the compatibility proxy.",
|
|
48
58
|
"sensitive": false,
|
|
49
|
-
"subsystem": "Docker compatibility proxy"
|
|
59
|
+
"subsystem": "Docker compatibility proxy",
|
|
60
|
+
"source": "../deploy/docker/start-server.mjs",
|
|
61
|
+
"ownerPage": "guides/deployment.md#docker-listener"
|
|
50
62
|
},
|
|
51
63
|
{
|
|
52
64
|
"name": "SKETCHFORGE_PROJECTS_DIR",
|
|
@@ -54,7 +66,9 @@
|
|
|
54
66
|
"required": false,
|
|
55
67
|
"validation": "Filesystem path writable by the server. Enables server-backed project storage and must be paired with SKETCHFORGE_API_TOKEN to enable the scripting REST API.",
|
|
56
68
|
"sensitive": false,
|
|
57
|
-
"subsystem": "Server project storage and REST API"
|
|
69
|
+
"subsystem": "Server project storage and REST API",
|
|
70
|
+
"source": "../apps/web/src/lib/serverProjectStore.ts",
|
|
71
|
+
"ownerPage": "guides/deployment.md#server-backed-projects"
|
|
58
72
|
},
|
|
59
73
|
{
|
|
60
74
|
"name": "SKETCHFORGE_API_TOKEN",
|
|
@@ -62,7 +76,9 @@
|
|
|
62
76
|
"required": false,
|
|
63
77
|
"validation": "Non-empty bearer token. Configure a high-entropy secret; never expose it to browsers or logs. Used with SKETCHFORGE_PROJECTS_DIR.",
|
|
64
78
|
"sensitive": true,
|
|
65
|
-
"subsystem": "REST API authentication"
|
|
79
|
+
"subsystem": "REST API authentication",
|
|
80
|
+
"source": "../apps/web/src/lib/apiTokens.ts",
|
|
81
|
+
"ownerPage": "guides/deployment.md#rest-api-access"
|
|
66
82
|
},
|
|
67
83
|
{
|
|
68
84
|
"name": "SKETCHFORGE_SHARED_PROJECTS_DIR",
|
|
@@ -70,7 +86,9 @@
|
|
|
70
86
|
"required": false,
|
|
71
87
|
"validation": "Filesystem path writable by the server; mount persistent storage at this path to retain shared projects across container replacement.",
|
|
72
88
|
"sensitive": false,
|
|
73
|
-
"subsystem": "Shared project files"
|
|
89
|
+
"subsystem": "Shared project files",
|
|
90
|
+
"source": "../apps/web/src/app/api/shared-projects/route.ts",
|
|
91
|
+
"ownerPage": "guides/deployment.md#shared-projects"
|
|
74
92
|
},
|
|
75
93
|
{
|
|
76
94
|
"name": "SKETCHFORGE_APP_VERSION",
|
|
@@ -78,7 +96,9 @@
|
|
|
78
96
|
"required": false,
|
|
79
97
|
"validation": "Semantic version; invalid values are ignored.",
|
|
80
98
|
"sensitive": false,
|
|
81
|
-
"subsystem": "Update status"
|
|
99
|
+
"subsystem": "Update status",
|
|
100
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
101
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
82
102
|
},
|
|
83
103
|
{
|
|
84
104
|
"name": "SKETCHFORGE_UPDATE_MANIFEST_URL",
|
|
@@ -86,7 +106,9 @@
|
|
|
86
106
|
"required": false,
|
|
87
107
|
"validation": "HTTP or HTTPS URL returning JSON with a semantic-version `version` field.",
|
|
88
108
|
"sensitive": false,
|
|
89
|
-
"subsystem": "Update status"
|
|
109
|
+
"subsystem": "Update status",
|
|
110
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
111
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
90
112
|
},
|
|
91
113
|
{
|
|
92
114
|
"name": "SKETCHFORGE_UPDATE_GUIDE_URL",
|
|
@@ -94,7 +116,9 @@
|
|
|
94
116
|
"required": false,
|
|
95
117
|
"validation": "URL shown to users as the update guide.",
|
|
96
118
|
"sensitive": false,
|
|
97
|
-
"subsystem": "Update status"
|
|
119
|
+
"subsystem": "Update status",
|
|
120
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
121
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
98
122
|
},
|
|
99
123
|
{
|
|
100
124
|
"name": "SKETCHFORGE_UPDATE_TRIGGER_URL",
|
|
@@ -102,7 +126,9 @@
|
|
|
102
126
|
"required": false,
|
|
103
127
|
"validation": "HTTP or HTTPS URL for the configured update trigger endpoint.",
|
|
104
128
|
"sensitive": false,
|
|
105
|
-
"subsystem": "Server-triggered updates"
|
|
129
|
+
"subsystem": "Server-triggered updates",
|
|
130
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
131
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
106
132
|
},
|
|
107
133
|
{
|
|
108
134
|
"name": "SKETCHFORGE_UPDATE_ADMIN_KEY",
|
|
@@ -110,7 +136,9 @@
|
|
|
110
136
|
"required": false,
|
|
111
137
|
"validation": "Secret expected by the update trigger service. Required with SKETCHFORGE_UPDATE_TRIGGER_URL.",
|
|
112
138
|
"sensitive": true,
|
|
113
|
-
"subsystem": "Server-triggered updates"
|
|
139
|
+
"subsystem": "Server-triggered updates",
|
|
140
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
141
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
114
142
|
},
|
|
115
143
|
{
|
|
116
144
|
"name": "SKETCHFORGE_UPDATE_TRIGGER_TOKEN",
|
|
@@ -118,7 +146,9 @@
|
|
|
118
146
|
"required": false,
|
|
119
147
|
"validation": "Secret bearer token sent to the configured trigger endpoint. Required when that endpoint enforces a trigger token.",
|
|
120
148
|
"sensitive": true,
|
|
121
|
-
"subsystem": "Server-triggered updates"
|
|
149
|
+
"subsystem": "Server-triggered updates",
|
|
150
|
+
"source": "../apps/web/src/app/api/app-update/route.ts",
|
|
151
|
+
"ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
|
|
122
152
|
}
|
|
123
153
|
]
|
|
124
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operatorConfiguration.d.ts","sourceRoot":"","sources":["../../../src/support/lib/operatorConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,+BAA+B,CAAuB;AAEhF,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"operatorConfiguration.d.ts","sourceRoot":"","sources":["../../../src/support/lib/operatorConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,+BAA+B,CAAuB;AAEhF,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAAgB,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,UAE5D"}
|