# Espaços de trabalho e organizações

> Escolha o espaço de trabalho da CLI do Nodaro, crie organizações, convide uma turma ou equipe em lote e exporte relatórios de uso em tabela, JSON ou CSV.

Source: https://nodaro.ai/pt-BR/docs/developers/cli/workspaces

Os **espaços de trabalho** são onde o trabalho fica em uma instância com organizações: uma turma em uma escola, uma equipe em uma empresa. Estes comandos da CLI do Nodaro escolhem o espaço de trabalho em que os seus comandos atuam, gerenciam organizações e os membros delas, e exportam relatórios de uso. As organizações são um recurso do Nodaro Cloud ativado por instância; em uma instância sem organizações, estes comandos não estão disponíveis.

## Escolher o espaço de trabalho em que um comando atua
Um navegador mostra o espaço de trabalho atual em todas as telas. Um terminal não mostra nada, então a CLI torna a escolha explícita. Há três formas de defini-lo, e cada uma tem prioridade sobre a que vem abaixo dela:

```bash
nodaro --workspace <id> workflows list   # 1. this command only
export NODARO_WORKSPACE=<id>             # 2. this shell, or this CI job
nodaro workspace use <id>                # 3. saved on the profile until you change it
```

- `nodaro workspace current` informa onde você está e qual das três formas decidiu. Sem esse comando, um `NODARO_WORKSPACE` herdado pareceria exatamente um espaço de trabalho salvo.
- `nodaro workspace use` verifica o espaço de trabalho antes de salvá-lo, então um erro de digitação falha uma vez, ali mesmo, e não em todos os comandos seguintes.
- `nodaro workspace clear` remove o espaço de trabalho salvo.
- Sem nenhum espaço de trabalho definido, tudo acontece no seu espaço pessoal.

O espaço de trabalho escolhido decide de qual espaço de trabalho uma **listagem** lê e onde fica o que você **cria**. Ele nunca decide o acesso: ler, atualizar, excluir ou executar algo que você indica pelo id segue o espaço de trabalho do próprio item. Por isso, um `--workspace` esquecido não pode esconder seu trabalho, e um errado não pode acessar o trabalho de mais ninguém.

## Comandos de espaço de trabalho
```bash
nodaro workspace list [--json]
nodaro workspace current [--json]
nodaro workspace use <id> [--json]
nodaro workspace clear
nodaro workspace get <id> [--json]
nodaro workspace members <id> [--limit <n>] [--cursor <token>] [--json]
nodaro workspace join <code> [--json]
nodaro workspace usage [id] [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--tz <iana>] [--group-by member|model|day|none] [--user <id>] [--limit <n>] [--cursor <token>] [--csv] [--json]
```

`workspace join` recebe o código de entrada de oito caracteres que um administrador do espaço de trabalho compartilha. Um código de entrada torna você um membro comum de um espaço de trabalho.

## Comandos de organização
```bash
nodaro org list [--json]
nodaro org get <id> [--json]
nodaro org create --name <name> --kind school|team [--slug <slug>] [--accept-terms] [--json]
nodaro org members <orgId> [--limit <n>] [--cursor <token>] [--json]
nodaro org invite <orgId> --email a@x.com --email b@x.com [--role admin|member] [--workspace <id>] [--workspace-role admin|member] [--json]
nodaro org invitations <orgId> [--status open|accepted|revoked|expired] [--limit <n>] [--cursor <token>] [--json]
nodaro org revoke <invitationId> [--json]
nodaro org audit <orgId> [--limit <n>] [--cursor <token>] [--json]
nodaro org usage <orgId> [--from YYYY-MM-DD] [--to YYYY-MM-DD] [--tz <iana>] [--group-by workspace|member|model|day|none] [--workspace <id>] [--user <id>] [--limit <n>] [--cursor <token>] [--csv] [--json]
```

- `org create --kind school` exige `--accept-terms`: o proprietário declara que tem autoridade para matricular alunos.
- Uma nova organização normalmente começa como pendente e fica ativa quando a plataforma a aprova. Até lá, nada nela pode mudar.
- `org revoke` cancela um convite, e o link dele para de funcionar.
- `org audit` lista o log de auditoria da organização.

## Convidar pessoas
Trazer uma turma ou uma equipe para uma instância é um trabalho em lote, feito uma única vez, e `nodaro org invite` foi feito para isso. Repita `--email` uma vez por pessoa e, se quiser, coloque todos em um espaço de trabalho:

```bash
nodaro org invite org_abc --email ada@school.edu --email grace@school.edu --workspace ws_xyz --workspace-role member
```

O comando imprime uma linha por endereço, dizendo se o endereço recebeu e-mail. Uma instalação sem provedor de e-mail não consegue enviar e-mail a ninguém. As linhas dela dizem `not emailed (link_only)` e trazem o link do convite na linha seguinte.

Envie esses links você mesmo. Caso contrário, o convite existe, mas ninguém consegue chegar até ele. Um convite expira depois de 14 dias.

## Relatórios de uso
`nodaro org usage` e `nodaro workspace usage` respondem quem gastou quantos créditos e em quê, em um intervalo de datas.

- `--from` e `--to` são datas inclusivas, no formato `YYYY-MM-DD`. `--tz` define o fuso horário dos agrupamentos por dia; o padrão é o fuso do seu terminal.
- `--group-by` agrupa o relatório por `workspace` (só nos relatórios de organização), `member`, `model` ou `day`. `none` lista as execuções individuais, das mais recentes para as mais antigas.
- A saída padrão é uma tabela com uma linha de totais. `--json` imprime o relatório completo, e `--csv` escreve o CSV na saída padrão, pronto para ser redirecionado para um arquivo.

```bash
nodaro org usage org_abc --from 2026-09-01 --to 2026-09-30 --group-by member --csv > september.csv
```

Um membro comum do espaço de trabalho vê só o próprio uso. Os administradores do espaço de trabalho veem todos nele, e os relatórios de organização são para o proprietário e os administradores da organização.

## Frequently asked questions

### Como faço a CLI do Nodaro trabalhar em um espaço de trabalho?

Use --workspace com um id para um único comando, defina NODARO_WORKSPACE para um shell ou um job de CI, ou salve um espaço de trabalho no perfil com nodaro workspace use. A flag tem prioridade sobre a variável, e a variável tem prioridade sobre o espaço de trabalho salvo.

### Um id de espaço de trabalho errado pode expor o trabalho de outra pessoa?

Não. O espaço de trabalho decide de onde as listagens leem e onde fica o trabalho novo. O acesso a qualquer item que você indica pelo id é decidido pelo espaço de trabalho do próprio item, então um espaço de trabalho errado só desperdiça um comando.

### Por que nodaro org invite imprimiu um link em vez de enviar um e-mail?

A instalação não tem um provedor de e-mail, ou o envio falhou. O convite existe, mas ninguém consegue chegar até ele até que você mesmo envie esse link para a pessoa.

### Como exporto um mês de uso em CSV?

Execute nodaro org usage com o id da organização, as datas --from e --to, um valor de --group-by como member e --csv, e depois redirecione a saída para um arquivo.
