Skip to content

Commit 3583a2b

Browse files
committed
release: v0.4.0-alpha.1 — JSS parity migration (F1-F7)
- Restructure repo to Cargo workspace with library + server + 4 reserved sibling crates (solid-pod-rs, solid-pod-rs-server, solid-pod-rs-activitypub, solid-pod-rs-git, solid-pod-rs-idp, solid-pod-rs-nostr). - Add SSRF guard, dotfile allowlist, legacy solid-0.1 notifications adapter, WAC acl:origin enforcement, DPoP jti replay cache, JSS-compatible layered config loader. - Rewrite workspace README for 0.4.0; retire old alpha-history content. - Bump workspace version to 0.4.0-alpha.1; repository URLs point to github.com/dreamlab-ai/solid-pod-rs.
1 parent bb5e623 commit 3583a2b

168 files changed

Lines changed: 21995 additions & 1938 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
* text=auto eol=lf
2+
*.rs text eol=lf diff=rust
3+
*.toml text eol=lf
4+
*.md text eol=lf
5+
*.yml text eol=lf
6+
*.yaml text eol=lf
7+
*.json text eol=lf
8+
*.ttl text eol=lf
9+
*.jsonld text eol=lf
10+
*.html text eol=lf
11+
*.css text eol=lf
12+
Cargo.lock text eol=lf

.github/CODEOWNERS

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# CODEOWNERS for solid-pod-rs
2+
#
3+
# Order matters: the last matching pattern takes precedence.
4+
# Docs: https://docs.github.com/en/repositories/managing-your-repositories-settings-and-features/customizing-your-repository/about-code-owners
5+
6+
# Default — every file requires a maintainer review.
7+
* @dreamlab-ai/solid-pod-rs-maintainers
8+
9+
# CI / release plumbing — require at least one maintainer sign-off.
10+
/.github/ @dreamlab-ai/solid-pod-rs-maintainers
11+
/.github/workflows/ @dreamlab-ai/solid-pod-rs-maintainers
12+
/deny.toml @dreamlab-ai/solid-pod-rs-maintainers
13+
/rustfmt.toml @dreamlab-ai/solid-pod-rs-maintainers
14+
/clippy.toml @dreamlab-ai/solid-pod-rs-maintainers
15+
16+
# Security-sensitive files.
17+
/SECURITY.md @dreamlab-ai/solid-pod-rs-maintainers
18+
/src/auth/ @dreamlab-ai/solid-pod-rs-maintainers
19+
/src/oidc.rs @dreamlab-ai/solid-pod-rs-maintainers
20+
/src/wac.rs @dreamlab-ai/solid-pod-rs-maintainers
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Bug report
2+
description: Report a defect in solid-pod-rs
3+
title: "[bug] "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to file a bug report. Before submitting, please
10+
check the existing issues to avoid duplicates and make sure you are on
11+
the latest release.
12+
13+
- type: input
14+
id: version
15+
attributes:
16+
label: solid-pod-rs version
17+
description: Output of `cargo tree -p solid-pod-rs --depth 0` or the git SHA.
18+
placeholder: "0.2.0-alpha.1"
19+
validations:
20+
required: true
21+
22+
- type: input
23+
id: rustc
24+
attributes:
25+
label: rustc version
26+
description: Output of `rustc --version`.
27+
placeholder: "rustc 1.81.0 (eeb90cda1 2024-09-04)"
28+
validations:
29+
required: true
30+
31+
- type: dropdown
32+
id: os
33+
attributes:
34+
label: Operating system
35+
options:
36+
- Linux
37+
- macOS
38+
- Windows
39+
- WebAssembly / wasm32
40+
- Other
41+
validations:
42+
required: true
43+
44+
- type: checkboxes
45+
id: features
46+
attributes:
47+
label: Active Cargo features
48+
options:
49+
- label: default (fs-backend + memory-backend)
50+
- label: fs-backend
51+
- label: memory-backend
52+
- label: s3-backend
53+
- label: oidc
54+
55+
- type: textarea
56+
id: summary
57+
attributes:
58+
label: Summary
59+
description: Short description of what went wrong.
60+
validations:
61+
required: true
62+
63+
- type: textarea
64+
id: repro
65+
attributes:
66+
label: Steps to reproduce
67+
description: Minimal reproducer. Include code, configuration, and the commands you ran.
68+
placeholder: |
69+
1. Create a pod with ...
70+
2. Send request ...
71+
3. Observe response ...
72+
render: markdown
73+
validations:
74+
required: true
75+
76+
- type: textarea
77+
id: expected
78+
attributes:
79+
label: Expected behaviour
80+
validations:
81+
required: true
82+
83+
- type: textarea
84+
id: actual
85+
attributes:
86+
label: Actual behaviour
87+
description: Include full error output, logs, and any stack traces.
88+
render: shell
89+
validations:
90+
required: true
91+
92+
- type: textarea
93+
id: additional
94+
attributes:
95+
label: Additional context
96+
description: Anything else that may help us diagnose the problem.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Feature request
2+
description: Propose a new feature or enhancement
3+
title: "[feat] "
4+
labels: ["enhancement", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for your interest in improving solid-pod-rs. Please describe the
10+
problem you are trying to solve before suggesting a specific solution.
11+
12+
- type: textarea
13+
id: problem
14+
attributes:
15+
label: Problem statement
16+
description: What user-facing problem does this address? Who is affected?
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: proposal
22+
attributes:
23+
label: Proposed solution
24+
description: How should solid-pod-rs behave? Include API sketches if useful.
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives considered
32+
description: Other approaches you evaluated and why they were rejected.
33+
34+
- type: dropdown
35+
id: area
36+
attributes:
37+
label: Area
38+
options:
39+
- WAC (Web Access Control)
40+
- LDP (Linked Data Platform)
41+
- Notifications
42+
- Solid-OIDC / auth
43+
- Storage backend
44+
- WebID
45+
- Observability
46+
- Documentation
47+
- Other
48+
validations:
49+
required: true
50+
51+
- type: checkboxes
52+
id: breakage
53+
attributes:
54+
label: Compatibility
55+
options:
56+
- label: This is a breaking change
57+
- label: I am willing to open a PR
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Parity gap (vs JSS)
2+
description: Report behaviour that differs from the reference Solid server implementation
3+
title: "[parity] "
4+
labels: ["parity", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Use this template when solid-pod-rs disagrees with a reference
10+
implementation (typically JavaScriptSolidServer, JSS) on a
11+
specification-level behaviour. See `PARITY-CHECKLIST.md` for the running
12+
list of tracked items.
13+
14+
- type: input
15+
id: spec
16+
attributes:
17+
label: Specification section
18+
description: Which spec + section? (e.g. Solid Protocol §5.1, LDP §4.2)
19+
placeholder: "Solid Protocol v0.10.0 §5.2 — WAC inheritance"
20+
validations:
21+
required: true
22+
23+
- type: input
24+
id: reference
25+
attributes:
26+
label: Reference implementation
27+
description: Which implementation + version was the behaviour compared against?
28+
placeholder: "javascript-solid-server 0.0.86"
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: scenario
34+
attributes:
35+
label: Scenario
36+
description: The exact request(s) or operation(s) used to demonstrate the divergence.
37+
render: http
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: jss-behaviour
43+
attributes:
44+
label: JSS / reference behaviour
45+
description: Response body, status codes, headers — include all observable effects.
46+
render: shell
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: solid-pod-rs-behaviour
52+
attributes:
53+
label: solid-pod-rs behaviour
54+
description: What solid-pod-rs actually does. Same level of detail as above.
55+
render: shell
56+
validations:
57+
required: true
58+
59+
- type: dropdown
60+
id: severity
61+
attributes:
62+
label: Severity
63+
options:
64+
- Blocks interop with existing clients
65+
- Spec non-conformance, workaround exists
66+
- Edge case / clarification needed
67+
validations:
68+
required: true
69+
70+
- type: textarea
71+
id: test-case
72+
attributes:
73+
label: Suggested regression test
74+
description: If you have a pytest/cargo-test snippet or curl transcript, paste it here.
75+
render: rust
76+
77+
- type: checkboxes
78+
id: parity-checklist
79+
attributes:
80+
label: Parity checklist
81+
options:
82+
- label: I have searched `PARITY-CHECKLIST.md` and this gap is not already tracked
83+
- label: I have confirmed the behaviour on the latest `main`
84+
- label: I am willing to contribute a regression test

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<!--
2+
Thanks for contributing to solid-pod-rs!
3+
Please fill in the sections below. Delete any that do not apply.
4+
-->
5+
6+
## Summary
7+
8+
<!-- One or two sentences explaining what this PR does and why. -->
9+
10+
## Related issues
11+
12+
<!-- Link to issues: "Closes #123", "Refs #456". -->
13+
14+
## Type of change
15+
16+
- [ ] Bug fix (non-breaking change that resolves an issue)
17+
- [ ] New feature (non-breaking change that adds functionality)
18+
- [ ] Breaking change (fix or feature that changes public API)
19+
- [ ] Documentation update
20+
- [ ] CI / tooling / build
21+
- [ ] Parity fix (behaviour alignment with reference Solid server)
22+
23+
## Checklist
24+
25+
- [ ] `cargo fmt --all -- --check` passes
26+
- [ ] `cargo clippy --all-targets --all-features -- -D warnings` passes
27+
- [ ] `cargo test --all-features` passes locally
28+
- [ ] `cargo doc --no-deps` produces no broken intra-doc links
29+
- [ ] Added or updated unit / integration tests for the change
30+
- [ ] Updated `CHANGELOG.md` under the `[Unreleased]` section
31+
- [ ] Updated `README.md` / rustdoc where public API changed
32+
- [ ] No new `unwrap`/`expect` in non-test code without justification
33+
34+
## Parity checklist (if applicable)
35+
36+
<!-- Tick these only when the PR changes user-visible behaviour compared to JSS. -->
37+
38+
- [ ] Behaviour verified against the reference Solid server
39+
- [ ] `PARITY-CHECKLIST.md` updated (entry added, moved, or closed)
40+
- [ ] Interop regression test added under `tests/interop_jss.rs` or similar
41+
42+
## Security impact
43+
44+
<!-- Does this change touch auth, WAC, OIDC, or input parsing? If so, describe the threat model delta. -->
45+
46+
## Performance impact
47+
48+
<!-- Benchmark numbers or "no measurable impact" with rationale. -->
49+
50+
## Notes for reviewers
51+
52+
<!-- Anything reviewers should focus on. -->

.github/dependabot.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
version: 2
2+
3+
updates:
4+
# Rust dependencies for the solid-pod-rs crate
5+
- package-ecosystem: cargo
6+
directory: "/crates/solid-pod-rs"
7+
schedule:
8+
interval: weekly
9+
day: monday
10+
time: "06:00"
11+
timezone: "Etc/UTC"
12+
open-pull-requests-limit: 10
13+
labels:
14+
- dependencies
15+
- rust
16+
- solid-pod-rs
17+
commit-message:
18+
prefix: "chore(deps)"
19+
include: scope
20+
groups:
21+
tokio-stack:
22+
patterns:
23+
- "tokio*"
24+
- "futures*"
25+
- "tokio-tungstenite"
26+
serde-stack:
27+
patterns:
28+
- "serde"
29+
- "serde_*"
30+
tracing-stack:
31+
patterns:
32+
- "tracing"
33+
- "tracing-*"
34+
aws-sdk:
35+
patterns:
36+
- "aws-*"
37+
openid-stack:
38+
patterns:
39+
- "openidconnect"
40+
- "jsonwebtoken"
41+
42+
# GitHub Actions versions used by solid-pod-rs workflows
43+
- package-ecosystem: github-actions
44+
directory: "/crates/solid-pod-rs"
45+
schedule:
46+
interval: weekly
47+
day: monday
48+
time: "06:00"
49+
timezone: "Etc/UTC"
50+
open-pull-requests-limit: 5
51+
labels:
52+
- dependencies
53+
- github-actions
54+
- solid-pod-rs
55+
commit-message:
56+
prefix: "chore(ci)"
57+
include: scope

0 commit comments

Comments
 (0)