Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add definition of storage #476

Merged
merged 2 commits into from
Nov 1, 2022
Merged

Add definition of storage #476

merged 2 commits into from
Nov 1, 2022

Conversation

csarven
Copy link
Member

@csarven csarven commented Oct 31, 2022

This PR is intended to add the notion of "storage" that is commonly understood and in use. It includes other minor editorial for clarity.

Below is a non-exhaustive list of information pertaining to "storage" that I've taken into account for your reference/consideration.

<http://www.w3.org/ns/pim/space#storage> <http://www.w3.org/2000/01/rdf-schema#comment> "The storage in which this workspace is, or the storage which\ncontains this resource, or a storage available to this agent to use." .

<http://www.w3.org/ns/pim/space#Storage> <http://www.w3.org/2000/01/rdf-schema#comment> "A storage is a space of URIs in which you have access to data.\n"

<http://www.w3.org/ns/auth/acl#Authorization> <http://www.w3.org/2000/01/rdf-schema#comment> "An element of access control,\n    allowing agent to agents access of some kind to resources or classes of resources" .

<http://www.w3.org/ns/auth/acl#owner> <http://www.w3.org/2000/01/rdf-schema#comment> "The person or other agent which owns this.\n    For example, the owner of a file in a filesystem.\n    There is a sense of right to control.   Typically defaults to the agent who craeted\n    something but can be changed." .

<http://www.w3.org/ns/auth/acl#delegates> <http://www.w3.org/2000/01/rdf-schema#comment> "Delegates a person or another agent to act on behalf of the agent.\n    For example, Alice delegates Bob to act on behalf of Alice for ACL purposes." .

https://www.w3.org/DesignIssues/CloudStorage

There is an architecture in which a few existing or Web protocols are gathered together with some glue to make a world wide system in which applications (desktop or Web Application) can work on top of a layer of commodity read-write storage. Crucial design issues are that principals (users) and groups are identifies by URIs, and so are global in scope, and that elements of storage are access controlled using those global identifiers. The result is that storage becomes a commodity, independent of the application running on it.

This can be called "socially-aware" storage, because the access control within the storage layer is just powerful enough to implement the social requirements of the social network applications.

https://solidproject.org/TR/2021/protocol-20211217#data-pod

data pod
A data pod is a place for storing documents, with mechanisms for controlling who can access what.

https://solidproject.org/TR/2021/protocol-20211217#storage

Servers MUST provide one or more storages (pim:Storage) – a space of URIs in which data can be accessed. A storage is the root container for all of its contained resources (see Resource Containment).

https://solidproject.org/ED/protocol#solid-app

Solid app
A Solid app is an application that reads or writes data from one or more storages.

https://solidproject.org/ED/protocol#owner

owner
An owner is a person or a social entity that is considered to have the rights and responsibilities of a data storage. An owner is identified by a URI, and implicitly has control over all data in a storage. An owner is first set at storage provisioning time and can be changed.

https://solid.github.io/solid-oidc/

Hosting Client ID Document on Solid Storage

https://solid.github.io/solid-oidc/primer/#solid-storage

Solid Storage
A storage on a Solid compliant Resource Server as defined by the Solid Protocol.

https://www.w3.org/wiki/WebAccessControl

The design goal is that the WebAccessControl storage should be a creative medium in which

without the intervention of administrative humans running the storage server.

https://solid.github.io/authorization-panel/acp-specification/

Effective Policies are the Policies controlling access to a resource.

https://solid.github.io/data-interoperability-panel/specification/#dr

This creates natural data boundaries that make data storage and authorization more intuitive.

#355 (comment)

we should be careful to name stuff that infringes on the authority of a storage (being roughly the same as a "pod", but I use the term storage, since that is what is specified) to control its URI space. This seems to turn into two distinct classes of things though: Those things that are within the URI space controlled by a storage and those that aren't. Those things that are within the space controlled by a storage should be discovered by interrogating the storage, but that leaves us with the requirement that storages must be really easy to discover, which they aren't now (#310). There should be a list of storages hosted by a server somewhere.

https://www.rfc-editor.org/rfc/rfc7231#section-4.3.4

It does not define how
resource state is "stored", nor how such storage might change as a
result of a change in resource state

https://www.rfc-editor.org/rfc/rfc7231#section-4.3.5

associated storage might or might not be reclaimed

https://www.rfc-editor.org/rfc/rfc7231#section-9.1

Similar naming conventions might exist
within other types of storage systems.

https://solidproject.org/

Solid is a specification that lets people store their data securely in decentralized data stores called Pods. Pods are like secure personal web servers for data. When data is stored in someone's Pod, they control which people and applications can access it.

https://solid.github.io/authorization-panel/authorization-ucr/#uc-inheritance

The group uses a resource server for storing their information at https://research.example/, which Bob administers as the resource controller.

https://github.com/solid/authentication-panel/blob/main/proposals/HttpSignature.md

Alice makes a request to a resource </comments/> on her Personal Online Data Store (POD) at <https://alice.name>

https://solid.github.io/notifications/protocol#notification-channel-discovery

When a server wants to enable applications to discover Notification Channels available to a storage in which a given resource is in


Preview | Diff

@csarven csarven added the category: editorial Concerns phrasing/wording label Oct 31, 2022
@csarven csarven added this to the Release 0.9.1 milestone Oct 31, 2022
@csarven csarven self-assigned this Oct 31, 2022
ED/protocol.html Outdated Show resolved Hide resolved
@csarven csarven changed the title Add definition storage Add definition of storage Nov 1, 2022
Copy link
Contributor

@timbl timbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Member

@acoburn acoburn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: editorial Concerns phrasing/wording doc: Protocol
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

5 participants