Controle de Acesso
O IronFlock usa um sistema de privilégios granular para controlar quem pode ler, editar e gerenciar os recursos dentro dos seus projetos. Os privilégios são rastreados por usuário e por recurso, e são completamente versionados ao longo do tempo.
Como os Privilégios Funcionam
Propriedade
Apenas projetos e apps possuem o conceito de propriedade. O proprietário de um projeto é um superusuário: ele automaticamente tem controle total sobre todos os recursos do projeto — dispositivos, grupos, boards e data backends — independentemente das configurações individuais de cada recurso. Mesmo quando outros usuários adicionam dispositivos a um projeto, o proprietário do projeto mantém acesso de superusuário a esses dispositivos.
O proprietário de um app tem igualmente controle total sobre o código, os releases e a distribuição desse app.
Privilégios Granulares por Recurso
Dentro de um projeto, você pode conceder permissões granulares a membros individuais do projeto para quatro tipos de recurso:
| Tipo de Recurso | Descrição |
|---|---|
| Dispositivo | Um dispositivo edge físico ou virtual |
| Grupo de dispositivos | Um agrupamento lógico de dispositivos dentro de um projeto |
| Board de usuário | Um dashboard de visualização de dados |
| Data Backend | Um banco de dados de séries temporais provisionado por projeto |
Os privilégios só podem ser atribuídos a usuários que já foram convidados para o projeto. Não é possível conceder privilégios de nível de recurso a usuários fora do projeto.
Privilégios Padrão de Membros do Projeto
Dentro de um projeto, você pode definir privilégios padrão que se aplicam a todos os membros do projeto para cada tipo de recurso. Isso permite, por exemplo, dar a todos os membros do projeto acesso de leitura a todos os boards por padrão, sem precisar conceder acesso individualmente.
Privilégios do Projeto
O proprietário do projeto tem acesso de superusuário completo ao projeto e a todos os seus recursos. Outros usuários podem receber as seguintes permissões no nível do projeto:
| Permissão | Descrição |
|---|---|
| Criar dispositivos | Adicionar novos dispositivos ao projeto |
| Criar grupos | Criar novos grupos de dispositivos |
| Atualizar | Editar nome, descrição e metadados do projeto |
| Conceder privilégios | Atribuir ou modificar permissões para outros usuários |
| Excluir | Excluir permanentemente o projeto inteiro |
Privilégios de Dispositivo
| Permissão | Descrição |
|---|---|
| Operar | Enviar comandos de controle e interagir com o dispositivo |
| Desenvolver | Acessar funcionalidades e contêineres de desenvolvimento no dispositivo |
| Instalar | Instalar e remover apps no dispositivo |
| Atualizar | Editar nome, descrição e outros metadados |
| Rede | Configurar definições de rede (Wi-Fi, Ethernet) |
| Manter | Acessar funcionalidades de manutenção, terminal e diagnóstico do sistema |
| Excluir | Remover permanentemente o dispositivo do projeto |
| Conceder privilégios | Atribuir ou modificar privilégios para outros usuários neste dispositivo |
Privilégios de Grupo de Dispositivos
| Permissão | Descrição |
|---|---|
| Atualizar | Editar nome, descrição e membros do grupo |
| Excluir | Remover permanentemente o grupo |
| Conceder privilégios | Atribuir ou modificar privilégios para outros usuários neste grupo |
Privilégios de App
| Permissão | Descrição |
|---|---|
| Ler | Ver o app, sua descrição e dashboards |
| Desenvolver | Acessar código-fonte, editar o app e usar o App Studio |
| Ver Código | Acesso somente leitura ao código-fonte do app |
| Atualizar | Editar metadados do app (nome, descrição, imagem) |
| Excluir | Excluir permanentemente o app |
| Conceder privilégios | Atribuir ou modificar privilégios para outros usuários neste app |
| Publicar | Publicar novas versões na App Store |
| Usar | Instalar o app em um projeto (obrigatório para apps privados) |
| App Store | Gerenciar listagem e visibilidade na App Store |
Privilégios de Board e Data Backend
| Permissão | Descrição |
|---|---|
| Atualizar | Editar conteúdo ou configuração |
| Conceder privilégios | Atribuir permissões a outros usuários |
| Excluir | Remover permanentemente o board ou data backend |
Convidando Usuários
Para conceder privilégios a outro usuário dentro de um projeto:
- Navegue até a seção Privilégios de qualquer recurso (projeto, dispositivo, grupo, board ou data backend).
- Clique em Convidar Usuário.
- Pesquise o usuário pelo endereço de e-mail.
- Selecione as permissões a conceder.
- Clique em Convidar.
Somente usuários que já são membros do projeto podem receber privilégios de nível de recurso dentro desse projeto.
Transferência de Propriedade
Transferindo um Projeto
O proprietário de um projeto pode transferir a propriedade para outro usuário do IronFlock. O novo proprietário recebe acesso de superusuário completo; o acesso do proprietário anterior dependerá dos privilégios que ele ainda mantiver no projeto.
Para transferir a propriedade do projeto, abra as configurações do projeto e navegue até a aba Privilégios.
Transferindo um App
O proprietário de um app pode transferir a propriedade para outro usuário do IronFlock. A transferência de propriedade concede ao novo proprietário controle total sobre o código, releases, preços e distribuição do app.
Para transferir a propriedade do app, abra-o no App Studio e navegue até a aba Privilégios.
Transferência e Reivindicação de Dispositivos
Transferindo um Dispositivo para Outro Projeto
Um dispositivo pode ser transferido de um projeto para outro. Isso move o dispositivo — junto com sua configuração — para o projeto de destino. Apenas usuários com a permissão Criar dispositivos no projeto de destino podem iniciar ou receber uma transferência.
Dispositivos Reivindicáveis
Um dispositivo pode ser marcado como reivindicável. Quando um dispositivo é reivindicável, qualquer usuário do IronFlock que conheça o ID desse dispositivo pode reivindicá-lo ativamente — transferindo-o para um projeto onde ele tenha o privilégio Criar dispositivos. Isso é útil para:
- Fluxos de auto-provisionamento — técnicos de campo registram dispositivos sem necessidade de envolvimento do administrador
- Ativação de fábrica — clientes finais escaneiam um ID de dispositivo (p. ex. de uma etiqueta com QR code) para incorporar o dispositivo ao seu próprio projeto
Após a reivindicação, o dispositivo é movido para o projeto do reivindicante e não é mais reivindicável.
Herança de Privilégios
- Proprietário do projeto — Automaticamente tem controle total sobre todos os dispositivos, grupos, boards e data backends do projeto. Não são necessárias concessões individuais por recurso.
- Privilégios padrão de membros — Aplicam-se a todos os membros do projeto para um determinado tipo de recurso, salvo se substituídos por uma concessão individual específica.
- Privilégios de nível de dispositivo são independentes dos privilégios de nível de grupo. A atribuição de privilégios em um grupo não se propaga para as configurações individuais de dispositivos.
Trilha de Auditoria
Cada alteração de privilégio é registrada com:
- Quem fez a alteração (o concedente)
- O que mudou (quais permissões foram adicionadas ou removidas)
- Quem foi afetado (o usuário cujos privilégios foram alterados)
- Quando a alteração ocorreu
Esta trilha de auditoria temporal está disponível na seção Logs de Auditoria e é útil para revisões de conformidade e investigações de segurança.