@yourrealm/sdk 0.0.0-alpha.1378.ce03c8dc
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/LICENSE-EXCEPTION +26 -0
- package/README.md +34 -0
- package/dist/chunk-3R6KEFOI.js +22 -0
- package/dist/chunk-67BDAMYX.js +376 -0
- package/dist/chunk-AITGS27R.js +139 -0
- package/dist/chunk-CMAEHQ4F.js +6 -0
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-O3UIK34B.js +1430 -0
- package/dist/chunk-VHTUSZUX.js +176 -0
- package/dist/cli.js +9006 -0
- package/dist/docker.js +54 -0
- package/dist/index.js +1053 -0
- package/dist/ingress.js +436 -0
- package/dist/jsx-runtime.js +2 -0
- package/dist/preact.js +22 -0
- package/dist/service-url.js +11 -0
- package/dist/services.js +213 -0
- package/dist/test.js +5069 -0
- package/dist/ui.js +254 -0
- package/dist/worker-protocol.js +89 -0
- package/package.json +112 -0
- package/src/app-icon.ts +74 -0
- package/src/apply.ts +52 -0
- package/src/bundle-ui.ts +211 -0
- package/src/bundle.ts +546 -0
- package/src/cli/build-dev-landing.ts +84 -0
- package/src/cli/build-install-panel.ts +90 -0
- package/src/cli/build-runtime.ts +133 -0
- package/src/cli/build.ts +63 -0
- package/src/cli/dev.ts +107 -0
- package/src/cli/down.ts +60 -0
- package/src/cli/main.ts +56 -0
- package/src/cli/test.ts +61 -0
- package/src/cli/validate.ts +37 -0
- package/src/compile.ts +100 -0
- package/src/create-app.ts +982 -0
- package/src/deep-merge.ts +33 -0
- package/src/dev/fixture.ts +48 -0
- package/src/dev/install-handler.ts +383 -0
- package/src/dev/server.ts +968 -0
- package/src/dev/stack.ts +108 -0
- package/src/dev/state.ts +159 -0
- package/src/docker.ts +96 -0
- package/src/errors.ts +61 -0
- package/src/factory.ts +481 -0
- package/src/garage.ts +56 -0
- package/src/generator/hash.ts +6 -0
- package/src/generator/resolve-refs.ts +207 -0
- package/src/grants-builder.ts +100 -0
- package/src/grants.ts +260 -0
- package/src/home-api.ts +172 -0
- package/src/home-cookie.ts +10 -0
- package/src/home-registry.ts +120 -0
- package/src/home.ts +187 -0
- package/src/host-registry.ts +143 -0
- package/src/http-header.ts +20 -0
- package/src/identifiers.ts +49 -0
- package/src/index.ts +66 -0
- package/src/info.ts +64 -0
- package/src/ini.ts +50 -0
- package/src/json.ts +14 -0
- package/src/jsx-runtime/index.ts +5 -0
- package/src/keys.ts +29 -0
- package/src/mysql.ts +56 -0
- package/src/pack-build.ts +108 -0
- package/src/pack.ts +115 -0
- package/src/peer-registry.ts +121 -0
- package/src/peer-world.ts +117 -0
- package/src/permission-meta.ts +116 -0
- package/src/permissions.ts +108 -0
- package/src/pkg-root.ts +34 -0
- package/src/postgres.ts +79 -0
- package/src/preact/index.ts +27 -0
- package/src/redis.ts +43 -0
- package/src/ref.ts +271 -0
- package/src/remote-registry.ts +33 -0
- package/src/required-host-kinds.ts +110 -0
- package/src/resolve-context.ts +111 -0
- package/src/resolve.ts +471 -0
- package/src/runtime/docker/compose/compose-schema.ts +118 -0
- package/src/runtime/docker/compose/convert-to-docker-compose.ts +278 -0
- package/src/runtime/docker/compose/default-hardening.ts +21 -0
- package/src/runtime/docker/compose/effects.ts +107 -0
- package/src/runtime/docker/compose/index.ts +17 -0
- package/src/runtime/docker/compose/labels.ts +39 -0
- package/src/runtime/docker/compose/types.ts +78 -0
- package/src/runtime/docker/home-proxy-server/index.ts +177 -0
- package/src/runtime/docker/home-proxy-server/protocol.ts +53 -0
- package/src/runtime/docker/ingress/build-config.ts +819 -0
- package/src/runtime/docker/ingress/index.ts +16 -0
- package/src/runtime/docker/ingress/types.ts +182 -0
- package/src/runtime/docker/log-frames.ts +121 -0
- package/src/runtime/docker/logs-server/index.ts +366 -0
- package/src/runtime/docker/spawn-server/context-key.ts +82 -0
- package/src/runtime/docker/spawn-server/index.ts +492 -0
- package/src/runtime/docker/spawn-server/protocol.ts +70 -0
- package/src/runtime/docker/spawn-server/spec.ts +122 -0
- package/src/runtime/docker/stats-server/disks.ts +161 -0
- package/src/runtime/docker/stats-server/index.ts +322 -0
- package/src/runtime/home-client/index.ts +71 -0
- package/src/runtime/log-line.ts +24 -0
- package/src/runtime/logs-client/index.ts +175 -0
- package/src/runtime/spawn-client/index.ts +93 -0
- package/src/runtime/spawn-client/kaniko.ts +79 -0
- package/src/runtime/stats-client/index.ts +65 -0
- package/src/runtime/stats-sample.ts +95 -0
- package/src/safe-json.ts +37 -0
- package/src/sandbox.ts +1209 -0
- package/src/schema/build-apps.ts +38 -0
- package/src/schema/home.ts +217 -0
- package/src/schema/host.ts +792 -0
- package/src/schema/inputs.ts +26 -0
- package/src/schema/nodes.ts +75 -0
- package/src/schema/peer.ts +400 -0
- package/src/schema/public-domain.ts +116 -0
- package/src/schema/remote.ts +74 -0
- package/src/security.ts +594 -0
- package/src/serialize.ts +21 -0
- package/src/service-definition.ts +284 -0
- package/src/service-url.ts +64 -0
- package/src/service.ts +39 -0
- package/src/services/index.ts +5 -0
- package/src/shared.ts +65 -0
- package/src/speculative-silo.ts +96 -0
- package/src/stable-secret.ts +14 -0
- package/src/surfaces.ts +264 -0
- package/src/tailwind-bin.ts +56 -0
- package/src/test/boot.ts +192 -0
- package/src/test/compile.ts +501 -0
- package/src/test/describe.ts +117 -0
- package/src/test/index.ts +11 -0
- package/src/test/ingress-fixture.ts +37 -0
- package/src/test/types.ts +318 -0
- package/src/trusted-headers.ts +79 -0
- package/src/types.ts +126 -0
- package/src/ui/components/aside.tsx +96 -0
- package/src/ui/components/badge.tsx +42 -0
- package/src/ui/components/button.tsx +59 -0
- package/src/ui/components/card.tsx +106 -0
- package/src/ui/components/checkbox.tsx +37 -0
- package/src/ui/components/code-block.tsx +29 -0
- package/src/ui/components/combobox.tsx +119 -0
- package/src/ui/components/config-field.tsx +284 -0
- package/src/ui/components/dialog.tsx +137 -0
- package/src/ui/components/domain-editor.tsx +317 -0
- package/src/ui/components/domain-list.ts +205 -0
- package/src/ui/components/dropdown-menu.tsx +73 -0
- package/src/ui/components/empty-state.tsx +51 -0
- package/src/ui/components/highlight.ts +59 -0
- package/src/ui/components/icons.tsx +101 -0
- package/src/ui/components/image-posture.tsx +85 -0
- package/src/ui/components/input.tsx +28 -0
- package/src/ui/components/label.tsx +16 -0
- package/src/ui/components/line-chart.tsx +113 -0
- package/src/ui/components/page.tsx +39 -0
- package/src/ui/components/permission-row.tsx +262 -0
- package/src/ui/components/permission-section.tsx +51 -0
- package/src/ui/components/pie-chart.tsx +245 -0
- package/src/ui/components/schema-block.tsx +60 -0
- package/src/ui/components/separator.tsx +42 -0
- package/src/ui/components/sheet.tsx +130 -0
- package/src/ui/components/sidebar.tsx +650 -0
- package/src/ui/components/silo-picker.tsx +510 -0
- package/src/ui/components/skeleton.tsx +13 -0
- package/src/ui/components/sonner.tsx +33 -0
- package/src/ui/components/switch.tsx +58 -0
- package/src/ui/components/table-view.ts +219 -0
- package/src/ui/components/table.tsx +506 -0
- package/src/ui/components/tabs.tsx +59 -0
- package/src/ui/components/timeago.tsx +84 -0
- package/src/ui/components/tooltip.tsx +56 -0
- package/src/ui/components.json +21 -0
- package/src/ui/dev/dev-shell.tsx +145 -0
- package/src/ui/home/home-grid.tsx +177 -0
- package/src/ui/hooks/use-mobile.ts +19 -0
- package/src/ui/index.ts +189 -0
- package/src/ui/install/adapter.ts +193 -0
- package/src/ui/install/deploy-targets-picker.tsx +185 -0
- package/src/ui/install/install-app-panel.tsx +912 -0
- package/src/ui/install/install-error.tsx +62 -0
- package/src/ui/install/perms-inactive.ts +50 -0
- package/src/ui/install/required-fields.ts +37 -0
- package/src/ui/install/tabs-form.tsx +557 -0
- package/src/ui/tokens.css +279 -0
- package/src/ui/utils.ts +78 -0
- package/src/ui-error.ts +139 -0
- package/src/ui-runtime/dev-landing-entry.tsx +258 -0
- package/src/ui-runtime/index.ts +83 -0
- package/src/ui-runtime/install-entry.tsx +119 -0
- package/src/ui-runtime/mount.ts +367 -0
- package/src/ui-runtime/runtime.css +56 -0
- package/src/ui-surface.ts +451 -0
- package/src/valkey.ts +43 -0
- package/src/worker/extract-tar.ts +125 -0
- package/src/worker/identity.ts +183 -0
- package/src/worker/index.ts +16 -0
- package/src/worker/public-ip.ts +92 -0
- package/src/worker/queue.ts +54 -0
- package/src/worker/reconcile.ts +127 -0
- package/src/worker/start-worker.ts +227 -0
- package/src/worker/ui-proxy.ts +335 -0
- package/src/worker/uplink.ts +523 -0
- package/src/worker/validate.ts +34 -0
- package/src/worker/verify-relay.ts +102 -0
- package/src/worker-protocol/app-dirs.ts +94 -0
- package/src/worker-protocol/home-proxy-paths.ts +76 -0
- package/src/worker-protocol/index.ts +55 -0
- package/src/worker-protocol/ingress.ts +166 -0
- package/src/worker-protocol/logs-socket-path.ts +50 -0
- package/src/worker-protocol/networks.ts +39 -0
- package/src/worker-protocol/node-version.ts +70 -0
- package/src/worker-protocol/silo-paths.ts +114 -0
- package/src/worker-protocol/spawn-paths.ts +165 -0
- package/src/worker-protocol/stats-socket-path.ts +40 -0
- package/src/worker-protocol/update-files.ts +77 -0
- package/src/worker-protocol/uplink/constants.ts +86 -0
- package/src/worker-protocol/uplink/errors.ts +61 -0
- package/src/worker-protocol/uplink/frame.ts +114 -0
- package/src/worker-protocol/uplink/identity.ts +40 -0
- package/src/worker-protocol/uplink/index.ts +63 -0
- package/src/worker-protocol/uplink/methods.ts +462 -0
- package/src/worker-protocol/uplink/mux.ts +646 -0
- package/src/worker-protocol/uplink/protocol.ts +11 -0
- package/src/worker-protocol/uplink/rpc.ts +309 -0
- package/src/worker-protocol/uplink/session.ts +540 -0
- package/src/worker-protocol/uplink/test-support.ts +188 -0
- package/src/worker-protocol/worker-mount.ts +27 -0
- package/src/worker-protocol/worker-state.ts +190 -0
- package/src/xml.ts +49 -0
- package/src/yaml.ts +15 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// src/identifiers.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var nameSchema = z.string().regex(
|
|
4
|
+
/^[a-z][a-z0-9-]*$/,
|
|
5
|
+
"Must be lowercase alphanumeric with hyphens, starting with a letter"
|
|
6
|
+
);
|
|
7
|
+
var domainSchema = z.string().regex(/^[a-zA-Z0-9.*-]+$/, "Invalid domain name");
|
|
8
|
+
var hostKey = z.string().regex(/^[a-zA-Z0-9.-]+(:[0-9]+)?$/, "Invalid registry host");
|
|
9
|
+
var networkSchema = z.string().brand();
|
|
10
|
+
|
|
11
|
+
// src/worker-protocol/logs-socket-path.ts
|
|
12
|
+
var REALM_LOGS_DIR = "/opt/realm/worker/logs";
|
|
13
|
+
var REALM_LOGS_SOCKET = `${REALM_LOGS_DIR}/logs.sock`;
|
|
14
|
+
var REALM_LOGS_MOUNT = {
|
|
15
|
+
hostPath: REALM_LOGS_DIR,
|
|
16
|
+
containerPath: "/run/realm/logs",
|
|
17
|
+
readOnly: true
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// src/worker-protocol/stats-socket-path.ts
|
|
21
|
+
var REALM_STATS_DIR = "/opt/realm/worker/stats";
|
|
22
|
+
var REALM_STATS_SOCKET = `${REALM_STATS_DIR}/stats.sock`;
|
|
23
|
+
var REALM_STATS_MOUNT = {
|
|
24
|
+
hostPath: REALM_STATS_DIR,
|
|
25
|
+
containerPath: "/run/realm/stats",
|
|
26
|
+
readOnly: true
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/worker-protocol/spawn-paths.ts
|
|
30
|
+
var REALM_SPAWN_DIR = "/opt/realm/worker/spawn";
|
|
31
|
+
function spawnSocketDir(appId) {
|
|
32
|
+
return `${REALM_SPAWN_DIR}/sock/${appId}`;
|
|
33
|
+
}
|
|
34
|
+
function spawnSocketPath(appId) {
|
|
35
|
+
return `${spawnSocketDir(appId)}/spawn.sock`;
|
|
36
|
+
}
|
|
37
|
+
function spawnScratchPath(appId) {
|
|
38
|
+
return `${REALM_SPAWN_DIR}/data/${appId}/scratch`;
|
|
39
|
+
}
|
|
40
|
+
function spawnArtifactsPath(appId) {
|
|
41
|
+
return `${REALM_SPAWN_DIR}/data/${appId}/artifacts`;
|
|
42
|
+
}
|
|
43
|
+
function spawnMounts(appId) {
|
|
44
|
+
return {
|
|
45
|
+
socket: {
|
|
46
|
+
hostPath: spawnSocketDir(appId),
|
|
47
|
+
containerPath: "/run/realm/spawn-sock",
|
|
48
|
+
readOnly: true
|
|
49
|
+
},
|
|
50
|
+
scratch: {
|
|
51
|
+
hostPath: spawnScratchPath(appId),
|
|
52
|
+
containerPath: "/run/realm/spawn",
|
|
53
|
+
readOnly: false
|
|
54
|
+
},
|
|
55
|
+
artifacts: {
|
|
56
|
+
hostPath: spawnArtifactsPath(appId),
|
|
57
|
+
containerPath: "/run/realm/artifacts",
|
|
58
|
+
readOnly: false
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
var UNFILLED = spawnMounts("");
|
|
63
|
+
var blank = (m) => ({ ...m, hostPath: "" });
|
|
64
|
+
var SPAWN_PLACEHOLDER = {
|
|
65
|
+
socket: blank(UNFILLED.socket),
|
|
66
|
+
scratch: blank(UNFILLED.scratch),
|
|
67
|
+
artifacts: blank(UNFILLED.artifacts)
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// src/worker-protocol/networks.ts
|
|
71
|
+
var MANAGEMENT_NET = "management-net";
|
|
72
|
+
var UNTRUSTED_NET = "untrusted-net";
|
|
73
|
+
var SILO_NET_PREFIX = "realm_silo_";
|
|
74
|
+
function siloNetwork(siloId) {
|
|
75
|
+
return `${SILO_NET_PREFIX}${siloId}`;
|
|
76
|
+
}
|
|
77
|
+
function isSiloNetwork(name) {
|
|
78
|
+
return name.startsWith(SILO_NET_PREFIX);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// src/worker-protocol/home-proxy-paths.ts
|
|
82
|
+
var REALM_HOME_PROXY_DIR = "/opt/realm/worker/home-proxy";
|
|
83
|
+
function homeProxyAppDir(appId) {
|
|
84
|
+
return `${REALM_HOME_PROXY_DIR}/${appId}`;
|
|
85
|
+
}
|
|
86
|
+
function homeProxySocketPath(appId) {
|
|
87
|
+
return `${homeProxyAppDir(appId)}/home-proxy.sock`;
|
|
88
|
+
}
|
|
89
|
+
var REALM_HOME_PROXY_CONTAINER_DIR = "/run/realm/home-proxy";
|
|
90
|
+
var REALM_HOME_PROXY_CONTAINER_PATH = `${REALM_HOME_PROXY_CONTAINER_DIR}/home-proxy.sock`;
|
|
91
|
+
function homeProxyMount(appId) {
|
|
92
|
+
return {
|
|
93
|
+
hostPath: homeProxyAppDir(appId),
|
|
94
|
+
containerPath: REALM_HOME_PROXY_CONTAINER_DIR,
|
|
95
|
+
readOnly: true
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// src/speculative-silo.ts
|
|
100
|
+
var SPECULATIVE_SILO = {
|
|
101
|
+
id: "speculative",
|
|
102
|
+
hostPath: "/speculative-silo",
|
|
103
|
+
containerPath: "/silo",
|
|
104
|
+
/**
|
|
105
|
+
* The volume schema requires a positive gid, so this cannot be 0. Home draws
|
|
106
|
+
* real Silo gids from a counter starting at 1,000,000 (`home_state.next_gid`),
|
|
107
|
+
* so anything below that floor can never name a group an operator has.
|
|
108
|
+
*/
|
|
109
|
+
gid: 999999,
|
|
110
|
+
/**
|
|
111
|
+
* Shape-faithful on purpose: 64 hex characters, the same as a derived key.
|
|
112
|
+
* A recognisable sentinel would look safer and behave worse - an app that
|
|
113
|
+
* validates its Silo key (`z.string().length(64)`, or a bare truthiness
|
|
114
|
+
* check) would drop out of its own preview, which is the exact failure this
|
|
115
|
+
* whole module exists to prevent.
|
|
116
|
+
*/
|
|
117
|
+
apiKey: "0".repeat(64)
|
|
118
|
+
};
|
|
119
|
+
function speculativeSilo(asked) {
|
|
120
|
+
const resolved = {};
|
|
121
|
+
if (asked.network !== void 0) {
|
|
122
|
+
resolved.network = siloNetwork(SPECULATIVE_SILO.id);
|
|
123
|
+
if (asked.network !== true) {
|
|
124
|
+
const services = {};
|
|
125
|
+
for (const [name, port] of Object.entries(asked.network)) {
|
|
126
|
+
services[name] = { host: name, port };
|
|
127
|
+
}
|
|
128
|
+
resolved.services = services;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (asked.volume !== void 0) {
|
|
132
|
+
resolved.volume = {
|
|
133
|
+
hostPath: SPECULATIVE_SILO.hostPath,
|
|
134
|
+
containerPath: SPECULATIVE_SILO.containerPath,
|
|
135
|
+
gid: SPECULATIVE_SILO.gid,
|
|
136
|
+
// The author declared the mode and the placeholder honours it: the shape
|
|
137
|
+
// an app sees must not change with the mode of the eval.
|
|
138
|
+
readOnly: asked.volume === "read",
|
|
139
|
+
backup: false
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (asked.apiKey !== void 0) {
|
|
143
|
+
resolved.apiKey = SPECULATIVE_SILO.apiKey;
|
|
144
|
+
}
|
|
145
|
+
return resolved;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export {
|
|
149
|
+
nameSchema,
|
|
150
|
+
hostKey,
|
|
151
|
+
REALM_LOGS_DIR,
|
|
152
|
+
REALM_LOGS_SOCKET,
|
|
153
|
+
REALM_LOGS_MOUNT,
|
|
154
|
+
REALM_STATS_DIR,
|
|
155
|
+
REALM_STATS_SOCKET,
|
|
156
|
+
REALM_STATS_MOUNT,
|
|
157
|
+
REALM_SPAWN_DIR,
|
|
158
|
+
spawnSocketDir,
|
|
159
|
+
spawnSocketPath,
|
|
160
|
+
spawnScratchPath,
|
|
161
|
+
spawnArtifactsPath,
|
|
162
|
+
spawnMounts,
|
|
163
|
+
SPAWN_PLACEHOLDER,
|
|
164
|
+
MANAGEMENT_NET,
|
|
165
|
+
UNTRUSTED_NET,
|
|
166
|
+
SILO_NET_PREFIX,
|
|
167
|
+
siloNetwork,
|
|
168
|
+
isSiloNetwork,
|
|
169
|
+
SPECULATIVE_SILO,
|
|
170
|
+
speculativeSilo,
|
|
171
|
+
REALM_HOME_PROXY_DIR,
|
|
172
|
+
homeProxyAppDir,
|
|
173
|
+
homeProxySocketPath,
|
|
174
|
+
REALM_HOME_PROXY_CONTAINER_PATH,
|
|
175
|
+
homeProxyMount
|
|
176
|
+
};
|