Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
433 commits
Select commit Hold shift + click to select a range
c4dc018
A simple start on the updateindex command
megoth Nov 16, 2018
17717aa
A somewhat brute force solution
megoth Nov 16, 2018
627b1fe
Trying to make code more readable
megoth Nov 16, 2018
beeeab7
Now fetching name given a webId
megoth Nov 20, 2018
34e403d
Cleaning up a bit
megoth Nov 20, 2018
988ee0f
Added a couple of tests
megoth Nov 20, 2018
abbdbab
Fix index path creation on Windows
joachimvh Nov 21, 2018
7090ee0
Trying to make code more readable
megoth Nov 16, 2018
3b25fda
Cleaning up a bit
megoth Nov 20, 2018
7a8230e
Removing extend from cli-utils
megoth Nov 24, 2018
3989aa8
Trying to make code more readable
megoth Nov 16, 2018
16688d4
Cleaning up a bit
megoth Nov 20, 2018
24a9a58
Trying to make code more readable
megoth Nov 16, 2018
bfdb2ce
Cleaning up a bit
megoth Nov 20, 2018
bf9a59e
Fixed all tests, rebased on v5.0.0
megoth Nov 27, 2018
36a35af
Merge pull request #953 from solid/feature/index-update
kjetilk Nov 27, 2018
99bbe70
Update package-lock
kjetilk Nov 27, 2018
89a5786
Release version 5.0.0-beta.0 of the npm package.
kjetilk Nov 27, 2018
bf21b43
Fix crash when running solid init
rubensworks Nov 28, 2018
32728c9
Merge pull request #976 from rubensworks/fix/crash-init
kjetilk Nov 28, 2018
a084a65
Fix solid-auth-client.bundle.js not being exposed
rubensworks Nov 28, 2018
3b3ba58
First iteration of simple validation
megoth Nov 12, 2018
ebfe3f3
Just a minor commit
megoth Nov 13, 2018
c541613
Moving code around, to handle streams correctly
megoth Nov 14, 2018
ea9b40c
Adding test for Patch
megoth Nov 14, 2018
18a7a04
Modified simple validation to only affect ACL files
megoth Nov 15, 2018
0e3392f
Trying to make integrations tests a little easier to read
megoth Nov 15, 2018
48da61c
First iteration of simple validation
megoth Nov 12, 2018
f35e458
Just a minor commit
megoth Nov 13, 2018
6d845b1
Moving code around, to handle streams correctly
megoth Nov 14, 2018
5b94a22
Adding test for Patch
megoth Nov 14, 2018
331dc0c
Trying to make integrations tests a little easier to read
megoth Nov 15, 2018
afbe557
Changes to code based on feedback
megoth Nov 15, 2018
29c115f
A couple of fixes
megoth Nov 20, 2018
1be27f7
First iteration of simple validation
megoth Nov 12, 2018
5a39e8e
Just a minor commit
megoth Nov 13, 2018
a0232e2
Moving code around, to handle streams correctly
megoth Nov 14, 2018
af58d66
Adding test for Patch
megoth Nov 14, 2018
8b0e8e7
First iteration of simple validation
megoth Nov 12, 2018
fae913d
Just a minor commit
megoth Nov 13, 2018
9a936fc
Moving code around, to handle streams correctly
megoth Nov 14, 2018
cd5dfdd
Adding test for Patch
megoth Nov 14, 2018
b5cfcf6
Trying to make integrations tests a little easier to read
megoth Nov 15, 2018
d939f7c
Rebased on v5.0.0
megoth Nov 28, 2018
5d03b32
Merge pull request #978 from rubensworks/fix/missing-solid-auth-client
kjetilk Nov 28, 2018
744a531
Fix no logging output appearing when in non-quiet-mode
rubensworks Nov 28, 2018
ed00615
Add server root .acl file to default-templates
rubensworks Nov 28, 2018
1fad9d9
Ensure that root .acl file is generated in pre-5.0.0 servers
rubensworks Nov 28, 2018
7d706d5
Merge pull request #980 from rubensworks/fix/logging
kjetilk Nov 28, 2018
21a41b3
Merge pull request #937 from solid/feature/simple-validation
kjetilk Nov 28, 2018
baf7b46
Remove fallback to Turtle on GET
rubensworks Nov 29, 2018
4187bf0
Fix unit test without root .acl file
rubensworks Nov 29, 2018
7dd8465
Fix OIDC tests regarding root .acl files
rubensworks Nov 29, 2018
2b4250d
Properly handle creation and removal of root .acl files in tests
rubensworks Nov 29, 2018
662b020
Disable ToC by default
rubensworks Nov 29, 2018
eee84c0
Merge pull request #984 from rubensworks/fix/missing-root-acl
kjetilk Nov 29, 2018
7488835
Merge pull request #989 from rubensworks/update/disable-toc
kjetilk Nov 29, 2018
f2e7d3b
Made use of aclCheck.configureLogger
megoth Nov 29, 2018
0bb707e
Merge pull request #990 from solid/feature/acl-check-logger
kjetilk Nov 29, 2018
5d482aa
Release version 5.0.0-beta.1 of the npm package.
kjetilk Nov 29, 2018
f4dad83
Add disable-password-checks option, Closes #983
rubensworks Dec 3, 2018
f8888ed
Fix remaining camelCase config names in init.js, Closes #997
rubensworks Dec 3, 2018
b6f8e48
Merge pull request #999 from rubensworks/fix/config-camels
kjetilk Dec 4, 2018
f6aee4f
Merge pull request #998 from rubensworks/feature/disable-password-checks
kjetilk Dec 4, 2018
e918e36
Fix registration from solid-auth-client not redirecting after login
rubensworks Dec 4, 2018
d3d8747
Hide register button when logged in
rubensworks Dec 4, 2018
948e558
Fix account settings always being hidden
rubensworks Dec 4, 2018
8db9e2b
Add logout button to login-required view
rubensworks Dec 4, 2018
b507e87
Merge pull request #1005 from rubensworks/enhance/hide-register-button
kjetilk Dec 4, 2018
d1aad91
Merge pull request #1006 from rubensworks/fix/account-settings
kjetilk Dec 4, 2018
959a74e
Merge pull request #1007 from rubensworks/fix/enable-logout-required-…
kjetilk Dec 4, 2018
f8dbbac
Fix container listings showing incorrect extensionless files incorrec…
rubensworks Dec 5, 2018
4d52960
Merge pull request #1010 from rubensworks/fix/profile-broken
kjetilk Dec 5, 2018
3f3fd8f
Add server origin by default to the list of trusted origins
rubensworks Dec 6, 2018
84dbff3
Make DELETE require write permissions on container
rubensworks Dec 6, 2018
c8986cf
Merge pull request #1012 from rubensworks/fix/no-defined-origin
kjetilk Dec 6, 2018
f37b3d2
Merge branch 'release/v5.0.0' of github.com:solid/node-solid-server i…
kjetilk Dec 6, 2018
d5315f6
Release version 5.0.0-beta.2 of the npm package.
kjetilk Dec 6, 2018
22de319
Make logic for testing delete permissions less confusing
rubensworks Dec 7, 2018
8e90a7d
Improving variable naming in allow handler
rubensworks Dec 10, 2018
6a0b760
Fix server printing stacktrace after logging in, Closes #1000
rubensworks Dec 6, 2018
2fbe582
Merge pull request #1014 from rubensworks/change/delete-permissions
kjetilk Dec 10, 2018
c15bf82
Merge pull request #1013 from rubensworks/fix/login-header-error
kjetilk Dec 10, 2018
3ac3ce7
Merge pull request #1003 from rubensworks/fix/redirect-register
kjetilk Dec 11, 2018
3fdc1a3
Note vocabulary use
kjetilk Dec 12, 2018
5a432bc
note ToS
kjetilk Dec 12, 2018
35d1a40
note DELETE on container
kjetilk Dec 12, 2018
381056d
Note on logout
kjetilk Dec 12, 2018
92b627f
note node versions
kjetilk Dec 12, 2018
cee8b81
Note public profile
kjetilk Dec 12, 2018
f73583d
note on ACLs
kjetilk Dec 12, 2018
750937d
note verbose
kjetilk Dec 12, 2018
08c0947
note kebab case
kjetilk Dec 12, 2018
f58940b
note smaller fixes
kjetilk Dec 12, 2018
d03442d
adjust the note on kebab-case
kjetilk Dec 13, 2018
7c134c5
Merge pull request #1022 from solid/changelog
kjetilk Dec 13, 2018
ade661b
Use http schema for solid terms
kjetilk Dec 13, 2018
3a732cf
Merge pull request #1027 from solid/fix/solid-prefix
kjetilk Dec 13, 2018
595845e
Update package-lock.json.
kjetilk Dec 13, 2018
dfe9aaa
Release version 5.0.0-beta.3 of the npm package.
kjetilk Dec 13, 2018
fb737b5
Change the quota readme and rename file
kjetilk Dec 17, 2018
899f130
Merge pull request #1032 from solid/quota-readme
kjetilk Dec 18, 2018
6bda3e8
Add the serverUri as trusted origin for multiuser
kjetilk Dec 19, 2018
44e2d62
Merge pull request #1034 from solid/fix/multiuser-origin
kjetilk Dec 20, 2018
0221121
Release version 5.0.0-beta.4 of the npm package.
kjetilk Dec 20, 2018
2f381cf
bump acl-check version dep
kjetilk Dec 23, 2018
8af45d3
Bump verison in package-lock too
kjetilk Dec 23, 2018
2c2bfe6
Test for acl-check#15 problem on server too
kjetilk Jan 9, 2019
147a897
Remove the .acl from accessTo statements
kjetilk Jan 10, 2019
abb6742
Make tests for authenticated agents
kjetilk Jan 11, 2019
c5880ed
Update to require latest acl-check.js
kjetilk Jan 11, 2019
d64c11b
Make tests pass for public dirs
kjetilk Jan 11, 2019
e63ecf3
Add tests for wrong origin write
kjetilk Jan 11, 2019
0fb5d6d
Remove forgotten only modifier
kjetilk Jan 11, 2019
750c21c
Make tests pass, fix message in #1042
kjetilk Jan 11, 2019
672d89e
Test that fails when accessTo is set wrong
kjetilk Jan 11, 2019
75c0e11
Merge pull request #1043 from solid/fix/test-public-origin
kjetilk Jan 14, 2019
8bc15b9
Added myself as contributor
megoth Jan 14, 2019
68fe5de
Should show proper statusMessage based on the various acl-cases
megoth Jan 11, 2019
d905fee
Fixed things StandardJS were complaining about
megoth Jan 14, 2019
ee39297
Updated package-lock and inserted my name into contributors
megoth Jan 14, 2019
d417d75
Will add myself as contributor as a separate PR
megoth Jan 14, 2019
f551e35
Updated package-lock and inserted my name into contributors
megoth Jan 14, 2019
8ba0f46
Will add myself as contributor as a separate PR
megoth Jan 14, 2019
a601720
Trying to make number of changes smaller
megoth Jan 14, 2019
8ea4b29
Fixed test
megoth Jan 14, 2019
5cd044e
Check account existence using profile card
joachimvh Jan 14, 2019
d654aa0
Skip failing single user unit test
joachimvh Jan 15, 2019
7dfb378
Trying to reuse a method for creating URIs in get handler
megoth Jan 15, 2019
f4d43c7
Refactored two other handlers that used similar functionality
megoth Jan 15, 2019
d9f662d
Removed ldp.getRequestUri, reusing ldp.resourceMapper.resolveUrl instead
megoth Jan 16, 2019
4a6babf
Reverting changes in handlers/post.js
megoth Jan 16, 2019
e857626
Making resourceMapper.getFullPath public
megoth Jan 16, 2019
0affe08
Reverting some previous changes
megoth Jan 16, 2019
915e632
Merge pull request #1051 from joachimvh/fix/singleuser
kjetilk Jan 16, 2019
ea39156
Merge pull request #1052 from solid/fix/put-validate-request-uri
kjetilk Jan 16, 2019
b7f3669
Merge pull request #1050 from solid/fix/unauth-reflect-status
kjetilk Jan 16, 2019
f73215a
Update package-lock.json.
kjetilk Jan 16, 2019
1bf02ef
Release version 5.0.0-beta.5 of the npm package.
kjetilk Jan 16, 2019
be2fae3
Merge pull request #1049 from solid/fix/contributor-arne
kjetilk Jan 16, 2019
e2d08a5
Merge branch 'release/v5.0.0'
joachimvh Jan 24, 2019
7fc50a8
Merge branch 'master' into release/v5.0.0
joachimvh Jan 24, 2019
1778215
Merge pull request #1064 from joachimvh/release/v5.0.0
kjetilk Jan 24, 2019
153e81f
Remove unneeded ACL on index.html.
RubenVerborgh Jan 25, 2019
23933e6
Move read rights on index.html to /.
RubenVerborgh Jan 25, 2019
ec068f3
Merge pull request #1065 from solid/fix/acl-no-index
kjetilk Jan 28, 2019
d602618
Make CORS proxy follow redirects
csarven Jan 28, 2019
b0596c9
Moving the creation of ACLChechker into a factory method
megoth Jan 29, 2019
efdf8bc
Merge pull request #1075 from solid/refactor/acl-factory-method
kjetilk Jan 29, 2019
e03b2f3
Added special handling for root
megoth Jan 26, 2019
5e62f8c
Hopefully making things a bit easier to read
megoth Jan 26, 2019
84e856c
Added special handling for root
megoth Jan 26, 2019
f71e582
Added extra check so that only HTML files are handled with care
megoth Jan 29, 2019
2959afb
Merge pull request #1067 from solid/bug/root-index-special-handling
kjetilk Jan 29, 2019
ffde3b7
Update package-lock
kjetilk Jan 29, 2019
b6c868f
Mention public readable root in changelog
kjetilk Jan 29, 2019
ca40c11
Fix typo in changelog
kjetilk Jan 29, 2019
89a751e
Release version 5.0.0-beta.6 of the npm package.
kjetilk Jan 29, 2019
110d678
Merge pull request #1070 from csarven/release/v5.0.0
kjetilk Jan 30, 2019
41709c0
missing foaf prefix in account root .acl
elf-pavlik Jan 31, 2019
bd59628
This will preserve serverUri in config.json
megoth Feb 5, 2019
e1b6dfb
Merge pull request #1079 from elf-pavlik/patch-1
kjetilk Feb 5, 2019
1a10760
Merge pull request #1044 from solid/case/acls-with-dot-acls
kjetilk Feb 5, 2019
79c2741
Merge pull request #1084 from solid/fix/init-serverUri
kjetilk Feb 5, 2019
500a78a
Fixed so that relative paths are allowed in root param
megoth Feb 6, 2019
b0969de
A handy script that resets your Solid server
megoth Feb 6, 2019
ca19d16
Merge pull request #1088 from solid/fix/root-relative-path
kjetilk Feb 6, 2019
4078e21
Merge branch 'master' into release/v5.0.0
kjetilk Feb 6, 2019
6440286
A handy script that resets your Solid server
megoth Feb 6, 2019
8149f1b
Merge remote-tracking branch 'origin/feature/reset-script' into featu…
megoth Feb 6, 2019
8a50364
Merge pull request #1089 from solid/feature/reset-script
kjetilk Feb 6, 2019
fe41645
Update package-lock.json
kjetilk Feb 6, 2019
02f00bf
Release version 5.0.0-beta.7 of the npm package.
kjetilk Feb 6, 2019
a8b24ef
trustedOrigins is empty by default
megoth Feb 7, 2019
125a6f0
Report server version in X-Powered-By header
kjetilk Feb 7, 2019
a2cf7ee
Improve syntax
kjetilk Feb 7, 2019
cdfba2d
Merge pull request #1092 from solid/feature/report-version
kjetilk Feb 8, 2019
29cb0f9
Increase proxyTimeout value to 10s
csarven Feb 14, 2019
b8a1e02
Add Content-Location header to Access-Control-Expose-Headers in CORS …
csarven Feb 14, 2019
217e8e3
Merge pull request #1100 from csarven/release/v5.0.0
kjetilk Feb 14, 2019
92ca524
Restricting access to API endpoints to top domain
megoth Jan 28, 2019
f02987d
Fixed so that capability discovery points to valid APIs
megoth Feb 15, 2019
821776f
Laxing a bit on the endpoints you can visit on subdomains
megoth Feb 15, 2019
b1562ac
Removes acl files from list of files to match when mapping url to file
megoth Feb 19, 2019
218b36a
Removing hardcoded string of .acl-suffix
megoth Feb 20, 2019
acc2401
Display server version at startup when not running from git repository
gklyne Feb 22, 2019
01d2a35
Add proper-lockfile dependency.
RubenVerborgh Feb 23, 2019
90dcfe6
Lock file during patching.
RubenVerborgh Feb 23, 2019
d3e6506
Now excluding both .acl- and .meta-files when finding default file
megoth Feb 28, 2019
9876274
Add proper-lockfile dependency.
RubenVerborgh Feb 23, 2019
74e5464
Lock file during patching.
RubenVerborgh Feb 23, 2019
a4aeb9e
Making proper use of strictOrigins
megoth Feb 28, 2019
c8a23a9
Fixed some faulty tests
megoth Mar 2, 2019
01853af
Added RubenVerborgh explanation
megoth Mar 2, 2019
f5d2816
Revert "Lock file during patching."
megoth Mar 2, 2019
017ca05
Did a faulty rebase, trying to revert commits
megoth Mar 2, 2019
7c0d436
Revert "Add proper-lockfile dependency."
megoth Mar 2, 2019
06c5b19
Trying to make tests less dependent on order
megoth Mar 3, 2019
1998a5b
Removing the need to run tests in order
megoth Mar 3, 2019
7feecf9
Rename variables for consistency.
RubenVerborgh Mar 3, 2019
4e6eb10
Add lock on readResource.
RubenVerborgh Mar 3, 2019
3193a32
Add lock on put.
RubenVerborgh Mar 3, 2019
fd3b2b1
Add lock on get.
RubenVerborgh Mar 3, 2019
e9c8db3
Add lock on deleteResource.
RubenVerborgh Mar 3, 2019
35839d5
Extract printing debug info from ldp to config module
dmitrizagidulin Mar 4, 2019
d7411eb
Expand SolidHost config constructor, plus tests
dmitrizagidulin Mar 4, 2019
0ece321
Some optimizations
megoth Mar 6, 2019
7df7f6f
Merge pull request #1126 from solid/extract-print-debug
kjetilk Mar 7, 2019
5cbfb79
Merge pull request #1112 from gklyne/release/v5.0.0
kjetilk Mar 7, 2019
31f113a
Trying to optimize and improve readability through better abstraction
megoth Mar 6, 2019
08684fb
Trying to fix regex
megoth Mar 7, 2019
b486abe
Trying to revert authentication-oidc-test manually
megoth Mar 7, 2019
de3b0e0
Fixing alignment
megoth Mar 7, 2019
4fd4f90
Revert "Trying to make tests less dependent on order"
megoth Mar 7, 2019
7b75a0b
Making changes minimal for acl-tls-test.js
megoth Mar 7, 2019
e4cf1e2
Reverting changes to solid-host
megoth Mar 7, 2019
567b042
Merge pull request #1109 from solid/fix/exclude-acl-in-url-mapping
kjetilk Mar 7, 2019
6c95b56
Merge pull request #1116 from solid/feature/lock-patch
kjetilk Mar 8, 2019
3dac0b2
Merge pull request #1091 from solid/feature/no-default-trusted-origins
kjetilk Mar 8, 2019
0acc026
Merge master into 5.0.0 branch
kjetilk Mar 8, 2019
70ddc02
Release version 5.0.0-beta.8 of the npm package.
kjetilk Mar 8, 2019
6e063ea
Always pass an object as options.
RubenVerborgh Mar 8, 2019
2f9996a
Only allow index.html as index file.
RubenVerborgh Mar 8, 2019
492860a
Merge pull request #1130 from solid/fix/streaming-start-end
kjetilk Mar 8, 2019
e62fa81
Merge pull request #1132 from solid/fix/only-index-html
kjetilk Mar 8, 2019
eb6b62b
Merge pull request #1118 from solid/fix/faulty-403
kjetilk Mar 8, 2019
332e7ae
Update package-lock.json.
kjetilk Mar 8, 2019
61d6455
Revert "Making proper use of strictOrigins"
kjetilk Mar 8, 2019
a4f0cbb
Merge pull request #1133 from solid/revert-1118-fix/faulty-403
kjetilk Mar 8, 2019
46b860f
Release version 5.0.0-beta.9 of the npm package.
kjetilk Mar 10, 2019
5980d75
Redo #1118
michielbdejong Mar 12, 2019
0339003
Merge pull request #1140 from michielbdejong/redo-1118
kjetilk Mar 15, 2019
a8b917c
Redo #1122 on top of latest release branch
megoth Mar 2, 2019
c328a3e
My changes on top of #1122
michielbdejong Mar 13, 2019
4927b97
Update CHANGELOG for v5 release
michielbdejong Mar 15, 2019
6982ec1
Use mashlib 0.7.18 and acl-check 0.2.0
michielbdejong Mar 15, 2019
ef9e8c9
fix commented-out requires in test
michielbdejong Mar 15, 2019
526dea6
Update package-lock.json.
kjetilk Mar 15, 2019
f02094e
Release version 5.0.0-beta.9 of the npm package.
kjetilk Mar 15, 2019
dca8d65
Release version 5.0.0-beta.10 of the npm package.
kjetilk Mar 15, 2019
c8efa90
package-lock.json
michielbdejong Mar 15, 2019
a5d3ad5
refer to https://github.com/solid/acl-check/issues/23
michielbdejong Mar 15, 2019
3d9b2bc
Merge pull request #1144 from solid/redo-1122
kjetilk Mar 15, 2019
21ebe47
Merge pull request #1127 from solid/expand-server-host
kjetilk Mar 15, 2019
bafa5f6
Release version 5.0.0-beta.11 of the npm package.
kjetilk Mar 15, 2019
63d2b81
Restricting access to API endpoints to top domain
megoth Jan 28, 2019
1bc05b1
Fixed so that capability discovery points to valid APIs
megoth Feb 15, 2019
b16b137
Laxing a bit on the endpoints you can visit on subdomains
megoth Feb 15, 2019
927acf6
Merge branch 'feature/prevent-api-spoofing' of github.com:solid/node-…
kjetilk Mar 15, 2019
c0bbc99
Merge pull request #1073 from solid/feature/prevent-api-spoofing
kjetilk Mar 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ script:
after_success:
- snyk monitor

cache: npm

notifications:
email:
- solid@janeirodigital.com
Expand Down
61 changes: 58 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,70 @@
# History

## 5.0.0

- Node versions greater than 8 are supported.
- Changes to vocabulary use:
- `solid:inbox` is deprecated in favour of `ldp:inbox`.
- `acl:defaultForNew` is deprecated in favour of `acl:default`.
- Terms of Service may be added and enforced for new registrations,
but is disabled by default.
- DELETE operations on a resource now require that the user has write permissions on
the file's container
- Improved support for logout ensures users can use different
identities.
- The profile container is now public readable by default.
- Access Control:
- The Access Control List system has undergone extensive
changes. Security has been tightened, and some unsafe practices that
where web apps was authorized access in the past are now not
permitted.
- The browser-reported `Origin` header will now be checked by
default, and the ACL system can be used to restrict access
to applications for added security.
- Users can add `trustedApp` entries to their profile using a new databrowser pane.
You will see an 'A' icon added while you view a Person's profile URL
with the data browser (might have to hit refresh in your browser and make sure you
are viewing a WebId URL like https://localhost:8443/profile/card#me).
- Logging is now verbose by default so the `-v` option has been
removed and a `--quiet` option has been added to mute the log.
- To be bug compliant with 4.x releases, if a rule for public readable
root / does not exist, it will check in /index.html.acl (see issue #1063)
- Command line options are now kebab-cased rather than camelCased,
config options may be both.
- Resource with no extension now have '$.ttl' appended in the filename (see upgrades notes below).
- Many smaller fixes.

#### 5.0.0 Upgrade Notes

- As of v5.0.0, all Turtle files need an extension. (**Intervention needed when updating from < 5.0.0!**)
- **How to upgrade?**
1. Stop the server.
2. Update node-solid-server to 5.0.0.
3. Make a backup of your `data/` and `config/` folders.
4. Invoke `solid migrate-legacy-resources -v`.
This makes the files in your `data/` and `config/` folders
automatically compatible with the new system.
You only need to do this once.
Different data folders can be migrated as well with the `-p` option:
`solid migrate-legacy-resources -p my/custom/data/folder -v`
5. You can now start the server again as usual.
- **Why?**
Before version 5.0.0, `https://pod.example/profile/card`
would map to `file:///solid/profile/card`, with the _assumption_
that it uses content-type `text/turtle`.
Now, this URL will map to `file:///solid/profile/card$.ttl` instead,
which makes the content-type automatically detectable.
This fixes many of the old Content-Type-related bugs.
_More information: https://www.w3.org/DesignIssues/HTTPFilenameMapping.html_

## 4.4.0

- Introduce a quota system. Delete the /settings/serverSide.ttl in the
user's POD to disable, or edit to fit your resource constraints.


#### Changelog is incomplete for much of the 4.x series


## 4.1.0
## 4.1.0

- Add support for Group Access Control Lists.
- Fix `Vary` header.
Expand Down
32 changes: 17 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ $ solid start --help

--root [value] Root folder to serve (default: './data')
--port [value] SSL port to use
--serverUri [value] Solid server uri (default: 'https://localhost:8443')
--server-uri [value] Solid server uri (default: 'https://localhost:8443')
--webid Enable WebID authentication and access control (uses HTTPS)
--mount [value] Serve on a specific URL path (default: '/')
--config-path [value]
Expand All @@ -182,7 +182,7 @@ $ solid start --help
--idp [value] Obsolete; use --multiuser
--no-live Disable live support through WebSockets
--proxy [value] Obsolete; use --corsProxy
--corsProxy [value] Serve the CORS proxy on this path
--cors-proxy [value] Serve the CORS proxy on this path
--suppress-data-browser Suppress provision of a data browser
--data-browser-path [value] An HTML file which is sent to allow users to browse the data (eg using mashlib.js)
--suffix-acl [value] Suffix for acl files (default: '.acl')
Expand All @@ -191,18 +191,21 @@ $ solid start --help
--error-pages [value] Folder from which to look for custom error pages files (files must be named <error-code>.html -- eg. 500.html)
--force-user [value] Force a WebID to always be logged in (useful when offline)
--strict-origin Enforce same origin policy in the ACL
--useEmail Do you want to set up an email service?
--use-email Do you want to set up an email service?
--email-host [value] Host of your email service
--email-port [value] Port of your email service
--email-auth-user [value] User of your email service
--email-auth-pass [value] Password of your email service
--useApiApps Do you want to load your default apps on /api/apps?
--use-api-apps Do you want to load your default apps on /api/apps?
--api-apps [value] Path to the folder to mount on /api/apps
--redirect-http-from [value] HTTP port or ','-separated ports to redirect to the solid server port (e.g. "80,8080").
--server-name [value] A name for your server (not required, but will be presented on your server's frontpage)
--server-description [value] A description of your server (not required)
--server-logo [value] A logo that represents you, your brand, or your server (not required)
-v, --verbose Print the logs to console
--enforce-toc Do you want to enforce Terms & Conditions for your service?
--toc-uri [value] URI to your Terms & Conditions
--support-email [value] The support email you provide for your users (not required)
-q, --quiet Do not print the logs to console
-h, --help output usage information
```

Expand All @@ -226,8 +229,8 @@ docker run -p 8443:8443 --name solid node-solid-server
```

This will enable you to login to solid on https://localhost:8443 and then create a new account
but not yet use that account. After a new account is made you will need to create an entry for
it in your local (/etc/)hosts file in line with the account and subdomain i.e.
but not yet use that account. After a new account is made you will need to create an entry for
it in your local (/etc/)hosts file in line with the account and subdomain i.e.

127.0.0.1 newsoliduser.localhost

Expand Down Expand Up @@ -391,14 +394,13 @@ blacklist profanities by default.

## Quota

By default, a file `serverSide.ttl` will be installed to new PODs. Its
current function is to set a quota for disk usage of just 25 MB, which
is what we can be sure the current prototype can tolerate under
load. This file is not writeable to users, but as server administrator
you can remove it if you don't want to impose a quota. It is currently
adviceable to remove it rather than set a large quota, because the
current implementation will impair write performance if there is a lot
of data.
By default, a file `serverSide.ttl.inactive` will be installed to new
PODs. If you rename it to `serverSide.ttl`, it will currently set a
quota for disk usage. This file is not writeable to users, only
server administrators who are authorized on the backend can modify
it. It is currently adviceable to remove it or set it inactive rather
than set a large quota, because the current implementation will impair
write performance if there is a lot of data.

## Contribute to Solid

Expand Down
70 changes: 70 additions & 0 deletions bin/lib/cli-utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
const fs = require('fs-extra')
const { cyan, bold } = require('colorette')
const { URL } = require('url')
const LDP = require('../../lib/ldp')
const AccountManager = require('../../lib/models/account-manager')
const SolidHost = require('../../lib/models/solid-host')

module.exports.getAccountManager = getAccountManager
module.exports.loadAccounts = loadAccounts
module.exports.loadConfig = loadConfig
module.exports.loadUsernames = loadUsernames

/**
* Returns an instance of AccountManager
*
* @param {Object} config
* @param {Object} [options]
* @returns {AccountManager}
*/
function getAccountManager (config, options = {}) {
const ldp = options.ldp || new LDP(config)
const host = options.host || SolidHost.from({ port: config.port, serverUri: config.serverUri })
return AccountManager.from({
host,
store: ldp,
multiuser: config.multiuser
})
}

function loadConfig (program, options) {
let argv = {
...options,
version: program.version()
}
let configFile = argv['configFile'] || './config.json'

try {
const file = fs.readFileSync(configFile)

// Use flags with priority over config file
const config = JSON.parse(file)
argv = { ...config, ...argv }
} catch (err) {
// No file exists, not a problem
console.log(cyan(bold('TIP')), 'create a config.json: `$ solid init`')
}

return argv
}

/**
*
* @param root
* @param [serverUri] If not set, hostname must be set
* @param [hostname] If not set, serverUri must be set
* @returns {*}
*/
function loadAccounts ({ root, serverUri, hostname }) {
const files = fs.readdirSync(root)
hostname = hostname || new URL(serverUri).hostname
const isUserDirectory = new RegExp(`.${hostname}$`)
return files
.filter(file => isUserDirectory.test(file))
}

function loadUsernames ({ root, serverUri }) {
const hostname = new URL(serverUri).hostname
return loadAccounts({ root, hostname })
.map(userDirectory => userDirectory.substr(0, userDirectory.length - hostname.length - 1))
}
11 changes: 10 additions & 1 deletion bin/lib/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ const program = require('commander')
const loadInit = require('./init')
const loadStart = require('./start')
const loadInvalidUsernames = require('./invalidUsernames')
const loadMigrateLegacyResources = require('./migrateLegacyResources')
const loadUpdateIndex = require('./updateIndex')
const { spawnSync } = require('child_process')
const path = require('path')

Expand All @@ -11,6 +13,8 @@ module.exports = function startCli (server) {
loadInit(program)
loadStart(program, server)
loadInvalidUsernames(program)
loadMigrateLegacyResources(program)
loadUpdateIndex(program)

program.parse(process.argv)
if (program.args.length === 0) program.help()
Expand All @@ -21,10 +25,15 @@ function getVersion () {
// Obtain version from git
const options = { cwd: __dirname, encoding: 'utf8' }
const { stdout } = spawnSync('git', ['describe', '--tags'], options)
return stdout.trim()
const version = stdout.trim()
if (version === '') {
throw new Error('No git version here')
}
return version
} catch (e) {
// Obtain version from package.json
const { version } = require(path.join(__dirname, '../../package.json'))
return version
}
}

25 changes: 0 additions & 25 deletions bin/lib/common.js

This file was deleted.

8 changes: 4 additions & 4 deletions bin/lib/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,12 @@ function manipulateEmailSection (answers) {

function manipulateServerSection (answers) {
answers.server = {
name: answers['server-name'],
description: answers['server-description'],
logo: answers['server-logo']
name: answers['server-info-name'],
description: answers['server-info-description'],
logo: answers['server-info-logo']
}
Object.keys(answers).forEach((answer) => {
if (answer.startsWith('server-')) {
if (answer.startsWith('server-info-')) {
delete answers[answer]
}
})
Expand Down
25 changes: 4 additions & 21 deletions bin/lib/invalidUsernames.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
const fs = require('fs-extra')
const Handlebars = require('handlebars')
const path = require('path')
const { URL } = require('url')

const { loadConfig } = require('./common')
const { getAccountManager, loadConfig, loadUsernames } = require('./cli-utils')
const { isValidUsername } = require('../../lib/common/user-utils')
const blacklistService = require('../../lib/services/blacklist-service')
const { initConfigDir, initTemplateDirs } = require('../../lib/server-config')
const { fromServerConfig } = require('../../lib/models/oidc-manager')

const AccountManager = require('../../lib/models/account-manager')
const EmailService = require('../../lib/services/email-service')
const LDP = require('../../lib/ldp')
const SolidHost = require('../../lib/models/solid-host')

module.exports = function (program) {
Expand All @@ -28,7 +25,7 @@ module.exports = function (program) {

const invalidUsernames = getInvalidUsernames(config)
const host = SolidHost.from({ port: config.port, serverUri: config.serverUri })
const accountManager = getAccountManager(config, host)
const accountManager = getAccountManager(config, { host })

if (options.notify) {
return notifyUsers(invalidUsernames, accountManager, config)
Expand Down Expand Up @@ -96,23 +93,9 @@ async function deleteUsers (usernames, accountManager, config, host) {
console.info(`Deleted ${deletingUsers.length} users succeeded`)
}

function getAccountManager (config, host) {
const ldp = new LDP(config)
return AccountManager.from({
host,
store: ldp,
multiuser: config.multiuser
})
}

function getInvalidUsernames (config) {
const files = fs.readdirSync(config.root)
const hostname = new URL(config.serverUri).hostname
const isUserDirectory = new RegExp(`.${hostname}$`)
return files
.filter(file => isUserDirectory.test(file))
.map(userDirectory => userDirectory.substr(0, userDirectory.length - hostname.length - 1))
.filter(username => !isValidUsername(username) || !blacklistService.validate(username))
const usernames = loadUsernames(config)
return usernames.filter(username => !isValidUsername(username) || !blacklistService.validate(username))
}

function listUsernames (usernames) {
Expand Down
Loading