diff --git a/config/default.json b/config/default.json index 1cf9076f6..73034cdae 100644 --- a/config/default.json +++ b/config/default.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/dynamic.json b/config/dynamic.json index 7aaf8ea60..84b53a552 100644 --- a/config/dynamic.json +++ b/config/dynamic.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/dynamic.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/example-https-file.json b/config/example-https-file.json index c22177850..5ba745e8f 100644 --- a/config/example-https-file.json +++ b/config/example-https-file.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/file-acp.json b/config/file-acp.json index c24601489..58ecb5a31 100644 --- a/config/file-acp.json +++ b/config/file-acp.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acr.json", "css:config/util/identifiers/suffix.json", diff --git a/config/file-root.json b/config/file-root.json index 008be28e5..43e50a492 100644 --- a/config/file-root.json +++ b/config/file-root.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/file.json b/config/file.json index 94a1d719c..14d4fdec4 100644 --- a/config/file.json +++ b/config/file.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/https-file-cli.json b/config/https-file-cli.json index d54421e36..49bab6b2b 100644 --- a/config/https-file-cli.json +++ b/config/https-file-cli.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/identity/registration/disabled.json b/config/identity/registration/disabled.json index 967b8e01f..ac7d0d1f6 100644 --- a/config/identity/registration/disabled.json +++ b/config/identity/registration/disabled.json @@ -3,12 +3,6 @@ "@graph": [ { "comment": "Disable registration by not attaching a registration handler." - }, - { - "comment": "If registration is disabled, the base URL of the server is the root storage.", - "@id": "urn:solid-server:default:StorageLocationStrategy", - "@type": "RootStorageLocationStrategy", - "baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" } } ] } diff --git a/config/identity/registration/enabled.json b/config/identity/registration/enabled.json index 969c786b8..8569827b1 100644 --- a/config/identity/registration/enabled.json +++ b/config/identity/registration/enabled.json @@ -4,12 +4,6 @@ "css:config/identity/registration/route/registration.json" ], "@graph": [ - { - "comment": "If registration is enabled, the pod locations will be root storages.", - "@id": "urn:solid-server:default:StorageLocationStrategy", - "@type": "PodStorageLocationStrategy", - "generator": { "@id": "urn:solid-server:default:IdentifierGenerator" } - }, { "@id": "urn:solid-server:auth:password:InteractionRouteHandler", "@type": "WaterfallHandler", diff --git a/config/memory-subdomains.json b/config/memory-subdomains.json index 8af72a0cc..eac0a3fc6 100644 --- a/config/memory-subdomains.json +++ b/config/memory-subdomains.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/subdomain.json", diff --git a/config/path-routing.json b/config/path-routing.json index b127e5add..2993aad14 100644 --- a/config/path-routing.json +++ b/config/path-routing.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/regex.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/quota-file.json b/config/quota-file.json index ba1b7d252..a5efd9e2a 100644 --- a/config/quota-file.json +++ b/config/quota-file.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/pod-quota-file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/restrict-idp.json b/config/restrict-idp.json index 39329bd07..4d62e350b 100644 --- a/config/restrict-idp.json +++ b/config/restrict-idp.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/sparql-endpoint-root.json b/config/sparql-endpoint-root.json index f54420173..318ca9d2f 100644 --- a/config/sparql-endpoint-root.json +++ b/config/sparql-endpoint-root.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/sparql.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/sparql-endpoint.json b/config/sparql-endpoint.json index bf89a3670..fe04a91ae 100644 --- a/config/sparql-endpoint.json +++ b/config/sparql-endpoint.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/sparql.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/sparql-file-storage.json b/config/sparql-file-storage.json index ceef7628e..96ac60771 100644 --- a/config/sparql-file-storage.json +++ b/config/sparql-file-storage.json @@ -23,6 +23,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/config/storage/location/pod.json b/config/storage/location/pod.json new file mode 100644 index 000000000..9b10cf10c --- /dev/null +++ b/config/storage/location/pod.json @@ -0,0 +1,11 @@ +{ + "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^6.0.0/components/context.jsonld", + "@graph": [ + { + "comment": "Determine root storage locations based on pod identifiers.", + "@id": "urn:solid-server:default:StorageLocationStrategy", + "@type": "PodStorageLocationStrategy", + "generator": { "@id": "urn:solid-server:default:IdentifierGenerator" } + } + ] +} diff --git a/config/storage/location/root.json b/config/storage/location/root.json new file mode 100644 index 000000000..e2c9ee32d --- /dev/null +++ b/config/storage/location/root.json @@ -0,0 +1,11 @@ +{ + "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^6.0.0/components/context.jsonld", + "@graph": [ + { + "comment": "Set the base URL of the server as the root storage.", + "@id": "urn:solid-server:default:StorageLocationStrategy", + "@type": "RootStorageLocationStrategy", + "baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" } + } + ] +} diff --git a/test/integration/config/ldp-with-acp.json b/test/integration/config/ldp-with-acp.json index 01f7abae7..822fc26b7 100644 --- a/test/integration/config/ldp-with-acp.json +++ b/test/integration/config/ldp-with-acp.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acr.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/ldp-with-auth.json b/test/integration/config/ldp-with-auth.json index fd5eec8d0..4d37bb2ea 100644 --- a/test/integration/config/ldp-with-auth.json +++ b/test/integration/config/ldp-with-auth.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/legacy-websockets.json b/test/integration/config/legacy-websockets.json index 19f899f22..578fa52ac 100644 --- a/test/integration/config/legacy-websockets.json +++ b/test/integration/config/legacy-websockets.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/permission-table.json b/test/integration/config/permission-table.json index 1cbd3553e..a206c6d78 100644 --- a/test/integration/config/permission-table.json +++ b/test/integration/config/permission-table.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/quota-global.json b/test/integration/config/quota-global.json index 3a98fa6ac..644df6528 100644 --- a/test/integration/config/quota-global.json +++ b/test/integration/config/quota-global.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/global-quota-file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/quota-pod.json b/test/integration/config/quota-pod.json index de0688acb..735a15a17 100644 --- a/test/integration/config/quota-pod.json +++ b/test/integration/config/quota-pod.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/pod-quota-file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/restricted-idp.json b/test/integration/config/restricted-idp.json index de0143a05..ad72900c6 100644 --- a/test/integration/config/restricted-idp.json +++ b/test/integration/config/restricted-idp.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/pod.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-dynamic-unsafe.json b/test/integration/config/server-dynamic-unsafe.json index 304acfcd2..c9c3b6fb4 100644 --- a/test/integration/config/server-dynamic-unsafe.json +++ b/test/integration/config/server-dynamic-unsafe.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/dynamic.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-file.json b/test/integration/config/server-file.json index 647c68516..414411e07 100644 --- a/test/integration/config/server-file.json +++ b/test/integration/config/server-file.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/file.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-memory.json b/test/integration/config/server-memory.json index f4f4de76e..2d7c5621b 100644 --- a/test/integration/config/server-memory.json +++ b/test/integration/config/server-memory.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-middleware.json b/test/integration/config/server-middleware.json index 02d0f44a0..a2da049d3 100644 --- a/test/integration/config/server-middleware.json +++ b/test/integration/config/server-middleware.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-redis-lock.json b/test/integration/config/server-redis-lock.json index 114b7d7da..f8d9bf388 100644 --- a/test/integration/config/server-redis-lock.json +++ b/test/integration/config/server-redis-lock.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/server-subdomains-unsafe.json b/test/integration/config/server-subdomains-unsafe.json index 95a243ad1..03fe9a7a5 100644 --- a/test/integration/config/server-subdomains-unsafe.json +++ b/test/integration/config/server-subdomains-unsafe.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/subdomain.json", diff --git a/test/integration/config/server-without-auth.json b/test/integration/config/server-without-auth.json index debfe7f1f..312041a09 100644 --- a/test/integration/config/server-without-auth.json +++ b/test/integration/config/server-without-auth.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/backend/memory.json", "css:config/storage/key-value/memory.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/webhook-notifications.json b/test/integration/config/webhook-notifications.json index 49b50bc2d..66ffc12cb 100644 --- a/test/integration/config/webhook-notifications.json +++ b/test/integration/config/webhook-notifications.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json", diff --git a/test/integration/config/websocket-notifications.json b/test/integration/config/websocket-notifications.json index f55e843e4..946122823 100644 --- a/test/integration/config/websocket-notifications.json +++ b/test/integration/config/websocket-notifications.json @@ -22,6 +22,7 @@ "css:config/ldp/modes/default.json", "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", "css:config/util/identifiers/suffix.json",