@polpo-ai/dashboard 0.15.142 → 0.15.144
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 +23 -3
- package/dist/host.d.ts +1 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/v2/data/data-sql-panel.d.ts +15 -0
- package/dist/v2/data/data-sql-panel.d.ts.map +1 -0
- package/dist/v2/data/data-sql-panel.js +111 -0
- package/dist/v2/data/data-sql-panel.js.map +1 -0
- package/dist/v2/data/data-ui.d.ts +16 -0
- package/dist/v2/data/data-ui.d.ts.map +1 -0
- package/dist/v2/data/data-ui.js +27 -0
- package/dist/v2/data/data-ui.js.map +1 -0
- package/dist/v2/data/data-view.d.ts +5 -0
- package/dist/v2/data/data-view.d.ts.map +1 -0
- package/dist/v2/data/data-view.js +316 -0
- package/dist/v2/data/data-view.js.map +1 -0
- package/dist/v2/data/host.d.ts +83 -0
- package/dist/v2/data/host.d.ts.map +1 -0
- package/dist/v2/data/host.js +39 -0
- package/dist/v2/data/host.js.map +1 -0
- package/dist/v2/data/pagination.d.ts +3 -0
- package/dist/v2/data/pagination.d.ts.map +1 -0
- package/dist/v2/data/pagination.js +6 -0
- package/dist/v2/data/pagination.js.map +1 -0
- package/dist/v2/shell/dashboard-shell.d.ts.map +1 -1
- package/dist/v2/shell/dashboard-shell.js +2 -1
- package/dist/v2/shell/dashboard-shell.js.map +1 -1
- package/dist/v2/ui/bits.d.ts +7 -0
- package/dist/v2/ui/bits.d.ts.map +1 -1
- package/dist/v2/ui/bits.js +3 -0
- package/dist/v2/ui/bits.js.map +1 -1
- package/dist/v2/ui/code-editor.d.ts +2 -1
- package/dist/v2/ui/code-editor.d.ts.map +1 -1
- package/dist/v2/ui/code-editor.js +2 -1
- package/dist/v2/ui/code-editor.js.map +1 -1
- package/dist/v2/ui/copy-id.d.ts +15 -0
- package/dist/v2/ui/copy-id.d.ts.map +1 -0
- package/dist/v2/ui/copy-id.js +32 -0
- package/dist/v2/ui/copy-id.js.map +1 -0
- package/dist/v2/ui/data-table.d.ts +12 -1
- package/dist/v2/ui/data-table.d.ts.map +1 -1
- package/dist/v2/ui/data-table.js +39 -12
- package/dist/v2/ui/data-table.js.map +1 -1
- package/dist/v2/ui/refresh-button.d.ts +2 -1
- package/dist/v2/ui/refresh-button.d.ts.map +1 -1
- package/dist/v2/ui/refresh-button.js +2 -2
- package/dist/v2/ui/refresh-button.js.map +1 -1
- package/dist/v2/ui/search-input.d.ts +19 -0
- package/dist/v2/ui/search-input.d.ts.map +1 -0
- package/dist/v2/ui/search-input.js +17 -0
- package/dist/v2/ui/search-input.js.map +1 -0
- package/dist/v2/ui/select-field.d.ts +81 -0
- package/dist/v2/ui/select-field.d.ts.map +1 -0
- package/dist/v2/ui/select-field.js +89 -0
- package/dist/v2/ui/select-field.js.map +1 -0
- package/dist/v2/ui/select.d.ts +12 -1
- package/dist/v2/ui/select.d.ts.map +1 -1
- package/dist/v2/ui/select.js +14 -2
- package/dist/v2/ui/select.js.map +1 -1
- package/dist/v2/ui/table-row-actions.d.ts +15 -0
- package/dist/v2/ui/table-row-actions.d.ts.map +1 -0
- package/dist/v2/ui/table-row-actions.js +22 -0
- package/dist/v2/ui/table-row-actions.js.map +1 -0
- package/dist/v2/ui/tabs.d.ts +40 -0
- package/dist/v2/ui/tabs.d.ts.map +1 -0
- package/dist/v2/ui/tabs.js +46 -0
- package/dist/v2/ui/tabs.js.map +1 -0
- package/dist/v2/ui/tooltip.d.ts +7 -0
- package/dist/v2/ui/tooltip.d.ts.map +1 -0
- package/dist/v2/ui/tooltip.js +18 -0
- package/dist/v2/ui/tooltip.js.map +1 -0
- package/dist/v2/views/data.d.ts +2 -0
- package/dist/v2/views/data.d.ts.map +1 -0
- package/dist/v2/views/data.js +11 -0
- package/dist/v2/views/data.js.map +1 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# @polpo-ai/dashboard
|
|
2
2
|
|
|
3
|
-
Reusable Polpo v2 dashboard views
|
|
4
|
-
the managed Cloud
|
|
3
|
+
Reusable Polpo v2 dashboard views for the single-tenant self-hosted dashboard and
|
|
4
|
+
embedding hosts. Views follow the managed Cloud design system; the parity check
|
|
5
|
+
tracks mapped components across repositories.
|
|
5
6
|
|
|
6
7
|
The package owns project-scoped runtime surfaces: agents, playground, sessions,
|
|
7
|
-
files, memory, skills, and custom tools. The host application owns deployment
|
|
8
|
+
files, databases, memory, skills, and custom tools. The host application owns deployment
|
|
8
9
|
boundaries such as authentication, organizations, project provisioning,
|
|
9
10
|
billing, managed connections, and the managed model gateway.
|
|
10
11
|
|
|
@@ -26,6 +27,7 @@ import "@polpo-ai/dashboard/v2.css";
|
|
|
26
27
|
managedConnections: false,
|
|
27
28
|
managedGateway: false,
|
|
28
29
|
provisioning: false,
|
|
30
|
+
data: true,
|
|
29
31
|
},
|
|
30
32
|
navigate,
|
|
31
33
|
href,
|
|
@@ -42,6 +44,24 @@ import "@polpo-ai/dashboard/v2.css";
|
|
|
42
44
|
to the runtime and keeps `POLPO_API_KEY` server-side. Never expose privileged
|
|
43
45
|
keys through a `NEXT_PUBLIC_*` variable.
|
|
44
46
|
|
|
47
|
+
## Databases
|
|
48
|
+
|
|
49
|
+
`V2DataView` includes its own page layout and uses the SDK client from `PolpoProvider`.
|
|
50
|
+
The reference host mounts it at `/data`, linked as **Databases**. Its Schema selector
|
|
51
|
+
chooses a logical database; tables appear beside the record, SQL query and migration
|
|
52
|
+
views. Database and record mutations retain version checks and retry semantics from
|
|
53
|
+
the shared Data API.
|
|
54
|
+
|
|
55
|
+
Set `POLPO_DATA_DATABASE_URL` on the runtime to configure a separate PostgreSQL
|
|
56
|
+
application database. The existing runtime API key authorizes dashboard requests.
|
|
57
|
+
An embedding host can hide Databases with `capabilities.data: false`; the capability
|
|
58
|
+
does not configure or authorize Data on the server.
|
|
59
|
+
|
|
60
|
+
The self-hosted view uses a single configured backend. Cloud Live/Test selection,
|
|
61
|
+
Neon provisioning status and managed grant editors are host-specific. Self-hosted
|
|
62
|
+
agent grants remain trusted runtime configuration. See
|
|
63
|
+
[Application Data](../../docs/data.md) for setup, supported SQL and permissions.
|
|
64
|
+
|
|
45
65
|
## Parity
|
|
46
66
|
|
|
47
67
|
Run `pnpm check:dashboard-parity` from the repository root while a Polpo Cloud
|
package/dist/host.d.ts
CHANGED
package/dist/host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACjC;AAID,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAIhD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
package/dist/host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAmBlE,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEvE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,QAAQ,GAIT;IACC,OAAO,CACL,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YACvC,QAAQ,GACqB,CACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { SelfHostAgentDetailView as V2AgentDetailView } from "./v2/agents/self-h
|
|
|
12
12
|
export { SkillsCatalog as V2SkillsView } from "./v2/views/skills.js";
|
|
13
13
|
export { SelfHostSkillDetailView as V2SkillDetailView } from "./v2/skills/self-host-detail.js";
|
|
14
14
|
export { FilesView as V2FilesView } from "./v2/views/files.js";
|
|
15
|
+
export { SelfHostDataView as V2DataView } from "./v2/views/data.js";
|
|
15
16
|
export { MemoryView as V2MemoryView } from "./v2/views/memory.js";
|
|
16
17
|
export { SelfHostSessionsView as V2SessionsView, SelfHostSessionDetailView as V2SessionDetailView } from "./v2/sessions/self-host.js";
|
|
17
18
|
export { SelfHostPlaygroundView as V2PlaygroundView } from "./v2/playground/self-host.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtI,OAAO,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtI,OAAO,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { SelfHostAgentDetailView as V2AgentDetailView } from "./v2/agents/self-h
|
|
|
10
10
|
export { SkillsCatalog as V2SkillsView } from "./v2/views/skills.js";
|
|
11
11
|
export { SelfHostSkillDetailView as V2SkillDetailView } from "./v2/skills/self-host-detail.js";
|
|
12
12
|
export { FilesView as V2FilesView } from "./v2/views/files.js";
|
|
13
|
+
export { SelfHostDataView as V2DataView } from "./v2/views/data.js";
|
|
13
14
|
export { MemoryView as V2MemoryView } from "./v2/views/memory.js";
|
|
14
15
|
export { SelfHostSessionsView as V2SessionsView, SelfHostSessionDetailView as V2SessionDetailView } from "./v2/sessions/self-host.js";
|
|
15
16
|
export { SelfHostPlaygroundView as V2PlaygroundView } from "./v2/playground/self-host.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtI,OAAO,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,yBAAyB,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtI,OAAO,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,sBAAsB,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DataResource } from "@polpo-ai/core/data";
|
|
2
|
+
import { type DataEnvironment } from "./data-ui.js";
|
|
3
|
+
type DatabaseProps = {
|
|
4
|
+
projectId: string;
|
|
5
|
+
environment: DataEnvironment;
|
|
6
|
+
resource: DataResource;
|
|
7
|
+
};
|
|
8
|
+
export declare function DataSqlPanel({ projectId, environment, resource, tableName, }: DatabaseProps & {
|
|
9
|
+
tableName?: string;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function DataMigrationsPanel({ projectId, environment, resource, refresh, }: DatabaseProps & {
|
|
12
|
+
refresh(): Promise<void>;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=data-sql-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-sql-panel.d.ts","sourceRoot":"","sources":["../../../src/v2/data/data-sql-panel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAEtB,KAAK,aAAa,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmIxC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,GACR,EAAE,aAAa,GAAG;IAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,2CAgG9C"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
5
|
+
import { Button } from "../ui/button.js";
|
|
6
|
+
import { SelectField } from "../ui/select-field.js";
|
|
7
|
+
import { CodeEditor } from "../ui/code-editor.js";
|
|
8
|
+
import { DataTable } from "../ui/data-table.js";
|
|
9
|
+
import { Section } from "../ui/bits.js";
|
|
10
|
+
import { useDataClient } from "./host.js";
|
|
11
|
+
import { DataErrorNotice, Field, } from "./data-ui.js";
|
|
12
|
+
export function DataSqlPanel({ projectId, environment, resource, tableName, }) {
|
|
13
|
+
const data = useDataClient();
|
|
14
|
+
const [sql, setSql] = useState(tableName ? `SELECT * FROM "${tableName}" LIMIT 20` : "SELECT 1 AS value");
|
|
15
|
+
const [params, setParams] = useState("[]");
|
|
16
|
+
const [mode, setMode] = useState("read");
|
|
17
|
+
const retry = useRef(null);
|
|
18
|
+
const client = useQueryClient();
|
|
19
|
+
const run = useMutation({
|
|
20
|
+
mutationFn: async () => {
|
|
21
|
+
const input = { sql, params: JSON.parse(params), mode, maxRows: 50 };
|
|
22
|
+
const signature = JSON.stringify(input);
|
|
23
|
+
if (!retry.current || retry.current.signature !== signature)
|
|
24
|
+
retry.current = { signature, key: crypto.randomUUID() };
|
|
25
|
+
const response = await data.query(resource.id, {
|
|
26
|
+
...input, ...(mode === "write" ? { idempotencyKey: retry.current.key } : {}),
|
|
27
|
+
});
|
|
28
|
+
return { ...response, mode };
|
|
29
|
+
},
|
|
30
|
+
onSuccess: async () => {
|
|
31
|
+
retry.current = null;
|
|
32
|
+
await client.invalidateQueries({
|
|
33
|
+
queryKey: ["data-records", projectId, environment, resource.id],
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: "Query tables in this database using PostgreSQL syntax. Use $1, $2 and the parameters below for values. Schema changes belong in Migrations." }), _jsx(Field, { label: "SQL", children: _jsx(CodeEditor, { ariaLabel: "SQL", language: "sql", height: 240, value: sql, readOnly: run.isPending, onChange: setSql }) }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-[minmax(0,1fr)_160px]", children: [_jsx(Field, { label: "Parameters (JSON array)", children: _jsx(CodeEditor, { ariaLabel: "Parameters (JSON array)", language: "json", height: 80, value: params, readOnly: run.isPending, onChange: setParams }) }), _jsx(Field, { label: "Query mode", children: _jsx(SelectField, { "aria-label": "Query mode", className: "w-full", value: mode, disabled: run.isPending, options: [
|
|
38
|
+
{ value: "read", label: "Read" },
|
|
39
|
+
{ value: "write", label: "Write" },
|
|
40
|
+
], onChange: setMode }) })] }), mode === "write" ? (_jsx("p", { className: "text-xs text-muted-foreground", children: "INSERT, UPDATE and DELETE change records in this database. Use WHERE _version = \u2026 when an update depends on a previously read record." })) : null, _jsx(Button, { size: "sm", disabled: run.isPending || !sql.trim(), onClick: () => run.mutate(), children: run.isPending
|
|
41
|
+
? "Running…"
|
|
42
|
+
: mode === "write"
|
|
43
|
+
? "Run mutation"
|
|
44
|
+
: "Run query" }), run.isError ? _jsx(DataErrorNotice, { error: run.error }) : null, run.data ? (_jsxs("div", { className: "space-y-2", "aria-live": "polite", children: [_jsxs("p", { className: "text-xs text-muted-foreground", children: [run.data.data.rows.length, " rows shown", run.data.data.truncated ? " · result truncated" : "", " \u00B7", " ", run.data.data.rowCount, " rows", " ", run.data.mode === "write" ? "affected" : "fetched"] }), _jsx(DataTable, { data: run.data.data.rows, columns: [
|
|
45
|
+
...new Set(run.data.data.rows.flatMap((row) => Object.keys(row))),
|
|
46
|
+
].map((name) => ({
|
|
47
|
+
id: name,
|
|
48
|
+
header: name,
|
|
49
|
+
accessorFn: (row) => row[name],
|
|
50
|
+
cell: ({ getValue }) => {
|
|
51
|
+
const value = getValue();
|
|
52
|
+
const text = value === null
|
|
53
|
+
? "null"
|
|
54
|
+
: typeof value === "object"
|
|
55
|
+
? JSON.stringify(value)
|
|
56
|
+
: String(value);
|
|
57
|
+
return (_jsx("span", { className: "block max-w-64 truncate text-[13px]", title: text, children: text }));
|
|
58
|
+
},
|
|
59
|
+
})), pageSize: 25, empty: _jsx("span", { className: "text-[13px] text-muted-foreground", children: "The query returned no rows." }) })] })) : null] }));
|
|
60
|
+
}
|
|
61
|
+
export function DataMigrationsPanel({ projectId, environment, resource, refresh, }) {
|
|
62
|
+
const data = useDataClient();
|
|
63
|
+
const [input, setInput] = useState(() => JSON.stringify({
|
|
64
|
+
id: "add_notes",
|
|
65
|
+
expectedVersion: resource.schemaVersion,
|
|
66
|
+
statements: [{ sql: "CREATE TABLE notes (body text NOT NULL)" }],
|
|
67
|
+
}, null, 2));
|
|
68
|
+
const client = useQueryClient();
|
|
69
|
+
const key = ["data-migrations", projectId, environment, resource.id];
|
|
70
|
+
const history = useQuery({
|
|
71
|
+
queryKey: key,
|
|
72
|
+
retry: false,
|
|
73
|
+
queryFn: () => data.migrations(resource.id),
|
|
74
|
+
});
|
|
75
|
+
const apply = useMutation({
|
|
76
|
+
mutationFn: () => data.migrateSql(resource.id, JSON.parse(input)),
|
|
77
|
+
onSuccess: async () => {
|
|
78
|
+
await Promise.all([
|
|
79
|
+
refresh(),
|
|
80
|
+
client.invalidateQueries({ queryKey: key }),
|
|
81
|
+
client.invalidateQueries({
|
|
82
|
+
queryKey: ["data-records", projectId, environment, resource.id],
|
|
83
|
+
}),
|
|
84
|
+
]);
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs("p", { className: "text-xs text-muted-foreground", children: ["Apply supported table and index changes with data backfills in one transaction. Each statement has a SQL string and optional parameters. Current schema: v", resource.schemaVersion, "."] }), _jsx(Field, { label: "SQL migration (JSON)", children: _jsx(CodeEditor, { ariaLabel: "SQL migration (JSON)", language: "json", height: 300, value: input, readOnly: apply.isPending, onChange: (value) => {
|
|
88
|
+
setInput(value);
|
|
89
|
+
apply.reset();
|
|
90
|
+
} }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Use a unique migration ID and the current expectedVersion. Repeating the same migration is safe. Drops and type changes require allowDestructive: true." }), _jsx(Button, { size: "sm", disabled: apply.isPending || !input.trim(), onClick: () => apply.mutate(), children: apply.isPending
|
|
91
|
+
? "Applying…"
|
|
92
|
+
: "Apply migration" }), apply.isError ? _jsx(DataErrorNotice, { error: apply.error }) : null, apply.data ? (_jsxs("p", { role: "status", className: "text-sm", children: ["Migration applied \u00B7 schema v", apply.data.data.schemaVersion] })) : null, _jsx(Section, { title: "Migration history", count: history.data?.data.length, children: history.isPending ? (_jsx("p", { role: "status", className: "text-xs text-muted-foreground", children: "Loading migrations\u2026" })) : history.isError ? (_jsx(DataErrorNotice, { error: history.error })) : (_jsx(DataTable, { columns: migrationColumns, data: history.data.data, getRowId: (entry) => entry.id, empty: _jsx("span", { className: "text-[13px] text-muted-foreground", children: "No SQL migrations yet." }) })) })] }));
|
|
93
|
+
}
|
|
94
|
+
const migrationColumns = [
|
|
95
|
+
{
|
|
96
|
+
accessorKey: "id",
|
|
97
|
+
header: "Migration",
|
|
98
|
+
cell: ({ row }) => (_jsx("span", { className: "font-mono text-[12px]", children: row.original.id })),
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
accessorKey: "schemaVersion",
|
|
102
|
+
header: "Version",
|
|
103
|
+
cell: ({ row }) => (_jsxs("span", { className: "text-[13px]", children: ["v", row.original.schemaVersion] })),
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
accessorKey: "appliedAt",
|
|
107
|
+
header: "Applied",
|
|
108
|
+
cell: ({ row }) => (_jsx("span", { className: "text-[12px] text-muted-foreground", children: new Date(row.original.appliedAt).toLocaleString() })),
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
//# sourceMappingURL=data-sql-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-sql-panel.js","sourceRoot":"","sources":["../../../src/v2/data/data-sql-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type DataEnvironment = "local";
|
|
3
|
+
export type DataResponse<T> = {
|
|
4
|
+
ok: true;
|
|
5
|
+
data: T;
|
|
6
|
+
};
|
|
7
|
+
export declare function dataMessage(error: unknown): any;
|
|
8
|
+
export declare function DataErrorNotice({ error }: {
|
|
9
|
+
error: unknown;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function Field({ label, children, }: {
|
|
12
|
+
label: string;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const editorClass = "min-h-48 w-full rounded-md border border-input bg-background p-3 font-mono text-xs leading-5 focus-visible:outline-2 focus-visible:outline-ring";
|
|
16
|
+
//# sourceMappingURL=data-ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-ui.d.ts","sourceRoot":"","sources":["../../../src/v2/data/data-ui.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;AACtC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC;AACpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,OAgBzC;AACD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,2CAS5D;AACD,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAOA;AACD,eAAO,MAAM,WAAW,oJAC2H,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function dataMessage(error) {
|
|
4
|
+
const message = error instanceof Error ? error.message : "Database request failed";
|
|
5
|
+
const status = error && typeof error === "object" && "status" in error ? error.status : undefined;
|
|
6
|
+
const jsonStart = message.indexOf("{");
|
|
7
|
+
if (jsonStart >= 0)
|
|
8
|
+
try {
|
|
9
|
+
return JSON.parse(message.slice(jsonStart)).error ?? message;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
/* plain error */
|
|
13
|
+
}
|
|
14
|
+
if (status === 503 || message.includes("503"))
|
|
15
|
+
return "Databases are unavailable on this runtime. Ask its administrator to configure the Data backend.";
|
|
16
|
+
if (status === 403 || message.includes("403"))
|
|
17
|
+
return "Your account does not have access to this database operation.";
|
|
18
|
+
return message;
|
|
19
|
+
}
|
|
20
|
+
export function DataErrorNotice({ error }) {
|
|
21
|
+
return (_jsx("p", { role: "alert", className: "rounded-md border border-destructive/30 bg-destructive/5 p-3 text-sm text-destructive break-words", children: dataMessage(error) }));
|
|
22
|
+
}
|
|
23
|
+
export function Field({ label, children, }) {
|
|
24
|
+
return (_jsxs("label", { className: "flex min-w-0 flex-col gap-1.5 text-xs font-medium", children: [label, children] }));
|
|
25
|
+
}
|
|
26
|
+
export const editorClass = "min-h-48 w-full rounded-md border border-input bg-background p-3 font-mono text-xs leading-5 focus-visible:outline-2 focus-visible:outline-ring";
|
|
27
|
+
//# sourceMappingURL=data-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-ui.js","sourceRoot":"","sources":["../../../src/v2/data/data-ui.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;IACrE,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,IAAI,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,OAAO,iGAAiG,CAAC;IAC3G,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,OAAO,+DAA+D,CAAC;IACzE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAsB;IAC3D,OAAO,CACL,YACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,mGAAmG,YAE5G,WAAW,CAAC,KAAK,CAAC,GACjB,CACL,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,CACL,iBAAO,SAAS,EAAC,mDAAmD,aACjE,KAAK,EACL,QAAQ,IACH,CACT,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,WAAW,GACtB,iJAAiJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-view.d.ts","sourceRoot":"","sources":["../../../src/v2/data/data-view.tsx"],"names":[],"mappings":"AAgEA,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAc,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2CA6B/F"}
|