@braidhq/server 0.2.1 → 0.3.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 +3 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +28 -4
- package/dist/app.js.map +1 -1
- package/dist/composeApp.d.ts +5 -1
- package/dist/composeApp.d.ts.map +1 -1
- package/dist/composeApp.js +6 -0
- package/dist/composeApp.js.map +1 -1
- package/dist/composeFsApp.d.ts +49 -3
- package/dist/composeFsApp.d.ts.map +1 -1
- package/dist/composeFsApp.js +146 -59
- package/dist/composeFsApp.js.map +1 -1
- package/dist/defaultOntologyPlugins.d.ts +9 -0
- package/dist/defaultOntologyPlugins.d.ts.map +1 -0
- package/dist/defaultOntologyPlugins.js +11 -0
- package/dist/defaultOntologyPlugins.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/oauth/GitHubOAuth.d.ts +45 -0
- package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
- package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
- package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
- package/dist/infrastructure/oauth/providers.d.ts +19 -0
- package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
- package/dist/infrastructure/oauth/providers.js +22 -0
- package/dist/infrastructure/oauth/providers.js.map +1 -0
- package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
- package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
- package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
- package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +26 -5
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
- package/dist/infrastructure/skill/SubprocessSkillRunner.js +125 -13
- package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
- package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
- package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
- package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
- package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +8 -1
- package/dist/middleware/auth.js.map +1 -1
- package/dist/routes/oauth.d.ts +51 -10
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/oauth.js +174 -62
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/sourceConnection.d.ts +30 -0
- package/dist/routes/sourceConnection.d.ts.map +1 -0
- package/dist/routes/sourceConnection.js +51 -0
- package/dist/routes/sourceConnection.js.map +1 -0
- package/dist/routes/workspaces.d.ts +6 -0
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/routes/workspaces.js +8 -1
- package/dist/routes/workspaces.js.map +1 -1
- package/package.json +15 -15
package/dist/routes/oauth.js
CHANGED
|
@@ -1,86 +1,198 @@
|
|
|
1
|
+
import { ForbiddenError, NotFoundError } from '@braidhq/core';
|
|
2
|
+
import { WorkspaceId } from '@braidhq/schema';
|
|
1
3
|
import { zValidator } from '@hono/zod-validator';
|
|
2
4
|
import { Hono } from 'hono';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
import { createOAuthState, createPkceVerifier } from '../infrastructure/oauth/GoogleOAuth.js';
|
|
7
|
+
import { oauthProvider } from '../infrastructure/oauth/providers.js';
|
|
8
|
+
import { getUserId } from '../middleware/auth.js';
|
|
9
|
+
import { defaultPermissionRegistry, resolveViewer } from '../policy/index.js';
|
|
5
10
|
const DRIVE_READONLY_SCOPE = 'https://www.googleapis.com/auth/drive.readonly';
|
|
6
11
|
const StartBodySchema = z.object({
|
|
7
12
|
workspaceId: z.string().min(1),
|
|
8
13
|
sourceId: z.string().min(1),
|
|
9
14
|
});
|
|
10
15
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* acceptable for a local desktop or single-user install.
|
|
18
|
-
* SaaS deployments should swap `pending` for a shared store.
|
|
16
|
+
* In-process store of pending OAuth flows, keyed by the state token.
|
|
17
|
+
* The start and callback routers mount at different prefixes,
|
|
18
|
+
* so they share one instance,
|
|
19
|
+
* and a flow opened by `start` is resolved by `callback`.
|
|
20
|
+
* A flow is short-lived, one browser round-trip, and a restart cancels it.
|
|
21
|
+
* SaaS deployments should swap this for a shared store.
|
|
19
22
|
*/
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
export class OAuthFlowStore {
|
|
24
|
+
pending = new Map();
|
|
25
|
+
put(state, flow) {
|
|
26
|
+
this.pending.set(state, flow);
|
|
27
|
+
this.sweep();
|
|
28
|
+
}
|
|
29
|
+
take(state) {
|
|
30
|
+
const flow = this.pending.get(state);
|
|
31
|
+
this.pending.delete(state);
|
|
32
|
+
return flow;
|
|
33
|
+
}
|
|
34
|
+
sweep() {
|
|
35
|
+
const cutoff = Date.now() - 10 * 60 * 1000;
|
|
36
|
+
for (const [state, flow] of this.pending) {
|
|
37
|
+
if (flow.createdAt < cutoff)
|
|
38
|
+
this.pending.delete(state);
|
|
28
39
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function providersOf(deps) {
|
|
43
|
+
const google = oauthProvider('google');
|
|
44
|
+
const github = oauthProvider('github');
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
id: google.id,
|
|
48
|
+
label: google.label,
|
|
49
|
+
namespace: google.namespace,
|
|
50
|
+
notConfigured: 'Google OAuth is not configured on this server. Set BRAID_GOOGLE_CLIENT_ID + BRAID_GOOGLE_CLIENT_SECRET (and BRAID_GOOGLE_REDIRECT_URI if not the default) and restart.',
|
|
51
|
+
...(deps.google
|
|
52
|
+
? {
|
|
53
|
+
begin: (state) => {
|
|
54
|
+
const codeVerifier = createPkceVerifier();
|
|
55
|
+
return { authorizationUrl: deps.google.buildAuthorizationUrl({ scopes: [DRIVE_READONLY_SCOPE], state, codeVerifier }), codeVerifier };
|
|
56
|
+
},
|
|
57
|
+
complete: (flow, code) => {
|
|
58
|
+
if (!flow.codeVerifier)
|
|
59
|
+
throw new Error('Google flow is missing its PKCE verifier.');
|
|
60
|
+
return deps.google.exchangeCode({ code, codeVerifier: flow.codeVerifier });
|
|
61
|
+
},
|
|
62
|
+
}
|
|
63
|
+
: {}),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: github.id,
|
|
67
|
+
label: github.label,
|
|
68
|
+
namespace: github.namespace,
|
|
69
|
+
notConfigured: 'GitHub OAuth is not configured on this server. Set BRAID_GITHUB_CLIENT_ID + BRAID_GITHUB_CLIENT_SECRET (and BRAID_GITHUB_REDIRECT_URI if not the default) and restart.',
|
|
70
|
+
...(deps.github
|
|
71
|
+
? {
|
|
72
|
+
begin: (state) => ({ authorizationUrl: deps.github.buildAuthorizationUrl({ state }) }),
|
|
73
|
+
complete: (_flow, code) => deps.github.exchangeCode({ code }),
|
|
74
|
+
}
|
|
75
|
+
: {}),
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Source-connection start routes. `workspace.write` is owner-only,
|
|
81
|
+
* so only an owner connects or reconnects a source on an existing workspace,
|
|
82
|
+
* and the authorising member is recorded as `connectedBy`.
|
|
83
|
+
* A not-yet-scaffolded workspace is allowed,
|
|
84
|
+
* since the Wizard connects a source before it creates the workspace,
|
|
85
|
+
* and the caller becomes its owner.
|
|
86
|
+
*/
|
|
87
|
+
export function createOAuthStartRouter(deps) {
|
|
88
|
+
const router = new Hono();
|
|
89
|
+
for (const provider of providersOf(deps)) {
|
|
90
|
+
router.post(`/${provider.id}/start`, zValidator('json', StartBodySchema), async (context) => {
|
|
91
|
+
if (!provider.begin)
|
|
92
|
+
return context.json({ error: provider.notConfigured }, 503);
|
|
93
|
+
const { workspaceId, sourceId } = context.req.valid('json');
|
|
94
|
+
const connectedBy = await authoriseConnect(deps, workspaceId, getUserId(context));
|
|
95
|
+
const state = createOAuthState();
|
|
96
|
+
const started = provider.begin(state);
|
|
97
|
+
deps.flowStore.put(state, pendingFlow(workspaceId, sourceId, connectedBy, started.codeVerifier));
|
|
98
|
+
return context.json({ authorizationUrl: started.authorizationUrl });
|
|
38
99
|
});
|
|
39
|
-
|
|
40
|
-
});
|
|
41
|
-
router.get('/google/callback', async (context) => {
|
|
42
|
-
const state = context.req.query('state');
|
|
43
|
-
const code = context.req.query('code');
|
|
44
|
-
const error = context.req.query('error');
|
|
45
|
-
if (error)
|
|
46
|
-
return context.html(renderCallbackPage({ ok: false, message: `Google returned: ${error}` }), 400);
|
|
47
|
-
if (!state || !code)
|
|
48
|
-
return context.html(renderCallbackPage({ ok: false, message: 'Missing state or code query parameter.' }), 400);
|
|
49
|
-
if (!deps.google)
|
|
50
|
-
return context.html(renderCallbackPage({ ok: false, message: 'OAuth not configured.' }), 503);
|
|
51
|
-
const flow = pending.get(state);
|
|
52
|
-
pending.delete(state);
|
|
53
|
-
if (!flow)
|
|
54
|
-
return context.html(renderCallbackPage({ ok: false, message: 'State token not recognised (probably expired or already used).' }), 400);
|
|
55
|
-
try {
|
|
56
|
-
const tokens = await deps.google.exchangeCode({ code, codeVerifier: flow.codeVerifier });
|
|
57
|
-
await persistTokens(deps.secretStore, flow.workspaceId, flow.sourceId, tokens);
|
|
58
|
-
return context.html(renderCallbackPage({ ok: true, message: 'Connected. You can close this window.' }));
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
return context.html(renderCallbackPage({
|
|
62
|
-
ok: false,
|
|
63
|
-
message: err instanceof Error ? err.message : String(err),
|
|
64
|
-
}), 500);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
100
|
+
}
|
|
67
101
|
return router;
|
|
68
102
|
}
|
|
69
|
-
|
|
70
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Gate a connect on `workspace.write` when the workspace exists,
|
|
105
|
+
* allow it before scaffold, and return who is connecting.
|
|
106
|
+
* Returns undefined in the in-memory composition,
|
|
107
|
+
* which wires no user or workspace registry and stays open,
|
|
108
|
+
* matching how the other workspace routes behave there.
|
|
109
|
+
*/
|
|
110
|
+
async function authoriseConnect(deps, workspaceId, userId) {
|
|
111
|
+
if (!deps.userRegistry || !deps.workspaceService || !deps.workspaceRegistry)
|
|
112
|
+
return undefined;
|
|
113
|
+
const user = await deps.userRegistry.get(userId);
|
|
114
|
+
if (!user)
|
|
115
|
+
throw new ForbiddenError(`Unknown user "${userId}".`);
|
|
116
|
+
const workspace = await findWorkspaceOrUndefined(deps.workspaceService, workspaceId);
|
|
117
|
+
if (workspace) {
|
|
118
|
+
const member = await deps.workspaceRegistry.getMember(workspace.rootPath, userId);
|
|
119
|
+
if (!defaultPermissionRegistry.can('workspace.write', resolveViewer(user, member)))
|
|
120
|
+
throw new ForbiddenError(`Only an owner can connect a source on workspace "${workspaceId}".`);
|
|
121
|
+
}
|
|
122
|
+
return { userId: user.id, displayName: user.displayName };
|
|
71
123
|
}
|
|
72
|
-
function
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
124
|
+
async function findWorkspaceOrUndefined(service, workspaceId) {
|
|
125
|
+
try {
|
|
126
|
+
return await service.findById(WorkspaceId.parse(workspaceId));
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error instanceof NotFoundError)
|
|
130
|
+
return undefined;
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* OAuth callback routes, mounted at `/oauth`,
|
|
136
|
+
* so the redirect URI stays one fixed path per provider,
|
|
137
|
+
* which is what the OAuth app registers.
|
|
138
|
+
* The state token carries the flow back to its workspace and source.
|
|
139
|
+
*/
|
|
140
|
+
export function createOAuthCallbackRouter(deps) {
|
|
141
|
+
const router = new Hono();
|
|
142
|
+
for (const provider of providersOf(deps)) {
|
|
143
|
+
router.get(`/${provider.id}/callback`, async (context) => {
|
|
144
|
+
const parsed = parseCallback(context, provider);
|
|
145
|
+
if (!parsed.ok)
|
|
146
|
+
return parsed.response;
|
|
147
|
+
if (!provider.complete)
|
|
148
|
+
return context.html(renderCallbackPage({ ok: false, provider, message: 'OAuth not configured.' }), 503);
|
|
149
|
+
const flow = deps.flowStore.take(parsed.state);
|
|
150
|
+
if (!flow)
|
|
151
|
+
return context.html(renderCallbackPage({ ok: false, provider, message: 'State token not recognised (probably expired or already used).' }), 400);
|
|
152
|
+
try {
|
|
153
|
+
const tokens = await provider.complete(flow, parsed.code);
|
|
154
|
+
await persistTokens(deps.secretStore, provider, flow, tokens);
|
|
155
|
+
return context.html(renderCallbackPage({ ok: true, provider, message: 'Connected. You can close this window.' }));
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
return context.html(renderCallbackPage({ ok: false, provider, message: err instanceof Error ? err.message : String(err) }), 500);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
77
161
|
}
|
|
162
|
+
return router;
|
|
163
|
+
}
|
|
164
|
+
function pendingFlow(workspaceId, sourceId, connectedBy, codeVerifier) {
|
|
165
|
+
return {
|
|
166
|
+
workspaceId,
|
|
167
|
+
sourceId,
|
|
168
|
+
createdAt: Date.now(),
|
|
169
|
+
...(connectedBy ? { connectedBy } : {}),
|
|
170
|
+
...(codeVerifier ? { codeVerifier } : {}),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function parseCallback(context, provider) {
|
|
174
|
+
const error = context.req.query('error');
|
|
175
|
+
if (error)
|
|
176
|
+
return { ok: false, response: context.html(renderCallbackPage({ ok: false, provider, message: `${provider.label} returned: ${error}` }), 400) };
|
|
177
|
+
const state = context.req.query('state');
|
|
178
|
+
const code = context.req.query('code');
|
|
179
|
+
if (!state || !code)
|
|
180
|
+
return { ok: false, response: context.html(renderCallbackPage({ ok: false, provider, message: 'Missing state or code query parameter.' }), 400) };
|
|
181
|
+
return { ok: true, state, code };
|
|
182
|
+
}
|
|
183
|
+
async function persistTokens(store, provider, flow, tokens) {
|
|
184
|
+
await store.write(provider.namespace, `${flow.workspaceId}--${flow.sourceId}`, {
|
|
185
|
+
...tokens,
|
|
186
|
+
connectedAt: new Date().toISOString(),
|
|
187
|
+
...(flow.connectedBy ? { connectedBy: flow.connectedBy } : {}),
|
|
188
|
+
});
|
|
78
189
|
}
|
|
79
190
|
function renderCallbackPage(input) {
|
|
80
191
|
// Tiny self-contained HTML. Tells the popup opener and closes itself.
|
|
81
192
|
// Inline style so the page works without any asset pipeline.
|
|
82
193
|
const colour = input.ok ? '#16a34a' : '#dc2626';
|
|
83
194
|
const status = input.ok ? 'success' : 'error';
|
|
195
|
+
const heading = input.ok ? `Connected to ${input.provider.label}` : 'Authorization failed';
|
|
84
196
|
return `<!doctype html>
|
|
85
197
|
<html><head><meta charset="utf-8"><title>Braid OAuth</title>
|
|
86
198
|
<style>
|
|
@@ -91,11 +203,11 @@ function renderCallbackPage(input) {
|
|
|
91
203
|
</style>
|
|
92
204
|
</head><body>
|
|
93
205
|
<div class="card">
|
|
94
|
-
<h1>${
|
|
206
|
+
<h1>${heading}</h1>
|
|
95
207
|
<p>${escapeHtml(input.message)}</p>
|
|
96
208
|
</div>
|
|
97
209
|
<script>
|
|
98
|
-
try { window.opener?.postMessage({ source: 'braid-oauth', provider:
|
|
210
|
+
try { window.opener?.postMessage({ source: 'braid-oauth', provider: ${JSON.stringify(input.provider.id)}, status: ${JSON.stringify(status)} }, '*'); } catch (_e) {}
|
|
99
211
|
setTimeout(() => { try { window.close(); } catch (_e) {} }, 1500);
|
|
100
212
|
</script>
|
|
101
213
|
</body></html>`;
|
package/dist/routes/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/routes/oauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/routes/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { WorkspaceService } from '@braidhq/core';
|
|
2
|
+
import type { Hono as HonoType } from 'hono';
|
|
3
|
+
import type { SecretStore } from '../infrastructure/secrets/SecretStore.js';
|
|
4
|
+
export interface SourceConnectionStatus {
|
|
5
|
+
readonly connected: boolean;
|
|
6
|
+
readonly needsAuth: boolean;
|
|
7
|
+
readonly connectedBy?: {
|
|
8
|
+
userId: string;
|
|
9
|
+
displayName: string;
|
|
10
|
+
};
|
|
11
|
+
readonly connectedAt?: string;
|
|
12
|
+
}
|
|
13
|
+
export type SourceConnectionSummary = SourceConnectionStatus & {
|
|
14
|
+
readonly sourceId: string;
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly kind: string;
|
|
17
|
+
};
|
|
18
|
+
export interface SourceConnectionRouterDeps {
|
|
19
|
+
readonly secretStore: SecretStore;
|
|
20
|
+
readonly workspaceService: WorkspaceService;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reports whether a source has a live OAuth connection, who linked it,
|
|
24
|
+
* and whether its token has gone stale.
|
|
25
|
+
* Read-only, so any workspace member can see the status,
|
|
26
|
+
* the reconnect action stays owner-gated on the start route.
|
|
27
|
+
* The collection route lets a banner flag a stale source without opening it.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createSourceConnectionRouter(deps: SourceConnectionRouterDeps): HonoType;
|
|
30
|
+
//# sourceMappingURL=sourceConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceConnection.d.ts","sourceRoot":"","sources":["../../src/routes/sourceConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAmB3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAI3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1I,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,0BAA0B,GAAG,QAAQ,CAoBvF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { SourceId, WorkspaceId } from '@braidhq/schema';
|
|
2
|
+
import { Hono } from 'hono';
|
|
3
|
+
import { OAUTH_PROVIDERS } from '../infrastructure/oauth/providers.js';
|
|
4
|
+
import { requirePermission } from '../middleware/workspaceAccess.js';
|
|
5
|
+
import { getWorkspaceId } from '../middleware/workspaceId.js';
|
|
6
|
+
// OAuth namespaces a source credential can live under,
|
|
7
|
+
// keyed by `${workspaceId}--${sourceId}`. A source uses at most one.
|
|
8
|
+
const OAUTH_NAMESPACES = OAUTH_PROVIDERS.map(provider => provider.namespace);
|
|
9
|
+
// Loader kinds whose sources authenticate over OAuth.
|
|
10
|
+
const OAUTH_LOADER_KINDS = new Set(OAUTH_PROVIDERS.map(provider => provider.loaderKind));
|
|
11
|
+
/**
|
|
12
|
+
* Reports whether a source has a live OAuth connection, who linked it,
|
|
13
|
+
* and whether its token has gone stale.
|
|
14
|
+
* Read-only, so any workspace member can see the status,
|
|
15
|
+
* the reconnect action stays owner-gated on the start route.
|
|
16
|
+
* The collection route lets a banner flag a stale source without opening it.
|
|
17
|
+
*/
|
|
18
|
+
export function createSourceConnectionRouter(deps) {
|
|
19
|
+
const router = new Hono();
|
|
20
|
+
router.get('/', requirePermission('workspace.read'), async (context) => {
|
|
21
|
+
const workspaceId = getWorkspaceId(context);
|
|
22
|
+
const workspace = await deps.workspaceService.findById(WorkspaceId.parse(workspaceId));
|
|
23
|
+
const connections = [];
|
|
24
|
+
for (const source of workspace.productManifest.sources) {
|
|
25
|
+
if (source.kind !== 'filesystem' || !source.loader || !OAUTH_LOADER_KINDS.has(source.loader.kind))
|
|
26
|
+
continue;
|
|
27
|
+
connections.push({ sourceId: source.id, name: source.name, kind: source.loader.kind, ...await readStatus(deps.secretStore, workspaceId, source.id) });
|
|
28
|
+
}
|
|
29
|
+
return context.json({ connections });
|
|
30
|
+
});
|
|
31
|
+
router.get('/:sourceId', requirePermission('workspace.read'), async (context) => {
|
|
32
|
+
return context.json(await readStatus(deps.secretStore, getWorkspaceId(context), SourceId.parse(context.req.param('sourceId'))));
|
|
33
|
+
});
|
|
34
|
+
return router;
|
|
35
|
+
}
|
|
36
|
+
async function readStatus(secretStore, workspaceId, sourceId) {
|
|
37
|
+
const key = `${workspaceId}--${sourceId}`;
|
|
38
|
+
for (const namespace of OAUTH_NAMESPACES) {
|
|
39
|
+
const stored = await secretStore.read(namespace, key);
|
|
40
|
+
if (stored) {
|
|
41
|
+
return {
|
|
42
|
+
connected: true,
|
|
43
|
+
needsAuth: stored.needsAuth === true,
|
|
44
|
+
...(stored.connectedBy ? { connectedBy: stored.connectedBy } : {}),
|
|
45
|
+
...(stored.connectedAt ? { connectedAt: stored.connectedAt } : {}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return { connected: false, needsAuth: false };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=sourceConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceConnection.js","sourceRoot":"","sources":["../../src/routes/sourceConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { HistoryService, PluginRegistry, SourceLoaderRunner, WorkspaceBoots
|
|
|
2
2
|
import type { AbsolutePath } from '@braidhq/schema';
|
|
3
3
|
import type { UserRegistryFile } from '../infrastructure/users/UserRegistryFile.js';
|
|
4
4
|
import type { WorkspaceRegistryFile } from '../infrastructure/workspace/WorkspaceRegistryFile.js';
|
|
5
|
+
import { OntologyId } from '@braidhq/schema';
|
|
5
6
|
import { Hono } from 'hono';
|
|
6
7
|
export interface WorkspacesRouterDeps {
|
|
7
8
|
workspaceService: WorkspaceService;
|
|
@@ -12,6 +13,11 @@ export interface WorkspacesRouterDeps {
|
|
|
12
13
|
* and validate that the manifest carries every role it requires.
|
|
13
14
|
*/
|
|
14
15
|
pluginRegistry: PluginRegistry;
|
|
16
|
+
/**
|
|
17
|
+
* What a scaffold writes when the submitted manifest names no ontology.
|
|
18
|
+
* Absent falls to the coding preset's `ddd`.
|
|
19
|
+
*/
|
|
20
|
+
defaultOntologyId?: OntologyId;
|
|
15
21
|
bootstrap?: WorkspaceBootstrapService;
|
|
16
22
|
/**
|
|
17
23
|
* Optional. When present, `GET /workspaces` filters to member ones,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACpI,OAAO,KAAK,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAA;AAEhJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAA;
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACpI,OAAO,KAAK,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAA;AAEhJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAA;AAIjG,OAAO,EAGL,UAAU,EAKX,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAwC3B,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,cAAc,EAAE,YAAY,CAAA;IAC5B;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAA;IACzC;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAmBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAyQvE"}
|
|
@@ -102,12 +102,19 @@ export function createWorkspacesRouter(deps) {
|
|
|
102
102
|
if (await pathExists(productPath)) {
|
|
103
103
|
throw new ValidationError(`A workspace named "${name}" already exists. Open it from the sidebar, or delete it first to recreate with the same name.`);
|
|
104
104
|
}
|
|
105
|
-
const manifest = fillManifestDefaults(draft);
|
|
105
|
+
const manifest = fillManifestDefaults(draft, deps.defaultOntologyId);
|
|
106
106
|
// Each ontology declares which source roles it needs to function.
|
|
107
107
|
// Reject scaffolds that omit a role the ontology declares required,
|
|
108
108
|
// before any writes, so the wizard can show a precise "you also need
|
|
109
109
|
// a source of role x", rather than a post-scaffold validation error.
|
|
110
110
|
const ontology = deps.pluginRegistry.findOntology(manifest.ontologyId);
|
|
111
|
+
// An unregistered ontology only surfaces later, at the first batch,
|
|
112
|
+
// so a build that registers any at all rejects the mismatch here.
|
|
113
|
+
const registeredOntologies = deps.pluginRegistry.ontologies();
|
|
114
|
+
if (!ontology && registeredOntologies.length > 0) {
|
|
115
|
+
throw new ValidationError(`Ontology "${manifest.ontologyId}" is not registered on this server. `
|
|
116
|
+
+ `Available: ${registeredOntologies.map(o => `"${o.ontologyId}"`).join(', ')}.`);
|
|
117
|
+
}
|
|
111
118
|
const requiredRoles = (ontology?.sourceRoles ?? []).filter(role => role.required).map(role => role.id);
|
|
112
119
|
if (requiredRoles.length > 0) {
|
|
113
120
|
const presentRoles = new Set(manifest.sources.map(s => s.role));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@braidhq/server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "REST + SSE server for Braid.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -22,29 +22,29 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@hono/node-server": "^2.0
|
|
26
|
-
"@hono/zod-openapi": "^1.5.
|
|
25
|
+
"@hono/node-server": "^2.1.0",
|
|
26
|
+
"@hono/zod-openapi": "^1.5.3",
|
|
27
27
|
"@hono/zod-validator": "^0.9.0",
|
|
28
|
-
"hono": "^4.12.
|
|
28
|
+
"hono": "^4.12.34",
|
|
29
29
|
"pino": "^10.3.1",
|
|
30
30
|
"simple-git": "^3.36.0",
|
|
31
31
|
"yaml": "^2.9.0",
|
|
32
32
|
"zod": "^4.2.1",
|
|
33
|
-
"@braidhq/agent-claude-code": "0.
|
|
34
|
-
"@braidhq/
|
|
35
|
-
"@braidhq/
|
|
36
|
-
"@braidhq/
|
|
37
|
-
"@braidhq/
|
|
38
|
-
"@braidhq/source-loader-git": "0.
|
|
39
|
-
"@braidhq/source-loader-github": "0.
|
|
40
|
-
"@braidhq/storage-kuzu": "0.
|
|
33
|
+
"@braidhq/agent-claude-code": "0.3.0",
|
|
34
|
+
"@braidhq/ontology-ddd": "0.3.0",
|
|
35
|
+
"@braidhq/schema": "0.3.0",
|
|
36
|
+
"@braidhq/core": "0.3.0",
|
|
37
|
+
"@braidhq/source-loader-gdrive": "0.3.0",
|
|
38
|
+
"@braidhq/source-loader-git": "0.3.0",
|
|
39
|
+
"@braidhq/source-loader-github": "0.3.0",
|
|
40
|
+
"@braidhq/storage-kuzu": "0.3.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"esbuild": "^0.28.
|
|
44
|
-
"tsx": "^4.23.
|
|
43
|
+
"esbuild": "^0.28.2",
|
|
44
|
+
"tsx": "^4.23.12",
|
|
45
45
|
"typescript": "^6.0.3",
|
|
46
46
|
"vitest": "^4.1.10",
|
|
47
|
-
"@braidhq/test-utils": "0.
|
|
47
|
+
"@braidhq/test-utils": "0.3.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|