Skip to content
API reference

root-data

Import
import * as api from "@fungi.computer/oyster/root-data";
Kind Export Description
type alias OysterRootRoles Role choices belong to the root owner, independently of Release declarations.
type alias OysterRootDirectory Shared workbench metadata, without a hosted Team’s administration or grants.
type alias OysterRootDataOptions Existing installation, Release and SQLite owners supplied by the root.
function createOysterRootData() Data adapters for a standalone workbench over the root’s existing owners.

OysterRootRolestype alias

Section titled “OysterRootRoles”
Signature
type OysterRootRoles = Readonly<
Record<
string,
Readonly<{
surfaceId: string | null;
chosen: boolean;
}>
>
>;

Role choices belong to the root owner, independently of Release declarations.


OysterRootDirectorytype alias

Section titled “OysterRootDirectory”
Signature
type OysterRootDirectory = Readonly<{
apps: readonly AppDirectoryEntry[];
roles: OysterRootRoles;
computer?: Readonly<{
computerId: string;
name: string;
}>;
}>;

Shared workbench metadata, without a hosted Team’s administration or grants.


OysterRootDataOptionstype alias

Section titled “OysterRootDataOptions”
Signature
type OysterRootDataOptions = Parameters<typeof createAppStorage>[0] &
Readonly<{
installations: Pick<InstallationStore, "list">;
resolveRelease: Promise<
Pick<
Readonly<{
release: Release;
build: AppBuild;
api: AppApi | null;
declaration: AppDeclaration | null;
ui:
| Readonly<{
kind: "html";
artifactRef: ArtifactRef;
digest: Sha256Digest;
}>
| Readonly<{
kind: "assets";
build: AssetBuild;
}>
| null;
backend: Readonly<{
artifactRef: ArtifactRef;
digest: Sha256Digest;
}> | null;
}>,
"ui" | "declaration"
>
>;
}>;

Existing installation, Release and SQLite owners supplied by the root.

createOysterRootData()function

Section titled “createOysterRootData()”
Signature
function createOysterRootData(options): object;

Data adapters for a standalone workbench over the root’s existing owners.

Parameter Type
options OysterRootDataOptions
Name Type Description
storage object Each open(authorize) receives fresh host admission and Release-declared keys.
storage.purgeInstallation() (address) => void Remove an installation’s values and write counters inside its delete transaction.
storage.purgeMember() (memberId, throughVersion) => void Remove a member’s private values and counters through the revoked membership version.
openInstallation() (authorize) => object Bind a lifecycle view to fresh installation admission; only declared team layers are accessible.
open() (authorize) => object Bind a member view to live admission, declared keys and the current membership version.
directory() () => Promise<Readonly<{ apps: readonly object[]; roles: OysterRootRoles; computer?: Readonly<{ computerId: string; name: string; }>; }>> Project the current installations without minting permissions or role choices.
platformDestinations() () => readonly Readonly<{ id: string; label: string; }>[] No standalone platform navigation destination is implemented yet.