botnote 0.1.50 → 0.1.52
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 +80 -4
- package/dist/bin.js +108 -0
- package/dist/bin.js.map +1 -1
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/mcp/server.js +95 -18
- package/dist/mcp/server.js.map +1 -1
- package/dist/rest/auth.d.ts +47 -0
- package/dist/rest/auth.js +116 -0
- package/dist/rest/auth.js.map +1 -0
- package/dist/rest/routes.js +10 -12
- package/dist/rest/routes.js.map +1 -1
- package/dist/rest/server.d.ts +4 -1
- package/dist/rest/server.js +21 -34
- package/dist/rest/server.js.map +1 -1
- package/dist/service/types.d.ts +36 -36
- package/package.json +1 -1
- package/web/dist/assets/{index-Bb8Ou6Tf.js → index-DXczx4Rt.js} +13 -13
- package/web/dist/index.html +1 -1
package/dist/rest/server.js
CHANGED
|
@@ -12,6 +12,7 @@ import { hasZodFastifySchemaValidationErrors, isResponseSerializationError, json
|
|
|
12
12
|
import { consumeSession } from "../service/sessions.js";
|
|
13
13
|
import { consumeToken } from "../service/tokens.js";
|
|
14
14
|
import { VERSION } from "../version.js";
|
|
15
|
+
import { authConfigFromEnv, clientIp, describeAuthConfig, isTrustedProxy, isTrustedWithoutCredential } from "./auth.js";
|
|
15
16
|
import { registerRoutes } from "./routes.js";
|
|
16
17
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
17
18
|
function resolveWebDist(explicit) {
|
|
@@ -45,25 +46,16 @@ function defaultCorsOrigins() {
|
|
|
45
46
|
}
|
|
46
47
|
return built;
|
|
47
48
|
}
|
|
48
|
-
/** Read the caller's real IP. cf-connecting-ip is set by Cloudflare for every
|
|
49
|
-
* request that goes through CF Tunnel — without it, rate-limit would key on
|
|
50
|
-
* the tunnel's loopback address and the whole world would share one bucket. */
|
|
51
|
-
function clientIp(req) {
|
|
52
|
-
const cf = req.headers["cf-connecting-ip"];
|
|
53
|
-
if (typeof cf === "string" && cf)
|
|
54
|
-
return cf;
|
|
55
|
-
const xff = req.headers["x-forwarded-for"];
|
|
56
|
-
if (typeof xff === "string" && xff)
|
|
57
|
-
return xff.split(",")[0].trim();
|
|
58
|
-
return req.ip;
|
|
59
|
-
}
|
|
60
49
|
export async function buildServer(opts) {
|
|
61
50
|
const isProduction = process.env.NODE_ENV === "production";
|
|
51
|
+
const auth = opts.auth ?? authConfigFromEnv();
|
|
62
52
|
const app = Fastify({
|
|
63
53
|
logger: { level: opts.logLevel ?? "info" },
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
54
|
+
// Only peers listed in BOTNOTE_TRUST_PROXY may rewrite req.ip through
|
|
55
|
+
// x-forwarded-for. cf-connecting-ip is handled by clientIp() with the
|
|
56
|
+
// same peer check, because Cloudflare's tunnel connects from loopback and
|
|
57
|
+
// without it the whole internet would share one rate-limit bucket.
|
|
58
|
+
trustProxy: (address) => isTrustedProxy(address, auth.trustedProxies)
|
|
67
59
|
}).withTypeProvider();
|
|
68
60
|
app.setValidatorCompiler(validatorCompiler);
|
|
69
61
|
app.setSerializerCompiler(serializerCompiler);
|
|
@@ -88,7 +80,7 @@ export async function buildServer(opts) {
|
|
|
88
80
|
// leaked token can't quietly exfil thousands of entities per second.
|
|
89
81
|
max: 1000,
|
|
90
82
|
timeWindow: "1 minute",
|
|
91
|
-
keyGenerator: (req) => clientIp(req),
|
|
83
|
+
keyGenerator: (req) => clientIp(req, auth),
|
|
92
84
|
// /health is a probe; /assets/* are dozens of static files per page load.
|
|
93
85
|
// Counting them would cap real API headroom for no benefit.
|
|
94
86
|
allowList: (req) => {
|
|
@@ -178,13 +170,12 @@ export async function buildServer(opts) {
|
|
|
178
170
|
return reply.code(500).send({ error: "server_error" });
|
|
179
171
|
});
|
|
180
172
|
// ----- auth -----
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
if (requireAuth) {
|
|
173
|
+
// Every /v1 request needs a session cookie or bearer token, except a direct
|
|
174
|
+
// loopback connection when BOTNOTE_TRUST_LOCALHOST is on. Whether a request
|
|
175
|
+
// is "loopback" is decided by the TCP peer address, never by headers: a LAN
|
|
176
|
+
// client hitting a 0.0.0.0 bind gets the same gate as the public internet,
|
|
177
|
+
// and forged x-forwarded-for from an untrusted peer changes nothing.
|
|
178
|
+
if (auth.required) {
|
|
188
179
|
// IMPORTANT: register at onRequest, not preHandler. fastify-type-provider-zod
|
|
189
180
|
// runs schema validation at preValidation, which is BEFORE preHandler — so
|
|
190
181
|
// a preHandler auth gate lets an unauthenticated POST get a 400 zod error
|
|
@@ -200,9 +191,8 @@ export async function buildServer(opts) {
|
|
|
200
191
|
req.url.startsWith("/v1/auth/logout")) {
|
|
201
192
|
return;
|
|
202
193
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return; // direct private-network/localhost access is trusted
|
|
194
|
+
if (isTrustedWithoutCredential(req, auth))
|
|
195
|
+
return;
|
|
206
196
|
// Browser path: session cookie set by /v1/auth/login.
|
|
207
197
|
const cookieToken = req.cookies?.botnote_session;
|
|
208
198
|
if (cookieToken) {
|
|
@@ -211,21 +201,18 @@ export async function buildServer(opts) {
|
|
|
211
201
|
return;
|
|
212
202
|
}
|
|
213
203
|
// CLI / MCP path: bearer token.
|
|
214
|
-
const
|
|
215
|
-
if (
|
|
216
|
-
const plaintext =
|
|
204
|
+
const authHeader = req.headers.authorization;
|
|
205
|
+
if (authHeader && authHeader.startsWith("Bearer ")) {
|
|
206
|
+
const plaintext = authHeader.slice("Bearer ".length).trim();
|
|
217
207
|
const tok = await consumeToken(opts.db, plaintext);
|
|
218
208
|
if (tok)
|
|
219
209
|
return;
|
|
220
210
|
}
|
|
221
211
|
return reply.code(401).send({ error: "unauthenticated" });
|
|
222
212
|
});
|
|
223
|
-
app.log.info("auth: required for /v1/* via reverse proxy (cookie or bearer; direct access trusted)");
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
app.log.info("auth: disabled (set BOTNOTE_REQUIRE_AUTH=1 to enforce)");
|
|
227
213
|
}
|
|
228
|
-
|
|
214
|
+
app.log.info(describeAuthConfig(auth));
|
|
215
|
+
await registerRoutes(app, { db: opts.db, embedding: opts.embedding, auth });
|
|
229
216
|
const webDist = resolveWebDist(opts.webDist);
|
|
230
217
|
if (webDist) {
|
|
231
218
|
await app.register(fastifyStatic, {
|
package/dist/rest/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rest/server.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAsD,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/rest/server.ts"],"names":[],"mappings":"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"}
|
package/dist/service/types.d.ts
CHANGED
|
@@ -31,31 +31,31 @@ export declare const WriteInput: z.ZodObject<{
|
|
|
31
31
|
}, "strip", z.ZodTypeAny, {
|
|
32
32
|
status: string;
|
|
33
33
|
priority: "none" | "urgent" | "high" | "medium" | "low";
|
|
34
|
-
kind: "task" | "note" | "comment" | "feedback";
|
|
35
|
-
body: string;
|
|
36
34
|
tags: string[];
|
|
35
|
+
kind: "task" | "comment" | "note" | "feedback";
|
|
36
|
+
body: string;
|
|
37
37
|
actorKind: "human" | "agent" | "system";
|
|
38
38
|
metadata: Record<string, unknown>;
|
|
39
39
|
pinned: boolean;
|
|
40
|
-
|
|
40
|
+
dueAt?: Date | null | undefined;
|
|
41
41
|
title?: string | null | undefined;
|
|
42
|
+
projectId?: string | null | undefined;
|
|
42
43
|
idempotencyKey?: string | null | undefined;
|
|
43
44
|
parentId?: string | null | undefined;
|
|
44
|
-
dueAt?: Date | null | undefined;
|
|
45
45
|
completedAt?: Date | null | undefined;
|
|
46
46
|
}, {
|
|
47
|
-
kind: "task" | "
|
|
47
|
+
kind: "task" | "comment" | "note" | "feedback";
|
|
48
48
|
status?: string | undefined;
|
|
49
49
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
50
|
-
|
|
50
|
+
dueAt?: Date | null | undefined;
|
|
51
51
|
title?: string | null | undefined;
|
|
52
|
-
|
|
52
|
+
projectId?: string | null | undefined;
|
|
53
53
|
tags?: string[] | undefined;
|
|
54
|
+
body?: string | undefined;
|
|
54
55
|
actorKind?: "human" | "agent" | "system" | undefined;
|
|
55
56
|
idempotencyKey?: string | null | undefined;
|
|
56
57
|
parentId?: string | null | undefined;
|
|
57
58
|
metadata?: Record<string, unknown> | undefined;
|
|
58
|
-
dueAt?: Date | null | undefined;
|
|
59
59
|
pinned?: boolean | undefined;
|
|
60
60
|
completedAt?: Date | null | undefined;
|
|
61
61
|
}>;
|
|
@@ -80,27 +80,27 @@ export declare const CreateTaskInput: z.ZodObject<{
|
|
|
80
80
|
status: "open" | "in_progress" | "done" | "rejected";
|
|
81
81
|
priority: "none" | "urgent" | "high" | "medium" | "low";
|
|
82
82
|
title: string;
|
|
83
|
-
body: string;
|
|
84
83
|
tags: string[];
|
|
84
|
+
body: string;
|
|
85
85
|
actorKind: "human" | "agent" | "system";
|
|
86
86
|
metadata: Record<string, unknown>;
|
|
87
|
+
dueAt?: Date | null | undefined;
|
|
87
88
|
projectId?: string | null | undefined;
|
|
88
89
|
idempotencyKey?: string | null | undefined;
|
|
89
90
|
parentId?: string | null | undefined;
|
|
90
|
-
dueAt?: Date | null | undefined;
|
|
91
91
|
completedAt?: Date | null | undefined;
|
|
92
92
|
}, {
|
|
93
93
|
title: string;
|
|
94
94
|
status?: unknown;
|
|
95
95
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
96
|
+
dueAt?: Date | null | undefined;
|
|
96
97
|
projectId?: string | null | undefined;
|
|
97
|
-
body?: string | undefined;
|
|
98
98
|
tags?: string[] | undefined;
|
|
99
|
+
body?: string | undefined;
|
|
99
100
|
actorKind?: "human" | "agent" | "system" | undefined;
|
|
100
101
|
idempotencyKey?: string | null | undefined;
|
|
101
102
|
parentId?: string | null | undefined;
|
|
102
103
|
metadata?: Record<string, unknown> | undefined;
|
|
103
|
-
dueAt?: Date | null | undefined;
|
|
104
104
|
completedAt?: Date | null | undefined;
|
|
105
105
|
}>;
|
|
106
106
|
export type CreateTaskInput = z.infer<typeof CreateTaskInput>;
|
|
@@ -120,22 +120,22 @@ export declare const CreateNoteInput: z.ZodObject<{
|
|
|
120
120
|
supersedes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
121
121
|
idempotencyKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
122
122
|
}, "strip", z.ZodTypeAny, {
|
|
123
|
-
body: string;
|
|
124
123
|
tags: string[];
|
|
124
|
+
body: string;
|
|
125
125
|
actorKind: "human" | "agent" | "system";
|
|
126
126
|
metadata: Record<string, unknown>;
|
|
127
127
|
pinned: boolean;
|
|
128
|
-
supersedes?: string | null | undefined;
|
|
129
|
-
projectId?: string | null | undefined;
|
|
130
128
|
title?: string | null | undefined;
|
|
129
|
+
projectId?: string | null | undefined;
|
|
130
|
+
supersedes?: string | null | undefined;
|
|
131
131
|
idempotencyKey?: string | null | undefined;
|
|
132
132
|
parentId?: string | null | undefined;
|
|
133
133
|
}, {
|
|
134
|
-
supersedes?: string | null | undefined;
|
|
135
|
-
projectId?: string | null | undefined;
|
|
136
134
|
title?: string | null | undefined;
|
|
137
|
-
|
|
135
|
+
projectId?: string | null | undefined;
|
|
138
136
|
tags?: string[] | undefined;
|
|
137
|
+
supersedes?: string | null | undefined;
|
|
138
|
+
body?: string | undefined;
|
|
139
139
|
actorKind?: "human" | "agent" | "system" | undefined;
|
|
140
140
|
idempotencyKey?: string | null | undefined;
|
|
141
141
|
parentId?: string | null | undefined;
|
|
@@ -239,13 +239,13 @@ export declare const UpdateInput: z.ZodEffects<z.ZodObject<{
|
|
|
239
239
|
}, "strip", z.ZodTypeAny, {
|
|
240
240
|
status?: "open" | "in_progress" | "done" | "rejected" | undefined;
|
|
241
241
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
242
|
-
|
|
242
|
+
dueAt?: Date | null | undefined;
|
|
243
243
|
title?: string | null | undefined;
|
|
244
|
-
|
|
244
|
+
projectId?: string | null | undefined;
|
|
245
245
|
tags?: string[] | undefined;
|
|
246
|
+
body?: string | undefined;
|
|
246
247
|
parentId?: string | null | undefined;
|
|
247
248
|
metadata?: Record<string, unknown> | undefined;
|
|
248
|
-
dueAt?: Date | null | undefined;
|
|
249
249
|
pinned?: boolean | undefined;
|
|
250
250
|
completedAt?: Date | null | undefined;
|
|
251
251
|
bodyAppend?: string | undefined;
|
|
@@ -253,13 +253,13 @@ export declare const UpdateInput: z.ZodEffects<z.ZodObject<{
|
|
|
253
253
|
}, {
|
|
254
254
|
status?: unknown;
|
|
255
255
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
256
|
-
|
|
256
|
+
dueAt?: Date | null | undefined;
|
|
257
257
|
title?: string | null | undefined;
|
|
258
|
-
|
|
258
|
+
projectId?: string | null | undefined;
|
|
259
259
|
tags?: string[] | undefined;
|
|
260
|
+
body?: string | undefined;
|
|
260
261
|
parentId?: string | null | undefined;
|
|
261
262
|
metadata?: Record<string, unknown> | undefined;
|
|
262
|
-
dueAt?: Date | null | undefined;
|
|
263
263
|
pinned?: boolean | undefined;
|
|
264
264
|
completedAt?: Date | null | undefined;
|
|
265
265
|
bodyAppend?: string | undefined;
|
|
@@ -267,13 +267,13 @@ export declare const UpdateInput: z.ZodEffects<z.ZodObject<{
|
|
|
267
267
|
}>, {
|
|
268
268
|
status?: "open" | "in_progress" | "done" | "rejected" | undefined;
|
|
269
269
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
270
|
-
|
|
270
|
+
dueAt?: Date | null | undefined;
|
|
271
271
|
title?: string | null | undefined;
|
|
272
|
-
|
|
272
|
+
projectId?: string | null | undefined;
|
|
273
273
|
tags?: string[] | undefined;
|
|
274
|
+
body?: string | undefined;
|
|
274
275
|
parentId?: string | null | undefined;
|
|
275
276
|
metadata?: Record<string, unknown> | undefined;
|
|
276
|
-
dueAt?: Date | null | undefined;
|
|
277
277
|
pinned?: boolean | undefined;
|
|
278
278
|
completedAt?: Date | null | undefined;
|
|
279
279
|
bodyAppend?: string | undefined;
|
|
@@ -281,13 +281,13 @@ export declare const UpdateInput: z.ZodEffects<z.ZodObject<{
|
|
|
281
281
|
}, {
|
|
282
282
|
status?: unknown;
|
|
283
283
|
priority?: "none" | "urgent" | "high" | "medium" | "low" | undefined;
|
|
284
|
-
|
|
284
|
+
dueAt?: Date | null | undefined;
|
|
285
285
|
title?: string | null | undefined;
|
|
286
|
-
|
|
286
|
+
projectId?: string | null | undefined;
|
|
287
287
|
tags?: string[] | undefined;
|
|
288
|
+
body?: string | undefined;
|
|
288
289
|
parentId?: string | null | undefined;
|
|
289
290
|
metadata?: Record<string, unknown> | undefined;
|
|
290
|
-
dueAt?: Date | null | undefined;
|
|
291
291
|
pinned?: boolean | undefined;
|
|
292
292
|
completedAt?: Date | null | undefined;
|
|
293
293
|
bodyAppend?: string | undefined;
|
|
@@ -567,12 +567,12 @@ export declare const SearchInput: z.ZodObject<{
|
|
|
567
567
|
limit: number;
|
|
568
568
|
query: string;
|
|
569
569
|
projectId?: string | null | undefined;
|
|
570
|
-
kind?: "task" | "
|
|
570
|
+
kind?: "task" | "comment" | "note" | "feedback" | null | undefined;
|
|
571
571
|
}, {
|
|
572
572
|
query: string;
|
|
573
|
-
limit?: number | undefined;
|
|
574
573
|
projectId?: string | null | undefined;
|
|
575
|
-
|
|
574
|
+
limit?: number | undefined;
|
|
575
|
+
kind?: "task" | "comment" | "note" | "feedback" | null | undefined;
|
|
576
576
|
}>;
|
|
577
577
|
export type SearchInput = z.infer<typeof SearchInput>;
|
|
578
578
|
export declare const RecentInput: z.ZodObject<{
|
|
@@ -584,12 +584,12 @@ export declare const RecentInput: z.ZodObject<{
|
|
|
584
584
|
limit: number;
|
|
585
585
|
projectId?: string | null | undefined;
|
|
586
586
|
since?: Date | null | undefined;
|
|
587
|
-
kinds?: ("task" | "
|
|
587
|
+
kinds?: ("task" | "comment" | "note" | "feedback")[] | null | undefined;
|
|
588
588
|
}, {
|
|
589
|
-
limit?: number | undefined;
|
|
590
589
|
projectId?: string | null | undefined;
|
|
590
|
+
limit?: number | undefined;
|
|
591
591
|
since?: Date | null | undefined;
|
|
592
|
-
kinds?: ("task" | "
|
|
592
|
+
kinds?: ("task" | "comment" | "note" | "feedback")[] | null | undefined;
|
|
593
593
|
}>;
|
|
594
594
|
export type RecentInput = z.infer<typeof RecentInput>;
|
|
595
595
|
export declare const TasksRangeInput: z.ZodObject<{
|