@aeolus-fleet/gateway 0.0.0 → 0.28.0
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 +11 -10
- package/dist/adapters/crypto/page-sessions.d.ts +15 -0
- package/dist/adapters/crypto/page-sessions.js +40 -0
- package/dist/adapters/crypto/page-sessions.js.map +1 -0
- package/dist/adapters/crypto/request-ids.d.ts +1 -1
- package/dist/adapters/crypto/request-ids.js +2 -9
- package/dist/adapters/crypto/request-ids.js.map +1 -1
- package/dist/adapters/crypto/sign-in-seals.d.ts +1 -1
- package/dist/adapters/crypto/sign-in-seals.js +7 -9
- package/dist/adapters/crypto/sign-in-seals.js.map +1 -1
- package/dist/adapters/fleet/actor-door.d.ts +20 -0
- package/dist/adapters/fleet/actor-door.js +75 -0
- package/dist/adapters/fleet/actor-door.js.map +1 -0
- package/dist/adapters/fleet/core-version.d.ts +8 -8
- package/dist/adapters/fleet/core-version.js +6 -47
- package/dist/adapters/fleet/core-version.js.map +1 -1
- package/dist/adapters/fleet/fleet-network.js +7 -17
- package/dist/adapters/fleet/fleet-network.js.map +1 -1
- package/dist/adapters/fleet/logged-verified-facts.d.ts +13 -0
- package/dist/adapters/fleet/logged-verified-facts.js +18 -0
- package/dist/adapters/fleet/logged-verified-facts.js.map +1 -0
- package/dist/adapters/fleet/proxy-ship-reads.d.ts +7 -0
- package/dist/adapters/fleet/proxy-ship-reads.js +24 -0
- package/dist/adapters/fleet/proxy-ship-reads.js.map +1 -0
- package/dist/adapters/fleet/proxy-ships-as-actor.d.ts +3 -0
- package/dist/adapters/fleet/proxy-ships-as-actor.js +25 -0
- package/dist/adapters/fleet/proxy-ships-as-actor.js.map +1 -0
- package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -2
- package/dist/adapters/fleet/rest-fleet-door.js +23 -7
- package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
- package/dist/adapters/http/add-server-page.d.ts +7 -0
- package/dist/adapters/http/add-server-page.js +175 -0
- package/dist/adapters/http/add-server-page.js.map +1 -0
- package/dist/adapters/http/delivery-page.d.ts +24 -0
- package/dist/adapters/http/delivery-page.js +115 -0
- package/dist/adapters/http/delivery-page.js.map +1 -0
- package/dist/adapters/http/oauth-routes.d.ts +15 -3
- package/dist/adapters/http/oauth-routes.js +33 -1
- package/dist/adapters/http/oauth-routes.js.map +1 -1
- package/dist/adapters/http/outside-parties-page.d.ts +29 -2
- package/dist/adapters/http/outside-parties-page.js +15 -11
- package/dist/adapters/http/outside-parties-page.js.map +1 -1
- package/dist/adapters/http/outside-party-page.d.ts +7 -0
- package/dist/adapters/http/outside-party-page.js +212 -0
- package/dist/adapters/http/outside-party-page.js.map +1 -0
- package/dist/adapters/http/overview-page.d.ts +2 -1
- package/dist/adapters/http/overview-page.js +79 -36
- package/dist/adapters/http/overview-page.js.map +1 -1
- package/dist/adapters/http/parties-page.d.ts +2 -1
- package/dist/adapters/http/parties-page.js +8 -10
- package/dist/adapters/http/parties-page.js.map +1 -1
- package/dist/adapters/http/scope-rows.d.ts +10 -0
- package/dist/adapters/http/scope-rows.js +30 -0
- package/dist/adapters/http/scope-rows.js.map +1 -0
- package/dist/adapters/http/signal.d.ts +10 -1
- package/dist/adapters/http/signal.js +50 -7
- package/dist/adapters/http/signal.js.map +1 -1
- package/dist/adapters/pagasae/pagasae-client.js +7 -9
- package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
- package/dist/adapters/prisma/account-grants.js +2 -2
- package/dist/adapters/prisma/account-grants.js.map +1 -1
- package/dist/adapters/prisma/client-calls.js +9 -0
- package/dist/adapters/prisma/client-calls.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/AccountGrant.d.ts +33 -1
- package/dist/adapters/prisma/generated/models/ClientCall.d.ts +14 -14
- package/dist/adapters/prisma/generated/models/Party.d.ts +1 -29
- package/dist/adapters/prisma/oauth-stores.js +3 -0
- package/dist/adapters/prisma/oauth-stores.js.map +1 -1
- package/dist/adapters/prisma/party-store.js +0 -2
- package/dist/adapters/prisma/party-store.js.map +1 -1
- package/dist/adapters/prisma/pending-requests.js +7 -1
- package/dist/adapters/prisma/pending-requests.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +210 -12
- package/dist/adapters/trpc/router.js +159 -7
- package/dist/adapters/trpc/router.js.map +1 -1
- package/dist/app.js +65 -19
- package/dist/app.js.map +1 -1
- package/dist/core/actors/authenticate-actor.d.ts +21 -5
- package/dist/core/actors/authenticate-actor.js +14 -2
- package/dist/core/actors/authenticate-actor.js.map +1 -1
- package/dist/core/actors/credential-of.d.ts +27 -0
- package/dist/core/actors/credential-of.js +25 -0
- package/dist/core/actors/credential-of.js.map +1 -0
- package/dist/core/connection/connect.js +5 -4
- package/dist/core/connection/connect.js.map +1 -1
- package/dist/core/connection/ports.d.ts +6 -1
- package/dist/core/mcp-in/call-tool.d.ts +6 -6
- package/dist/core/mcp-in/call-tool.js +3 -3
- package/dist/core/mcp-in/call-tool.js.map +1 -1
- package/dist/core/mcp-in/client-call.d.ts +2 -2
- package/dist/core/mcp-in/client-call.js +2 -2
- package/dist/core/mcp-in/client-call.js.map +1 -1
- package/dist/core/mcp-in/collect-replies.d.ts +4 -11
- package/dist/core/mcp-in/collect-replies.js +52 -30
- package/dist/core/mcp-in/collect-replies.js.map +1 -1
- package/dist/core/mcp-in/list-tools.d.ts +4 -0
- package/dist/core/mcp-in/list-tools.js +1 -1
- package/dist/core/mcp-in/list-tools.js.map +1 -1
- package/dist/core/mcp-in/ports.d.ts +24 -1
- package/dist/core/mcp-out/hand-call.d.ts +2 -0
- package/dist/core/mcp-out/hand-call.js +4 -2
- package/dist/core/mcp-out/hand-call.js.map +1 -1
- package/dist/core/mcp-out/state-party.d.ts +2 -1
- package/dist/core/mcp-out/state-party.js +1 -1
- package/dist/core/mcp-out/state-party.js.map +1 -1
- package/dist/core/mcp-out/statement.d.ts +10 -0
- package/dist/core/mcp-out/statement.js +7 -5
- package/dist/core/mcp-out/statement.js.map +1 -1
- package/dist/core/oauth/ports.d.ts +2 -0
- package/dist/core/outside-parties/ports.d.ts +1 -5
- package/dist/core/outside-parties/set-outside-parties.d.ts +5 -3
- package/dist/core/outside-parties/set-outside-parties.js +6 -2
- package/dist/core/outside-parties/set-outside-parties.js.map +1 -1
- package/dist/core/parties/approve-party.js +24 -8
- package/dist/core/parties/approve-party.js.map +1 -1
- package/dist/core/parties/change-party.d.ts +42 -0
- package/dist/core/parties/change-party.js +49 -0
- package/dist/core/parties/change-party.js.map +1 -0
- package/dist/core/parties/check-server.d.ts +24 -0
- package/dist/core/parties/check-server.js +21 -0
- package/dist/core/parties/check-server.js.map +1 -0
- package/dist/core/parties/list-parties.d.ts +28 -7
- package/dist/core/parties/list-parties.js +35 -4
- package/dist/core/parties/list-parties.js.map +1 -1
- package/dist/core/parties/party.d.ts +12 -6
- package/dist/core/parties/party.js +23 -1
- package/dist/core/parties/party.js.map +1 -1
- package/dist/core/parties/ports.d.ts +36 -1
- package/dist/core/parties/read-party-tools.d.ts +22 -0
- package/dist/core/parties/read-party-tools.js +22 -0
- package/dist/core/parties/read-party-tools.js.map +1 -0
- package/dist/core/parties/retire-party.d.ts +29 -0
- package/dist/core/parties/retire-party.js +43 -0
- package/dist/core/parties/retire-party.js.map +1 -0
- package/dist/core/parties/shown-party.d.ts +8 -2
- package/dist/core/parties/shown-party.js +3 -3
- package/dist/core/parties/shown-party.js.map +1 -1
- package/dist/core/requests/decide-request.js +9 -1
- package/dist/core/requests/decide-request.js.map +1 -1
- package/dist/core/requests/list-mine.d.ts +16 -0
- package/dist/core/requests/list-mine.js +20 -0
- package/dist/core/requests/list-mine.js.map +1 -0
- package/dist/core/requests/ports.d.ts +5 -0
- package/dist/core/shared/errors.d.ts +1 -1
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/sign-in/account-token.d.ts +8 -4
- package/dist/core/sign-in/account-token.js +4 -4
- package/dist/core/sign-in/account-token.js.map +1 -1
- package/dist/core/sign-in/complete-sign-in.d.ts +15 -4
- package/dist/core/sign-in/complete-sign-in.js +27 -4
- package/dist/core/sign-in/complete-sign-in.js.map +1 -1
- package/dist/core/sign-in/ports.d.ts +37 -7
- package/dist/core/sign-in/sign-out.d.ts +10 -0
- package/dist/core/sign-in/sign-out.js +9 -0
- package/dist/core/sign-in/sign-out.js.map +1 -0
- package/dist/core/sign-in/start-page-sign-in.d.ts +25 -0
- package/dist/core/sign-in/start-page-sign-in.js +30 -0
- package/dist/core/sign-in/start-page-sign-in.js.map +1 -0
- package/package.json +3 -3
- package/src/adapters/prisma/migrations/20261020200000_account_grant_scopes/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261020210000_party_owner_from_fleet/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261020220000_client_call_deadline_optional/migration.sql +2 -0
- package/src/adapters/prisma/schema.prisma +3 -2
|
@@ -14,7 +14,9 @@ import { getHTTPStatusCodeFromError } from '@trpc/server/http';
|
|
|
14
14
|
import { z } from 'zod';
|
|
15
15
|
import { gatewayRouter } from '../trpc/router.js';
|
|
16
16
|
import { acceptForms, escaped, isSameOrigin, refusalMessage } from './html.js';
|
|
17
|
-
import {
|
|
17
|
+
import { registerDeliveryPages, waitingItem } from './delivery-page.js';
|
|
18
|
+
import { EVERY_APP_SHIP_SCOPES, SCOPE_FIELD_PREFIX, scopeRow } from './scope-rows.js';
|
|
19
|
+
import { handshake, icon, partyMark, ring, signalPage, signInPrompt, statusBadge } from './signal.js';
|
|
18
20
|
const HTTP_FORBIDDEN = 403;
|
|
19
21
|
const HTTP_NOT_FOUND = 404;
|
|
20
22
|
const HTTP_SEE_OTHER = 303;
|
|
@@ -23,16 +25,6 @@ const PAGE = '/overview';
|
|
|
23
25
|
const TITLE = 'Overview';
|
|
24
26
|
const DAY_MS = 86_400_000;
|
|
25
27
|
const CONCURRENCY_LIMIT_DEFAULT = 4;
|
|
26
|
-
/** The scopes every app ship gets (0046): shown locked on, and always sent. */
|
|
27
|
-
const EVERY_APP_SHIP_SCOPES = ['messages:send', 'messages:receive'];
|
|
28
|
-
/** A scope's plain label, as the scope rows show it beside the scope itself. */
|
|
29
|
-
const SCOPE_LABELS = {
|
|
30
|
-
'messages:send': 'Send',
|
|
31
|
-
'messages:receive': 'Receive',
|
|
32
|
-
'fleet:read': 'Read the fleet',
|
|
33
|
-
};
|
|
34
|
-
/** A form field that ticks a scope: `scope:<scope>`, one field per scope, as a form posts each name once. */
|
|
35
|
-
const SCOPE_FIELD_PREFIX = 'scope:';
|
|
36
28
|
const formSchema = z.record(z.string(), z.string());
|
|
37
29
|
function field(form, name) {
|
|
38
30
|
return form[name] ?? '';
|
|
@@ -78,23 +70,67 @@ async function toDecideOf(caller) {
|
|
|
78
70
|
}
|
|
79
71
|
}
|
|
80
72
|
/** The overview's live section: what the page shows, read again whenever the fleet's requests change. */
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
/** A request's state as the console shows a status; one still pending shows its days left. */
|
|
74
|
+
const REQUEST_STATES = {
|
|
75
|
+
approving: { tone: 'active', icon: 'hourglass', label: 'Approving' },
|
|
76
|
+
approved: { tone: 'ok', icon: 'check', label: 'Approved' },
|
|
77
|
+
denied: { tone: 'ended', icon: 'ban', label: 'Denied' },
|
|
78
|
+
expired: { tone: 'ended', icon: 'timerOff', label: 'Expired' },
|
|
79
|
+
};
|
|
80
|
+
function mineItem(request, now) {
|
|
81
|
+
const name = subjectName(request);
|
|
82
|
+
const state = request.state === 'pending' ? daysLeft(request, now) : statusBadge(REQUEST_STATES[request.state]);
|
|
83
|
+
return `<div class="item">${partyMark(name)}<span class="text"><span>${escaped(name)}</span><span class="tag">${subjectKind(request)}</span></span>${state}</div>`;
|
|
84
|
+
}
|
|
85
|
+
/** Reads the requests the caller asked; an actor who asks none has none. */
|
|
86
|
+
async function mineOf(caller) {
|
|
87
|
+
try {
|
|
88
|
+
return await caller.requests.mine();
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error instanceof TRPCError && error.code === 'FORBIDDEN') {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function overviewSection(shown) {
|
|
98
|
+
const { toDecide, inbox, mine, now } = shown;
|
|
99
|
+
const yours = mine === undefined || mine.length === 0 ? '' : `<section class="queue"><h2>Your requests · ${String(mine.length)}</h2>${mine.map((request) => mineItem(request, now)).join('')}</section>`;
|
|
100
|
+
if (toDecide === undefined && inbox === undefined) {
|
|
101
|
+
return `<div class="lead">${ring({ tone: 'ok', center: { icon: 'check' }, label: 'Nothing waits on you' })}<h1>Nothing waits on you</h1></div>${yours}`;
|
|
102
|
+
}
|
|
103
|
+
const total = (inbox?.waiting ?? 0) + (toDecide?.length ?? 0);
|
|
104
|
+
const counts = [
|
|
105
|
+
inbox === undefined ? '' : `<span>${icon('users', 14)} ${String(inbox.waiting)} for you</span>`,
|
|
106
|
+
toDecide === undefined ? '' : `<span>${icon('hourglass', 14)} ${String(toDecide.length)} to decide</span>`,
|
|
107
|
+
].filter((count) => count !== '');
|
|
108
|
+
const lead = `<div class="lead">${ring({ tone: total === 0 ? 'ok' : 'waiting', center: { count: total }, label: `${String(total)} wait on you` })}<div><h1>Waits on you</h1><p class="muted counts">${counts.join(' · ')}</p></div></div>`;
|
|
109
|
+
const next = inbox === undefined || inbox.deliveries.length === 0 ? '' : `<section class="queue"><h2>Next · ${String(inbox.waiting)}</h2>${inbox.deliveries.map(waitingItem).join('')}</section>`;
|
|
110
|
+
const decide = toDecide === undefined
|
|
111
|
+
? ''
|
|
112
|
+
: toDecide.length === 0
|
|
113
|
+
? '<p class="muted">No request waits for a decision.</p>'
|
|
114
|
+
: `<section class="queue"><h2>To decide · ${String(toDecide.length)}</h2>${toDecide.map((request) => queueItem(request, { now, isCurrent: false })).join('')}</section>`;
|
|
115
|
+
return lead + next + decide + yours;
|
|
116
|
+
}
|
|
117
|
+
/** Reads what waits on the caller's own person ship; an actor who is no person has none. */
|
|
118
|
+
async function inboxOf(caller) {
|
|
119
|
+
try {
|
|
120
|
+
return await caller.people.inbox();
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
if (error instanceof TRPCError && error.code === 'FORBIDDEN') {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
throw error;
|
|
84
127
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return
|
|
91
|
-
}
|
|
92
|
-
function scopeRow(scope, isLocked) {
|
|
93
|
-
const label = escaped(SCOPE_LABELS[scope] ?? scope);
|
|
94
|
-
const box = isLocked
|
|
95
|
-
? `<input type="checkbox" checked disabled aria-label="${label}">`
|
|
96
|
-
: `<input type="checkbox" name="${SCOPE_FIELD_PREFIX}${escaped(scope)}" aria-label="${label}">`;
|
|
97
|
-
return `<label class="scope">${box}<span class="label">${label}</span><span class="mono">${escaped(scope)}</span>${isLocked ? `<span class="muted">${icon('lock', 12)}</span>` : ''}</label>`;
|
|
128
|
+
}
|
|
129
|
+
/** Everything the Overview's live section shows, read as the caller. */
|
|
130
|
+
async function overviewOf(context, now) {
|
|
131
|
+
const caller = gatewayRouter.createCaller(context);
|
|
132
|
+
const [toDecide, inbox, mine] = await Promise.all([toDecideOf(caller), inboxOf(caller), mineOf(caller)]);
|
|
133
|
+
return overviewSection({ toDecide, inbox, mine, now });
|
|
98
134
|
}
|
|
99
135
|
const SERVER_FIELDS = `<fieldset><legend>The server's credential</legend>
|
|
100
136
|
<label class="field"><span>Credential</span><select name="credentialKind"><option value="bearer">Bearer token</option><option value="clientCredentials">OAuth client credentials</option></select></label>
|
|
@@ -116,7 +152,7 @@ function decisionCard(request, scopes) {
|
|
|
116
152
|
const name = subjectName(request);
|
|
117
153
|
const action = `${PAGE}/requests/${encodeURIComponent(request.requestId)}/decide`;
|
|
118
154
|
const held = scopes.filter((scope) => !EVERY_APP_SHIP_SCOPES.includes(scope));
|
|
119
|
-
const rows = [...EVERY_APP_SHIP_SCOPES.map((scope) => scopeRow(scope, true)), ...held.map((scope) => scopeRow(scope
|
|
155
|
+
const rows = [...EVERY_APP_SHIP_SCOPES.map((scope) => scopeRow({ scope, isLocked: true })), ...held.map((scope) => scopeRow({ scope }))].join('');
|
|
120
156
|
return `<section class="card"><h2>Approve ${escaped(name)}</h2>
|
|
121
157
|
<form method="post" action="${action}" style="display:grid;gap:12px"><input type="hidden" name="decision" value="approve">
|
|
122
158
|
<label class="field"><span>Proxy ship's name</span><input type="text" name="name" value="${escaped(suggestedName(name))}" required></label>
|
|
@@ -170,7 +206,7 @@ function html(reply, page) {
|
|
|
170
206
|
export function overviewLivePages(deps) {
|
|
171
207
|
return {
|
|
172
208
|
overview: {
|
|
173
|
-
render: async (context) => ({ overview:
|
|
209
|
+
render: async (context) => ({ overview: await overviewOf(context, deps.clock.now()) }),
|
|
174
210
|
},
|
|
175
211
|
request: {
|
|
176
212
|
render: async (context, params) => {
|
|
@@ -184,9 +220,13 @@ export function overviewLivePages(deps) {
|
|
|
184
220
|
};
|
|
185
221
|
}
|
|
186
222
|
function signInPage(reply, refusal) {
|
|
187
|
-
const {
|
|
188
|
-
|
|
189
|
-
|
|
223
|
+
const body = signInPrompt({ message: refusal.error.message, way: refusal.way, returnTo: refusal.returnTo });
|
|
224
|
+
return reply.code(getHTTPStatusCodeFromError(refusal.error)).type('text/html; charset=utf-8').send(signalPage({ title: TITLE, body }));
|
|
225
|
+
}
|
|
226
|
+
/** Whether the caller is a person signed in to the pages, who signs out here. */
|
|
227
|
+
async function isPersonSignedIn(context) {
|
|
228
|
+
const actor = await context.authenticateActor({ cookie: context.cookie, crewToken: context.crewToken });
|
|
229
|
+
return actor.isOk && actor.value.kind === 'account';
|
|
190
230
|
}
|
|
191
231
|
export function registerOverviewPage(server, deps) {
|
|
192
232
|
acceptForms(server);
|
|
@@ -199,7 +239,8 @@ export function registerOverviewPage(server, deps) {
|
|
|
199
239
|
}
|
|
200
240
|
const actor = await context.authenticateActor({ cookie: context.cookie, crewToken: context.crewToken });
|
|
201
241
|
const scopes = actor.isOk ? actor.value.scopes : [];
|
|
202
|
-
|
|
242
|
+
const isSignedIn = actor.isOk && actor.value.kind === 'account';
|
|
243
|
+
return html(reply, { status: shown.status ?? 200, isWide: true, isSignedIn, live: `page=request&requestId=${encodeURIComponent(requestId)}`, body: requestBody({ request, toDecide, scopes, now: deps.clock.now(), ...(shown.notice === undefined ? {} : { notice: shown.notice }) }) });
|
|
203
244
|
};
|
|
204
245
|
const answer = async (exchange) => {
|
|
205
246
|
const { request, reply, render, onRefused } = exchange;
|
|
@@ -212,7 +253,8 @@ export function registerOverviewPage(server, deps) {
|
|
|
212
253
|
throw error;
|
|
213
254
|
}
|
|
214
255
|
if (error.code === 'UNAUTHORIZED') {
|
|
215
|
-
|
|
256
|
+
// A form's own address is no page to come back to: the Overview is.
|
|
257
|
+
return signInPage(reply, { way: deps.signIn, error, returnTo: request.method === 'GET' ? request.url : PAGE });
|
|
216
258
|
}
|
|
217
259
|
const refused = { status: error.code === 'INTERNAL_SERVER_ERROR' ? HTTP_INTERNAL_ERROR : getHTTPStatusCodeFromError(error), message: refusalMessage(error) };
|
|
218
260
|
try {
|
|
@@ -226,12 +268,13 @@ export function registerOverviewPage(server, deps) {
|
|
|
226
268
|
return html(reply, { status: refused.status, body: `<section class="card alert tone-attention" role="alert"><p>${escaped(refused.message)}</p></section>` });
|
|
227
269
|
}
|
|
228
270
|
};
|
|
271
|
+
registerDeliveryPages(server, { answer });
|
|
229
272
|
server.get(PAGE, (request, reply) => answer({
|
|
230
273
|
request,
|
|
231
274
|
reply,
|
|
232
275
|
render: async (context) => {
|
|
233
|
-
const
|
|
234
|
-
return html(reply, { status: 200, live: 'page=overview', body: `<div data-live="overview" style="display:grid;gap:24px">${
|
|
276
|
+
const section = await overviewOf(context, deps.clock.now());
|
|
277
|
+
return html(reply, { status: 200, isSignedIn: await isPersonSignedIn(context), live: 'page=overview', body: `<div data-live="overview" style="display:grid;gap:24px">${section}</div>` });
|
|
235
278
|
},
|
|
236
279
|
}));
|
|
237
280
|
server.get(`${PAGE}/requests/:requestId`, (request, reply) => answer({ request, reply, render: (context) => renderRequest(reply, { context, requestId: request.params.requestId }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview-page.js","sourceRoot":"","sources":["../../../src/adapters/http/overview-page.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"overview-page.js","sourceRoot":"","sources":["../../../src/adapters/http/overview-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FastifyInstance } from 'fastify';
|
|
2
2
|
import { type Context } from '../trpc/router.js';
|
|
3
|
+
import { type SignInWay } from './signal.js';
|
|
3
4
|
export declare function registerPartiesPage(server: FastifyInstance, deps: {
|
|
4
5
|
contextFor: (cookie: string | undefined) => Context;
|
|
5
|
-
|
|
6
|
+
signIn: SignInWay;
|
|
6
7
|
}): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The gateway's page of parties: one small server-rendered page where
|
|
3
|
-
* signed in to the
|
|
4
|
-
* secret, states a party and marks its tools. Each
|
|
5
|
-
*
|
|
2
|
+
* The gateway's page of parties: one small server-rendered page where a
|
|
3
|
+
* person signed in to the pages, holding fleet:manage, approves outside MCP
|
|
4
|
+
* servers, hands over a secret, states a party and marks its tools. Each
|
|
5
|
+
* form calls the gateway's own API as that account, so the page checks
|
|
6
6
|
* nothing the API does not; it only refuses a form sent from another origin.
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
@@ -12,6 +12,7 @@ import { getHTTPStatusCodeFromError } from '@trpc/server/http';
|
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
import { gatewayRouter } from '../trpc/router.js';
|
|
14
14
|
import { acceptForms, escaped, isSameOrigin, layout, refusalMessage } from './html.js';
|
|
15
|
+
import { signInPrompt } from './signal.js';
|
|
15
16
|
const HTTP_FORBIDDEN = 403;
|
|
16
17
|
const HTTP_SEE_OTHER = 303;
|
|
17
18
|
const HTTP_INTERNAL_ERROR = 500;
|
|
@@ -70,11 +71,8 @@ async function renderPage(reply, page) {
|
|
|
70
71
|
return reply.code(failure?.status ?? 200).type('text/html; charset=utf-8').send(layout('Gateway parties', body));
|
|
71
72
|
}
|
|
72
73
|
function signInPage(reply, refusal) {
|
|
73
|
-
const {
|
|
74
|
-
return reply
|
|
75
|
-
.code(getHTTPStatusCodeFromError(error))
|
|
76
|
-
.type('text/html; charset=utf-8')
|
|
77
|
-
.send(layout('Gateway parties', `<h1>Parties</h1><p class="error">${escaped(refusalMessage(error))}</p><p><a href="${escaped(fleetUrl)}">Sign in to the console of your fleet</a>, then come back.</p>`));
|
|
74
|
+
const body = signInPrompt({ message: refusalMessage(refusal.error), way: refusal.way, returnTo: PAGE });
|
|
75
|
+
return reply.code(getHTTPStatusCodeFromError(refusal.error)).type('text/html; charset=utf-8').send(layout('Gateway parties', `<h1>Parties</h1>${body}`));
|
|
78
76
|
}
|
|
79
77
|
/** The calls each form makes, as argo, from its fields. */
|
|
80
78
|
const ACTIONS = {
|
|
@@ -116,7 +114,7 @@ export function registerPartiesPage(server, deps) {
|
|
|
116
114
|
throw error;
|
|
117
115
|
}
|
|
118
116
|
if (error.code === 'UNAUTHORIZED') {
|
|
119
|
-
return signInPage(reply, {
|
|
117
|
+
return signInPage(reply, { way: deps.signIn, error });
|
|
120
118
|
}
|
|
121
119
|
const failure = { status: error.code === 'INTERNAL_SERVER_ERROR' ? HTTP_INTERNAL_ERROR : getHTTPStatusCodeFromError(error), message: refusalMessage(error) };
|
|
122
120
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parties-page.js","sourceRoot":"","sources":["../../../src/adapters/http/parties-page.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,aAAa,EAAoC,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"parties-page.js","sourceRoot":"","sources":["../../../src/adapters/http/parties-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The scopes every app ship gets (0046): shown locked on, and always sent. */
|
|
2
|
+
export declare const EVERY_APP_SHIP_SCOPES: readonly string[];
|
|
3
|
+
/** A form field that ticks a scope: `scope:<scope>`, one field per scope, as a form posts each name once. */
|
|
4
|
+
export declare const SCOPE_FIELD_PREFIX = "scope:";
|
|
5
|
+
/** One scope row: a locked row shows the scope ticked or not and sends nothing. */
|
|
6
|
+
export declare function scopeRow(row: {
|
|
7
|
+
scope: string;
|
|
8
|
+
isLocked?: boolean;
|
|
9
|
+
isChecked?: boolean;
|
|
10
|
+
}): string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scope rows a decision or a change shows (design B): each scope with
|
|
3
|
+
* its plain label and the scope itself in mono, messages:send and
|
|
4
|
+
* messages:receive locked on, as every app ship gets them (0046).
|
|
5
|
+
*/
|
|
6
|
+
import { escaped } from './html.js';
|
|
7
|
+
import { icon } from './signal.js';
|
|
8
|
+
/** The scopes every app ship gets (0046): shown locked on, and always sent. */
|
|
9
|
+
export const EVERY_APP_SHIP_SCOPES = ['messages:send', 'messages:receive'];
|
|
10
|
+
/** A scope's plain label, as the scope rows show it beside the scope itself. */
|
|
11
|
+
const SCOPE_LABELS = {
|
|
12
|
+
'messages:send': 'Send',
|
|
13
|
+
'messages:receive': 'Receive',
|
|
14
|
+
'fleet:read': 'Read the fleet',
|
|
15
|
+
};
|
|
16
|
+
/** A form field that ticks a scope: `scope:<scope>`, one field per scope, as a form posts each name once. */
|
|
17
|
+
export const SCOPE_FIELD_PREFIX = 'scope:';
|
|
18
|
+
/** One scope row: a locked row shows the scope ticked or not and sends nothing. */
|
|
19
|
+
export function scopeRow(row) {
|
|
20
|
+
const { scope } = row;
|
|
21
|
+
const isLocked = row.isLocked === true;
|
|
22
|
+
const isChecked = isLocked ? row.isChecked !== false : row.isChecked === true;
|
|
23
|
+
const label = escaped(SCOPE_LABELS[scope] ?? scope);
|
|
24
|
+
const checked = isChecked ? ' checked' : '';
|
|
25
|
+
const box = isLocked
|
|
26
|
+
? `<input type="checkbox"${checked} disabled aria-label="${label}">`
|
|
27
|
+
: `<input type="checkbox" name="${SCOPE_FIELD_PREFIX}${escaped(scope)}"${checked} aria-label="${label}">`;
|
|
28
|
+
return `<label class="scope">${box}<span class="label">${label}</span><span class="mono">${escaped(scope)}</span>${isLocked ? `<span class="muted">${icon('lock', 12)}</span>` : ''}</label>`;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=scope-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-rows.js","sourceRoot":"","sources":["../../../src/adapters/http/scope-rows.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AAE9F,gFAAgF;AAChF,MAAM,YAAY,GAA2B;IAC3C,eAAe,EAAE,MAAM;IACvB,kBAAkB,EAAE,SAAS;IAC7B,YAAY,EAAE,gBAAgB;CAC/B,CAAC;AAEF,6GAA6G;AAC7G,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CAAC,GAA+D;IACtF,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC;IAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,QAAQ;QAClB,CAAC,CAAC,yBAAyB,OAAO,yBAAyB,KAAK,IAAI;QACpE,CAAC,CAAC,gCAAgC,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,gBAAgB,KAAK,IAAI,CAAC;IAC5G,OAAO,wBAAwB,GAAG,uBAAuB,KAAK,6BAA6B,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAChM,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** A tone family of the console: every state shows in exactly one. */
|
|
2
2
|
export type Tone = 'waiting' | 'active' | 'ok' | 'attention' | 'ended';
|
|
3
3
|
/** An icon the pages draw, from the console's icon set (Lucide), as inline SVG paths. */
|
|
4
|
-
export type Icon = 'plug' | 'power' | 'powerOff' | 'alert' | 'signIn' | 'house' | 'hourglass' | 'check' | 'x' | 'ban' | 'lock' | 'server' | 'laptop' | 'arrowLeftRight' | 'users' | 'shieldX' | 'timerOff';
|
|
4
|
+
export type Icon = 'plug' | 'power' | 'powerOff' | 'alert' | 'signIn' | 'house' | 'hourglass' | 'check' | 'x' | 'ban' | 'lock' | 'server' | 'laptop' | 'arrowLeftRight' | 'users' | 'shieldX' | 'timerOff' | 'signOut' | 'archive' | 'arrowLeft' | 'ship' | 'shield';
|
|
5
5
|
export declare function icon(name: Icon, size?: number): string;
|
|
6
6
|
/** A status as the console shows it: its tone, an icon and a label, never colour alone. */
|
|
7
7
|
export declare function statusBadge(status: {
|
|
@@ -33,6 +33,14 @@ export declare function handshake(party: {
|
|
|
33
33
|
}): string;
|
|
34
34
|
/** A tab of the pages' top bar. */
|
|
35
35
|
export type Tab = 'overview' | 'outsideParties';
|
|
36
|
+
/** Where a signed-out caller signs in: the gateway's own sign-in through pagasae, or nowhere, on a gateway that signs no one in. */
|
|
37
|
+
export type SignInWay = 'pages' | 'none';
|
|
38
|
+
/** What a signed-out caller is shown: why, and the one way to sign in, coming back to the page they asked for. */
|
|
39
|
+
export declare function signInPrompt(shown: {
|
|
40
|
+
message: string;
|
|
41
|
+
way: SignInWay;
|
|
42
|
+
returnTo: string;
|
|
43
|
+
}): string;
|
|
36
44
|
/**
|
|
37
45
|
* A page a person meets on their way in, from an outside MCP client: the
|
|
38
46
|
* mark and its name above one centred column, no tabs. Its own script, if
|
|
@@ -49,4 +57,5 @@ export declare function signalPage(page: {
|
|
|
49
57
|
body: string;
|
|
50
58
|
isWide?: boolean;
|
|
51
59
|
live?: string;
|
|
60
|
+
isSignedIn?: boolean;
|
|
52
61
|
}): string;
|
|
@@ -52,8 +52,8 @@ main { max-width: 720px; margin: 0 auto; padding: 32px 16px; display: grid; gap:
|
|
|
52
52
|
.actions { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
53
53
|
form { margin: 0; }
|
|
54
54
|
button, .button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 0 14px; border: 1px solid var(--input); border-radius: var(--radius-md); font: inherit; font-weight: 500; color: var(--foreground); background: var(--card); text-decoration: none; cursor: pointer; }
|
|
55
|
-
button.primary { color: var(--primary-foreground); background: var(--primary); border-color: var(--primary); }
|
|
56
|
-
button.primary:hover { background: var(--primary-hover); }
|
|
55
|
+
button.primary, .button.primary { color: var(--primary-foreground); background: var(--primary); border-color: var(--primary); }
|
|
56
|
+
button.primary:hover, .button.primary:hover { background: var(--primary-hover); }
|
|
57
57
|
button.destructive { color: var(--destructive-foreground); background: var(--destructive); border-color: var(--destructive); }
|
|
58
58
|
button:focus-visible, .button:focus-visible, .tab:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
|
|
59
59
|
.alert { border-width: 1px; border-style: solid; }
|
|
@@ -86,12 +86,40 @@ main.centred > .mark, main.centred > .ring, main.centred > .badge { width: auto;
|
|
|
86
86
|
.tile:hover { border-color: var(--primary); }
|
|
87
87
|
.going-on { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted-foreground); }
|
|
88
88
|
.going-on::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--tone-ok-fg); }
|
|
89
|
+
.tab { white-space: nowrap; }
|
|
90
|
+
@media (max-width: 480px) { .top .label { display: none; } .top { gap: 8px; } }
|
|
91
|
+
.sign-out { margin-left: auto; } .sign-out button { height: 32px; border: 0; background: transparent; color: var(--muted-foreground); }
|
|
92
|
+
.answers { display: grid; gap: 8px; } .answers button { height: 44px; }
|
|
93
|
+
button.pick { outline: 2px dashed var(--ring); outline-offset: 2px; }
|
|
94
|
+
.payload { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
|
|
95
|
+
textarea { padding: 8px 10px; border: 1px solid var(--input); border-radius: var(--radius-md); background: var(--background); color: var(--foreground); font: inherit; resize: vertical; }
|
|
96
|
+
form > button.item { width: 100%; height: auto; justify-content: flex-start; text-align: left; font-weight: 400; }
|
|
89
97
|
.live-status { position: fixed; right: 16px; bottom: 16px; margin: 0; }
|
|
90
98
|
.party-cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
|
|
91
|
-
.party-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 12px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--card); }
|
|
99
|
+
.party-card { color: inherit; text-decoration: none; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 12px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--card); }
|
|
100
|
+
.party-card:hover { border-color: var(--ring, var(--primary)); }
|
|
92
101
|
.party-card .text { display: grid; min-width: 0; } .party-card .text > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
93
102
|
.party-card .facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
|
|
94
103
|
.tag.protocol { padding: 0 4px; border: 1px solid var(--border); border-radius: var(--radius-sm); font: 600 10px/16px var(--font-mono); color: var(--foreground); }
|
|
104
|
+
.back { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); text-decoration: none; font-size: 14px; }
|
|
105
|
+
.party-head { display: grid; justify-items: center; gap: 8px; }
|
|
106
|
+
.party-head .facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
|
|
107
|
+
.fact-rows { margin: 0; padding: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--card); }
|
|
108
|
+
.fact-rows > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); }
|
|
109
|
+
.fact-rows > div:first-child { border-top: 0; }
|
|
110
|
+
.fact-rows dt { display: inline-flex; align-items: center; gap: 8px; color: var(--muted-foreground); font-size: 13px; }
|
|
111
|
+
.fact-rows dd { margin: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; min-width: 0; overflow-wrap: anywhere; text-align: right; }
|
|
112
|
+
.fact-rows dd a { margin-left: 8px; color: var(--primary); font-size: 13px; font-weight: 500; text-decoration: none; }
|
|
113
|
+
.steps { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-size: 12px; color: var(--muted-foreground); }
|
|
114
|
+
.steps li { padding-top: 8px; border-top: 4px solid var(--border); }
|
|
115
|
+
.steps li.done { border-top-color: var(--primary); color: var(--foreground); }
|
|
116
|
+
.split-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
117
|
+
.split-heading > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
|
|
118
|
+
.count { color: var(--muted-foreground); font-weight: 500; }
|
|
119
|
+
.tool-rows { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; width: 100%; text-align: left; }
|
|
120
|
+
.tool-rows li { display: grid; gap: 2px; padding: 8px 0; border-top: 1px solid var(--border); }
|
|
121
|
+
.consequences { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
|
|
122
|
+
.consequences li { display: flex; align-items: center; gap: 8px; }
|
|
95
123
|
.counts { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 4px 0 0; }
|
|
96
124
|
@media (max-width: 640px) { .actions > * { flex: 1; } button, .button { height: 44px; width: 100%; } }
|
|
97
125
|
`;
|
|
@@ -110,8 +138,13 @@ const ICON_PATHS = {
|
|
|
110
138
|
server: '<rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><path d="M6 6h.01"/><path d="M6 18h.01"/>',
|
|
111
139
|
laptop: '<path d="M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z"/><path d="M20.054 15.987H3.946"/>',
|
|
112
140
|
arrowLeftRight: '<path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/>',
|
|
141
|
+
signOut: '<path d="m16 17 5-5-5-5"/><path d="M21 12H9"/><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>',
|
|
113
142
|
shieldX: '<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m14.5 9.5-5 5"/><path d="m9.5 9.5 5 5"/>',
|
|
114
143
|
timerOff: '<path d="M10 2h4"/><path d="M4.6 11a8 8 0 0 0 1.7 8.7 8 8 0 0 0 8.7 1.7"/><path d="M7.4 7.4a8 8 0 0 1 10.3 1 8 8 0 0 1 .9 10.2"/><path d="m2 2 20 20"/><path d="M12 12v-2"/>',
|
|
144
|
+
archive: '<rect width="20" height="5" x="2" y="3" rx="1"/><path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"/><path d="M10 12h4"/>',
|
|
145
|
+
arrowLeft: '<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>',
|
|
146
|
+
ship: '<path d="M12 10.189V14"/><path d="M12 2v3"/><path d="M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6"/><path d="M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76"/><path d="M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>',
|
|
147
|
+
shield: '<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/>',
|
|
115
148
|
users: '<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>',
|
|
116
149
|
};
|
|
117
150
|
export function icon(name, size = 16) {
|
|
@@ -158,11 +191,21 @@ const TABS = {
|
|
|
158
191
|
overview: { label: 'Overview', icon: 'house', href: '/overview' },
|
|
159
192
|
outsideParties: { label: 'Outside parties', icon: 'plug', href: '/outside-parties' },
|
|
160
193
|
};
|
|
161
|
-
function topBar(current) {
|
|
194
|
+
function topBar(current, isSignedIn) {
|
|
162
195
|
const tabs = Object.entries(TABS)
|
|
163
|
-
.map(([tab, shown]) => `<a class="tab" href="${shown.href}"${tab === current ? ' aria-current="page"' : ''}>${icon(shown.icon, 14)}
|
|
196
|
+
.map(([tab, shown]) => `<a class="tab" href="${shown.href}" aria-label="${escaped(shown.label)}"${tab === current ? ' aria-current="page"' : ''}>${icon(shown.icon, 14)}<span class="label">${escaped(shown.label)}</span></a>`)
|
|
164
197
|
.join('');
|
|
165
|
-
|
|
198
|
+
// A person signed in to the pages signs out here; a console session signs out in the console.
|
|
199
|
+
const signOut = isSignedIn ? `<form method="post" action="/sign-out" class="sign-out"><button aria-label="Sign out">${icon('signOut', 14)}<span class="label">Sign out</span></button></form>` : '';
|
|
200
|
+
return `<header class="top"><a class="mark" href="/overview">${MARK}Aeolus</a><nav class="tabs">${tabs}</nav>${signOut}</header>`;
|
|
201
|
+
}
|
|
202
|
+
/** What a signed-out caller is shown: why, and the one way to sign in, coming back to the page they asked for. */
|
|
203
|
+
export function signInPrompt(shown) {
|
|
204
|
+
if (shown.way === 'none') {
|
|
205
|
+
return `<section class="card"><h2>This gateway signs no one in</h2><p class="muted">Its pages are for people signed in through pagasae, which its operator has not set.</p></section>`;
|
|
206
|
+
}
|
|
207
|
+
const link = `<a class="button" href="/sign-in?${new URLSearchParams({ return_to: shown.returnTo }).toString().replaceAll('&', '&')}">${icon('signIn', 14)}Sign in</a>`;
|
|
208
|
+
return `<section class="card"><h2>${escaped(shown.message)}</h2><div class="actions">${link}</div></section>`;
|
|
166
209
|
}
|
|
167
210
|
/**
|
|
168
211
|
* What a live page runs: it opens /live for itself and swaps in each section
|
|
@@ -215,6 +258,6 @@ export function signalPage(page) {
|
|
|
215
258
|
const live = page.live === undefined
|
|
216
259
|
? ''
|
|
217
260
|
: `<p data-live-status hidden class="live-status">${statusBadge({ tone: 'waiting', icon: 'hourglass', label: 'Reconnecting' })}</p><script data-live-query="${escaped(page.live)}">${LIVE_SCRIPT}</script>`;
|
|
218
|
-
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>${escaped(page.title)}</title><style>${STYLE}</style></head><body>${topBar(page.tab)}<main${page.isWide === true ? ' class="wide"' : ''}>${page.body}</main>${live}</body></html>`;
|
|
261
|
+
return `<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>${escaped(page.title)}</title><style>${STYLE}</style></head><body>${topBar(page.tab, page.isSignedIn === true)}<main${page.isWide === true ? ' class="wide"' : ''}>${page.body}</main>${live}</body></html>`;
|
|
219
262
|
}
|
|
220
263
|
//# sourceMappingURL=signal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../../../src/adapters/http/signal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,YAAY,GAAG;;;;;;;;kDAQ6B,CAAC;AAEnD,MAAM,WAAW,GAAG;;;;;;;;0CAQsB,CAAC;AAE3C,MAAM,KAAK,GAAG;+BACiB,YAAY;gDACK,WAAW
|
|
1
|
+
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../../../src/adapters/http/signal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,YAAY,GAAG;;;;;;;;kDAQ6B,CAAC;AAEnD,MAAM,WAAW,GAAG;;;;;;;;0CAQsB,CAAC;AAE3C,MAAM,KAAK,GAAG;+BACiB,YAAY;gDACK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgG1D,CAAC;AAQF,MAAM,UAAU,GAAyB;IACvC,IAAI,EAAE,iHAAiH;IACvH,KAAK,EAAE,8DAA8D;IACrE,QAAQ,EAAE,iIAAiI;IAC3I,KAAK,EAAE,+HAA+H;IACtI,MAAM,EAAE,qGAAqG;IAC7G,KAAK,EAAE,iLAAiL;IACxL,SAAS,EAAE,kNAAkN;IAC7N,KAAK,EAAE,6BAA6B;IACpC,CAAC,EAAE,8CAA8C;IACjD,GAAG,EAAE,gEAAgE;IACrE,IAAI,EAAE,+FAA+F;IACrG,MAAM,EAAE,0JAA0J;IAClK,MAAM,EAAE,+LAA+L;IACvM,cAAc,EAAE,2FAA2F;IAC3G,OAAO,EAAE,mGAAmG;IAC5G,OAAO,EAAE,iOAAiO;IAC1O,QAAQ,EAAE,8KAA8K;IACxL,OAAO,EAAE,0HAA0H;IACnI,SAAS,EAAE,gDAAgD;IAC3D,IAAI,EAAE,6TAA6T;IACnU,MAAM,EAAE,gLAAgL;IACxL,KAAK,EAAE,+JAA+J;CACvK,CAAC;AAEF,MAAM,UAAU,IAAI,CAAC,IAAU,EAAE,IAAI,GAAG,EAAE;IACxC,OAAO,eAAe,IAAI,aAAa,IAAI,8IAA8I,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpN,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,WAAW,CAAC,MAAiD;IAC3E,OAAO,2BAA2B,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3G,CAAC;AAED,uIAAuI;AACvI,MAAM,IAAI,GAAG,8lBAA8lB,CAAC;AAE5mB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;AAEpF,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,2HAA2H;AAC3H,MAAM,UAAU,IAAI,CAAC,KAAkJ;IACrK,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IACxC,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,YAAY,MAAM,QAAQ,MAAM,2GAA2G,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;IAClL,CAAC;SAAM,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,mFAAmF;QACnF,MAAM,GAAG,qBAAqB,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,8FAA8F,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,kCAAkC,MAAM,QAAQ,MAAM,GAAG,EAAE,0HAA0H,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,QAAQ,MAAM,GAAG,EAAE,kFAAkF,CAAC;IACxhB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,qBAAqB,MAAM,GAAG,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,QAAQ,GAAG,CAAC,YAAY,QAAQ,aAAa,QAAQ,uEAAuE,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAC/Q,CAAC;IACD,OAAO,4BAA4B,IAAI,aAAa,IAAI,kBAAkB,IAAI,IAAI,IAAI,4BAA4B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,MAAM,SAAS,MAAM,QAAQ,MAAM,oCAAoC,KAAK,CAAC,IAAI,uBAAuB,WAAW,IAAI,IAAI,KAAK,MAAM,QAAQ,CAAC;AACxS,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,+CAA+C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;AAC3I,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,KAAuC;IAC/D,OAAO,kCAAkC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,2CAA2C,UAAU,sBAAsB,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,8BAA8B,CAAC;AAClT,CAAC;AAKD,MAAM,IAAI,GAA6D;IACrE,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;IACjE,cAAc,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;CACrF,CAAC;AAEF,SAAS,MAAM,CAAC,OAAwB,EAAE,UAAmB;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,wBAAwB,KAAK,CAAC,IAAI,iBAAiB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;SAC/N,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,8FAA8F;IAC9F,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,yFAAyF,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,qDAAqD,CAAC,CAAC,CAAC,EAAE,CAAC;IACpM,OAAO,wDAAwD,IAAI,+BAA+B,IAAI,SAAS,OAAO,WAAW,CAAC;AACpI,CAAC;AAKD,kHAAkH;AAClH,MAAM,UAAU,YAAY,CAAC,KAA4D;IACvF,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,+KAA+K,CAAC;IACzL,CAAC;IACD,MAAM,IAAI,GAAG,oCAAoC,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC;IAC5K,OAAO,6BAA6B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,IAAI,kBAAkB,CAAC;AAChH,CAAC;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DA+BwC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAqC;IAC9D,OAAO,yIAAyI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,gEAAgE,IAAI,eAAe,IAAI,CAAC,IAAI,uBAAuB,CAAC;AAChT,CAAC;AAED,8HAA8H;AAC9H,MAAM,UAAU,UAAU,CAAC,IAAuG;IAChI,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,SAAS;QACrB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,kDAAkD,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,gCAAgC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,WAAW,CAAC;IAChN,OAAO,yIAAyI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,wBAAwB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,UAAU,IAAI,gBAAgB,CAAC;AAC7V,CAAC"}
|
|
@@ -7,15 +7,12 @@
|
|
|
7
7
|
* person picked; the gateway reads what it names, and core checks its
|
|
8
8
|
* signature on every call it is presented to.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { accountTokenClaimsSchema } from '@aeolus-fleet/common';
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { err, ok } from '../../core/shared/result.js';
|
|
13
|
-
const MILLISECONDS_PER_SECOND = 1000;
|
|
14
13
|
const HTTP_SERVER_ERROR = 500;
|
|
15
14
|
const tokenAnswerSchema = z.object({ access_token: z.string(), refresh_token: z.string() });
|
|
16
15
|
const errorAnswerSchema = z.object({ error: z.string() });
|
|
17
|
-
/** What the gateway reads of an account token: its fleet (the audience), its account, its person ship there, and its end; common's accountTokenClaimsSchema replaces it once published (aeolus-fleet#991). */
|
|
18
|
-
const accountTokenSchema = z.object({ aud: idSchema('fleet'), sub: z.string().min(1), person_ship: idSchema('ship').optional(), exp: z.number() });
|
|
19
16
|
function claimsOf(accountToken) {
|
|
20
17
|
const payload = accountToken.split('.')[1];
|
|
21
18
|
if (payload === undefined) {
|
|
@@ -53,17 +50,18 @@ export function createPagasae(options) {
|
|
|
53
50
|
return err({ kind: 'refused', reason: refusal.success ? refusal.data.error : `pagasae answered ${String(response.status)}` });
|
|
54
51
|
}
|
|
55
52
|
const answer = tokenAnswerSchema.safeParse(body);
|
|
56
|
-
const claims =
|
|
53
|
+
const claims = accountTokenClaimsSchema.safeParse(answer.success ? claimsOf(answer.data.access_token) : undefined);
|
|
57
54
|
if (!answer.success || !claims.success) {
|
|
58
55
|
return err({ kind: 'refused', reason: 'pagasae answered no account token the gateway can read' });
|
|
59
56
|
}
|
|
60
57
|
return ok({
|
|
61
58
|
accountToken: answer.data.access_token,
|
|
62
|
-
accountTokenExpiresAt:
|
|
59
|
+
accountTokenExpiresAt: claims.data.endsAt,
|
|
63
60
|
refreshToken: answer.data.refresh_token,
|
|
64
|
-
fleetId: claims.data.
|
|
65
|
-
accountId: claims.data.
|
|
66
|
-
personShipId: claims.data.
|
|
61
|
+
fleetId: claims.data.fleetId,
|
|
62
|
+
accountId: claims.data.accountId,
|
|
63
|
+
personShipId: claims.data.personShipId,
|
|
64
|
+
scopes: claims.data.scopes,
|
|
67
65
|
});
|
|
68
66
|
};
|
|
69
67
|
return {
|