How to Manage Jina Resources with Namespace
Tags: documentarray, namespace
Published: 2023-02-24 07:52:56

![](https://jina-ai-gmbh.ghost.io/content/images/2022/11/Jina-AI-Website-Banners-Templates--35-.png)

Over the past year, we’ve been rapidly expanding Jina AI Cloud, starting with our [Executor Hub](https://cloud.jina.ai/), and now encompassing [DocumentArray storage](https://docarray.jina.ai/fundamentals/cloud-support/data/), [hosted Flows](https://docs.jina.ai/fundamentals/jcloud/) and [cloud apps](https://now.jina.ai/).

Jina AI Cloud：https://cloud.jina.ai/

That’s a lot of stuff to manage! We’re introducing **user namespaces** to make things easier for all our users.

## Namespace

Previously, if Alice and Bob both wanted to push a DocumentArray called `fashion-mnist`, whoever pushed first would get the name. That means Bob might have to go with `fashion-mnist2` or similar. With more people using Jina AI Cloud, naming conflicts could become commonplace.

With user namespaces, both Alice and Bob can have their own `fashion_mnist` DocumentArrays (or Executors with the same name) with no fear of naming conflicts.

The new namespace apply to two important resources inside Jina AI ecosystem: **DocumentArray** and **Executor**.

### Schema

Moving forwards, names for DocumentArrays and Hub Executors will follow the new schema, `namespace/resource`:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4uo6lrkq10r6sc77yxpa.png)

>💡Note that Executors now use `jinaai://` as the prefix (not `jinahub://`) and no longer need secrets (as you already logged in).

### Access scope

For both DocumentArray and Executor, the user enjoys the following accessibility:

### Does this break anything?

- There are no breaking changes for existing Executors on Executor Hub.
- You can still pull old DocumentArrays by their original name, but you can’t update them. Newly-pushed DocumentArrays must follow the `username/da-name` scheme.

## Managing your resources under the namespace

### Manage DocumentArrays

1. Create a Jina AI account at [cloud.jina.ai](http://cloud.jina.ai/).

![](https://jina-ai-gmbh.ghost.io/content/images/2022/11/Untitled--6-.png)

2. [Upgrade `docarray` to `>=0.19.1` version](https://jina.ai/news/docarray-0-19-1-update/) with `pip install -U docarray`.

3. Log in via `docarray.login()` and start pushing and pulling DocumentArrays:

```python
from docarray import DocumentArray

docarray.login()  # log in as 'alice'

docs = DocumentArray.pull('alice/fashion_mnist')

docs.push('alice/fashion_mnist_updated')
```

4. Manage your pushed DocumentArrays on Jina AI Cloud in the "Storage" tab:

![Untitled](https://jina-ai-gmbh.ghost.io/content/images/2022/11/Untitled--4-.png)

### Manage Executors

Upgrade `jina` to the latest version with `pip install -U jina`.

1.Create a Jina AI account at [cloud.jina.ai](http://cloud.jina.ai/).
2.Use an existing Executor in your Flow (in Python):

```python
from jina import Flow

flow = Flow().add(uses='jinaai+docker://alice/MyExecutor')  # note jinaai

with flow:
    ...
```

3.Or push your own Executor to Executor Hub (from the CLI):

```bash
jina auth login
jina hub push MyExecutor
```

4.Manage your Executors on Executor Hub on the "Executors" tab:
![](https://jina-ai-gmbh.ghost.io/content/images/size/w1000/2022/11/Untitled--7-.png)