@kernhq/module-quire 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contract/models.d.ts +209 -0
- package/dist/contract/models.d.ts.map +1 -1
- package/dist/contract/models.js +151 -0
- package/dist/contract/models.js.map +1 -1
- package/dist/contract/permissions.d.ts.map +1 -1
- package/dist/contract/permissions.js +32 -0
- package/dist/contract/permissions.js.map +1 -1
- package/dist/contract/properties.d.ts +3 -3
- package/dist/contract/router.d.ts +509 -8
- package/dist/contract/router.d.ts.map +1 -1
- package/dist/contract/router.js +211 -1
- package/dist/contract/router.js.map +1 -1
- package/dist/server/_impl.d.ts +573 -1269
- package/dist/server/_impl.d.ts.map +1 -1
- package/dist/server/_impl.js +180 -0
- package/dist/server/_impl.js.map +1 -1
- package/dist/server/export/markdown.d.ts.map +1 -1
- package/dist/server/export/markdown.js +40 -1
- package/dist/server/export/markdown.js.map +1 -1
- package/dist/server/render.d.ts +158 -0
- package/dist/server/render.d.ts.map +1 -1
- package/dist/server/render.js +240 -0
- package/dist/server/render.js.map +1 -1
- package/dist/server/schema.d.ts +260 -1
- package/dist/server/schema.d.ts.map +1 -1
- package/dist/server/schema.js +108 -1
- package/dist/server/schema.js.map +1 -1
- package/dist/server/services/databases.d.ts +5 -5
- package/dist/server/services/index.d.ts +6 -0
- package/dist/server/services/index.d.ts.map +1 -1
- package/dist/server/services/index.js +27 -3
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/macros.d.ts +83 -0
- package/dist/server/services/macros.d.ts.map +1 -0
- package/dist/server/services/macros.js +488 -0
- package/dist/server/services/macros.js.map +1 -0
- package/dist/server/services/publications.d.ts +2 -1
- package/dist/server/services/publications.d.ts.map +1 -1
- package/dist/server/services/publications.js +43 -4
- package/dist/server/services/publications.js.map +1 -1
- package/dist/server/services/templates.d.ts +135 -0
- package/dist/server/services/templates.d.ts.map +1 -0
- package/dist/server/services/templates.js +897 -0
- package/dist/server/services/templates.js.map +1 -0
- package/dist/server/services/versions.d.ts +12 -0
- package/dist/server/services/versions.d.ts.map +1 -1
- package/dist/server/services/versions.js +3 -1
- package/dist/server/services/versions.js.map +1 -1
- package/migrations/0011_templates.sql +157 -0
- package/migrations/meta/_journal.json +7 -0
- package/package.json +5 -5
- package/src/client/components/NewSpaceDialog.svelte +77 -8
- package/src/client/components/PageEditor.svelte +80 -0
- package/src/client/components/PagePicker.svelte +264 -0
- package/src/client/components/SaveAsTemplateDialog.svelte +502 -0
- package/src/client/components/SidebarSpaces.svelte +33 -1
- package/src/client/components/TemplatePicker.svelte +437 -0
- package/src/client/i18n.ts +327 -0
- package/src/client/index.ts +19 -0
- package/src/client/mock.ts +274 -0
- package/src/client/pages/PageView.svelte +50 -0
- package/src/client/pages/SpacePage.svelte +20 -4
- package/src/client/query.ts +17 -0
- package/src/contract/models.ts +191 -0
- package/src/contract/permissions.ts +33 -0
- package/src/contract/router.ts +228 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/server/services/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Principal } from '@kernhq/contracts';
|
|
2
2
|
import { type Kernel, type Tx } from '@kernhq/kernel';
|
|
3
3
|
import type { PageVersion } from '../../contract/index.js';
|
|
4
|
+
import { type MacroResolver, type MacroStrings } from '../render.js';
|
|
4
5
|
import { pageVersions } from '../schema.js';
|
|
5
6
|
import type { QuireAccess } from './access.js';
|
|
6
7
|
type VersionRow = typeof pageVersions.$inferSelect;
|
|
@@ -168,6 +169,17 @@ export declare function quireVersions(kernel: Kernel, access: QuireAccess): {
|
|
|
168
169
|
*/
|
|
169
170
|
html(tx: Tx, workspaceId: string, state: Buffer | Uint8Array | null, opts?: {
|
|
170
171
|
pictures?: "signed" | "referenced";
|
|
172
|
+
/**
|
|
173
|
+
* What the macros that read other pages were told, for whoever this render is for.
|
|
174
|
+
*
|
|
175
|
+
* Absent — which is what the publish-time render passes — draws every reading macro as an
|
|
176
|
+
* empty frame. That is not an oversight to fix later: this output is **stored** in
|
|
177
|
+
* `page_versions.html`, and a resolved macro in a stored row is a set of page titles frozen
|
|
178
|
+
* at publish time and served for ever, including after those pages are unpublished. The
|
|
179
|
+
* public read re-resolves them per read instead. See `publications.html`.
|
|
180
|
+
*/
|
|
181
|
+
macros?: MacroResolver;
|
|
182
|
+
macroStrings?: MacroStrings;
|
|
171
183
|
}): Promise<string>;
|
|
172
184
|
};
|
|
173
185
|
export type QuireVersions = ReturnType<typeof quireVersions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,EAAE,EAAU,MAAM,gBAAgB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,EAAE,EAAU,MAAM,gBAAgB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAIlB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAS,YAAY,EAAU,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,KAAK,UAAU,GAAG,OAAO,YAAY,CAAC,YAAY,CAAA;AAKlD;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,oBAAoB,CAAA;AACvD,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,MAA8C,CAAA;AAE9F,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAalF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAS7D;;;;;;OAMG;gBAEG,EAAE,eACO,MAAM,UACX,MAAM,QACR;QAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GACnF,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;aA0Cd,EAAE,eAAe,MAAM,UAAU,MAAM,SAAS,MAAM,UAAU,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;YAkB9E,EAAE,eAAe,MAAM,aAAa,MAAM;;;;;;;;;;;;;;IAUxD;;;;;;;OAOG;gBACe,EAAE,aAAa,SAAS,eAAe,MAAM,aAAa,MAAM;;;;;;;;;;;;;;IAsBlF,kEAAkE;gBAChD,EAAE,aAAa,SAAS,eAAe,MAAM,UAAU,MAAM,SAAS,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;IAyBrG,wEAAwE;eACvD,EAAE,aAAa,SAAS,eAAe,MAAM,UAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;IAyB9E,2FAA2F;uBAClE,EAAE,eAAe,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAUvF,wFAAwF;+BAC7D,MAAM,UAAU,MAAM;;;;;;IAMjD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;aAEG,EAAE,eACO,MAAM,SACZ,MAAM,GAAG,UAAU,GAAG,IAAI,SAC3B;QACJ,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAA;QAClC;;;;;;;;WAQG;QACH,MAAM,CAAC,EAAE,aAAa,CAAA;QACtB,YAAY,CAAC,EAAE,YAAY,CAAA;KAC5B,GACA,OAAO,CAAC,MAAM,CAAC;EAkDrB;AACD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { KernError, uuidv7 } from '@kernhq/kernel';
|
|
2
2
|
import { and, desc, eq, inArray, lt } from 'drizzle-orm';
|
|
3
3
|
import { pageDocFromBase64, pageDocFromState } from '../document.js';
|
|
4
|
-
import { referencesIn, renderPageDoc, textFromPageDoc } from '../render.js';
|
|
4
|
+
import { referencesIn, renderPageDoc, textFromPageDoc, } from '../render.js';
|
|
5
5
|
import { pages, pageVersions, spaces } from '../schema.js';
|
|
6
6
|
import { documentNameOf } from './pages.js';
|
|
7
7
|
/** How much of the prose a version list shows without loading the document. */
|
|
@@ -270,6 +270,8 @@ export function quireVersions(kernel, access) {
|
|
|
270
270
|
return renderPageDoc(doc, {
|
|
271
271
|
fileSrc: (id) => sources.get(id) ?? null,
|
|
272
272
|
pageHref: (id) => hrefs.get(id) ?? null,
|
|
273
|
+
macros: opts.macros,
|
|
274
|
+
macroStrings: opts.macroStrings,
|
|
273
275
|
});
|
|
274
276
|
},
|
|
275
277
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAwB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/server/services/versions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
-- A page, or a whole space, saved so it can be made again.
|
|
2
|
+
--
|
|
3
|
+
-- Hand-written rather than generated, like 0001, 0006, 0008 and 0010, because drizzle-kit writes
|
|
4
|
+
-- neither the policy nor the guards. Every statement is idempotent: `create table`, `create index`
|
|
5
|
+
-- and `create policy` throw on a replay, and a module migration that throws takes down the **whole
|
|
6
|
+
-- host service** rather than its own module — `core` hosts five. Drizzle keys applied migrations by
|
|
7
|
+
-- content hash, so regenerating the journal replays every file against a schema that already has its
|
|
8
|
+
-- objects. The two `check` constraints are inline in `create table if not exists` on purpose: there
|
|
9
|
+
-- they inherit that guard, where a separate `alter table … add constraint` would need a
|
|
10
|
+
-- `drop constraint if exists` in front of it and is the shape that has broken this before.
|
|
11
|
+
--
|
|
12
|
+
--
|
|
13
|
+
-- WHERE THE FIVE STARTERS LIVE, AND WHY IT IS NOT IN THIS TABLE
|
|
14
|
+
--
|
|
15
|
+
-- Meeting notes, decision record, requirements, retrospective and how-to are **constants in the
|
|
16
|
+
-- module**, not rows seeded here. Three reasons, and the first one alone settles it.
|
|
17
|
+
--
|
|
18
|
+
-- *A migration has no workspace to seed into.* Every tenant table in `mod_quire` carries
|
|
19
|
+
-- `workspace_id NOT NULL` and is fenced by a policy that reads `app.workspace_id`. A migration runs
|
|
20
|
+
-- once per **database**, before any workspace exists and then never again — so a seeded row would
|
|
21
|
+
-- need either a nullable `workspace_id`, which makes `templates` the one table in this schema RLS
|
|
22
|
+
-- does not actually cover, or a second mechanism hooked to workspace creation, which then has to be
|
|
23
|
+
-- re-run against every workspace that already existed each time a sixth starter is added. Both are
|
|
24
|
+
-- worse than the thing they solve.
|
|
25
|
+
--
|
|
26
|
+
-- *A row is frozen at the release that wrote it.* Improving the retrospective starter in 0.15 does
|
|
27
|
+
-- nothing for a workspace created under 0.14, and making it do something means an `UPDATE` in a
|
|
28
|
+
-- migration — which overwrites whatever the customer changed. A constant improves for everybody on
|
|
29
|
+
-- the release that ships it, and overwrites nothing, because nothing was ever copied.
|
|
30
|
+
--
|
|
31
|
+
-- *A row holds one language.* Every user-facing string in Kern goes through `t()` in five locales.
|
|
32
|
+
-- A seeded row's name, description and prose would be English in an Arabic workspace for ever; a
|
|
33
|
+
-- constant's strings are message keys resolved per reader.
|
|
34
|
+
--
|
|
35
|
+
-- What that costs is the thing the trade is usually made for: a constant cannot be edited. That is
|
|
36
|
+
-- what `built_in` and `key` buy back, and how they work is written on the columns below.
|
|
37
|
+
CREATE TABLE IF NOT EXISTS "mod_quire"."templates" (
|
|
38
|
+
"id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
|
|
39
|
+
"workspace_id" uuid NOT NULL,
|
|
40
|
+
-- Null is a workspace-wide template, offered wherever a page is made. A space id scopes it to one
|
|
41
|
+
-- space, which is what a team wanting their own "incident report" without putting it in everybody
|
|
42
|
+
-- else's picker actually asks for. Nullable rather than two tables because every read is the same
|
|
43
|
+
-- read — "what may I make here" — and a union of two tables to answer one question is how the
|
|
44
|
+
-- workspace-wide half ends up quietly missing from one of the three places that asks.
|
|
45
|
+
"space_id" uuid,
|
|
46
|
+
-- `page` — one page, `doc` is its body.
|
|
47
|
+
-- `space` — a whole space, `doc` is `{ pages: [...] }`, a tree of titles and bodies.
|
|
48
|
+
-- Text with no check constraint, like `spaces.visibility`, `pages.kind` and `export_jobs.scope`:
|
|
49
|
+
-- the enum in the contract is what closes these, and one column in the schema enforcing its domain
|
|
50
|
+
-- in the database while eight do not teaches nothing except that the rule is arbitrary.
|
|
51
|
+
"kind" text DEFAULT 'page' NOT NULL,
|
|
52
|
+
-- Which shipped starter this row **replaces**, or null for somebody's own template.
|
|
53
|
+
--
|
|
54
|
+
-- A starter is a constant, so it has a stable key (`meeting-notes`, `decision-record`,
|
|
55
|
+
-- `requirements`, `retrospective`, `how-to`) rather than a uuid — there is no row to have an id.
|
|
56
|
+
-- The picker reads the constants and the rows together, and a row with a key takes the place of
|
|
57
|
+
-- the starter it names instead of appearing beside it. So editing a starter is copy-on-write: the
|
|
58
|
+
-- first edit in a workspace writes one row, before that there are none, and resetting is deleting
|
|
59
|
+
-- that row — after which the shipped starter comes back, current and translated.
|
|
60
|
+
--
|
|
61
|
+
-- Deliberately **not** validated against the starter set, here or in the contract's row parser. A
|
|
62
|
+
-- release that stops shipping a starter would otherwise turn every override of it into a parse
|
|
63
|
+
-- failure, which is a picker that throws rather than a picker missing one entry. A key naming a
|
|
64
|
+
-- starter that no longer exists is an ordinary custom template, and that is the read side's rule.
|
|
65
|
+
"key" text,
|
|
66
|
+
-- True exactly when this row occupies a shipped starter's slot — see `key`. The pair is what keeps
|
|
67
|
+
-- the flag honest: something writes it (the first edit of a starter), something reads it (the
|
|
68
|
+
-- picker, deciding whether to draw the constant or the row), and the check constraint below stops
|
|
69
|
+
-- the two from drifting apart. A boolean nothing sets is the failure this project keeps naming
|
|
70
|
+
-- about capabilities and permission keys, and it is the same failure here.
|
|
71
|
+
"built_in" boolean DEFAULT false NOT NULL,
|
|
72
|
+
"name" text NOT NULL,
|
|
73
|
+
"description" text DEFAULT '' NOT NULL,
|
|
74
|
+
-- a Lucide icon name or an emoji, as everywhere else in this schema
|
|
75
|
+
"icon" text,
|
|
76
|
+
-- The body. A `PageDoc` for `kind = 'page'`; `{ pages: [ { title, icon, doc, children } ] }` for
|
|
77
|
+
-- `kind = 'space'`. Always a JSON *object* rather than sometimes an array, so the default is a
|
|
78
|
+
-- shape and not a lie, and so the two are told apart by their keys rather than by their type.
|
|
79
|
+
--
|
|
80
|
+
-- Whatever a person can write, a template can hold — which means this column is bound by the same
|
|
81
|
+
-- rule as everything else that stores a page: a node the editor can produce and `renderPageDoc`
|
|
82
|
+
-- cannot draw is a template that makes blank pages. Nothing here can check that; `render.test.ts`
|
|
83
|
+
-- is what does.
|
|
84
|
+
"doc" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
85
|
+
-- `[{ name, label, type, options, default, required }]` — what somebody is asked before the page
|
|
86
|
+
-- is made, so `{{sprint}}` in the body becomes a sprint. `{{date}}` and `{{author}}` are not in
|
|
87
|
+
-- here: they are filled from the request and need declaring by nobody.
|
|
88
|
+
--
|
|
89
|
+
-- JSONB rather than a `template_variables` table for the same reason `import_jobs.report` is a
|
|
90
|
+
-- column: it is written whole, read whole, by one screen, nothing joins to an entry and no entry
|
|
91
|
+
-- outlives its template. A table would be a second tenant table with its own `workspace_id`, its
|
|
92
|
+
-- own policy and its own `TENANT_TABLES` entry to store a list of at most a dozen field
|
|
93
|
+
-- definitions that are only ever fetched by `where template_id = $1`.
|
|
94
|
+
"variables" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
95
|
+
-- Nullable, like every other `created_by` in this schema and unlike the two job tables. A template
|
|
96
|
+
-- is not an artefact that flattens other people's readerships into one file, so there is nothing
|
|
97
|
+
-- here that has to be fenced to a person; a template whose author has left the workspace is still
|
|
98
|
+
-- the team's template, and nulling the author must not take it away from them.
|
|
99
|
+
"created_by" uuid,
|
|
100
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
101
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
102
|
+
-- `key` is present exactly when `built_in` is true. Written as an equality rather than as two
|
|
103
|
+
-- `or`ed halves because both sides are non-nullable booleans, so the constraint can never evaluate
|
|
104
|
+
-- to NULL and be satisfied by accident — the usual way a check constraint stops checking.
|
|
105
|
+
CONSTRAINT "templates_key_matches_built_in" CHECK ("built_in" = ("key" IS NOT NULL)),
|
|
106
|
+
-- A space template makes a space, so it cannot live inside one. Without this the picker for space
|
|
107
|
+
-- creation has to decide what a space-scoped space template means, and every answer is a guess.
|
|
108
|
+
CONSTRAINT "templates_space_kind" CHECK ("kind" <> 'space' OR "space_id" IS NULL)
|
|
109
|
+
);
|
|
110
|
+
--> statement-breakpoint
|
|
111
|
+
|
|
112
|
+
-- The only read that matters, and it is one index rather than two.
|
|
113
|
+
--
|
|
114
|
+
-- "What may I make here" is `kind = 'page' and (space_id = $1 or space_id is null)`, and this is
|
|
115
|
+
-- what serves it — one index rather than a second one for the workspace-wide half.
|
|
116
|
+
--
|
|
117
|
+
-- `name` is last so the read is covered, not so the read comes back sorted: measured, the plan is an
|
|
118
|
+
-- index-only scan with the `or` applied as a filter inside it, and the `order by` is a sort over the
|
|
119
|
+
-- handful of rows that come out. That is the right trade at this size, and it is worth writing down
|
|
120
|
+
-- because the shape suggests otherwise — an index whose trailing column is the sort key usually does
|
|
121
|
+
-- supply the order, and here the disjunction on the column before it is what stops it.
|
|
122
|
+
--
|
|
123
|
+
-- There is deliberately **no** `(workspace_id, created_at desc)` index, unlike `export_jobs` and
|
|
124
|
+
-- `import_jobs` next door. Those accumulate a row per request for ever and are read newest-first;
|
|
125
|
+
-- a workspace has tens of templates, read by name, and an index nothing needs is a write nobody
|
|
126
|
+
-- asked for.
|
|
127
|
+
CREATE INDEX IF NOT EXISTS "templates_ws_kind_space_idx" ON "mod_quire"."templates" USING btree ("workspace_id","kind","space_id","name");--> statement-breakpoint
|
|
128
|
+
|
|
129
|
+
-- One override per starter per workspace. Two rows both claiming `retrospective` would make which
|
|
130
|
+
-- one the picker draws a coin toss, and "reset to the shipped one" would delete half the change.
|
|
131
|
+
-- Partial, because `key` is null on every template somebody wrote themselves and a plain unique
|
|
132
|
+
-- index over a nullable column constrains nothing at all in Postgres — NULLs never collide.
|
|
133
|
+
--
|
|
134
|
+
-- Names are **not** unique, in either direction. A workspace calling its own template "Meeting
|
|
135
|
+
-- notes" beside the starter of that name is a thing people mean to do, and a constraint refusing it
|
|
136
|
+
-- would be the database having an opinion about wording.
|
|
137
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "templates_ws_key_uq" ON "mod_quire"."templates" USING btree ("workspace_id","key") WHERE "key" IS NOT NULL;--> statement-breakpoint
|
|
138
|
+
|
|
139
|
+
-- Row-level security, the same triple every tenant table gets.
|
|
140
|
+
--
|
|
141
|
+
-- `force` matters: without it the table owner bypasses the policy, and the owner is the role the
|
|
142
|
+
-- service connects as. A *superuser* bypasses RLS whatever this says, and the development and CI
|
|
143
|
+
-- roles are superusers — so a test that does not connect as an unprivileged NOBYPASSRLS role proves
|
|
144
|
+
-- nothing about isolation.
|
|
145
|
+
--
|
|
146
|
+
-- This is the tenant fence and nothing more. It does not decide who may *use* a template — a
|
|
147
|
+
-- space-scoped template belongs to a space, and whether the person asking may read that space is
|
|
148
|
+
-- settled by the procedure against the same space bindings as every other read in this module. Nor
|
|
149
|
+
-- does it decide what a template may *contain*: a template made from a page the author could read
|
|
150
|
+
-- carries that page's prose to whoever makes a page from it, which is a copy and not a leak, and is
|
|
151
|
+
-- the procedure's call at the moment of saving rather than this policy's.
|
|
152
|
+
ALTER TABLE "mod_quire"."templates" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
153
|
+
ALTER TABLE "mod_quire"."templates" FORCE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
154
|
+
DROP POLICY IF EXISTS "templates_ws_isolation" ON "mod_quire"."templates";--> statement-breakpoint
|
|
155
|
+
CREATE POLICY "templates_ws_isolation" ON "mod_quire"."templates"
|
|
156
|
+
USING (workspace_id::text = current_setting('app.workspace_id', true))
|
|
157
|
+
WITH CHECK (workspace_id::text = current_setting('app.workspace_id', true));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernhq/module-quire",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Kern Quire: collaborative documents, spaces and page trees",
|
|
5
5
|
"homepage": "https://github.com/KernAIO/module-quire#readme",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@kernhq/contracts": "^0.7.0",
|
|
56
|
-
"@kernhq/kernel": "^0.
|
|
57
|
-
"@kernhq/ui": "^0.
|
|
56
|
+
"@kernhq/kernel": "^0.8.0",
|
|
57
|
+
"@kernhq/ui": "^0.13.0",
|
|
58
58
|
"@tanstack/svelte-query": "^6.1.0",
|
|
59
59
|
"svelte": "^5.46.0"
|
|
60
60
|
},
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"@biomejs/biome": "^2.0.0",
|
|
74
74
|
"@changesets/cli": "^2.27.0",
|
|
75
75
|
"@kernhq/contracts": "^0.7.0",
|
|
76
|
-
"@kernhq/kernel": "^0.
|
|
76
|
+
"@kernhq/kernel": "^0.8.0",
|
|
77
77
|
"@kernhq/tsconfig": "^0.1.0",
|
|
78
|
-
"@kernhq/ui": "^0.
|
|
78
|
+
"@kernhq/ui": "^0.13.0",
|
|
79
79
|
"@tanstack/svelte-query": "^6.1.0",
|
|
80
80
|
"@types/node": "^24.0.0",
|
|
81
81
|
"@types/pg": "^8.15.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { Button, Dialog, Field, Input, Select, Textarea } from '@kernhq/ui'
|
|
3
|
-
import { useQueryClient } from '@tanstack/svelte-query'
|
|
3
|
+
import { createQuery, useQueryClient } from '@tanstack/svelte-query'
|
|
4
4
|
import { getQuireApi } from '../api-instance.js'
|
|
5
5
|
import { t } from '../i18n.js'
|
|
6
6
|
import type { Space } from '../index.js'
|
|
@@ -23,6 +23,25 @@ let visibility = $state<Space['visibility']>('open')
|
|
|
23
23
|
let saving = $state(false)
|
|
24
24
|
let error = $state<string | null>(null)
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* A whole space somebody saved, so a team can be given the shape as well as the name.
|
|
28
|
+
*
|
|
29
|
+
* There is no shipped space template and there should not be: the five starters Kern ships are
|
|
30
|
+
* pages, because a page template is generic in a way a space's organisation never is. So this
|
|
31
|
+
* control appears only once somebody in the workspace has saved one — an empty picker is a question
|
|
32
|
+
* with one answer.
|
|
33
|
+
*
|
|
34
|
+
* `spaceId: null` is the workspace-wide question, which is the only one that can be asked before
|
|
35
|
+
* there is a space.
|
|
36
|
+
*/
|
|
37
|
+
let fromTemplate = $state('')
|
|
38
|
+
const templatesQuery = createQuery(() => ({
|
|
39
|
+
queryKey: quireKeys.templates(workspaceId, 'space', null),
|
|
40
|
+
enabled: open && Boolean(workspaceId),
|
|
41
|
+
queryFn: () => api.templates.list({ workspaceId, kind: 'space', spaceId: null }),
|
|
42
|
+
}))
|
|
43
|
+
const spaceTemplates = $derived((templatesQuery.data ?? []).filter((choice) => choice.id))
|
|
44
|
+
|
|
26
45
|
/**
|
|
27
46
|
* The key is derived from the name until somebody types one, and then left alone. Overwriting a key
|
|
28
47
|
* a person has edited — because they went back and fixed a typo in the name — is the kind of thing
|
|
@@ -47,16 +66,22 @@ function reset() {
|
|
|
47
66
|
key = ''
|
|
48
67
|
description = ''
|
|
49
68
|
visibility = 'open'
|
|
69
|
+
fromTemplate = ''
|
|
50
70
|
keyTouched = false
|
|
51
71
|
error = null
|
|
52
72
|
}
|
|
53
73
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Make the space, from a template or from nothing.
|
|
76
|
+
*
|
|
77
|
+
* `templates.instantiate` makes the space itself — it has to, because it also writes the tree in the
|
|
78
|
+
* same transaction — so the two fields it has no opinion about are applied afterwards rather than
|
|
79
|
+
* dropped. A dialog that asks for a description and then quietly ignores it is worse than one that
|
|
80
|
+
* never asked.
|
|
81
|
+
*/
|
|
82
|
+
async function make(): Promise<Space> {
|
|
83
|
+
if (!fromTemplate)
|
|
84
|
+
return api.spaces.create({
|
|
60
85
|
workspaceId,
|
|
61
86
|
key,
|
|
62
87
|
name: name.trim(),
|
|
@@ -64,6 +89,29 @@ async function submit() {
|
|
|
64
89
|
icon: null,
|
|
65
90
|
visibility,
|
|
66
91
|
})
|
|
92
|
+
|
|
93
|
+
const made = await api.templates.instantiate({
|
|
94
|
+
workspaceId,
|
|
95
|
+
templateId: fromTemplate,
|
|
96
|
+
key,
|
|
97
|
+
name: name.trim(),
|
|
98
|
+
})
|
|
99
|
+
if (description.trim() || visibility !== 'open')
|
|
100
|
+
return api.spaces.update({
|
|
101
|
+
workspaceId,
|
|
102
|
+
spaceId: made.spaceId,
|
|
103
|
+
description: description.trim(),
|
|
104
|
+
visibility,
|
|
105
|
+
})
|
|
106
|
+
return api.spaces.get({ workspaceId, spaceId: made.spaceId })
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async function submit() {
|
|
110
|
+
if (!valid || saving) return
|
|
111
|
+
saving = true
|
|
112
|
+
error = null
|
|
113
|
+
try {
|
|
114
|
+
const space = await make()
|
|
67
115
|
await client.invalidateQueries({ queryKey: quireKeys.spaces(workspaceId) })
|
|
68
116
|
open = false
|
|
69
117
|
reset()
|
|
@@ -119,7 +167,28 @@ async function submit() {
|
|
|
119
167
|
{/snippet}
|
|
120
168
|
</Field>
|
|
121
169
|
|
|
122
|
-
|
|
170
|
+
<!--
|
|
171
|
+
Only once there is something to choose between. With no space templates saved this is a menu
|
|
172
|
+
whose single entry is "an empty space", which teaches somebody that the control does nothing.
|
|
173
|
+
-->
|
|
174
|
+
{#if spaceTemplates.length > 0}
|
|
175
|
+
<Field label={t('template_new_space_from')}>
|
|
176
|
+
{#snippet children(id: string)}
|
|
177
|
+
<Select
|
|
178
|
+
{id}
|
|
179
|
+
ariaLabel={t('template_new_space_from')}
|
|
180
|
+
value={fromTemplate}
|
|
181
|
+
options={[
|
|
182
|
+
{ value: '', label: t('template_new_space_blank') },
|
|
183
|
+
...spaceTemplates.map((choice) => ({ value: choice.id as string, label: choice.name })),
|
|
184
|
+
]}
|
|
185
|
+
onValueChange={(v: string) => (fromTemplate = v)}
|
|
186
|
+
/>
|
|
187
|
+
{/snippet}
|
|
188
|
+
</Field>
|
|
189
|
+
{/if}
|
|
190
|
+
|
|
191
|
+
{#if error}<p class="error" role="alert">{error}</p>{/if}
|
|
123
192
|
</div>
|
|
124
193
|
|
|
125
194
|
{#snippet footer()}
|
|
@@ -8,8 +8,12 @@ import {
|
|
|
8
8
|
getHost,
|
|
9
9
|
session,
|
|
10
10
|
} from '@kernhq/ui'
|
|
11
|
+
import { createQuery } from '@tanstack/svelte-query'
|
|
12
|
+
import { getQuireApi } from '../api-instance.js'
|
|
11
13
|
import { t } from '../i18n.js'
|
|
12
14
|
import { type Page, pageDocumentName } from '../index.js'
|
|
15
|
+
import { quireKeys } from '../query.js'
|
|
16
|
+
import PagePicker from './PagePicker.svelte'
|
|
13
17
|
|
|
14
18
|
/**
|
|
15
19
|
* The body of a page, synchronised through the collab service.
|
|
@@ -54,6 +58,68 @@ const user = $derived({
|
|
|
54
58
|
name: session.user?.name ?? '',
|
|
55
59
|
avatarUrl: session.user?.avatarUrl ?? null,
|
|
56
60
|
})
|
|
61
|
+
|
|
62
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
63
|
+
/* The two macros that name another page */
|
|
64
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Include page and include-an-excerpt need a page id, and `@kernhq/ui` cannot search for one.
|
|
68
|
+
*
|
|
69
|
+
* The `/` menu hides both entries unless the host passes `pickPage`, for the same reason it hides
|
|
70
|
+
* Image without `pickImage`: a macro with no page draws an empty frame for every reader, so an entry
|
|
71
|
+
* whose only possible outcome is an empty frame is worse than no entry. Without this wiring the two
|
|
72
|
+
* macros were in the schema, in the renderer and in the resolver, and unreachable from the product.
|
|
73
|
+
*
|
|
74
|
+
* The menu awaits a promise, so dismissing the dialog has to resolve it — see `PagePicker`.
|
|
75
|
+
*/
|
|
76
|
+
let pickerOpen = $state(false)
|
|
77
|
+
let pending: ((picked: { pageId: string } | null) => void) | null = null
|
|
78
|
+
|
|
79
|
+
function pickPage(): Promise<{ pageId: string } | null> {
|
|
80
|
+
return new Promise((resolve) => {
|
|
81
|
+
// A picker already waiting answers "nothing" rather than being left holding an open promise.
|
|
82
|
+
pending?.(null)
|
|
83
|
+
pending = resolve
|
|
84
|
+
pickerOpen = true
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function picked(page: { id: string; title: string } | null) {
|
|
89
|
+
const resolve = pending
|
|
90
|
+
pending = null
|
|
91
|
+
pickerOpen = false
|
|
92
|
+
if (page) titlesPicked.set(page.id, page.title)
|
|
93
|
+
resolve?.(page ? { pageId: page.id } : null)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The title a macro's card shows, resolved live and never stored.
|
|
98
|
+
*
|
|
99
|
+
* A title written into the document outlives the permission that allowed it: it would travel into
|
|
100
|
+
* every export and every published copy and be drawn by a renderer that never asked anybody. So the
|
|
101
|
+
* document holds the id, and this names it for the writer's own card, from what this session
|
|
102
|
+
* already has — the space's tree, which the sidebar has usually loaded under this very key, plus
|
|
103
|
+
* whatever was chosen in the picker (which is how a page in another space gets a name here).
|
|
104
|
+
*
|
|
105
|
+
* A page it cannot name is drawn as "Another page" rather than as "No page chosen": the card says
|
|
106
|
+
* what it knows and does not invent the rest.
|
|
107
|
+
*/
|
|
108
|
+
const api = getQuireApi()
|
|
109
|
+
const treeQuery = createQuery(() => ({
|
|
110
|
+
queryKey: quireKeys.tree(doc.workspaceId, doc.spaceId),
|
|
111
|
+
enabled: Boolean(doc.workspaceId && doc.spaceId),
|
|
112
|
+
queryFn: () =>
|
|
113
|
+
api.pages.tree({ workspaceId: doc.workspaceId, spaceId: doc.spaceId, includeArchived: false }),
|
|
114
|
+
}))
|
|
115
|
+
const titlesInSpace = $derived(new Map((treeQuery.data ?? []).map((node) => [node.id, node.title])))
|
|
116
|
+
const titlesPicked = new Map<string, string>()
|
|
117
|
+
|
|
118
|
+
function macroPageLabel(pageId: string): string | null {
|
|
119
|
+
const title = titlesInSpace.get(pageId) ?? titlesPicked.get(pageId) ?? null
|
|
120
|
+
if (title === null) return null
|
|
121
|
+
return title.trim() || t('untitled')
|
|
122
|
+
}
|
|
57
123
|
</script>
|
|
58
124
|
|
|
59
125
|
{#if getHost().isMock}
|
|
@@ -92,6 +158,20 @@ const user = $derived({
|
|
|
92
158
|
{activeComment}
|
|
93
159
|
{onCommentClick}
|
|
94
160
|
{oncomment}
|
|
161
|
+
{pickPage}
|
|
162
|
+
{macroPageLabel}
|
|
95
163
|
/>
|
|
96
164
|
{/key}
|
|
165
|
+
|
|
166
|
+
<!--
|
|
167
|
+
Outside the `{#key name}` block: re-keying tears the editor down and rebuilds it, and a picker
|
|
168
|
+
inside would be destroyed mid-choice with the `/` menu still awaiting its promise.
|
|
169
|
+
-->
|
|
170
|
+
<PagePicker
|
|
171
|
+
bind:open={pickerOpen}
|
|
172
|
+
workspaceId={doc.workspaceId}
|
|
173
|
+
spaceId={doc.spaceId}
|
|
174
|
+
excludeId={doc.id}
|
|
175
|
+
onPick={picked}
|
|
176
|
+
/>
|
|
97
177
|
{/if}
|