|
1 | | -# History |
2 | | -## 6.0.0 |
3 | | -- CommonJs to ESM (.mjs) |
4 | | -- support for mashlib >= 2.0.0 |
5 | | -- support solid-OIDC with WebID scope, es256, and rfc9702 |
| 1 | +# Changelog |
6 | 2 |
|
7 | | -## 6.0.0 Upgrade Notes |
| 3 | +## 7.0.0 |
8 | 4 |
|
9 | | -1.0 Automatically recreated |
10 | | -- delete `.db/oidc/op/provider.json` |
11 | | -- delete `config/templates/emails` |
12 | | - If not recreated then copy from `default-emails` |
13 | | - If there was some personalisation these need to be redone |
| 5 | +Clean room rewrite of node-solid-server. |
14 | 6 |
|
15 | | -2.0 Manuel update the `index.html` in server root `data/<serverOrigin>/index.html` |
16 | | - edit `common/js/index-buttons.js` to `index-buttons.mjs` |
17 | | - |
18 | | -## 5.3.0 |
19 | | -- Support for webid-oidc with DPop tokens |
| 7 | +### Why |
20 | 8 |
|
21 | | -## 5.3.0 Upgrade Notes |
22 | | -You may have a `.db/oidc/op/provider.json` file that was generated by an older version |
23 | | -of node-solid-server, which may still specify `"response_types_supported"` without listing |
24 | | -`"id_token code"`. You can move this file out of the way and restart node-solid-server, |
25 | | -it will be created again. See https://github.com/solid/node-solid-server/issues/1433 for |
26 | | -more info. |
| 9 | +The v6 codebase had grown to ~7,400 lines of production code with 59 dependencies, |
| 10 | +much of it devoted to features (built-in OIDC provider, account management UI, |
| 11 | +email service, data browser) that are better handled by external tools. |
| 12 | +Version 7 strips the server back to the Solid protocol essentials. |
27 | 13 |
|
28 | | -## 5.0.0 |
| 14 | +### What changed |
29 | 15 |
|
30 | | -- Node versions greater than 8 are supported. |
31 | | -- Changes to vocabulary use: |
32 | | - - `solid:inbox` is deprecated in favour of `ldp:inbox`. |
33 | | - - `acl:defaultForNew` is deprecated in favour of `acl:default`. |
34 | | -- Terms of Service may be added and enforced for new registrations, |
35 | | - but is disabled by default. |
36 | | -- DELETE operations on a resource now require that the user has write permissions on |
37 | | - the file's container |
38 | | -- Improved support for logout ensures users can use different |
39 | | - identities. |
40 | | -- The profile container is now public readable by default. |
41 | | -- Access Control: |
42 | | - - The Access Control List system has undergone extensive |
43 | | - changes. Security has been tightened, and some unsafe practices that |
44 | | - where web apps was authorized access in the past are now not |
45 | | - permitted. |
46 | | - - The browser-reported `Origin` header will now be checked by |
47 | | - default, and the ACL system can be used to restrict access |
48 | | - to applications for added security. |
49 | | - - Users can add `trustedApp` entries to their profile using a new databrowser pane. |
50 | | - You will see an 'A' icon added while you view a Person's profile URL |
51 | | - with the data browser (might have to hit refresh in your browser and make sure you |
52 | | - are viewing a WebId URL like https://localhost:8443/profile/card#me). |
53 | | -- Logging is now verbose by default so the `-v` option has been |
54 | | - removed and a `--quiet` option has been added to mute the log. |
55 | | -- To be bug compliant with 4.x releases, if a rule for public readable |
56 | | - root / does not exist, it will check in /index.html.acl (see issue #1063) |
57 | | -- Command line options are now kebab-cased rather than camelCased, |
58 | | - config options may be both. |
59 | | -- Resource with no extension now have '$.ttl' appended in the filename (see upgrades notes below). |
60 | | -- Many smaller fixes. |
61 | | - |
62 | | -#### 5.0.0 Upgrade Notes |
63 | | - |
64 | | -- As of v5.0.0, all Turtle files need an extension. (**Intervention needed when updating from < 5.0.0!**) |
65 | | - - **How to upgrade?** |
66 | | - 1. Stop the server. |
67 | | - 2. Update node-solid-server to 5.0.0. |
68 | | - 3. Make a backup of your `data/` and `config/` folders. |
69 | | - 4. Invoke `solid migrate-legacy-resources -v`. |
70 | | - This makes the files in your `data/` and `config/` folders |
71 | | - automatically compatible with the new system. |
72 | | - You only need to do this once. |
73 | | - Different data folders can be migrated as well with the `-p` option: |
74 | | - `solid migrate-legacy-resources -p my/custom/data/folder -v` |
75 | | - 5. You can now start the server again as usual. |
76 | | - - **Why?** |
77 | | - Before version 5.0.0, `https://pod.example/profile/card` |
78 | | - would map to `file:///solid/profile/card`, with the _assumption_ |
79 | | - that it uses content-type `text/turtle`. |
80 | | - Now, this URL will map to `file:///solid/profile/card$.ttl` instead, |
81 | | - which makes the content-type automatically detectable. |
82 | | - This fixes many of the old Content-Type-related bugs. |
83 | | - _More information: https://www.w3.org/DesignIssues/HTTPFilenameMapping.html_ |
84 | | - |
85 | | -## 4.4.0 |
86 | | - |
87 | | -- Introduce a quota system. Delete the /settings/serverSide.ttl in the |
88 | | - user's POD to disable, or edit to fit your resource constraints. |
89 | | - |
90 | | -#### Changelog is incomplete for much of the 4.x series |
91 | | - |
92 | | -## 4.1.0 |
93 | | - |
94 | | -- Add support for Group Access Control Lists. |
95 | | -- Fix `Vary` header. |
96 | | -- Improve the registration page. |
97 | | -- Fix globbing. |
98 | | -- Fix the use of allow handler. |
99 | | -- Misc. cleanups and improvements. |
100 | | -- Add .well-known folder and set up with public access. |
| 16 | +- **Port from `.mjs` to `.js`** with `"type": "module"` in package.json |
| 17 | +- **Dependencies cut from 59 to 8** — express, cors, rdflib, @solid/acl-check, |
| 18 | + mime-types, uuid, debug, commander |
| 19 | +- **Production code reduced from ~7,400 to ~1,200 lines** across 11 files |
| 20 | +- **56 integration tests** covering LDP, headers, content negotiation, PATCH, ACL |
101 | 21 |
|
102 | | -## 4.0.0 |
103 | | -- OIDC is now supported as authentication method in addition to WebID-TLS. |
104 | | -- Both Node.js 6 and 8 are now supported. |
105 | | -- The server now accepts N3 patches. |
106 | | -- Responses now contain a WAC-Allow header, listing the access permissions |
107 | | - for the current user and non-authenticated users. |
108 | | -- The `authProxy` configuration parameter has been added, |
109 | | - enabling back-end servers to serve authenticated content. |
110 | | - It accepts an object of path/server pairs |
111 | | - (such as `/my/path": "http://localhost:2345/app"`). |
112 | | - The Solid server acts as a reverse proxy for these paths, forwarding requests |
113 | | - to the back-end server along with the authenticated user (`User` header) |
114 | | - and the host through which Solid is being accessed (`Forwarded` header). |
115 | | -- The `acceptCertificateHeader` configuration parameter has been added. |
116 | | - This allows WebID-TLS authentication behind a reverse proxy such as NGINX: |
117 | | - the reverse proxy should be configured to pass the client certificate |
118 | | - in a certain header, which is then read by a (non-public) Solid server. |
119 | | -- Self-signed certificates are no longer trusted in production. |
120 | | - To allow self-signed certificates (for testing purposes), use `bin/solid-test`, |
121 | | - which sets `NODE_TLS_REJECT_UNAUTHORIZED=0` and `--no-reject-unauthorized`. |
122 | | -- On POST requests, an extension will be appended to the file. |
123 | | -- Server logging is now more concise. |
124 | | -- Express server injection is now supported |
125 | | -- The root route (e.g. `/`) now displays a public home page. |
126 | | -- Several other bugfixes |
127 | | - |
128 | | -#### 4.0.0 Upgrade Notes |
129 | | -- The `proxy` configuration parameter has been deprecated and |
130 | | - renamed to `corsProxy` to better distinguish it from `authProxy`. |
131 | | -- The `idp` configuration parameter has been deprecated and |
132 | | - renamed to `multiuser` to better identify its purpose. |
133 | | -- Cross-domain cookie-based authentication has been removed for security reasons. |
134 | | - We instead recommend https://github.com/solid/solid-auth-client. |
135 | | -- Clients should not include an extension in the slug of POST requests |
136 | | - (they never should have), as the server now adds an extension. |
137 | | - |
138 | | -## 3.5.0 |
139 | | - |
140 | | -- Major refactoring of Account Creation classes (new account resources are now |
141 | | - initialized from a customizable account directory template) |
142 | | -- Disable crashing `verifyDelegator()` code in `allow()` handler |
143 | | -- Add support for HTTP COPY of external resources |
144 | | -- Fix URI encoding in file listing and decoding to get file names |
145 | | -- Fix issue where requesting a different format (e.g. `text/turtle`) of a |
146 | | - JSON-LD resource crashed the server |
147 | | - |
148 | | -#### 3.5.0 Upgrade Notes |
149 | | - |
150 | | -- New config parameter: `serverUri` - Solid server uri (with protocol, |
151 | | - hostname and port), defaults to `https://localhost:8443`. In multi-user |
152 | | - (`"idp": true`) mode, new account directories are now created based on this |
153 | | - `serverUri` parameter. For example, if the `config.json` contains the entry |
154 | | - `"serverUri": "https://example.com"`, a new account for `alice` will create |
155 | | - a subdirectory `alice.example.com` in the directory specified by the `root` |
156 | | - config parameter. |
157 | | -- New account template system. On first server startup, the contents of the |
158 | | - `default-account-template` source folder get copied to `config/account-template`. |
159 | | - When a new account is created, a copy is made of that new account template |
160 | | - directory for the user. Server operators can customize the contents of this |
161 | | - new account template for their server installation. |
162 | | -- Email template system. Similarly to the new account template, the Welcome |
163 | | - email that gets sent out on new user registration is generated from the |
164 | | - customizable local `config/email-templates/welcome.js` template file, which |
165 | | - gets copied from `default-email-templates` source folder on first startup. |
166 | | - |
167 | | -## 3.4.0 |
168 | | - |
169 | | -- Fix handling/url-encoding of container names |
170 | | -- Allow video skip with Accept-Ranges |
171 | | -- In a directory listing, add the media type class when we know it |
172 | | -- Add the trailing slash on the URI of a folder listed within a folder |
173 | | - |
174 | | -## 3.3.0 |
175 | | - |
176 | | -- Refactor acl checker to use solid-permissions lib |
177 | | -- Various DataBrowser fixes, dataBrowserOption option to specify path of db file |
178 | | - |
179 | | -## 3.2.0 |
180 | | - |
181 | | -- Refactor to use external solid-namespace library |
182 | | -- Move debrack() to utils.js, remove unused vocab/rdf.js functions |
183 | | -- Switch from node-mime to mime-types lib |
184 | | -- Refactor acl.js to prep for external solid-permissions lib |
185 | | -- Fix crash on PATCH request with no Content-Type |
186 | | - |
187 | | -## 3.1.0 |
188 | | - |
189 | | -- Misc fixes and features (see commit log) |
190 | | -- Implemented COPY verb |
| 22 | +### What's in |
191 | 23 |
|
192 | | -## 3.0.0 |
193 | | -- feat Discover WebID from root account https://github.com/solid/node-solid-server/pull/371 |
194 | | -- feat: Server capabilities https://github.com/solid/node-solid-server/pull/365 |
195 | | -- feat: pass app in createServer https://github.com/solid/node-solid-server/pull/357 |
196 | | -- breaking: Accounts API https://github.com/solid/node-solid-server/pull/339 |
| 24 | +- Full LDP support (GET, HEAD, PUT, POST, DELETE, PATCH) |
| 25 | +- Web Access Control via `.acl` files with inheritance |
| 26 | +- Content negotiation (Turtle, JSON-LD, N-Triples, N3) |
| 27 | +- N3 Patch and SPARQL UPDATE |
| 28 | +- Container listings as RDF |
| 29 | +- CORS headers |
| 30 | +- Bearer token / WebID authentication |
| 31 | +- CLI: `solid start` |
197 | 32 |
|
198 | | -## 2.3.0 |
199 | | -- feat: added Capability discovery https://github.com/solid/node-solid-server/pull/347 |
| 33 | +### What's been removed |
200 | 34 |
|
201 | | -## 2.2.0 |
202 | | -- feat: added `--auth` https://github.com/solid/node-solid-server/pull/346 |
| 35 | +- Built-in OIDC identity provider |
| 36 | +- Account management / registration UI |
| 37 | +- Handlebars templates and views |
| 38 | +- Session cookies |
| 39 | +- Email service and password reset |
| 40 | +- Mashlib data browser |
| 41 | +- Multi-user / virtual host mode |
| 42 | +- WebSocket live updates |
| 43 | +- CORS proxy / auth proxy |
| 44 | +- Storage quotas |
| 45 | +- Docker support |
| 46 | +- `solid init` wizard |
203 | 47 |
|
204 | | -## 2.1.0 |
205 | | -- patch: Proxy https://github.com/solid/node-solid-server/pull/343 https://github.com/solid/node-solid-server/pull/342 |
206 | | -- feat: added Account Recovery |
207 | | -- feat: added Token Service |
208 | | -- feat: added ldp.graph |
| 48 | +### Upgrade notes |
209 | 49 |
|
210 | | -## 2.0.0 |
| 50 | +v7 is a full rewrite. There is no migration path from v6. If you depend on |
| 51 | +features that were removed, continue using v6 or add them as middleware on |
| 52 | +top of v7. |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +## 6.0.0 |
| 57 | +- CommonJS to ESM (.mjs) |
| 58 | +- Support for mashlib >= 2.0.0 |
| 59 | +- Support Solid-OIDC with WebID scope, ES256, and RFC 9702 |
211 | 60 |
|
212 | | -- feat: added Welcome Email |
213 | | -- feat: added Email Service |
214 | | -- other: `ldnode` turns into `solid-server` |
| 61 | +## 5.3.0 |
| 62 | +- Support for WebID-OIDC with DPoP tokens |
| 63 | + |
| 64 | +## 5.0.0 |
| 65 | +- Node versions greater than 8 supported |
| 66 | +- Vocabulary changes (`solid:inbox` → `ldp:inbox`, `acl:defaultForNew` → `acl:default`) |
| 67 | +- Terms of Service support |
| 68 | +- Improved ACL security (origin checking, trusted apps) |
| 69 | +- Resources without extensions get `$.ttl` suffix |
| 70 | +- Migration script for legacy resources |
| 71 | + |
| 72 | +## 4.0.0 |
| 73 | +- OIDC authentication support |
| 74 | +- N3 patches |
| 75 | +- WAC-Allow header |
| 76 | +- Auth proxy |
| 77 | +- Express server injection |
| 78 | + |
| 79 | +## 3.0.0 |
| 80 | +- Accounts API |
| 81 | +- Server capabilities discovery |
| 82 | + |
| 83 | +## 2.0.0 |
| 84 | +- `ldnode` renamed to `solid-server` |
| 85 | +- Welcome email and email service |
0 commit comments