Skip to content

Commit 74bd76c

Browse files
chore: merge main into rewrite/main (astro 7, website dependency bumps)
Brings #1038 and the release commit that followed it onto the sync branch, so the guard the site change closes is closed here too rather than carried as a branch difference. No conflicts.
2 parents 8a7065c + c358a6a commit 74bd76c

8 files changed

Lines changed: 1475 additions & 1521 deletions

File tree

‎.changeset/astro-7-website.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
---
3+
4+
fix(deps): astro 7.4.4 and sharp 0.35.5 in website/site
5+
6+
No published package changes: `website/site` is a private workspace package and
7+
is not part of the release set, so this changeset is empty on purpose. The bump
8+
closes a critical advisory in astro (< 7.2.8) and three highs in astro and sharp.

‎.changeset/knex-3-2-9-security.md‎

Lines changed: 0 additions & 22 deletions
This file was deleted.

‎.changeset/peering-peer-auth.md‎

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎.knip.json‎

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,48 @@
11
{
2-
"$schema": "https://unpkg.com/knip@2/schema.json",
3-
"workspaces": {
4-
".": {
5-
"entry": [
6-
"src/index.ts!",
7-
"src/import-events.ts!",
8-
"src/cli/index.ts!",
9-
"src/scripts/benchmark-queries.ts!",
10-
"knexfile.js!"
11-
],
12-
"project": [
13-
"src/**/*.ts!"
14-
],
15-
"ignoreDependencies": [
16-
"lzma-native"
17-
],
18-
"ignore": [
19-
".nostr/**",
20-
"src/utils/relay-probe/**"
21-
],
22-
"commitlint": false,
23-
"eslint": false,
24-
"github-actions": false,
25-
"husky": false,
26-
"mocha": false,
27-
"nyc": false,
28-
"semantic-release": false
29-
},
30-
"website/site": {
31-
"entry": [
32-
"astro.config.mjs",
33-
"src/**/*.{astro,ts,mjs}",
34-
"scripts/*.mjs",
35-
"worker/**/*.ts"
36-
],
37-
"ignoreDependencies": [
38-
"@fontsource-variable/inter",
39-
"@fontsource/jetbrains-mono",
40-
"astro",
41-
"sharp",
42-
"wrangler"
43-
],
44-
"astro": true
45-
}
2+
"$schema": "https://unpkg.com/knip@2/schema.json",
3+
"workspaces": {
4+
".": {
5+
"entry": [
6+
"src/index.ts!",
7+
"src/import-events.ts!",
8+
"src/cli/index.ts!",
9+
"src/scripts/benchmark-queries.ts!",
10+
"knexfile.js!"
11+
],
12+
"project": [
13+
"src/**/*.ts!"
14+
],
15+
"ignoreDependencies": [
16+
"lzma-native"
17+
],
18+
"ignore": [
19+
".nostr/**",
20+
"src/utils/relay-probe/**"
21+
],
22+
"commitlint": false,
23+
"eslint": false,
24+
"github-actions": false,
25+
"husky": false,
26+
"mocha": false,
27+
"nyc": false,
28+
"semantic-release": false
29+
},
30+
"website/site": {
31+
"entry": [
32+
"astro.config.mjs",
33+
"src/**/*.{astro,ts,mjs}",
34+
"scripts/*.mjs",
35+
"worker/**/*.ts"
36+
],
37+
"ignoreDependencies": [
38+
"@fontsource-variable/inter",
39+
"@fontsource/jetbrains-mono",
40+
"astro",
41+
"sharp",
42+
"wrangler",
43+
"@astrojs/markdown-remark"
44+
],
45+
"astro": true
4646
}
47+
}
4748
}

‎CHANGELOG.md‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,43 @@
11
# nostream
22

3+
## 3.11.0
4+
5+
### Minor Changes
6+
7+
- [#1030](https://github.com/cameri/nostream/pull/1030) [`9b585db`](https://github.com/cameri/nostream/commit/9b585db93796b4149d3932487686a46a597b7643) Thanks [@Ferryx349](https://github.com/Ferryx349)! - feat(peering): authenticate peer relays with NIP-42 using the relay keypair
8+
9+
Adds the peering identity layer: a configured `peering.peers` trust list keyed
10+
by relay pubkey (hex or `npub`), outbound NIP-42 AUTH signed with the relay's own
11+
keypair, and inbound recognition of a verified peer pubkey on the connection
12+
state. Peer status is tied to the NIP-42 session, so it expires or clears with
13+
the socket; a valid AUTH from an unconfigured pubkey stays an ordinary client.
14+
15+
`peering.peers[].relayUrl` is the outbound address only — identity is always the
16+
verified pubkey, never the URL. Relay key storage and the AUTH exchange are
17+
documented in `docs/PEERING.md`, and the new fields are validated with the rest
18+
of the settings document.
19+
20+
### Patch Changes
21+
22+
- [#1024](https://github.com/cameri/nostream/pull/1024) [`eb304b8`](https://github.com/cameri/nostream/commit/eb304b80c9cb997634509df8ef8155fe8ef619dd) Thanks [@chappie-daemon](https://github.com/chappie-daemon)! - fix(deps): bump knex to 3.2.9 for the search_path SQL injection (AIKIDO-2026-10469)
23+
24+
knex 0.0.1–3.2.8 interpolates values passed to `searchPath` for the Postgres
25+
dialect into generated SQL without validating or escaping them, so a value an
26+
attacker can influence becomes an injected identifier. 3.2.9 escapes the double
27+
quotes ([#6411](https://github.com/cameri/nostream/issues/6411)); this repository declares `knex` 2.4.2 on both the default branch
28+
and `rewrite/main`.
29+
30+
nostream never sets `searchPath` — `grep -rn "search_path" src/` finds nothing —
31+
so the reachable path is not exercised today, and the bump is taken to remove a
32+
vulnerable dependency from the image, not to close a reachable hole.
33+
34+
knex 3.0.0 drops Node < 16, which the repo already requires (>=24.14.1), and 3.2.0
35+
tightens `RawBinding`. The one compile error that surfaced,
36+
`src/scripts/benchmark-queries.ts` passing `bindings as readonly unknown[]` to
37+
`db.raw()`, is fixed by dropping the assertion: `toSQL().bindings` is already the
38+
accepted type. The emitted JavaScript is byte-identical with and without the
39+
assertion.
40+
341
## 3.10.2
442

543
### Patch Changes

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nostream",
3-
"version": "3.10.2",
3+
"version": "3.11.0",
44
"packageManager": "pnpm@10.33.0",
55
"private": true,
66
"description": "A Nostr relay written in Typescript.",

0 commit comments

Comments
 (0)