Scope Camino storage and database authority to each workspace

This commit is contained in:
Timothy J. Aveni
2026-10-06 16:22:59 -07:00
parent 61edac68a8
commit 9d8bc5e2ab
2 changed files with 14 additions and 0 deletions
+7
View File
@@ -3,6 +3,8 @@ import { readFile, mkdir, writeFile } from "node:fs/promises";
import { compileCapabilityResourceSource, compileCapabilitySource } from "../src/capability-language/index.js"; import { compileCapabilityResourceSource, compileCapabilitySource } from "../src/capability-language/index.js";
import { compileQuery } from "../src/query/compile.js"; import { compileQuery } from "../src/query/compile.js";
import { parseControllerCatalog } from "../src/capability-model/controllers.js"; import { parseControllerCatalog } from "../src/capability-model/controllers.js";
import { presentationDeclarations, preparationArtifact } from "../src/react-build/declarations.js";
import { compileQueryComposition } from "../src/query/composition.js";
import { import {
compileExecutionPlan, compileExecutionPlan,
generateInterfaceClientBindings, generateInterfaceClientBindings,
@@ -59,6 +61,11 @@ const viewerPackage = viewer.resource.revision;
viewerPackage.checkedQueries = await Promise.all( viewerPackage.checkedQueries = await Promise.all(
viewerPackage.queries!.map((query) => compileQuery(query, [iface], read)), viewerPackage.queries!.map((query) => compileQuery(query, [iface], read)),
); );
const preparation = presentationDeclarations(await read("quixos.react.json"), viewerPackage, environment.interfaceClosure);
viewerPackage.buildArtifacts = { [preparationArtifact]: preparation.artifact };
viewerPackage.queryCompositions = preparation.compositions.map((entry) =>
compileQueryComposition(entry, new Map(viewerPackage.checkedQueries!.map((query) => [query.declaration.id, query]))),
);
for (const variant of ["controller", "controller-next"]) { for (const variant of ["controller", "controller-next"]) {
const extra = variant.endsWith("next") const extra = variant.endsWith("next")
? 'atom Dashboard id "dashboard"; import package DeviceViewer; presentation DeviceStatus id "device:status" for Device using DeviceViewer.Status;' ? 'atom Dashboard id "dashboard"; import package DeviceViewer; presentation DeviceStatus id "device:status" for Device using DeviceViewer.Status;'
+7
View File
@@ -0,0 +1,7 @@
{
"modules": {
"Status": {
"inputs": [{ "name": "view", "query": "View", "root": { "from": "input", "path": ["subject"] }, "arguments": { "record": {} } }]
}
}
}