2023-10-19 09:13:48 +02:00

60 lines
2.2 KiB
JSON

{
"@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld",
"import": [
"css:config/storage/key-value/storages/storages.json"
],
"@graph": [
{
"comment": [
"A storage that writes directly to a low-level store. This is necessary to prevent infinite loops with stores that also use storage.",
"Currently only used for storing locks, where keys are always hashed, which is why this is not wrapped by a MaxKeyLengthStorage for now."
],
"@id": "urn:solid-server:default:BackendKeyValueStorage",
"@type": "JsonResourceStorage",
"source": { "@id": "urn:solid-server:default:ResourceStore_Backend" },
"baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" },
"container": "/.internal/"
},
{
"comment": "Internal value storage.",
"@id": "urn:solid-server:default:KeyValueStorage",
"@type": "MaxKeyLengthStorage",
"source": {
"@id": "urn:solid-server:default:JsonResourceStorage",
"@type": "JsonResourceStorage",
"source": { "@id": "urn:solid-server:default:ResourceStore" },
"baseUrl": { "@id": "urn:solid-server:default:variable:baseUrl" },
"container": "/.internal/"
}
},
{
"comment": "Block external access to the storage containers to avoid exposing internal data.",
"@id": "urn:solid-server:default:PathBasedReader",
"@type": "PathBasedReader",
"paths": [
{
"PathBasedReader:_paths_key": "^/.internal(/.*)?$",
"PathBasedReader:_paths_value": {
"@type": "AllStaticReader",
"allow": false
}
}
]
},
{
"comment": "Marks the /.internal/ storage container as an auxiliary resource, thereby hiding it from container representations.",
"@id": "urn:solid-server:default:AuxiliaryStrategy",
"@type": "RoutingAuxiliaryStrategy",
"sources": [
{
"@type": "ComposedAuxiliaryStrategy",
"identifierStrategy": {
"@type": "SuffixAuxiliaryIdentifierStrategy",
"suffix": "/.internal/"
}
}
]
}
]
}