---
# System prepended metadata

title: Remote Data Registration

---

# Remote Data Registration

``` turtle
<#receipt>
  a eco:AccessReceipt ;
  eco:registeredBy https://bob.pod.example/profile/id#me ;
  eco:registeredWith https://trusted.example/id#agent ;
  eco:registeredAt "2020-09-05T06:15:01Z"^^xsd:dateTime ;
  eco:updatedAt "2020-09-05T06:15:01Z"^^xsd:dateTime ;
  eco:fromAgent https://alice.pod.example/profile/id#me ;
  eco:toAgent https://bob.pod.example/profile/id#me ;
  eco:hasDataReceipt <#notebook-receipt>, <#note-receipt> .

<#notebook-receipt>
  a eco:DataReceipt ;
  eco:hasRegistration https://alice.pod.example/data/notebook/#registration ;
  eco:registeredShapeTree note:notebook-tree ;
  eco:accessMode acl:Read, acl:Write ;
  eco:scopeOfDataGrant eco:SelectedInstances ;
  eco:hasRegisteredDataInstance https://alice.pod.example/data/notebook/notebook-1/#notebook ,
                                https://alice.pod.example/data/notebook/notebook-2/#notebook .

<#note-receipt>
  a eco:DataReceipt ;
  eco:hasRegistration https://alice.pod.example/data/note/#registration ;
  eco:registeredShapeTree note:note-tree ;
  eco:accessMode acl:Read, acl:Write ;
  eco:scopeOfDataGrant eco:inheritInstances ;
  eco:inheritsFrom <#notebook-receipt> ;
  eco:hasRegisteredDataInstance https://alice.pod.example/data/note/note-1/#note ,
                                https://alice.pod.example/data/note/note-2/#note ,
                                https://alice.pod.example/data/note/note-3/#note ,
                                https://alice.pod.example/data/note/note-4/#note ,
                                https://alice.pod.example/data/note/note-5/#note .
```

- /remote/
    - notebook-alice/
        - notebook-alice-1/
        - notebook-alice-2/
    - note-alice
        - note-alice-1/
        - note-alice-2/
    - notebook-bob/
        - notebook-bob-1
        - notebook-bob-2
    - note-bob/
        - note-bob-1
        - note-bob-2
        - note-bob-3
        - note-bob-4
    - notebook-acme
        - notebook-acme-1
        - notebook-acme-2
    - note-acme
        - note-acme-1
        - note-acme-2
        - note-acme-3
        - note-acme-4
        - note-acme-5
    - events-acme
        - event-acme-1
        - event-acme-2
        - event-acme-3


Scenarios:

**Alice gives Justin access to all notes in ACME at 12:01PM
Bob gives Justin access to a subset of notes in ACME at 12:05PM**

What access does Justin have?

- Justin should use whichever access receipt was sent last, based on the providedAt timestamp in the AccessReceipt (need to add that timestamp)
- The Remote Data Registration and Remote Data Instance resources must link to the effective Access Receipt
- The AccessReceipt that has been overridden must be amended so it is clear that
certain data registrations or registered data instances have been overriden by another receipt


**Alice gives Justin access to a subset of notes in ACME at 1PM
Bob gives Justin access to all notes in ACME at 1:30PM**

Does Justin still have specific remote data instances in his pod?

If Justin had local links to those instances, would those break? Should Justin
ever have local links to them, or just link to the actual registered data instances
in the other pod (likely the latter)


**Alice gives Celeste control access to a subset of notes, and she invites Peter to a note**
- Provide a mechanism to append grants to the access registry
- Allow Celeste to append grants because she got control access

What are the implications?