You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_Standalone Solid Server written in PHP by PDS Interop_
11
+
12
+
## Table of Contents
13
+
14
+
<!-- toc -->
15
+
<!-- tocstop -->
16
+
17
+
## Background
6
18
7
19
The Solid specifications defines what makes a "Solid Server". Parts of
8
20
those specifications are still likely to change, but at the time of this writing,
@@ -20,29 +32,6 @@ they define:
20
32
To read more about Solid, and which IETF and W3C specifications are used, visit: https://pdsinterop.org/solid-specs-overview/
21
33
-->
22
34
23
-
## Available Features
24
-
25
-
Based on the specifications, the following features are available:
26
-
27
-
1. User
28
-
-[ ] Authentication
29
-
-[ ] Identity
30
-
-[ ] Profiles
31
-
2. Data storage
32
-
-[ ] Content representation
33
-
-[ ] Resource API
34
-
-[ ] HTTP REST API
35
-
-[ ] Websocket API
36
-
3. Web Acces Control List
37
-
-[ ] Authorization (and Access Control)
38
-
4. Social web apps
39
-
-[ ] Calendar
40
-
-[ ] Contacts
41
-
-[ ] Friends Lists (Followers, Following)
42
-
-[ ] Notifications
43
-
44
-
The checkboxes show which features are available, and which ones are not.
45
-
46
35
### Installation
47
36
48
37
To install the project, clone it from GitHub and install the PHP dependencies
@@ -59,29 +48,21 @@ At this point, the application is ready to run.
59
48
60
49
The PHP Solid server can be run in several different ways.
61
50
62
-
<!-- @TODO: Add local Dockerfile
51
+
<!-- @TODO: Add local Dockerfile-->
63
52
64
-
The easiest is using the provided `Dockerfile`.
65
-
66
-
If a different environment is desired, the application can be run with the
67
-
Docker image of your choice.
53
+
The application can be run with a Docker image of your choice or on a local
54
+
environment, using Apache, NginX, or PHP's internal HTTP server. The latter is
55
+
only advised in development.
68
56
69
-
Lastly, the application can be run on a local environment, using Apache, NginX,
70
-
or PHP's internal HTTP server. The latter is only advised in development.
71
-
-->
57
+
For security reasons, the server expects to run on HTTPS (also known as HTTP+TLS).
72
58
73
-
The application can be run with a Docker image of your choice or on a local environment, using Apache, NginX, or PHP's internal HTTP server. The latter is
74
-
only advised in development.
59
+
To run insecure, set the environment variable `ENVIRONMENT` to `develop`. This
60
+
will prohibit the application from running in production mode.
75
61
76
62
<!--
77
63
@TODO: Add single-button deploy scripts/config for Heroku, Glitch, and other
78
64
popular playgrounds/developer oriented service providers.
79
65
-->
80
-
<!--
81
-
### Provided Dockerfile
82
-
83
-
In the project root, run: `docker run`
84
-
-->
85
66
86
67
### Docker images
87
68
@@ -91,7 +72,7 @@ to wherever it will be hosted by the Docker container.
This document describes what the Solid specification demands from a server in
4
+
general. Implementation details have been added describing if and how compliance
5
+
has been reached.
6
+
7
+
## Spec compliance
8
+
9
+
-[x]_All http URIs MUST redirect to their https counterparts using a response with a 301 status code and a Location header._<br>
10
+
![][ready] Implemented through the `Pdsinterop\Solid\Controller\HttpToHttpsController`.
11
+
12
+
-[ ]_It SHOULD additionally implement the server part of HTTP/1.1 Caching to improve performance_<br>
13
+
![][maybe] As caching can be added "in-front" of the server this is deemed low-priority.
14
+
15
+
-[ ]_When a client does not provide valid credentials when requesting a resource that requires it, the data pod MUST send a response with a 401 status code (unless 404 is preferred for security reasons)._<br>
16
+
![][later] This will need to be implemented as part of the OAuth, ACL, and protected documents parts.
17
+
18
+
-[ ]_A Solid server MUST reject PUT, POST and PATCH requests without the Content-Type header with a status code of 400._<br>
19
+
![][todo] This should be added in a similar fashion as the HTTPtheHTTPS mechanism. No need to continue routing if this criteria is not met.
20
+
21
+
-[x]_Paths ending with a slash denote a container resource. the server MAY respond to requests for the latter URI with a 301 redirect to the former._<br>
22
+
![][ready] Implemented through the `Pdsinterop\Solid\Controller\AddSlashToPathController`
0 commit comments