@substrat-run/contract-tests 0.133.0 → 0.134.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-text-fixtures.js","sourceRoot":"","sources":["../src/attachment-text-fixtures.ts"],"names":[],"mappings":"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;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IACtG,sGAA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"}
@@ -0,0 +1,3 @@
1
+ import type { ScopeHostFixture } from './scope-host-suite.js';
2
+ export declare function attachmentTextContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>): void;
3
+ //# sourceMappingURL=attachment-text-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-text-suite.d.ts","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CAsWN"}
@@ -0,0 +1,359 @@
1
+ /**
2
+ * Contract suite for attachment content search (#1575): an upload's text extracted by a
3
+ * job, indexed in the scope, and searchable through `ScopeAttachments.search`.
4
+ *
5
+ * What it pins, in one sentence: **an attachment is found by a phrase from its body
6
+ * exactly when the caller could `open` it, and a match the caller cannot open changes
7
+ * nothing about what the caller sees.**
8
+ *
9
+ * 1. **Every supported type, from its real producer.** Each fixture is uploaded, the
10
+ * extraction job runs through `runDueJobs`, and its recorded state is read through
11
+ * `readAttachmentText` on the adapter's own `ctx.sql`. An indexed file is found by a
12
+ * phrase from its body; an unsupported, empty or damaged one says so, and is never
13
+ * "indexed, no match". The upload of a damaged file still succeeds.
14
+ * 2. **The gate.** A match on an entity the caller cannot read is absent, takes no slot
15
+ * under a limit, and leaves the page identical to a scope where that file does not
16
+ * exist; every hit opens. Twin: the editor sees both.
17
+ * 3. **Idempotence.** Extracting again leaves one row and one match.
18
+ * 4. **Removal.** A removed attachment's text and index entries go with it, including
19
+ * when the removal lands before its extraction runs.
20
+ * 5. **Bounds.** Text past the per-attachment cap is cut and recorded `truncated`, and
21
+ * the capped row — near the size a Durable Object row is refused at — writes and is
22
+ * found.
23
+ * 6. **Dumps.** A dump carries no extracted text. An in-place restore keeps the text of
24
+ * the attachments it keeps and drops the rest; a fork, whose bytes stay under the
25
+ * source scope's key, records each attachment as failed rather than leaving it pending.
26
+ */
27
+ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
28
+ import { errorCodeOf, moduleId, permissionKey, platformActorId, principalId, scopeId as scopeIdSchema, tenantId, } from '@substrat-run/contracts';
29
+ import { ATTACHMENT_SEARCH_OWNER_MAX, ATTACHMENT_SEARCH_TOO_MANY_OWNERS, ATTACHMENT_TEXT_JOB, ATTACHMENT_TEXT_MODULE, DEFAULT_ATTACHMENT_TEXT_BOUNDS, SearchTermTooShort, isSearchIndexTable, ulid, } from '@substrat-run/kernel';
30
+ import { permMod } from './modules.js';
31
+ import { ATTACHMENT_TEXT_FIXTURES } from './attachment-text-fixtures.js';
32
+ const PERM_READ = permissionKey.parse('perm:read');
33
+ const PERM_USE = permissionKey.parse('perm:use');
34
+ const item = (id) => ({ entityType: 'item', entityId: id });
35
+ const bytes = (s) => new TextEncoder().encode(s);
36
+ /** For a test that uploads and extracts thousands of files: the setup, not the search, takes the time. */
37
+ const SETUP_HEAVY_MS = 120_000;
38
+ export function attachmentTextContractSuite(adapterName, makeFixture) {
39
+ describe(`attachment text search (#1575): ${adapterName}`, () => {
40
+ let fixture;
41
+ let host;
42
+ const t = tenantId.parse(ulid());
43
+ const staff = platformActorId.parse(ulid());
44
+ const editor = principalId.parse(ulid()); // perm:read + perm:use, tenant-wide
45
+ const bob = principalId.parse(ulid()); // no role: entity-narrowed grants only
46
+ beforeAll(async () => {
47
+ fixture = await makeFixture();
48
+ host = fixture.host;
49
+ host.registerModule(permMod);
50
+ await host.admin.createTenant(staff, { id: t, slug: `att-text-${t.toLowerCase()}`, name: 'Attachment text' });
51
+ await host.admin.grantEntitlement(staff, t, 'perm');
52
+ await host.provisionBlobStore(staff, { tenantId: t, vertical: 'docs', binding: 'ATTACHMENTS' });
53
+ await host.admin.defineRole(staff, t, { key: 'editor', permissions: [PERM_READ, PERM_USE], source: 'vertical' });
54
+ await host.admin.assignRole(staff, { principalId: editor, roleKey: 'editor', node: { tenantId: t, scopeId: null } });
55
+ // A role at the tenant that holds a DIFFERENT key on the target: never "wide" for reading.
56
+ await host.admin.defineRole(staff, t, { key: 'user', permissions: [PERM_USE], source: 'vertical' });
57
+ });
58
+ afterAll(async () => {
59
+ await fixture.cleanup();
60
+ });
61
+ /** A scope per test: `runDueJobs` drives a whole scope, so tests must not share one. */
62
+ const newScope = async () => {
63
+ const s = scopeIdSchema.parse(ulid());
64
+ await host.provisionScope(staff, { tenantId: t, scopeId: s, vertical: 'docs' });
65
+ await host.admin.activateScope(staff, t, s);
66
+ return s;
67
+ };
68
+ const upload = async (s, entity, filename, contentType, body) => (await host.attachments(editor, t, s)).upload({ entity, filename, contentType, visibility: 'internal', body });
69
+ /** Drive the scope's due runs until none are left. */
70
+ const extract = async (s) => {
71
+ for (let i = 0; i < 100; i += 1) {
72
+ if ((await host.runDueJobs(t, s, { limit: 500 })).attempted === 0)
73
+ return;
74
+ }
75
+ throw new Error('extraction runs did not settle');
76
+ };
77
+ const stateOf = async (s, id) => (await host.getScope(editor, t, s)).invoke('perm/attachment-text', { id });
78
+ const search = async (s, who, term, limit) => (await host.attachments(who, t, s)).search(term, limit === undefined ? undefined : { limit });
79
+ const grant = async (s, who, entity) => (await host.getScope(editor, t, s)).invoke('perm/share', { principal: who, permission: 'perm:read', entity });
80
+ /** Rows the console read sees — the index itself, not the search surface over it. */
81
+ const count = async (s, sql) => Number((await host.admin.queryScope(staff, t, s, { sql })).rows[0][0]);
82
+ const indexMatches = (s, word) => count(s, `SELECT count(*) FROM _substrat_search__attachments WHERE _substrat_search__attachments MATCH '"${word}"'`);
83
+ const textRows = (s, id) => count(s, `SELECT count(*) FROM _substrat_search__attachment_text WHERE attachment_id = '${id}'`);
84
+ describe('every supported type, from its real producer', () => {
85
+ let s;
86
+ const uploaded = new Map();
87
+ beforeAll(async () => {
88
+ s = await newScope();
89
+ for (const f of ATTACHMENT_TEXT_FIXTURES) {
90
+ // A damaged file's upload succeeds like any other: extraction is off the upload.
91
+ uploaded.set(f.name, await upload(s, item('fixtures'), f.filename, f.contentType, f.body));
92
+ }
93
+ });
94
+ it('records each upload as pending until its job runs', async () => {
95
+ for (const f of ATTACHMENT_TEXT_FIXTURES) {
96
+ expect((await stateOf(s, uploaded.get(f.name).id))?.status).toBe('pending');
97
+ }
98
+ });
99
+ it.each(ATTACHMENT_TEXT_FIXTURES.map((f) => [f.name, f]))('%s: recorded with the outcome its type earns', async (_name, f) => {
100
+ await extract(s);
101
+ const state = await stateOf(s, uploaded.get(f.name).id);
102
+ expect(state).toMatchObject({ status: f.status, extractor: f.extractor });
103
+ if (f.status === 'indexed') {
104
+ expect(state.bytes).toBeGreaterThan(0);
105
+ expect(state.detail).toBeNull();
106
+ }
107
+ else {
108
+ // Never "indexed, no match": no text, and when there is a reason, it is said.
109
+ expect(state.bytes).toBeNull();
110
+ if (f.status !== 'empty')
111
+ expect(state.detail).toEqual(expect.any(String));
112
+ }
113
+ });
114
+ it('finds every indexed file by a phrase from its body — the first phrase finds it alone', async () => {
115
+ await extract(s);
116
+ for (const f of ATTACHMENT_TEXT_FIXTURES.filter((x) => x.finds)) {
117
+ const id = uploaded.get(f.name).id;
118
+ const [unique, ...rest] = f.finds;
119
+ expect((await search(s, editor, unique)).map((r) => r.id), `${f.name}: ${unique}`).toEqual([id]);
120
+ for (const phrase of rest) {
121
+ expect((await search(s, editor, phrase)).map((r) => r.id), `${f.name}: ${phrase}`).toContain(id);
122
+ }
123
+ }
124
+ });
125
+ it('does not index what a file carries but nobody reads — a script body', async () => {
126
+ await extract(s);
127
+ for (const f of ATTACHMENT_TEXT_FIXTURES.filter((x) => x.hides)) {
128
+ expect(await search(s, editor, f.hides)).toEqual([]);
129
+ }
130
+ });
131
+ it('hands back the record `open` would, and refuses a term too short to match', async () => {
132
+ await extract(s);
133
+ const [hit] = await search(s, editor, 'zephyr');
134
+ expect(hit).toEqual(uploaded.get('plain text'));
135
+ await expect(search(s, editor, 'z')).rejects.toBeInstanceOf(SearchTermTooShort);
136
+ });
137
+ });
138
+ describe('the gate: a match the caller cannot open changes nothing they see', () => {
139
+ it('is absent, takes no slot under a limit, and every hit opens — the editor, the twin, sees both', async () => {
140
+ const s = await newScope();
141
+ await grant(s, bob, item('allowed'));
142
+ const allowed = await upload(s, item('allowed'), 'a.txt', 'text/plain', bytes('indexation memo for the allowed item'));
143
+ // NEWER than `allowed`, so in newest-first order it is the first candidate: if it took
144
+ // a slot before the gate, a limit of one would hand bob nothing.
145
+ const denied = await upload(s, item('denied'), 'd.txt', 'text/plain', bytes('indexation memo for the denied item'));
146
+ await extract(s);
147
+ expect((await search(s, bob, 'indexation')).map((r) => r.id)).toEqual([allowed.id]);
148
+ expect((await search(s, bob, 'indexation', 1)).map((r) => r.id)).toEqual([allowed.id]);
149
+ expect((await search(s, editor, 'indexation')).map((r) => r.id)).toEqual([denied.id, allowed.id]);
150
+ expect((await search(s, editor, 'indexation', 1)).map((r) => r.id)).toEqual([denied.id]);
151
+ // What search hands bob, bob can open; what it withholds, bob cannot.
152
+ const files = await host.attachments(bob, t, s);
153
+ expect((await files.open(allowed.id))?.record.id).toBe(allowed.id);
154
+ // By message: on the DO host a principal's refusal crosses RPC as its message alone.
155
+ await expect(files.open(denied.id)).rejects.toThrow(/permission denied/i);
156
+ });
157
+ it('gives bob the same page, at every limit, as a scope where the denied file does not exist', async () => {
158
+ const withDenied = await newScope();
159
+ const without = await newScope();
160
+ for (const s of [withDenied, without]) {
161
+ await grant(s, bob, item('allowed'));
162
+ await upload(s, item('allowed'), 'one.txt', 'text/plain', bytes('quarterly indexation review one'));
163
+ if (s === withDenied) {
164
+ await upload(s, item('denied'), 'secret.txt', 'text/plain', bytes('quarterly indexation review secret'));
165
+ }
166
+ await upload(s, item('allowed'), 'two.txt', 'text/plain', bytes('quarterly indexation review two'));
167
+ if (s === withDenied) {
168
+ await upload(s, item('denied'), 'secret2.txt', 'text/plain', bytes('quarterly indexation secret again'));
169
+ }
170
+ await extract(s);
171
+ }
172
+ const page = async (s, term, limit) => (await search(s, bob, term, limit)).map((r) => r.filename);
173
+ for (const term of ['indexation', 'quarterly review', 'indexation secret']) {
174
+ for (const limit of [1, 2, 3, undefined]) {
175
+ expect(await page(withDenied, term, limit), `${term} / ${limit}`).toEqual(await page(without, term, limit));
176
+ }
177
+ }
178
+ expect(await page(withDenied, 'secret')).toEqual([]);
179
+ });
180
+ it('leaves the one readable older match on page one past a thousand newer hidden ones — as in the control scope', async () => {
181
+ const s = await newScope();
182
+ const control = await newScope();
183
+ for (const scope of [s, control]) {
184
+ await grant(scope, bob, item('allowed'));
185
+ await upload(scope, item('allowed'), 'old.txt', 'text/plain', bytes('the margay ledger, readable'));
186
+ }
187
+ // Every one of these is NEWER than old.txt. A scan bound applied before the gate would
188
+ // have spent itself on them and handed bob nothing.
189
+ for (let i = 0; i < 1001; i += 1) {
190
+ await upload(s, item('denied'), `hidden-${i}.txt`, 'text/plain', bytes(`the margay ledger, hidden ${i}`));
191
+ }
192
+ await extract(s);
193
+ await extract(control);
194
+ for (const limit of [1, 20]) {
195
+ const page = (await search(s, bob, 'margay', limit)).map((r) => r.filename);
196
+ expect(page).toEqual(['old.txt']);
197
+ expect(page).toEqual((await search(control, bob, 'margay', limit)).map((r) => r.filename));
198
+ }
199
+ // The twin: the editor reads every owner, so the newest hidden ones fill its page.
200
+ const editors = await search(s, editor, 'margay', 20);
201
+ expect(editors).toHaveLength(20);
202
+ expect(editors.map((r) => r.filename)).not.toContain('old.txt');
203
+ }, SETUP_HEAVY_MS);
204
+ it('is not "wide" for a node-level grant on a different key, nor for an entity grant alone', async () => {
205
+ const s = await newScope();
206
+ const dave = principalId.parse(ulid()); // `user` at the tenant (perm:use only) + perm:read on one item
207
+ await host.admin.assignRole(staff, { principalId: dave, roleKey: 'user', node: { tenantId: t, scopeId: null } });
208
+ await grant(s, dave, item('mine'));
209
+ await grant(s, bob, item('mine'));
210
+ const mine = await upload(s, item('mine'), 'mine.txt', 'text/plain', bytes('the caracal file, mine'));
211
+ await upload(s, item('other'), 'other.txt', 'text/plain', bytes('the caracal file, other'));
212
+ await extract(s);
213
+ expect((await search(s, dave, 'caracal')).map((r) => r.id)).toEqual([mine.id]);
214
+ expect((await search(s, bob, 'caracal')).map((r) => r.id)).toEqual([mine.id]);
215
+ // The twin: a node-level grant on the READ key is wide.
216
+ expect(await search(s, editor, 'caracal')).toHaveLength(2);
217
+ });
218
+ it('refuses a narrowed caller past the owner cap — the same for a term with matches and one without', async () => {
219
+ const s = await newScope();
220
+ await grant(s, bob, item('o0'));
221
+ for (let i = 0; i <= ATTACHMENT_SEARCH_OWNER_MAX; i += 1) {
222
+ await upload(s, item(`o${i}`), `o${i}.txt`, 'text/plain', bytes(i === 0 ? 'the jerboa note' : 'filler only'));
223
+ }
224
+ await extract(s);
225
+ const refusalOf = async (term) => {
226
+ const err = await search(s, bob, term).then(() => undefined, (e) => e);
227
+ return { code: errorCodeOf(err), reason: err?.extensions?.reason };
228
+ };
229
+ const refused = { code: 'forbidden', reason: ATTACHMENT_SEARCH_TOO_MANY_OWNERS };
230
+ expect(await refusalOf('jerboa')).toEqual(refused); // one match, readable by bob
231
+ expect(await refusalOf('nothingmatchesthis')).toEqual(refused); // no match at all
232
+ // The twin: a caller who reads the type at the scope is never refused.
233
+ expect((await search(s, editor, 'jerboa')).map((r) => r.filename)).toEqual(['o0.txt']);
234
+ }, SETUP_HEAVY_MS);
235
+ it('records no denial for a hit it withheld — nobody asked for that row', async () => {
236
+ const s = await newScope();
237
+ await upload(s, item('denied'), 'd.txt', 'text/plain', bytes('a withheld wombat'));
238
+ await extract(s);
239
+ expect(await search(s, bob, 'wombat')).toEqual([]);
240
+ const denials = await (await host.getScope(editor, t, s)).invoke('perm/read-denials');
241
+ expect(denials.filter((d) => d.operation === 'attachments.search')).toEqual([]);
242
+ });
243
+ });
244
+ describe('the kernel job is the host’s own', () => {
245
+ it('refuses a registration under the kernel’s module id — any job name — and accepts the same name elsewhere', () => {
246
+ const handler = () => ({ done: true });
247
+ expect(() => host.registerJob(ATTACHMENT_TEXT_MODULE, ATTACHMENT_TEXT_JOB, handler)).toThrow(/reserved/);
248
+ expect(() => host.registerJob(ATTACHMENT_TEXT_MODULE, 'a-later-kernel-job', handler)).toThrow(/reserved/);
249
+ // The twin: a module of its own may name a job `attachment-text`; only the module id is reserved.
250
+ expect(() => host.registerJob(moduleId.parse('@test/att-text-twin'), ATTACHMENT_TEXT_JOB, handler)).not.toThrow();
251
+ });
252
+ });
253
+ describe('idempotence, removal and bounds', () => {
254
+ it('extracting again leaves one text row and one index match', async () => {
255
+ const s = await newScope();
256
+ const rec = await upload(s, item('i'), 'r.txt', 'text/plain', bytes('the platypus clause'));
257
+ await extract(s);
258
+ for (let i = 0; i < 2; i += 1) {
259
+ await host.startJobRun(t, s, {
260
+ moduleId: ATTACHMENT_TEXT_MODULE,
261
+ job: ATTACHMENT_TEXT_JOB,
262
+ instance: rec.id,
263
+ payload: { attachmentId: rec.id },
264
+ });
265
+ await extract(s);
266
+ }
267
+ expect(await textRows(s, rec.id)).toBe(1);
268
+ expect(await indexMatches(s, 'platypus')).toBe(1);
269
+ expect((await search(s, editor, 'platypus')).map((r) => r.id)).toEqual([rec.id]);
270
+ expect((await stateOf(s, rec.id))?.status).toBe('indexed');
271
+ });
272
+ it('a removed attachment takes its text and its index entries with it', async () => {
273
+ const s = await newScope();
274
+ const gone = await upload(s, item('i'), 'gone.txt', 'text/plain', bytes('the axolotl appendix'));
275
+ const kept = await upload(s, item('i'), 'kept.txt', 'text/plain', bytes('the axolotl summary'));
276
+ await extract(s);
277
+ expect(await indexMatches(s, 'axolotl')).toBe(2);
278
+ await (await host.attachments(editor, t, s)).remove(gone.id);
279
+ expect(await textRows(s, gone.id)).toBe(0);
280
+ expect(await indexMatches(s, 'axolotl')).toBe(1);
281
+ expect((await search(s, editor, 'axolotl')).map((r) => r.id)).toEqual([kept.id]);
282
+ expect(await stateOf(s, gone.id)).toBeNull();
283
+ });
284
+ it('a removal that lands before the extraction runs is not undone by it', async () => {
285
+ const s = await newScope();
286
+ const rec = await upload(s, item('i'), 'early.txt', 'text/plain', bytes('the tapir memo'));
287
+ await (await host.attachments(editor, t, s)).remove(rec.id);
288
+ await extract(s);
289
+ expect(await textRows(s, rec.id)).toBe(0);
290
+ expect(await indexMatches(s, 'tapir')).toBe(0);
291
+ const [run] = await host.jobRuns(t, s, { moduleId: ATTACHMENT_TEXT_MODULE, instance: rec.id });
292
+ expect(run).toMatchObject({ status: 'done', counters: { gone: 1 } });
293
+ });
294
+ it('cuts text at the per-attachment cap, says so, and still writes and finds the capped row', async () => {
295
+ const s = await newScope();
296
+ const cap = DEFAULT_ATTACHMENT_TEXT_BOUNDS.maxTextBytes;
297
+ // A head phrase, then three-byte characters well past the cap — so the cut lands on a
298
+ // multi-byte boundary — and a tail phrase that falls beyond it.
299
+ const body = `kinkajou opening ${'€'.repeat(Math.ceil(cap / 3) + 1000)} capybara ending`;
300
+ const rec = await upload(s, item('i'), 'big.txt', 'text/plain', bytes(body));
301
+ await extract(s);
302
+ const state = await stateOf(s, rec.id);
303
+ expect(state).toMatchObject({ status: 'indexed', truncated: true });
304
+ expect(state.bytes).toBeLessThanOrEqual(cap);
305
+ expect(state.bytes).toBeGreaterThan(cap - 3);
306
+ expect((await search(s, editor, 'kinkajou')).map((r) => r.id)).toEqual([rec.id]);
307
+ expect(await search(s, editor, 'capybara')).toEqual([]);
308
+ });
309
+ });
310
+ describe('dumps carry no text; a load re-derives it where the bytes are', () => {
311
+ it('an export carries the attachment row and not one word of its extracted text', async () => {
312
+ const s = await newScope();
313
+ await upload(s, item('i'), 'x.txt', 'text/plain', bytes('the dugong file'));
314
+ await extract(s);
315
+ expect(await search(s, editor, 'dugong')).toHaveLength(1);
316
+ const dump = await host.admin.exportScope(staff, t, s);
317
+ expect(dump.tables.some((tb) => tb.name === '_substrat_attachments')).toBe(true);
318
+ // Judged on the rows, not on table names: a renamed text table must still fail this.
319
+ expect(JSON.stringify(dump.tables.map((tb) => tb.rows))).not.toContain('dugong');
320
+ expect(dump.tables.some((tb) => isSearchIndexTable(tb.name))).toBe(false);
321
+ });
322
+ it('an in-place restore keeps the text of what it keeps and drops the rest', async () => {
323
+ const s = await newScope();
324
+ const before = await upload(s, item('i'), 'before.txt', 'text/plain', bytes('the okapi before'));
325
+ await extract(s);
326
+ const dump = await host.admin.exportScope(staff, t, s);
327
+ const after = await upload(s, item('i'), 'after.txt', 'text/plain', bytes('the okapi after'));
328
+ await extract(s);
329
+ expect(await indexMatches(s, 'okapi')).toBe(2);
330
+ await host.restoreScope(staff, t, s, dump);
331
+ // The rewound-away attachment's text is gone at once; the kept one's is still indexed,
332
+ // with no extraction needed.
333
+ expect(await textRows(s, after.id)).toBe(0);
334
+ expect(await indexMatches(s, 'okapi')).toBe(1);
335
+ expect((await stateOf(s, before.id))?.status).toBe('indexed');
336
+ expect((await search(s, editor, 'okapi')).map((r) => r.id)).toEqual([before.id]);
337
+ });
338
+ it('a fork re-queues every attachment, and says where the bytes are not', async () => {
339
+ const s = await newScope();
340
+ const rec = await upload(s, item('i'), 'src.txt', 'text/plain', bytes('the margay source'));
341
+ await extract(s);
342
+ const fork = scopeIdSchema.parse(ulid());
343
+ await host.importScope(staff, { tenantId: t, scopeId: fork, vertical: 'docs' }, await host.admin.exportScope(staff, t, s));
344
+ // Queued by the load, not left without a state.
345
+ expect((await stateOf(fork, rec.id))?.status).toBe('pending');
346
+ await extract(fork);
347
+ // The fork's objects would live under its own key; the bytes stayed under the source's.
348
+ expect(await stateOf(fork, rec.id)).toMatchObject({
349
+ status: 'failed',
350
+ detail: expect.stringContaining('missing'),
351
+ });
352
+ expect(await search(fork, editor, 'margay')).toEqual([]);
353
+ // The source is untouched.
354
+ expect((await search(s, editor, 'margay')).map((r) => r.id)).toEqual([rec.id]);
355
+ });
356
+ });
357
+ });
358
+ }
359
+ //# sourceMappingURL=attachment-text-suite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-text-suite.js","sourceRoot":"","sources":["../src/attachment-text-suite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability-attachment-suite.d.ts","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwB9D,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA6RN"}
1
+ {"version":3,"file":"capability-attachment-suite.d.ts","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwB9D,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA2TN"}
@@ -152,6 +152,31 @@ export function capabilityAttachmentContractSuite(adapterName, makeFixture) {
152
152
  expect((await recordOf(minted.id)).uses).toBe(before + 1);
153
153
  });
154
154
  });
155
+ // #1575: content search through a capability is the same gate as its `open`.
156
+ describe('search: exactly the subtree', () => {
157
+ let inF;
158
+ let inG;
159
+ beforeAll(async () => {
160
+ const stub = await as(alice);
161
+ await stub.invoke('cap/link', { child: doc('d5'), parent: folder('F') });
162
+ await stub.invoke('cap/link', { child: doc('d6'), parent: folder('G') });
163
+ const mine = await host.attachments(alice, t1, s1);
164
+ const put = (entity, name) => mine.upload({ entity, filename: `${name}.txt`, contentType: 'text/plain', visibility: 'internal', body: bytes(`capybara memo ${name}`) });
165
+ inF = await put(doc('d5'), 'd5');
166
+ inG = await put(doc('d6'), 'd6');
167
+ for (let i = 0; i < 10 && (await host.runDueJobs(t1, s1, { limit: 100 })).attempted > 0; i += 1)
168
+ ;
169
+ });
170
+ it('finds the match under the shared folder and never the one beside it — the owner sees both', async () => {
171
+ const minted = await share(alice, { entity: folder('F'), permissions: [CAP_READ] });
172
+ const surface = await filesOf(await sessionOf(minted.secret));
173
+ expect((await surface.search('capybara')).map((r) => r.id)).toEqual([inF.id]);
174
+ expect((await surface.search('capybara', { limit: 1 })).map((r) => r.id)).toEqual([inF.id]);
175
+ expect(await denialsOf(minted.id)).not.toContainEqual(expect.objectContaining({ operation: 'attachments.search' }));
176
+ const owner = await host.attachments(alice, t1, s1);
177
+ expect((await owner.search('capybara')).map((r) => r.id)).toEqual([inG.id, inF.id]);
178
+ });
179
+ });
155
180
  describe('never more than the minter can read, now', () => {
156
181
  it('taking the minter’s role away refuses the next download; giving it back allows it again', async () => {
157
182
  const dan = principalId.parse(ulid());
@@ -1 +1 @@
1
- {"version":3,"file":"capability-attachment-suite.js","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-attachment-suite.js","sourceRoot":"","sources":["../src/capability-attachment-suite.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency-suite.d.ts","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9D,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CA6PN"}
1
+ {"version":3,"file":"idempotency-suite.d.ts","sourceRoot":"","sources":["../src/idempotency-suite.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAU9D,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAC3C,IAAI,CAgTN"}