# Organization Member Guide

An organization, or org, is an entity used to manage a group of users. Use orgs to associate users, projects, and other resources with one another in a way that models real-world collaborative structures. Orgs simplify management of access, sharing, and billing. Some operations require a certain level of access in the org, while others are unrestricted. The exact requirement for each operation is listed in its respective section.

{% hint style="info" %}
**NOTE:** these operations do not include tasks that can only be performed by an org admin.
{% endhint %}

## Setting an Org as Your Default Billing Account

**Requirements:** User must have been granted [billable activities access](https://documentation.dnanexus.com/admin/billing-and-account-management) in the org.

Users can set an org as their default billing account. Unless specified otherwise at the time of the org's creation, the org's default billing account is assigned to new projects and apps you create. The default billing account is also charged when you download data unless otherwise specified at the time of download.

You can perform this action using the user interface or the command-line interface (CLI).

### UI

You can change your default billing account in the profile settings page. This page is accessible by clicking on your name in the header and navigating to **Billing.**

If you don't see your org in this list, verify with your org admin that you have billable activities access in the org. Only orgs for which you have been granted this level of access are displayed on this page.

To set up or change billing information for an org, check [Billing and Finance](https://documentation.dnanexus.com/admin/org-management#org-billing-and-finance).

### CLI

You can also set your default billing account by using the [`dx api`](https://documentation.dnanexus.com/helpstrings-of-sdk-command-line-utilities#api) command to call the [/user-xxxx/update](https://documentation.dnanexus.com/developer/api/users#api-method-user-xxxx-update) API method directly and update your billTo field.

In the following example, `user-smithj` is updating their default billing account to `org-demo_org`. To use this command yourself, replace `user-smithj` with your own user ID and `org-demo_org` with your org ID. This command succeeds only if you are editing your own user account and if you have the minimum required access in the org.

```shell
$ dx api user-smithj update '{"billTo": "org-demo_org"}'
{
    "id": "user-smithj"
}
```

## Sharing a Project With an Org

**Requirements:** None.

Any user can share a project with all members of an org by giving the org access to the project. For example, if you want to make a project containing the reference datasets to be used by an entire group, you can share that project with the entire org. Alternatively, if you are collaborating with another org and want to share samples with all the members of the other org, you can share a project containing all the sample data with the other org.

Orgs can be given any access level to a project. The access an org member receives for the project is further restricted by their [shared project access](https://documentation.dnanexus.com/getting-started/key-concepts/organizations#org-membership-levels) level within the org.

You can share projects using the user interface or the command-line interface (CLI).

### UI

In the UI, you can give an org access to a project by entering the org ID, such as `org-support`, in the project's share dialog.

### CLI

To invite `org-demo_org` to the project named `my_new_project`, use the [`dx invite`](https://documentation.dnanexus.com/helpstrings-of-sdk-command-line-utilities#invite) command.

```shell
$ dx invite org-demo my_new_project
Invited org-demo to project-xxxx (accepted)
```

## Sharing an App With an Org

**Requirements:** User must be a [developer](https://documentation.dnanexus.com/developer/api/running-analyses/apps#developers) of the app.

App developers can also choose an org as an [authorized user](https://documentation.dnanexus.com/developer/api/running-analyses/apps#app-versioning-and-publishing) of an app on DNAnexus. This allows developers to make an app available to any user in an org with [shared apps access](https://documentation.dnanexus.com/getting-started/key-concepts/organizations).

For example, if some members of your org have designed a set of best-practice executables to be shared within the org, they can build the executables as apps and share the app with the entire org. This ensures that all members with shared apps access within the org have access to the app. If a member is removed from the org, they also lose their access to these shared apps.

In the following example, a developer of app-mypipeline is sharing the app with org-demo\_org, using the [`dx add users`](https://documentation.dnanexus.com/helpstrings-of-sdk-command-line-utilities#add-users) command.

```shell
dx add users app-mypipeline org-demo_org
```

## Creating a New Org Project

**Requirements:** User must have been granted [billable activities access](https://documentation.dnanexus.com/admin/billing-and-account-management) in the org.

Org members with appropriate access can create new org projects. Org projects are created by assigning the billing account of the project to the org at the time of project creation. If the billing account is not explicitly assigned at the time of project creation, the newly created project is billed to the user's default billing account.

You can create new org projects using the user interface or the command-line interface (CLI).

### UI

When creating a new project in the UI, you can choose to select the billing account to which the project is billed. To do this, click **+ New Project** on the projects page, which opens the **Create a New Project** dialog. You can then select the billing account you want to assign to the project from the drop-down list.

### CLI

On the command line, you can create a new project and specify the project's billing account using [`dx new project`](https://documentation.dnanexus.com/helpstrings-of-sdk-command-line-utilities#new-project) while specifying the --bill-to flag. If this flag is not specified, the newly created project is billed to your default billing account. This command succeeds only if you have appropriate access in the org.

In the following example, a new project named "my-new-project" is created and billed to `org-demo_org`.

```shell
$ dx new project "my-new-project" --bill-to org-demo_org
Created new project called "my-new-project" (project-xxxx)
Switch to new project now? [y/N]:
```

### Creating a New Org App

**Requirements:** User must have been granted [billable activities access](https://documentation.dnanexus.com/admin/billing-and-account-management) in the org.

An org app is an app that is billed to an org. To create a new app billed to org-demo\_org, use the [`dx build`](https://documentation.dnanexus.com/helpstrings-of-sdk-command-line-utilities#build) command and specify the billing account of the app using the `--bill-to` flag. After an app is published, it is impossible to change the billing account of the app.

```shell
$ dx build /path/to/app/directory --bill-to org-demo_org
{"id": "applet-xxxx"}
```

## Transferring a Project to an Org

**Requirements:** User must have ADMINISTER access in a project. If the project is billed to an org, the user must have the minimum membership level to transfer the project.

If you have [billable activities access](https://documentation.dnanexus.com/admin/billing-and-account-management) in the org to which you want to transfer the project, you can change the billing account of the project to the org. To do so, navigate to the project settings page by clicking on the gear icon in the project header. On the project settings page, you can then select to which billing account the project should be billed.

If you do not have billable activities access in the org to which you want to transfer the project, you must transfer the project to a user who does have this access. The recipient is then able to follow the instructions below to accept a project transfer on behalf of an org.

## Accepting a Project Transfer on Behalf of an Org

**Requirements:** User must have been granted [billable activities access](https://documentation.dnanexus.com/admin/billing-and-account-management) in the org.

To accept a transfer of a project on behalf of an org, follow the [instructions to accept a project transfer](https://documentation.dnanexus.com/getting-started/key-concepts/projects#transferring-billing-responsibility-to-another-user) and select the org from the drop-down menu of eligible billing accounts to which the project may be billed.

## Listing All Orgs

Org projects are defined as projects billed to the org. You can use the search and filter tools built into the DNAnexus Platform to list all org projects to which you have access. However, this filter does not list all org projects. Org admins have a [different method](https://documentation.dnanexus.com/admin/org-management) to list all org projects.

To do this on the UI, use the filter bar on the projects page to filter all projects by Owner, where the owner of the project is the org. The owner filter is not displayed in the filter bar by default but can be added by selecting it from the **Filters** dropdown menu on the right.

### Listing All Orgs to Which You Belong

You can use the `dx find orgs` command in the CLI to list all orgs to which you belong. The command finds all the orgs for which you have at least MEMBER level access.

```shell
$ dx find orgs --level MEMBER
org-demo: Example Org
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.dnanexus.com/user/organization-member-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
