@antelopejs/dms-database 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -49
- package/dist/db/models/diagram_layouts.model.d.ts +1 -0
- package/dist/db/models/diagram_notes.model.d.ts +1 -0
- package/dist/db/models/query_history.model.d.ts +1 -0
- package/dist/db/models/saved_queries.model.d.ts +1 -0
- package/dist/routes/data.d.ts +1 -3
- package/dist/routes/data.js +6 -1
- package/dist/routes/data.js.map +1 -1
- package/frontend-vue/app/build/composables/useDataBrowserGrid.ts +4 -38
- package/frontend-vue/app/build/composables/useDatabaseHealth.ts +7 -4
- package/frontend-vue/app/build/composables/useDatabaseSchemas.ts +1 -2
- package/frontend-vue/app/build/composables/useDiagramPersistence.ts +49 -16
- package/frontend-vue/app/build/composables/useQueryStore.ts +59 -27
- package/frontend-vue/app/build/composables/useTableCounts.ts +50 -0
- package/frontend-vue/app/build/data/stagedWrites.ts +46 -6
- package/frontend-vue/app/build/data/useStagedSave.ts +42 -12
- package/frontend-vue/app/build/query/runs.ts +7 -27
- package/frontend-vue/app/build/schemas/useSchemasListing.ts +10 -33
- package/frontend-vue/app/components/ConnectionStatus.vue +14 -11
- package/frontend-vue/app/components/DataBrowserSidebar.vue +20 -42
- package/frontend-vue/app/components/DataBrowserTabBar.vue +1 -1
- package/frontend-vue/app/components/DataGrid.vue +73 -91
- package/frontend-vue/app/components/InstancePicker.vue +63 -55
- package/frontend-vue/app/components/QueryConsole.vue +47 -37
- package/frontend-vue/app/components/QueryLibrary.vue +20 -17
- package/frontend-vue/app/components/RowDrawer.vue +15 -18
- package/frontend-vue/app/components/SchemaDiagram.vue +7 -7
- package/frontend-vue/app/components/TableInspector.vue +116 -84
- package/frontend-vue/package.json +4 -3
- package/frontend-vue/pnpm-lock.yaml +1388 -2803
- package/frontend-vue/tests/dataBrowser.test.ts +59 -1
- package/frontend-vue/tests/fixtures/inertia.ts +8 -0
- package/frontend-vue/tests/fixtures/serverRender.ts +219 -0
- package/frontend-vue/tests/fixtures/vueI18n.ts +4 -0
- package/frontend-vue/tests/helpers.test.ts +1 -0
- package/frontend-vue/tests/locales.test.ts +24 -0
- package/frontend-vue/tests/onDemandReads.test.ts +106 -0
- package/frontend-vue/tests/serverRender.test.ts +235 -0
- package/frontend-vue/vitest.config.ts +24 -0
- package/package.json +31 -14
- package/skills/dms-database/SKILL.md +35 -0
package/README.md
CHANGED
|
@@ -1,78 +1,102 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
1
3
|
# @antelopejs/dms-database
|
|
2
4
|
|
|
3
|
-
<
|
|
4
|
-
<a href="./LICENSE"><img alt="License" src="https://img.shields.io/
|
|
5
|
-
<a href="https://discord.gg/sjK28QHrA7"><img src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"
|
|
6
|
-
<a href="https://antelopejs.com"><img src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"
|
|
5
|
+
<a href="https://www.npmjs.com/package/@antelopejs/dms-database"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/dms-database?style=for-the-badge&labelColor=000000&color=000000"></a>
|
|
6
|
+
<a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/dms-database?style=for-the-badge&labelColor=000000&color=000000"></a>
|
|
7
|
+
<a href="https://discord.gg/sjK28QHrA7"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a>
|
|
8
|
+
<a href="https://dms.antelopejs.com/docs/modules/database"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a>
|
|
9
|
+
|
|
10
|
+
The database console of the AntelopeJS DMS: schemas, diagrams, rows and queries.
|
|
11
|
+
|
|
7
12
|
</div>
|
|
8
13
|
|
|
9
|
-
Database
|
|
10
|
-
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+
## What it does
|
|
11
17
|
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **Diagram**: the tables and relations of a schema. The layout saves itself and is shared by the
|
|
18
|
-
team; auto layout is previewed before it is kept.
|
|
19
|
-
- **Data browser**: the rows of any table, in any instance or across all of them (read only).
|
|
20
|
-
Edits are staged, reviewed and written only when saved, and a save can be undone for a few
|
|
21
|
-
seconds.
|
|
18
|
+
- Checks the connection and its latency, with one card per registered schema and the largest tables.
|
|
19
|
+
- Lists every table the loaded modules register, with its columns, indexes, relations and a sample row.
|
|
20
|
+
- Draws the tables and relations of a schema, with a layout and notes shared by the whole team.
|
|
21
|
+
- Browses and fixes rows in any instance: edits are staged, reviewed, saved, and can be undone for ten seconds.
|
|
22
|
+
- Runs AQL queries with completion and history, and a dry run before any query that writes.
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
instance, `all` for every instance, otherwise the instance's name.
|
|
25
|
-
- **Query console**: AQL with completion of the workspace's schemas, a library of past, saved and
|
|
26
|
-
shared queries, and a dry run before any query that changes data.
|
|
24
|
+
A saved row shows in place; the page is read again when a save may move rows (a sorted or filtered field, or a search).
|
|
27
25
|
|
|
28
|
-
The module
|
|
26
|
+
The pages and the module's API answer to the platform owner only.
|
|
29
27
|
|
|
30
|
-
##
|
|
28
|
+
## Install
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
Run the AntelopeJS CLI from the root of a project that already loads `@antelopejs/dms`:
|
|
33
31
|
|
|
34
32
|
```bash
|
|
35
33
|
ajs project modules add @antelopejs/dms-database
|
|
36
34
|
```
|
|
37
35
|
|
|
38
|
-
##
|
|
36
|
+
## Quick start
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
the Database interface cannot discover it. `schemaLabels` overrides labels for exact schema IDs or
|
|
42
|
-
glob patterns containing `*`.
|
|
38
|
+
The module works without configuration. To show the database name on the Overview and label your schemas, add a `config` block:
|
|
43
39
|
|
|
44
|
-
```
|
|
45
|
-
config
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
```ts
|
|
41
|
+
// antelope.config.ts
|
|
42
|
+
"dms-database": {
|
|
43
|
+
source: { type: "package", package: "@antelopejs/dms-database", version: ">=0.2.0 <1.0.0" },
|
|
44
|
+
config: {
|
|
45
|
+
driverLabel: "MongoDB 8.0",
|
|
46
|
+
schemaLabels: {
|
|
47
|
+
"app-*": { label: "Application", color: "info" },
|
|
48
|
+
},
|
|
49
49
|
},
|
|
50
|
-
}
|
|
50
|
+
},
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Restart the backend, then the frontend, sign in as the platform owner and open **Modules → Database** (`/modules/database/overview`).
|
|
54
|
+
|
|
55
|
+
## Compatibility
|
|
56
|
+
|
|
57
|
+
| Package | Version |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| `@antelopejs/dms` | `>=0.9.0 <1.0.0` |
|
|
60
|
+
| `@antelopejs/interface-dms` | `>=0.7.0 <1.0.0` |
|
|
61
|
+
| `@antelopejs/dms-frontend` (renderer) | `>=0.6.0 <0.7.0` |
|
|
62
|
+
| Database | an `@antelopejs/interface-database` implementation, such as `@antelopejs/mongodb` |
|
|
63
|
+
|
|
64
|
+
On DMS 0.8, use `@antelopejs/dms-database` 0.1.
|
|
65
|
+
|
|
66
|
+
## Documentation
|
|
67
|
+
|
|
68
|
+
- [Introduction](https://dms.antelopejs.com/docs/modules/database/introduction)
|
|
69
|
+
- [Installation](https://dms.antelopejs.com/docs/modules/database/installation)
|
|
70
|
+
- [Configuration](https://dms.antelopejs.com/docs/modules/database/configuration)
|
|
71
|
+
- [Usage](https://dms.antelopejs.com/docs/modules/database/usage/overview)
|
|
72
|
+
- [Extending](https://dms.antelopejs.com/docs/modules/database/extending)
|
|
73
|
+
- [FAQ](https://dms.antelopejs.com/docs/modules/database/faq)
|
|
74
|
+
|
|
75
|
+
The canonical guide lives in [`docs/`](./docs), including the [supported extension boundary](./docs/5.extending.md#supported-extension-boundary). There is no separate DMS Database interface package. The package also ships the `dms-database` Claude Code skill in [`skills/`](./skills), declared under `antelopeJs.skills`.
|
|
76
|
+
|
|
77
|
+
## Contributing
|
|
78
|
+
|
|
79
|
+
Read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening a pull request. The playground registers a `demo` schema and a `shop` schema with `eu` and `us` instances, seeded on first start.
|
|
54
80
|
|
|
55
81
|
```bash
|
|
56
82
|
pnpm install
|
|
57
|
-
pnpm
|
|
83
|
+
pnpm dev # playground backend
|
|
84
|
+
pnpm frontend:dev # dashboard, in a second terminal
|
|
85
|
+
pnpm lint
|
|
86
|
+
pnpm typecheck
|
|
58
87
|
pnpm test
|
|
59
88
|
```
|
|
60
89
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
the backend page names. The pages themselves are declared in `src/pages`, as DMS blocks plus the
|
|
64
|
-
module's own components. Everything under `frontend-vue/app/build` is private to the layer and
|
|
65
|
-
imported by path.
|
|
90
|
+
<details>
|
|
91
|
+
<summary>Repository notes</summary>
|
|
66
92
|
|
|
67
|
-
The
|
|
68
|
-
|
|
93
|
+
- The module registers its Vue 3 frontend through `frontend-vue/dms.frontend.ts`, under the `DmsDatabase` component prefix: `app/components/DataBrowser.vue` is the `DmsDatabaseDataBrowser` the backend page names. The pages are declared in `src/pages`, as DMS blocks plus the module's own components. Everything under `frontend-vue/app/build` is private to the layer and imported by path.
|
|
94
|
+
- Run `pnpm --dir frontend-vue install` and `pnpm --dir frontend-vue test` for the frontend tests. Set `DMS_FRONTEND_WORKSPACE` to a generated Inertia workspace before running `pnpm --dir frontend-vue typecheck`.
|
|
95
|
+
- `DMS_SOURCE=/absolute/path/to/dms pnpm test` tests against a local DMS runtime with disposable MongoDB and filesystem storage. Only the test harness loads that runtime; the types come from `@antelopejs/interface-dms`.
|
|
96
|
+
- `docs/design/redesign-v2-grill.md` records the decisions behind the v2 redesign.
|
|
69
97
|
|
|
70
|
-
|
|
98
|
+
</details>
|
|
71
99
|
|
|
72
|
-
|
|
73
|
-
`DMS_FRONTEND_WORKSPACE` to a generated Inertia workspace before running
|
|
74
|
-
`pnpm --dir frontend-vue typecheck`.
|
|
100
|
+
## License
|
|
75
101
|
|
|
76
|
-
|
|
77
|
-
and filesystem storage. Only the test harness loads the runtime; the types come from
|
|
78
|
-
`@antelopejs/interface-dms`, so `pnpm typecheck` is unaffected by that path.
|
|
102
|
+
[Apache-2.0](./LICENSE)
|
|
@@ -13,6 +13,7 @@ declare const DiagramLayoutModel_base: {
|
|
|
13
13
|
delete(id: string): Promise<number>;
|
|
14
14
|
};
|
|
15
15
|
readonly schemaName: string;
|
|
16
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<DiagramLayout>;
|
|
16
17
|
fromPlainData(obj: any): DiagramLayout;
|
|
17
18
|
fromDatabase(obj: any): DiagramLayout | undefined;
|
|
18
19
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -12,6 +12,7 @@ declare const DiagramNoteModel_base: {
|
|
|
12
12
|
delete(id: string): Promise<number>;
|
|
13
13
|
};
|
|
14
14
|
readonly schemaName: string;
|
|
15
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<DiagramNote>;
|
|
15
16
|
fromPlainData(obj: any): DiagramNote;
|
|
16
17
|
fromDatabase(obj: any): DiagramNote | undefined;
|
|
17
18
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -13,6 +13,7 @@ declare const QueryHistoryModel_base: {
|
|
|
13
13
|
delete(id: string): Promise<number>;
|
|
14
14
|
};
|
|
15
15
|
readonly schemaName: string;
|
|
16
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<QueryHistoryRow>;
|
|
16
17
|
fromPlainData(obj: any): QueryHistoryRow;
|
|
17
18
|
fromDatabase(obj: any): QueryHistoryRow | undefined;
|
|
18
19
|
toDatabase(obj: any): Record<string, any>;
|
|
@@ -12,6 +12,7 @@ declare const SavedQueryModel_base: {
|
|
|
12
12
|
delete(id: string): Promise<number>;
|
|
13
13
|
};
|
|
14
14
|
readonly schemaName: string;
|
|
15
|
+
readonly tableClass: import("@antelopejs/interface-database-decorators").Constructible<SavedQueryRow>;
|
|
15
16
|
fromPlainData(obj: any): SavedQueryRow;
|
|
16
17
|
fromDatabase(obj: any): SavedQueryRow | undefined;
|
|
17
18
|
toDatabase(obj: any): Record<string, any>;
|
package/dist/routes/data.d.ts
CHANGED
|
@@ -26,8 +26,6 @@ export declare class DatabaseBrowseController extends DatabaseBrowseController_b
|
|
|
26
26
|
tables(_user: User, schemaFilter: unknown, instanceFilter: unknown): Promise<ListResult<BrowseTableEntry>>;
|
|
27
27
|
references(_user: User, schemaFilter: unknown, instanceFilter: unknown, tableFilter: unknown, idRaw: unknown): Promise<ListResult<RowReference>>;
|
|
28
28
|
get(_user: User, schemaFilter: unknown, instanceFilter: unknown, tableFilter: unknown, idRaw: unknown): Promise<any>;
|
|
29
|
-
edit(_user: User, schemaFilter: unknown, instanceFilter: unknown, tableFilter: unknown, idRaw: unknown, body: Record<string, unknown>): Promise<
|
|
30
|
-
[x: string]: unknown;
|
|
31
|
-
}>;
|
|
29
|
+
edit(_user: User, schemaFilter: unknown, instanceFilter: unknown, tableFilter: unknown, idRaw: unknown, body: Record<string, unknown>): Promise<any>;
|
|
32
30
|
}
|
|
33
31
|
export {};
|
package/dist/routes/data.js
CHANGED
|
@@ -296,7 +296,12 @@ let DatabaseBrowseController = class DatabaseBrowseController extends (0, interf
|
|
|
296
296
|
const primaryKey = (0, introspect_1.getTablePrimaryKey)(selection.schema, selection.table);
|
|
297
297
|
const updates = buildEditUpdates(current, body, primaryKey);
|
|
298
298
|
if (Object.keys(updates).length > 0) {
|
|
299
|
-
await target.update(updates).run();
|
|
299
|
+
const changed = await target.update(updates).run();
|
|
300
|
+
if (changed === 0) {
|
|
301
|
+
const persisted = await target;
|
|
302
|
+
(0, interface_api_util_1.assert)(persisted && typeof persisted === "object", 404, "Row not found");
|
|
303
|
+
return persisted;
|
|
304
|
+
}
|
|
300
305
|
}
|
|
301
306
|
return { ...current, ...updates };
|
|
302
307
|
}
|
package/dist/routes/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/routes/data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/routes/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type BrowserTab, DEFAULT_INSTANCE_VALUE } from './useDataBrowserTabs'
|
|
2
|
-
// Per-tab grid state (paging, sort, filters, column widths)
|
|
3
|
-
//
|
|
4
|
-
//
|
|
2
|
+
// Per-tab grid state (paging, sort, filters, column widths), keyed by
|
|
3
|
+
// BrowserTab.id. The rows themselves are `useApiData`'s: a tab switched back
|
|
4
|
+
// to shows its last page at once and reads it again.
|
|
5
5
|
|
|
6
6
|
export interface ColumnFilterState {
|
|
7
7
|
mode: 'is' | 'contains'
|
|
@@ -31,9 +31,6 @@ export interface GridData {
|
|
|
31
31
|
rows: Record<string, unknown>[]
|
|
32
32
|
total: number
|
|
33
33
|
primaryKey: string | null
|
|
34
|
-
// Serialised query parameters that produced this payload; lets the grid
|
|
35
|
-
// skip refetching when nothing changed.
|
|
36
|
-
paramsKey: string
|
|
37
34
|
}
|
|
38
35
|
|
|
39
36
|
export const GRID_PAGE_SIZES = [25, 50, 100, 200]
|
|
@@ -55,32 +52,15 @@ export function useDataBrowserGrid() {
|
|
|
55
52
|
'dms-database-grid-states',
|
|
56
53
|
() => ({}),
|
|
57
54
|
)
|
|
58
|
-
const cache = useDmsState<Record<string, GridData>>(
|
|
59
|
-
'dms-database-grid-cache',
|
|
60
|
-
() => ({}),
|
|
61
|
-
)
|
|
62
55
|
|
|
63
56
|
function getState(tabId: string): GridState {
|
|
64
57
|
if (!states.value[tabId]) states.value[tabId] = defaultGridState()
|
|
65
58
|
return states.value[tabId]
|
|
66
59
|
}
|
|
67
60
|
|
|
68
|
-
function getCache(tabId: string): GridData | null {
|
|
69
|
-
return cache.value[tabId] ?? null
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function setCache(tabId: string, data: GridData) {
|
|
73
|
-
cache.value[tabId] = data
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function invalidate(tabId: string) {
|
|
77
|
-
Reflect.deleteProperty(cache.value, tabId)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
61
|
// Forget everything about a closed tab.
|
|
81
62
|
function drop(tabId: string) {
|
|
82
63
|
Reflect.deleteProperty(states.value, tabId)
|
|
83
|
-
Reflect.deleteProperty(cache.value, tabId)
|
|
84
64
|
}
|
|
85
65
|
|
|
86
66
|
// A tab switched to another instance keeps what the user narrowed the
|
|
@@ -94,10 +74,9 @@ export function useDataBrowserGrid() {
|
|
|
94
74
|
columnWidths: { ...from.columnWidths },
|
|
95
75
|
page: 0,
|
|
96
76
|
}
|
|
97
|
-
Reflect.deleteProperty(cache.value, toId)
|
|
98
77
|
}
|
|
99
78
|
|
|
100
|
-
return { getState,
|
|
79
|
+
return { getState, drop, carry }
|
|
101
80
|
}
|
|
102
81
|
|
|
103
82
|
// --- query helpers shared by the grid ---
|
|
@@ -162,16 +141,3 @@ export function browseListQuery(
|
|
|
162
141
|
}
|
|
163
142
|
return query
|
|
164
143
|
}
|
|
165
|
-
|
|
166
|
-
// Everything that changes the server payload (column widths deliberately not).
|
|
167
|
-
export function browseParamsKey(tab: BrowserTab, state: GridState): string {
|
|
168
|
-
return JSON.stringify([
|
|
169
|
-
tab.id,
|
|
170
|
-
state.page,
|
|
171
|
-
state.pageSize,
|
|
172
|
-
state.sortKey,
|
|
173
|
-
state.sortDirection,
|
|
174
|
-
state.search,
|
|
175
|
-
activeFilterEntries(state),
|
|
176
|
-
])
|
|
177
|
-
}
|
|
@@ -34,11 +34,14 @@ const EMPTY_HEALTH: OverviewHealth = {
|
|
|
34
34
|
storage: [],
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const { data, pending, error, refresh } =
|
|
37
|
+
/** `refreshInterval` probes again on that interval while the page shows it. */
|
|
38
|
+
export function useDatabaseHealth(options: { refreshInterval?: number } = {}) {
|
|
39
|
+
const { data, pending, error, refresh } = useApiData<OverviewHealth>(
|
|
40
40
|
HEALTH_ENDPOINT,
|
|
41
|
-
{
|
|
41
|
+
{
|
|
42
|
+
default: () => ({ ...EMPTY_HEALTH }),
|
|
43
|
+
refreshInterval: options.refreshInterval,
|
|
44
|
+
},
|
|
42
45
|
)
|
|
43
46
|
|
|
44
47
|
return {
|
|
@@ -110,8 +110,7 @@ export function inboundRelationsIn(
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
export function useDatabaseSchemas() {
|
|
113
|
-
const {
|
|
114
|
-
const { data, pending, error, status, refresh } = useFetchAuth<{
|
|
113
|
+
const { data, pending, error, status, refresh } = useApiData<{
|
|
115
114
|
schemas: SchemaSummary[]
|
|
116
115
|
}>(SCHEMAS_ENDPOINT, { default: () => EMPTY_SCHEMAS })
|
|
117
116
|
|
|
@@ -32,6 +32,13 @@ export type DiagramNoteUpdate = Partial<
|
|
|
32
32
|
Pick<DiagramNote, 'text' | 'x' | 'y' | 'width' | 'height' | 'color'>
|
|
33
33
|
>
|
|
34
34
|
|
|
35
|
+
/** A schema's diagram as stored: its layout and its notes. */
|
|
36
|
+
export interface StoredDiagram {
|
|
37
|
+
schema: string
|
|
38
|
+
positions: DiagramPositions
|
|
39
|
+
notes: DiagramNote[]
|
|
40
|
+
}
|
|
41
|
+
|
|
35
42
|
const BASE = '/api/database/diagram'
|
|
36
43
|
// A request that hangs fails after this (ofetch's own `timeout`), so the
|
|
37
44
|
// canvas shows the error and its "Try again" instead of "Saving…" forever.
|
|
@@ -40,12 +47,47 @@ const REQUEST_TIMEOUT_MS = 15_000
|
|
|
40
47
|
export function useDiagramPersistence() {
|
|
41
48
|
const { $authFetch } = useAuthFetch()
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
)
|
|
48
|
-
|
|
50
|
+
// The schema whose diagram is read: in the browser only, when the canvas
|
|
51
|
+
// asks, since it draws and edits a working copy of it.
|
|
52
|
+
const readSchema = shallowRef<string | null>(null)
|
|
53
|
+
const stored = useApiData<StoredDiagram>(
|
|
54
|
+
() =>
|
|
55
|
+
readSchema.value ? `dms-database:diagram:${readSchema.value}` : null,
|
|
56
|
+
async ({ $authFetch: read, signal }) => {
|
|
57
|
+
const schema = readSchema.value as string
|
|
58
|
+
const [layout, notes] = await Promise.all([
|
|
59
|
+
read<{ positions: DiagramPositions }>(
|
|
60
|
+
`${BASE}/layout/${encodeURIComponent(schema)}`,
|
|
61
|
+
{ timeout: REQUEST_TIMEOUT_MS, signal },
|
|
62
|
+
),
|
|
63
|
+
read<{ items: DiagramNote[] }>(`${BASE}/notes`, {
|
|
64
|
+
query: { schema },
|
|
65
|
+
timeout: REQUEST_TIMEOUT_MS,
|
|
66
|
+
signal,
|
|
67
|
+
}),
|
|
68
|
+
])
|
|
69
|
+
return {
|
|
70
|
+
schema,
|
|
71
|
+
positions: layout.positions ?? {},
|
|
72
|
+
notes: notes.items ?? [],
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
immediate: false,
|
|
77
|
+
server: false,
|
|
78
|
+
watch: false,
|
|
79
|
+
refreshOnPageRefresh: false,
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
/** Reads a schema's layout and notes; throws when they cannot be read. */
|
|
84
|
+
async function readDiagram(schema: string): Promise<StoredDiagram> {
|
|
85
|
+
readSchema.value = schema
|
|
86
|
+
await stored.execute()
|
|
87
|
+
const diagram = stored.data.value
|
|
88
|
+
if (stored.error.value || diagram?.schema !== schema)
|
|
89
|
+
throw stored.error.value ?? new Error('Diagram not read')
|
|
90
|
+
return diagram
|
|
49
91
|
}
|
|
50
92
|
|
|
51
93
|
async function saveLayout(
|
|
@@ -62,14 +104,6 @@ export function useDiagramPersistence() {
|
|
|
62
104
|
)
|
|
63
105
|
}
|
|
64
106
|
|
|
65
|
-
async function fetchNotes(schema: string): Promise<DiagramNote[]> {
|
|
66
|
-
const res = await $authFetch<{ items: DiagramNote[] }>(`${BASE}/notes`, {
|
|
67
|
-
query: { schema },
|
|
68
|
-
timeout: REQUEST_TIMEOUT_MS,
|
|
69
|
-
})
|
|
70
|
-
return res.items ?? []
|
|
71
|
-
}
|
|
72
|
-
|
|
73
107
|
async function createNote(payload: DiagramNoteCreate): Promise<DiagramNote> {
|
|
74
108
|
return $authFetch<DiagramNote>(`${BASE}/notes`, {
|
|
75
109
|
method: 'POST',
|
|
@@ -97,9 +131,8 @@ export function useDiagramPersistence() {
|
|
|
97
131
|
}
|
|
98
132
|
|
|
99
133
|
return {
|
|
100
|
-
|
|
134
|
+
readDiagram,
|
|
101
135
|
saveLayout,
|
|
102
|
-
fetchNotes,
|
|
103
136
|
createNote,
|
|
104
137
|
updateNote,
|
|
105
138
|
deleteNote,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export type QueryLanguage = 'aql'
|
|
2
|
-
export type QueryScope = 'me' | 'shared'
|
|
3
2
|
|
|
4
3
|
export interface SavedQuery {
|
|
5
4
|
id: string
|
|
@@ -68,31 +67,61 @@ import { HISTORY_KEPT } from '../query/runs'
|
|
|
68
67
|
|
|
69
68
|
const QUERY_BASE = '/api/database/query'
|
|
70
69
|
|
|
70
|
+
/**
|
|
71
|
+
* The query console's library and requests. The library (the caller's saved
|
|
72
|
+
* queries, the team's shared ones, the runs the server keeps) is read as the
|
|
73
|
+
* console sets up: a server render reads it and hands it over with the page.
|
|
74
|
+
* Every write is a request of its own, after which the console refreshes
|
|
75
|
+
* the part of the library it changed.
|
|
76
|
+
*/
|
|
71
77
|
export function useQueryStore() {
|
|
72
78
|
const { $authFetch } = useAuthFetch()
|
|
73
79
|
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
const saved = useApiData<{ items: SavedQuery[] }>(`${QUERY_BASE}/saved`, {
|
|
81
|
+
query: { scope: 'me' },
|
|
82
|
+
})
|
|
83
|
+
const shared = useApiData<{ items: SavedQuery[] }>(`${QUERY_BASE}/saved`, {
|
|
84
|
+
query: { scope: 'shared' },
|
|
85
|
+
})
|
|
86
|
+
const history = useApiData<{ items: HistoryEntry[] }>(
|
|
87
|
+
`${QUERY_BASE}/history`,
|
|
88
|
+
{ query: { limit: HISTORY_KEPT } },
|
|
89
|
+
)
|
|
90
|
+
const reads = [saved, shared, history]
|
|
91
|
+
|
|
92
|
+
/** The saved queries and the shared ones, read again. */
|
|
93
|
+
async function refreshSaved(): Promise<void> {
|
|
94
|
+
await Promise.all([saved.refresh(), shared.refresh()])
|
|
83
95
|
}
|
|
84
96
|
|
|
97
|
+
// A run a link names (`?history=`), read when the console opens it.
|
|
98
|
+
const entryId = shallowRef<string | null>(null)
|
|
99
|
+
const entry = useApiData<HistoryEntry>(
|
|
100
|
+
() =>
|
|
101
|
+
entryId.value
|
|
102
|
+
? `${QUERY_BASE}/history/${encodeURIComponent(entryId.value)}`
|
|
103
|
+
: null,
|
|
104
|
+
{
|
|
105
|
+
immediate: false,
|
|
106
|
+
server: false,
|
|
107
|
+
watch: false,
|
|
108
|
+
refreshOnPageRefresh: false,
|
|
109
|
+
},
|
|
110
|
+
)
|
|
111
|
+
|
|
85
112
|
async function fetchHistoryEntry(id: string): Promise<HistoryEntry> {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
)
|
|
113
|
+
entryId.value = id
|
|
114
|
+
await entry.execute()
|
|
115
|
+
if (entry.error.value || !entry.data.value)
|
|
116
|
+
throw entry.error.value ?? new Error('History entry not read')
|
|
117
|
+
return entry.data.value
|
|
89
118
|
}
|
|
90
119
|
|
|
91
120
|
async function clearHistory(): Promise<void> {
|
|
92
121
|
await $authFetch<{ success: boolean }>(`${QUERY_BASE}/history`, {
|
|
93
122
|
method: 'DELETE',
|
|
94
123
|
})
|
|
95
|
-
|
|
124
|
+
history.data.value = { items: [] }
|
|
96
125
|
}
|
|
97
126
|
|
|
98
127
|
async function dryRun(query: Record<string, unknown>): Promise<DryRunResult> {
|
|
@@ -102,15 +131,6 @@ export function useQueryStore() {
|
|
|
102
131
|
})
|
|
103
132
|
}
|
|
104
133
|
|
|
105
|
-
/** Every run the server keeps, at once. */
|
|
106
|
-
async function fetchHistory(): Promise<void> {
|
|
107
|
-
const response = await $authFetch<{ items: HistoryEntry[] }>(
|
|
108
|
-
`${QUERY_BASE}/history`,
|
|
109
|
-
{ query: { limit: HISTORY_KEPT } },
|
|
110
|
-
)
|
|
111
|
-
historyItems.value = response.items ?? []
|
|
112
|
-
}
|
|
113
|
-
|
|
114
134
|
async function executeQuery(
|
|
115
135
|
query: Record<string, unknown>,
|
|
116
136
|
source: string,
|
|
@@ -147,10 +167,22 @@ export function useQueryStore() {
|
|
|
147
167
|
}
|
|
148
168
|
|
|
149
169
|
return {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
170
|
+
/** The caller's saved queries. A failed refresh keeps the last list. */
|
|
171
|
+
savedQueries: computed(() => saved.data.value?.items ?? []),
|
|
172
|
+
/** The queries shared with the team, the caller's own included. */
|
|
173
|
+
sharedQueries: computed(() => shared.data.value?.items ?? []),
|
|
174
|
+
/** Every run the server keeps, newest first. */
|
|
175
|
+
historyItems: computed(() => history.data.value?.items ?? []),
|
|
176
|
+
/** The library's first read is still running. */
|
|
177
|
+
libraryLoading: computed(() =>
|
|
178
|
+
reads.some(
|
|
179
|
+
(read) => read.data.value === null && read.status.value !== 'error',
|
|
180
|
+
),
|
|
181
|
+
),
|
|
182
|
+
/** Settles once the library's first read did, failed or not. */
|
|
183
|
+
libraryRead: Promise.all(reads).then(() => undefined),
|
|
184
|
+
refreshSaved,
|
|
185
|
+
refreshHistory: () => history.refresh(),
|
|
154
186
|
fetchHistoryEntry,
|
|
155
187
|
clearHistory,
|
|
156
188
|
dryRun,
|