@maadb/core 0.8.4 → 0.9.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.
@@ -29,4 +29,6 @@ export declare class OperationJournal {
29
29
  */
30
30
  export declare function atomicWriteSync(targetPath: string, content: string): string;
31
31
  export declare function atomicWrite(targetPath: string, content: string): Promise<string>;
32
+ /** Publish a complete file without ever replacing an existing target. */
33
+ export declare function atomicCreate(targetPath: string, content: string): Promise<string>;
32
34
  //# sourceMappingURL=journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/engine/journal.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;CAC9D;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAsB;gBAEzB,UAAU,EAAE,MAAM;IAK9B,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IAIZ,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAezF,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQzD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK1B,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE;CAgCtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK3E;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtF"}
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/engine/journal.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;CAC9D;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAsB;gBAEzB,UAAU,EAAE,MAAM;IAK9B,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IAIZ,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAezF,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQzD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK1B,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,SAAS,IAAI,MAAM,EAAE;CAgCtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS3E;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUtF;AAED,yEAAyE;AACzE,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvF"}
@@ -3,6 +3,7 @@
3
3
  // Stored in _backend/journal.json. Reconciled on engine startup.
4
4
  // ============================================================================
5
5
  import { existsSync, readFileSync, writeFileSync, unlinkSync, renameSync } from 'node:fs';
6
+ import { randomUUID } from 'node:crypto';
6
7
  import path from 'node:path';
7
8
  export class OperationJournal {
8
9
  journalPath;
@@ -95,17 +96,46 @@ export class OperationJournal {
95
96
  * On failure, temp file is cleaned up.
96
97
  */
97
98
  export function atomicWriteSync(targetPath, content) {
98
- const tempPath = targetPath + '.maad-tmp';
99
- writeFileSync(tempPath, content, 'utf-8');
100
- renameSync(tempPath, targetPath);
99
+ const tempPath = `${targetPath}.maad-tmp-${process.pid}-${randomUUID()}`;
100
+ try {
101
+ writeFileSync(tempPath, content, { encoding: 'utf-8', flag: 'wx' });
102
+ renameSync(tempPath, targetPath);
103
+ }
104
+ finally {
105
+ if (existsSync(tempPath))
106
+ unlinkSync(tempPath);
107
+ }
101
108
  return targetPath;
102
109
  }
103
110
  export async function atomicWrite(targetPath, content) {
104
- const { writeFile: fsWriteFile } = await import('node:fs/promises');
105
- const { rename } = await import('node:fs/promises');
106
- const tempPath = targetPath + '.maad-tmp';
107
- await fsWriteFile(tempPath, content, 'utf-8');
108
- await rename(tempPath, targetPath);
111
+ const { writeFile: fsWriteFile, rename, unlink: fsUnlink } = await import('node:fs/promises');
112
+ const tempPath = `${targetPath}.maad-tmp-${process.pid}-${randomUUID()}`;
113
+ try {
114
+ await fsWriteFile(tempPath, content, { encoding: 'utf-8', flag: 'wx' });
115
+ await rename(tempPath, targetPath);
116
+ }
117
+ finally {
118
+ try {
119
+ await fsUnlink(tempPath);
120
+ }
121
+ catch { /* renamed or already cleaned */ }
122
+ }
123
+ return targetPath;
124
+ }
125
+ /** Publish a complete file without ever replacing an existing target. */
126
+ export async function atomicCreate(targetPath, content) {
127
+ const { writeFile: fsWriteFile, link, unlink: fsUnlink } = await import('node:fs/promises');
128
+ const tempPath = `${targetPath}.maad-tmp-${process.pid}-${randomUUID()}`;
129
+ try {
130
+ await fsWriteFile(tempPath, content, { encoding: 'utf-8', flag: 'wx' });
131
+ await link(tempPath, targetPath);
132
+ }
133
+ finally {
134
+ try {
135
+ await fsUnlink(tempPath);
136
+ }
137
+ catch { /* best-effort cleanup */ }
138
+ }
109
139
  return targetPath;
110
140
  }
111
141
  //# sourceMappingURL=journal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/engine/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/engine/journal.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,14 @@ export declare function isContainedIn(targetPath: string, rootDir: string): bool
9
9
  * Use when the target path already exists on disk.
10
10
  */
11
11
  export declare function isReallyContainedIn(targetPath: string, rootDir: string): boolean;
12
+ /**
13
+ * Check a path that may not exist yet without losing symlink protection.
14
+ * The nearest existing ancestor is resolved through the filesystem, then the
15
+ * missing suffix is reconstructed beneath that real path.
16
+ */
17
+ export declare function isWritePathContainedIn(targetPath: string, rootDir: string): boolean;
18
+ export declare function isSafeSchemaRef(value: string): boolean;
19
+ export declare function isSafeProjectRelativePath(value: string): boolean;
12
20
  /**
13
21
  * Assert containment or throw. Use at validation boundaries.
14
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pathguard.d.ts","sourceRoot":"","sources":["../../src/engine/pathguard.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAShF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI5F"}
1
+ {"version":3,"file":"pathguard.d.ts","sourceRoot":"","sources":["../../src/engine/pathguard.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAShF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAmBnF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI5F"}
@@ -3,7 +3,9 @@
3
3
  // Prevents path traversal attacks (../, sibling dirs, symlinks)
4
4
  // ============================================================================
5
5
  import path from 'node:path';
6
- import { realpathSync } from 'node:fs';
6
+ import { existsSync, realpathSync } from 'node:fs';
7
+ const SAFE_SCHEMA_REF = /^[a-z][a-z0-9_]*\.v[1-9][0-9]*$/;
8
+ const SAFE_PATH_SEGMENT = /^[A-Za-z0-9_-][A-Za-z0-9._-]*$/;
7
9
  /**
8
10
  * Check that a target path is contained within the root directory.
9
11
  * Uses path.resolve for canonicalization, not startsWith on raw strings.
@@ -21,15 +23,53 @@ export function isContainedIn(targetPath, rootDir) {
21
23
  */
22
24
  export function isReallyContainedIn(targetPath, rootDir) {
23
25
  try {
24
- const realRoot = realpathSync(rootDir) + path.sep;
26
+ const root = realpathSync(rootDir);
27
+ const realRoot = root + path.sep;
25
28
  const realTarget = realpathSync(targetPath);
26
- return realTarget === realpathSync(rootDir) || realTarget.startsWith(realRoot);
29
+ return realTarget === root || realTarget.startsWith(realRoot);
27
30
  }
28
31
  catch {
29
- // If realpath fails (file doesn't exist), fall back to resolve check
30
- return isContainedIn(targetPath, rootDir);
32
+ return false;
31
33
  }
32
34
  }
35
+ /**
36
+ * Check a path that may not exist yet without losing symlink protection.
37
+ * The nearest existing ancestor is resolved through the filesystem, then the
38
+ * missing suffix is reconstructed beneath that real path.
39
+ */
40
+ export function isWritePathContainedIn(targetPath, rootDir) {
41
+ if (!isContainedIn(targetPath, rootDir))
42
+ return false;
43
+ try {
44
+ const realRoot = realpathSync(rootDir);
45
+ let ancestor = path.resolve(targetPath);
46
+ while (!existsSync(ancestor)) {
47
+ const parent = path.dirname(ancestor);
48
+ if (parent === ancestor)
49
+ return false;
50
+ ancestor = parent;
51
+ }
52
+ const realAncestor = realpathSync(ancestor);
53
+ if (!isContainedIn(realAncestor, realRoot))
54
+ return false;
55
+ const suffix = path.relative(ancestor, path.resolve(targetPath));
56
+ return isContainedIn(path.resolve(realAncestor, suffix), realRoot);
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ export function isSafeSchemaRef(value) {
63
+ return SAFE_SCHEMA_REF.test(value);
64
+ }
65
+ export function isSafeProjectRelativePath(value) {
66
+ if (value.length === 0 || value.includes('\\') || value.includes('\0') || path.isAbsolute(value))
67
+ return false;
68
+ const trimmed = value.endsWith('/') ? value.slice(0, -1) : value;
69
+ if (trimmed.length === 0)
70
+ return false;
71
+ return trimmed.split('/').every(segment => segment !== '.' && segment !== '..' && SAFE_PATH_SEGMENT.test(segment));
72
+ }
33
73
  /**
34
74
  * Assert containment or throw. Use at validation boundaries.
35
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pathguard.js","sourceRoot":"","sources":["../../src/engine/pathguard.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gDAAgD;AAChD,gEAAgE;AAChE,+EAA+E;AAE/E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,OAAe;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,+DAA+D;IAC/D,OAAO,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC7F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,OAAe;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QAClD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC5C,OAAO,UAAU,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,OAAO,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,OAAe,EAAE,OAAe;IACpF,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,MAAM,UAAU,eAAe,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pathguard.js","sourceRoot":"","sources":["../../src/engine/pathguard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repairs.d.ts","sourceRoot":"","sources":["../../src/engine/repairs.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAM,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAEV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA8MpB,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EACnD,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAyHpC"}
1
+ {"version":3,"file":"repairs.d.ts","sourceRoot":"","sources":["../../src/engine/repairs.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAM,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAEV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAgNpB,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EACnD,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAmJpC"}
@@ -36,6 +36,8 @@ import { generateDocument, extractBody } from '../writer/index.js';
36
36
  import { atomicWrite } from './journal.js';
37
37
  import { indexFile } from './indexing.js';
38
38
  import { readFile } from 'node:fs/promises';
39
+ import { isWritePathContainedIn } from './pathguard.js';
40
+ import { validateStoredIdentity } from './write-boundary.js';
39
41
  // ---- prune_orphan_refs -----------------------------------------------------
40
42
  function pruneOrphanRefs(ctx, doc, frontmatter) {
41
43
  const schema = ctx.schemaStore.getSchemaForType(doc.docType);
@@ -248,6 +250,18 @@ export async function repairWhere(ctx, filter, docType, repairTypes, maxRecords)
248
250
  }
249
251
  continue;
250
252
  }
253
+ const storedIdentityViolation = validateStoredIdentity(frontmatter, doc);
254
+ if (storedIdentityViolation) {
255
+ for (const strategy of repairTypes) {
256
+ failed.push({
257
+ docId: docId,
258
+ strategy,
259
+ code: 'REPAIR_REQUIRES_MIGRATION',
260
+ message: storedIdentityViolation.message,
261
+ });
262
+ }
263
+ continue;
264
+ }
251
265
  let workingFrontmatter = frontmatter;
252
266
  const appliedRepairs = [];
253
267
  for (const strategyName of repairTypes) {
@@ -264,6 +278,19 @@ export async function repairWhere(ctx, filter, docType, repairTypes, maxRecords)
264
278
  }
265
279
  if (outcome.noop)
266
280
  continue;
281
+ const expectedSchema = strategyName === 'fix_schema_drift'
282
+ ? ctx.registry.types.get(doc.docType)?.schemaRef
283
+ : String(workingFrontmatter.schema);
284
+ const identityViolation = validateStoredIdentity(outcome.newFrontmatter, doc, expectedSchema);
285
+ if (identityViolation) {
286
+ failed.push({
287
+ docId: docId,
288
+ strategy: strategyName,
289
+ code: 'REPAIR_REQUIRES_MIGRATION',
290
+ message: identityViolation.message,
291
+ });
292
+ continue;
293
+ }
267
294
  workingFrontmatter = outcome.newFrontmatter;
268
295
  appliedRepairs.push({ strategy: strategyName, changedFields: outcome.changedFields });
269
296
  }
@@ -326,6 +353,9 @@ async function writeRepairedRecord(ctx, doc, newFrontmatter) {
326
353
  }
327
354
  const absPath = path.join(ctx.projectRoot, doc.filePath);
328
355
  let rawBody;
356
+ if (!isWritePathContainedIn(absPath, ctx.projectRoot)) {
357
+ return { ok: false, code: 'PATH_OUTSIDE_PROJECT', message: `document path "${absPath}" escapes the project root` };
358
+ }
329
359
  try {
330
360
  const raw = await readFile(absPath, 'utf-8');
331
361
  rawBody = extractBody(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"repairs.js","sourceRoot":"","sources":["../../src/engine/repairs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repairs.js","sourceRoot":"","sources":["../../src/engine/repairs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { DocumentRecord } from '../types.js';
2
+ export declare const CORE_IDENTITY_FIELDS: readonly ["doc_id", "doc_type", "schema"];
3
+ export interface BoundaryViolation {
4
+ code: 'INVALID_FIELDS' | 'FRONTMATTER_GUARD';
5
+ message: string;
6
+ }
7
+ export declare function validateCallerFields(fields: unknown): BoundaryViolation | null;
8
+ export declare function validateStoredIdentity(frontmatter: Record<string, unknown>, doc: Pick<DocumentRecord, 'docId' | 'docType' | 'schemaRef'>, expectedSchema?: string): BoundaryViolation | null;
9
+ //# sourceMappingURL=write-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-boundary.d.ts","sourceRoot":"","sources":["../../src/engine/write-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,oBAAoB,2CAA4C,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAc9E;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC,EAC5D,cAAc,GAAE,MAAgC,GAC/C,iBAAiB,GAAG,IAAI,CAgB1B"}
@@ -0,0 +1,32 @@
1
+ export const CORE_IDENTITY_FIELDS = ['doc_id', 'doc_type', 'schema'];
2
+ export function validateCallerFields(fields) {
3
+ if (typeof fields !== 'object' || fields === null || Array.isArray(fields)) {
4
+ return { code: 'INVALID_FIELDS', message: 'fields must be a plain object, not null, a string, or an array' };
5
+ }
6
+ for (const field of CORE_IDENTITY_FIELDS) {
7
+ if (Object.prototype.hasOwnProperty.call(fields, field)) {
8
+ return {
9
+ code: 'FRONTMATTER_GUARD',
10
+ message: `Field "${field}" is engine-owned and cannot be supplied by a caller`,
11
+ };
12
+ }
13
+ }
14
+ return null;
15
+ }
16
+ export function validateStoredIdentity(frontmatter, doc, expectedSchema = doc.schemaRef) {
17
+ const expected = {
18
+ doc_id: doc.docId,
19
+ doc_type: doc.docType,
20
+ schema: expectedSchema,
21
+ };
22
+ for (const field of CORE_IDENTITY_FIELDS) {
23
+ if (frontmatter[field] !== expected[field]) {
24
+ return {
25
+ code: 'FRONTMATTER_GUARD',
26
+ message: `Stored field "${field}" does not match the addressed record (expected "${expected[field]}")`,
27
+ };
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ //# sourceMappingURL=write-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-boundary.js","sourceRoot":"","sources":["../../src/engine/write-boundary.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAO9E,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC;IAC/G,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,UAAU,KAAK,sDAAsD;aAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAoC,EACpC,GAA4D,EAC5D,iBAAyB,GAAG,CAAC,SAAmB;IAEhD,MAAM,QAAQ,GAA0D;QACtE,MAAM,EAAE,GAAG,CAAC,KAAe;QAC3B,QAAQ,EAAE,GAAG,CAAC,OAAiB;QAC/B,MAAM,EAAE,cAAc;KACvB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,iBAAiB,KAAK,oDAAoD,QAAQ,CAAC,KAAK,CAAC,IAAI;aACvG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"writes.d.ts","sourceRoot":"","sources":["../../src/engine/writes.ts"],"names":[],"mappings":"AAQA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAoB,gBAAgB,EAAE,sBAAsB,EAAuB,MAAM,YAAY,CAAC;AAS1M,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAuG/B;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,KAAK,EACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAoI/B;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAgF/B;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAiEnC;AAID,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,eAAe,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CA0H7B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,eAAe,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAoE7B;AAqKD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAqEzC"}
1
+ {"version":3,"file":"writes.d.ts","sourceRoot":"","sources":["../../src/engine/writes.ts"],"names":[],"mappings":"AAQA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAoB,gBAAgB,EAAE,sBAAsB,EAAuB,MAAM,YAAY,CAAC;AAc1M,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EACzB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAkI/B;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,KAAK,EACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAkJ/B;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,KAAK,EACT,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAoG/B;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAiEnC;AAID,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,eAAe,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAmJ7B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,eAAe,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAoE7B;AAqKD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CA4EzC"}
@@ -13,10 +13,18 @@ import { generateDocument, extractBody } from '../writer/index.js';
13
13
  import { gitCommit } from './context.js';
14
14
  import { indexFile } from './indexing.js';
15
15
  import { generateDocId, readFrontmatter, toCanonicalRelPath } from './helpers.js';
16
- import { atomicWrite } from './journal.js';
16
+ import { atomicCreate, atomicWrite } from './journal.js';
17
17
  import { checkDocIdSafe } from './docid-safe.js';
18
- import { isContainedIn } from './pathguard.js';
18
+ import { isWritePathContainedIn } from './pathguard.js';
19
+ import { validateCallerFields, validateStoredIdentity } from './write-boundary.js';
20
+ function isAlreadyExistsError(error) {
21
+ return typeof error === 'object' && error !== null && 'code' in error && error.code === 'EEXIST';
22
+ }
19
23
  export async function createDocument(ctx, dt, fields, body, customDocId) {
24
+ const fieldsViolation = validateCallerFields(fields);
25
+ if (fieldsViolation) {
26
+ return singleErr(fieldsViolation.code, fieldsViolation.message);
27
+ }
20
28
  const regType = ctx.registry.types.get(dt);
21
29
  if (!regType)
22
30
  return singleErr('UNKNOWN_TYPE', `Type "${dt}" not in registry`);
@@ -37,10 +45,10 @@ export async function createDocument(ctx, dt, fields, body, customDocId) {
37
45
  return singleErr('DUPLICATE_DOC_ID', `Document "${id}" already exists`);
38
46
  }
39
47
  const frontmatter = {
48
+ ...fields,
40
49
  doc_id: id,
41
50
  doc_type: dt,
42
51
  schema: regType.schemaRef,
43
- ...fields,
44
52
  };
45
53
  const validation = validateFrontmatter(frontmatter, schema, ctx.registry, undefined, { mode: 'write' });
46
54
  if (!validation.valid) {
@@ -48,16 +56,30 @@ export async function createDocument(ctx, dt, fields, body, customDocId) {
48
56
  }
49
57
  const markdown = generateDocument(frontmatter, schema, body);
50
58
  const dirPath = path.join(ctx.projectRoot, regType.path);
51
- if (!existsSync(dirPath))
52
- mkdirSync(dirPath, { recursive: true });
59
+ if (!isWritePathContainedIn(dirPath, ctx.projectRoot)) {
60
+ return singleErr('PATH_OUTSIDE_PROJECT', `Write directory "${dirPath}" escapes the project root`);
61
+ }
62
+ try {
63
+ if (!existsSync(dirPath))
64
+ mkdirSync(dirPath, { recursive: true });
65
+ }
66
+ catch (error) {
67
+ return singleErr('WRITE_ERROR', `Failed to create write directory: ${error instanceof Error ? error.message : String(error)}`);
68
+ }
69
+ if (!isWritePathContainedIn(dirPath, ctx.projectRoot)) {
70
+ return singleErr('PATH_OUTSIDE_PROJECT', `Write directory "${dirPath}" escapes the project root through a symbolic link`);
71
+ }
53
72
  const fp = path.join(dirPath, `${id}.md`);
54
73
  // 0.7.6 (fup-2026-200) — defense-in-depth: assert the resolved write path
55
74
  // is contained within the project root. checkDocIdSafe above should have
56
75
  // already rejected any traversal attempt; this catches future regressions
57
76
  // (e.g., a new code path that bypasses validation) before disk touches.
58
- if (!isContainedIn(fp, ctx.projectRoot)) {
77
+ if (!isWritePathContainedIn(fp, ctx.projectRoot)) {
59
78
  return singleErr('PATH_OUTSIDE_PROJECT', `resolved write path "${fp}" is outside project root "${ctx.projectRoot}"`);
60
79
  }
80
+ if (existsSync(fp)) {
81
+ return singleErr('DUPLICATE_DOC_ID', `Document "${id}" already exists on disk`);
82
+ }
61
83
  // Pre-flight parse: catches frontmatter / profile errors before any disk write,
62
84
  // so invalid writes never leave orphan files on disk.
63
85
  const preflight = parseDocumentFromContent(markdown, toFilePath(fp), ctx.registry.subtypeMap);
@@ -69,7 +91,16 @@ export async function createDocument(ctx, dt, fields, body, customDocId) {
69
91
  }
70
92
  // Durable write: journal → atomic write → index → git → complete
71
93
  const journalId = ctx.journal.begin('create', id, fp);
72
- await atomicWrite(fp, markdown);
94
+ try {
95
+ await atomicCreate(fp, markdown);
96
+ }
97
+ catch (error) {
98
+ ctx.journal.complete(journalId);
99
+ if (isAlreadyExistsError(error)) {
100
+ return singleErr('DUPLICATE_DOC_ID', `Document "${id}" already exists on disk`);
101
+ }
102
+ return singleErr('WRITE_ERROR', `Failed to create document "${id}": ${error instanceof Error ? error.message : String(error)}`);
103
+ }
73
104
  ctx.journal.advance(journalId, 'file_written');
74
105
  const indexResult = await indexFile(ctx, toFilePath(fp));
75
106
  if (!indexResult.ok) {
@@ -113,6 +144,9 @@ export async function updateDocument(ctx, id, fields, body, appendBody, expected
113
144
  if (!schema)
114
145
  return singleErr('SCHEMA_NOT_FOUND', `No schema for type "${doc.docType}"`);
115
146
  const absPath = path.join(ctx.projectRoot, doc.filePath);
147
+ if (!isWritePathContainedIn(absPath, ctx.projectRoot)) {
148
+ return singleErr('PATH_OUTSIDE_PROJECT', `Document path "${absPath}" escapes the project root`);
149
+ }
116
150
  let raw;
117
151
  try {
118
152
  raw = await readFile(absPath, 'utf-8');
@@ -120,13 +154,23 @@ export async function updateDocument(ctx, id, fields, body, appendBody, expected
120
154
  catch {
121
155
  return singleErr('FILE_READ_ERROR', `Cannot read file: ${absPath}`);
122
156
  }
123
- const currentFm = await readFrontmatter(ctx.projectRoot, doc);
157
+ let currentFm;
158
+ try {
159
+ currentFm = parseMatter(raw).data;
160
+ }
161
+ catch (error) {
162
+ return singleErr('PARSE_ERROR', `Cannot parse frontmatter for "${id}": ${error instanceof Error ? error.message : String(error)}`);
163
+ }
164
+ const identityViolation = validateStoredIdentity(currentFm, doc);
165
+ if (identityViolation) {
166
+ return singleErr(identityViolation.code, identityViolation.message);
167
+ }
124
168
  const changedFields = [];
125
169
  const updatedFm = { ...currentFm };
126
- if (fields) {
127
- // Guard: reject non-object fields that survived past the MCP layer
128
- if (typeof fields !== 'object' || Array.isArray(fields)) {
129
- return singleErr('INVALID_FIELDS', 'fields must be a plain object, not a string or array');
170
+ if (fields !== undefined) {
171
+ const fieldsViolation = validateCallerFields(fields);
172
+ if (fieldsViolation) {
173
+ return singleErr(fieldsViolation.code, fieldsViolation.message);
130
174
  }
131
175
  for (const [key, value] of Object.entries(fields)) {
132
176
  if (updatedFm[key] !== value) {
@@ -224,6 +268,20 @@ export async function deleteDocument(ctx, id, mode, skipGit) {
224
268
  if (!doc)
225
269
  return singleErr('FILE_NOT_FOUND', `Document "${id}" not found`);
226
270
  const absPath = path.join(ctx.projectRoot, doc.filePath);
271
+ if (!isWritePathContainedIn(absPath, ctx.projectRoot)) {
272
+ return singleErr('PATH_OUTSIDE_PROJECT', `Document path "${absPath}" escapes the project root`);
273
+ }
274
+ let currentFm;
275
+ try {
276
+ currentFm = await readFrontmatter(ctx.projectRoot, doc);
277
+ }
278
+ catch (error) {
279
+ return singleErr('FILE_READ_ERROR', `Cannot read frontmatter for "${id}": ${error instanceof Error ? error.message : String(error)}`);
280
+ }
281
+ const identityViolation = validateStoredIdentity(currentFm, doc);
282
+ if (identityViolation) {
283
+ return singleErr(identityViolation.code, identityViolation.message);
284
+ }
227
285
  const journalId = ctx.journal.begin('delete', id, absPath);
228
286
  if (mode === 'hard') {
229
287
  try {
@@ -238,6 +296,9 @@ export async function deleteDocument(ctx, id, mode, skipGit) {
238
296
  const dir = path.dirname(absPath);
239
297
  const base = path.basename(absPath);
240
298
  const deletedPath = path.join(dir, `_deleted_${base}`);
299
+ if (!isWritePathContainedIn(deletedPath, ctx.projectRoot)) {
300
+ return singleErr('PATH_OUTSIDE_PROJECT', `Deleted-document path "${deletedPath}" escapes the project root`);
301
+ }
241
302
  try {
242
303
  await rename(absPath, deletedPath);
243
304
  }
@@ -387,6 +448,11 @@ export async function bulkCreate(ctx, records) {
387
448
  failed.push({ index: i, docId: rec.docId ?? null, error: `No schema for type "${rec.docType}"` });
388
449
  continue;
389
450
  }
451
+ const fieldsViolation = validateCallerFields(rec.fields);
452
+ if (fieldsViolation) {
453
+ failed.push({ index: i, docId: rec.docId ?? null, error: `${fieldsViolation.code}: ${fieldsViolation.message}` });
454
+ continue;
455
+ }
390
456
  const existingIds = [
391
457
  ...ctx.backend.getSampleDocIds(dt, 10000).map(id => id),
392
458
  ...succeeded.map(s => s.docId),
@@ -403,10 +469,10 @@ export async function bulkCreate(ctx, records) {
403
469
  continue;
404
470
  }
405
471
  const frontmatter = {
472
+ ...rec.fields,
406
473
  doc_id: id,
407
474
  doc_type: rec.docType,
408
475
  schema: regType.schemaRef,
409
- ...rec.fields,
410
476
  };
411
477
  const validation = validateFrontmatter(frontmatter, schema, ctx.registry, undefined, { mode: 'write' });
412
478
  if (!validation.valid) {
@@ -416,14 +482,32 @@ export async function bulkCreate(ctx, records) {
416
482
  }
417
483
  const markdown = generateDocument(frontmatter, schema, rec.body);
418
484
  const dirPath = path.join(ctx.projectRoot, regType.path);
419
- if (!existsSync(dirPath))
420
- mkdirSync(dirPath, { recursive: true });
485
+ if (!isWritePathContainedIn(dirPath, ctx.projectRoot)) {
486
+ failed.push({ index: i, docId: id, error: `PATH_OUTSIDE_PROJECT: write directory "${dirPath}" escapes the project root` });
487
+ continue;
488
+ }
489
+ try {
490
+ if (!existsSync(dirPath))
491
+ mkdirSync(dirPath, { recursive: true });
492
+ }
493
+ catch (error) {
494
+ failed.push({ index: i, docId: id, error: `WRITE_ERROR: ${error instanceof Error ? error.message : String(error)}` });
495
+ continue;
496
+ }
497
+ if (!isWritePathContainedIn(dirPath, ctx.projectRoot)) {
498
+ failed.push({ index: i, docId: id, error: `PATH_OUTSIDE_PROJECT: write directory "${dirPath}" escapes through a symbolic link` });
499
+ continue;
500
+ }
421
501
  const fp = path.join(dirPath, `${id}.md`);
422
502
  // 0.7.6 — defense-in-depth path containment.
423
- if (!isContainedIn(fp, ctx.projectRoot)) {
503
+ if (!isWritePathContainedIn(fp, ctx.projectRoot)) {
424
504
  failed.push({ index: i, docId: id, error: `PATH_OUTSIDE_PROJECT: resolved write path "${fp}" is outside project root` });
425
505
  continue;
426
506
  }
507
+ if (existsSync(fp)) {
508
+ failed.push({ index: i, docId: id, error: `DUPLICATE_DOC_ID: Document "${id}" already exists on disk` });
509
+ continue;
510
+ }
427
511
  // Pre-flight parse: keep invalid records out of the batch before touching disk.
428
512
  const preflight = parseDocumentFromContent(markdown, toFilePath(fp), ctx.registry.subtypeMap);
429
513
  if (!preflight.ok) {
@@ -431,10 +515,13 @@ export async function bulkCreate(ctx, records) {
431
515
  continue;
432
516
  }
433
517
  try {
434
- await atomicWrite(fp, markdown);
518
+ await atomicCreate(fp, markdown);
435
519
  }
436
520
  catch (e) {
437
- failed.push({ index: i, docId: id, error: `File write failed: ${e instanceof Error ? e.message : String(e)}` });
521
+ const error = isAlreadyExistsError(e)
522
+ ? `DUPLICATE_DOC_ID: Document "${id}" already exists on disk`
523
+ : `WRITE_ERROR: ${e instanceof Error ? e.message : String(e)}`;
524
+ failed.push({ index: i, docId: id, error });
438
525
  continue;
439
526
  }
440
527
  const indexResult = await indexFile(ctx, toFilePath(fp));
@@ -704,6 +791,13 @@ export async function purgeSoftDeleted(ctx, olderThanIso, maxRecords) {
704
791
  const allFiles = [];
705
792
  for (const doc of targets) {
706
793
  const absPath = path.join(ctx.projectRoot, doc.filePath);
794
+ if (!isWritePathContainedIn(absPath, ctx.projectRoot)) {
795
+ failed.push({
796
+ docId: doc.docId,
797
+ error: `PATH_OUTSIDE_PROJECT: document path "${absPath}" escapes the project root`,
798
+ });
799
+ continue;
800
+ }
707
801
  try {
708
802
  await unlink(absPath);
709
803
  }
@@ -1 +1 @@
1
- {"version":3,"file":"writes.js","sourceRoot":"","sources":["../../src/engine/writes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writes.js","sourceRoot":"","sources":["../../src/engine/writes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AASA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAML,KAAK,QAAQ,EAId,MAAM,aAAa,CAAC;AAKrB,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAmJjF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"AASA,OAAO,EAAiC,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAO1E,OAAO,EAML,KAAK,QAAQ,EAId,MAAM,aAAa,CAAC;AAKrB,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CA+JjF"}
@@ -7,7 +7,7 @@ import { existsSync, mkdirSync } from 'node:fs';
7
7
  import path from 'node:path';
8
8
  import { parseMatter } from '../parser/matter.js';
9
9
  import { ok, err, singleErr, maadError } from '../errors.js';
10
- import { isContainedIn } from '../engine/pathguard.js';
10
+ import { isReallyContainedIn, isSafeProjectRelativePath, isSafeSchemaRef, isWritePathContainedIn, } from '../engine/pathguard.js';
11
11
  import { docType, schemaRef, PRIMITIVES, DEFAULT_SUBTYPE_MAP, buildSubtypeMap, } from '../types.js';
12
12
  const VALID_NAME_REGEX = /^[a-z][a-z0-9_]*$/;
13
13
  const VALID_PREFIX_REGEX = /^[a-z0-9]{2,5}$/;
@@ -16,6 +16,9 @@ export async function loadRegistry(projectRoot) {
16
16
  if (!existsSync(registryPath)) {
17
17
  return singleErr('REGISTRY_NOT_FOUND', `Registry file not found: ${registryPath}`);
18
18
  }
19
+ if (!isReallyContainedIn(registryPath, projectRoot)) {
20
+ return singleErr('REGISTRY_INVALID', `Registry path escapes project root through a symbolic link: ${registryPath}`);
21
+ }
19
22
  let raw;
20
23
  try {
21
24
  raw = await readFile(registryPath, 'utf-8');
@@ -67,13 +70,17 @@ export async function loadRegistry(projectRoot) {
67
70
  continue;
68
71
  }
69
72
  const resolvedPath = path.join(projectRoot, typePath);
70
- if (!isContainedIn(resolvedPath, projectRoot)) {
73
+ if (!isSafeProjectRelativePath(typePath) || !isWritePathContainedIn(resolvedPath, projectRoot)) {
71
74
  errors.push(maadError('REGISTRY_INVALID', `Type "${name}" path escapes project root: ${typePath}`));
72
75
  continue;
73
76
  }
74
77
  if (!existsSync(resolvedPath)) {
75
78
  mkdirSync(resolvedPath, { recursive: true });
76
79
  }
80
+ if (!isReallyContainedIn(resolvedPath, projectRoot)) {
81
+ errors.push(maadError('REGISTRY_INVALID', `Type "${name}" path escapes project root through a symbolic link: ${typePath}`));
82
+ continue;
83
+ }
77
84
  // Validate id_prefix
78
85
  const idPrefix = typeDef['id_prefix'];
79
86
  if (typeof idPrefix !== 'string' || !VALID_PREFIX_REGEX.test(idPrefix)) {
@@ -88,24 +95,30 @@ export async function loadRegistry(projectRoot) {
88
95
  seenPrefixes.set(idPrefix, name);
89
96
  // Validate schema ref
90
97
  const schemaValue = typeDef['schema'];
91
- if (typeof schemaValue !== 'string' || schemaValue.length === 0) {
92
- errors.push(maadError('REGISTRY_INVALID', `Type "${name}" must have a "schema" string`));
98
+ if (typeof schemaValue !== 'string' || !isSafeSchemaRef(schemaValue)) {
99
+ errors.push(maadError('REGISTRY_INVALID', `Type "${name}" schema must match <type>.v<positive integer>`));
93
100
  continue;
94
101
  }
95
102
  const schemaFilePath = path.join(projectRoot, '_schema', `${schemaValue}.yaml`);
96
103
  if (!existsSync(schemaFilePath)) {
97
104
  errors.push(maadError('SCHEMA_NOT_FOUND', `Type "${name}" references schema "${schemaValue}" but file not found: ${schemaFilePath}`));
98
105
  }
106
+ else if (!isReallyContainedIn(schemaFilePath, projectRoot)) {
107
+ errors.push(maadError('REGISTRY_INVALID', `Type "${name}" schema escapes project root through a symbolic link: ${schemaValue}`));
108
+ }
99
109
  // Optional template
100
110
  const template = typeof typeDef['template'] === 'string' ? typeDef['template'] : null;
101
111
  if (template !== null) {
102
112
  const templatePath = path.join(projectRoot, template);
103
- if (!isContainedIn(templatePath, projectRoot)) {
113
+ if (!isSafeProjectRelativePath(template) || !isWritePathContainedIn(templatePath, projectRoot)) {
104
114
  errors.push(maadError('REGISTRY_INVALID', `Type "${name}" template escapes project root: ${template}`));
105
115
  }
106
116
  else if (!existsSync(templatePath)) {
107
117
  errors.push(maadError('FILE_NOT_FOUND', `Type "${name}" references template "${template}" but file not found`));
108
118
  }
119
+ else if (!isReallyContainedIn(templatePath, projectRoot)) {
120
+ errors.push(maadError('REGISTRY_INVALID', `Type "${name}" template escapes project root through a symbolic link: ${template}`));
121
+ }
109
122
  }
110
123
  types.set(name, {
111
124
  name: docType(name),
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/registry/loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAE/E,OAAO,EAGL,KAAK,QAAQ,EAOb,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAIrB,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAuFvG"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,KAAK,MAAM,EAAkB,MAAM,cAAc,CAAC;AAG/E,OAAO,EAGL,KAAK,QAAQ,EAOb,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAIrB,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAgGvG"}
@@ -8,6 +8,7 @@ import path from 'node:path';
8
8
  import { parseMatter } from '../parser/matter.js';
9
9
  import { ok, err, maadError } from '../errors.js';
10
10
  import { isPrecision, comparePrecision } from './precision.js';
11
+ import { isSafeSchemaRef, isWritePathContainedIn } from '../engine/pathguard.js';
11
12
  import { docType, } from '../types.js';
12
13
  const VALID_FIELD_TYPES = ['string', 'number', 'date', 'enum', 'ref', 'boolean', 'list', 'amount'];
13
14
  export async function loadSchemas(projectRoot, registry) {
@@ -29,9 +30,17 @@ export async function loadSchemas(projectRoot, registry) {
29
30
  // doesn't exist. For an absent registry the schemas map is empty anyway.
30
31
  }
31
32
  for (const [, regType] of registry.types) {
33
+ if (!isSafeSchemaRef(regType.schemaRef)) {
34
+ errors.push(maadError('SCHEMA_INVALID', `Unsafe schema reference for type "${regType.name}": ${regType.schemaRef}`));
35
+ continue;
36
+ }
32
37
  const schemaFile = path.join(projectRoot, '_schema', `${regType.schemaRef}.yaml`);
33
38
  let raw;
34
39
  try {
40
+ if (!isWritePathContainedIn(schemaFile, projectRoot)) {
41
+ errors.push(maadError('SCHEMA_INVALID', `Schema path escapes project root: ${regType.schemaRef}`));
42
+ continue;
43
+ }
35
44
  raw = await readFile(schemaFile, 'utf-8');
36
45
  const st = await stat(schemaFile);
37
46
  cachedFiles.set(schemaFile, { mtimeMs: st.mtimeMs, size: st.size });
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/schema/loader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maadb/core",
3
- "version": "0.8.4",
3
+ "version": "0.9.0",
4
4
  "description": "Markdown As A Database — treats markdown as the canonical data store, builds a queryable index, and gives LLMs deterministic read/write access.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,6 +62,7 @@
62
62
  "@types/better-sqlite3": "~7.6.13",
63
63
  "@types/js-yaml": "~4.0.9",
64
64
  "@types/node": "~24.13.1",
65
+ "@vitest/coverage-v8": "~4.1.9",
65
66
  "pino-pretty": "~13.1.3",
66
67
  "typescript": "~6.0.3",
67
68
  "vitest": "~4.1.8"