# Understanding data registries and remotes

**URL:** https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926
**Category:** General
**Created:** [January 19, 2024, 9:13am UTC](https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926 "2024-01-19T09:13:35Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![lusk](https://avatars.discourse-cdn.com/v4/letter/l/b2d939/32.png) [@lusk](https://discuss.dvc.org/u/lusk)
#### Post date: [January 19, 2024, 9:13am UTC](https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926/1 "2024-01-19T09:13:35Z")

</div>

Hi all,

I am creating a data registry for my team to enable them to easily pull data down to their projects. The data in the registry should never be directly modified by these projects—it should simply serve as an agnostic store. The data registry data is stored inside the project itself, and is also a DVC/Git-managed project, as data is regularly updated, added, and transformed (again, by actions/pipeline stages managed within the data registry project, not external projects).

So, when it comes to managing the DVC remotes for both the registry and for the separate projects that may use the data…

1. Does it make sense to add a remote to the registry project itself? In this case it would be a local remote (e.g. `dvc remote add this-project /path/to/registry/data`). I’m still wrapping my head around local remotes in general, and in particular for “really local” remotes (aka inside same DVC project).

2. When others want to either `dvc get` or `dvc import` data from the data registry, do they need to `dvc remote add` the data registry? It seems like having it as a remote is not required for others to `dvc get` or `dvc import`. Am I correct in assuming that DVC remotes are more for _project-specific_ data version/backup, as opposed to the project-agnostic data registry itself?

3. If that’s true, and if I have a local DVC remote configured for the registry project, should I be pushing/pulling as I update data, or simply using `dvc add` or the lock-file produced by pipeline stages?

4. If I _am_ adding a remote that is also a DVC project, should the remote address (local or external) be pointed to the actual _data_ directory, or simply to the DVC project? E.g. `dvc remote add my-project /path/to/project/data` vs `dvc remote add my-project /path/to/project`.

Hopefully the questions are clear, but happy to clarify further if not. I’m a bit new to DVC so any help is appreciated!

---

<div class="post-metadata">

### Author: ![dberenbaum](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dberenbaum](https://discuss.dvc.org/u/dberenbaum)
#### Post date: [January 19, 2024, 8:13pm UTC](https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926/2 "2024-01-19T20:13:42Z")

</div>

Hi @lusk, is everyone working on a single shared filesystem? If so, you should not technically need a dvc remote unless you want to use it for backups of your data. It sounds like all of this is possible without ever adding a dvc remote to any of the projects, although that means they will not be transferable if you ever want to access them outside of this filesystem.

You might also want to look at sharing the dvc cache ([How to Share a Cache Among Projects](https://dvc.org/doc/user-guide/how-to/share-a-dvc-cache)) so that everyone can share a single copy of the data instead of duplicating it for each user/project.

---

<div class="post-metadata">

### Author: ![lusk](https://avatars.discourse-cdn.com/v4/letter/l/b2d939/32.png) [@lusk](https://discuss.dvc.org/u/lusk)
#### Post date: [January 20, 2024, 5:24pm UTC](https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926/3 "2024-01-20T17:24:25Z")

</div>

Hm, interesting. So far all of the external stakeholders should technically be working in-system, but some may wish to work from their local devices so having that capability would be ideal.

In terms of cache-sharing, my main worry becomes a permissions thing. Given the somewhat steep learning curve of a tool like DVC (at least it has been in my case 😅), I’d really prefer the registry to be read-only for external users. Is this possible with a shared cache?

---

<div class="post-metadata">

### Author: ![dberenbaum](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dberenbaum](https://discuss.dvc.org/u/dberenbaum)
#### Post date: [January 22, 2024, 2:43pm UTC](https://discuss.dvc.org/t/understanding-data-registries-and-remotes/1926/4 "2024-01-22T14:43:47Z")

</div>

Since the data registry is a Git repo, it should be limited to whoever has access to write to that repo, regardless of whether the cache is read-only.
